├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── README.md
├── components
├── Cast
│ ├── CastItem.tsx
│ └── CastList.tsx
├── Input.tsx
├── ItemDetailView.tsx
├── ItemGrid.tsx
├── ItemView.tsx
├── Layout
│ ├── Footer.tsx
│ ├── Meta.tsx
│ ├── Navbar.tsx
│ ├── NavbarLink.tsx
│ ├── Pagination.tsx
│ └── Search.tsx
├── Modal.tsx
├── PageHeader.tsx
├── Rating.tsx
├── Slider
│ ├── ItemCard.tsx
│ ├── ItemList.tsx
│ ├── ItemSlider.tsx
│ ├── MainSlider.tsx
│ └── MainSliderItem.tsx
├── Video
│ └── VideoItem.tsx
├── Watch
│ └── AboutDetail.tsx
├── buttons
│ └── Button.tsx
└── index.tsx
├── model
├── movie.ts
└── tv.ts
├── next-env.d.ts
├── next.config.js
├── package.json
├── pages
├── _app.tsx
├── index.tsx
├── movie
│ ├── [id]
│ │ ├── index.tsx
│ │ └── watch.tsx
│ └── index.tsx
├── search.tsx
└── tv
│ ├── [id]
│ ├── episode.tsx
│ ├── index.tsx
│ └── watch.tsx
│ └── index.tsx
├── postcss.config.js
├── public
├── footer-bg.jpg
├── icon.png
├── preview.png
└── tmovie.png
├── redux
├── hooks.ts
├── modalSlice.ts
├── movieSlice.ts
├── store.ts
└── tvSlice.ts
├── styles
├── _index.scss
├── _variable.scss
└── globals.scss
├── tailwind.config.js
├── tsconfig.json
├── ultis
├── apiConfig.ts
├── axiosClient.ts
├── constants.ts
└── tmdbApi.ts
└── yarn.lock
/.eslintignore:
--------------------------------------------------------------------------------
1 | /node_modules
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": [
7 | "next/core-web-vitals",
8 | "eslint:recommended",
9 | "plugin:react/recommended",
10 | // "plugin:@typescript-eslint/recommended",
11 | // "plugin:@typescript-eslint/eslint-recommended",
12 | "plugin:prettier/recommended"
13 | ],
14 | // "parser": "@typescript-eslint/parser",
15 | "parserOptions": {
16 | "ecmaFeatures": {
17 | "jsx": true,
18 | "js": true
19 | },
20 | "ecmaVersion": 12,
21 | "sourceType": "module"
22 | },
23 | "plugins": [
24 | "react"
25 | // "@typescript-eslint"
26 | ],
27 | "rules": {
28 | "react/display-name": 0,
29 | "react/jsx-props-no-spreading": 0,
30 | "react/state-in-constructor": 0,
31 | "react/static-property-placement": 0,
32 | "react/destructuring-assignment": "off",
33 | "react/jsx-filename-extension": "off",
34 | "react/no-array-index-key": "warn",
35 | "react-hooks/rules-of-hooks": "error", // Checks rules of Hooks
36 | // "react-hooks/exhaustive-deps": "warn", // Checks deps of Hooks
37 | "react/require-default-props": 0,
38 | "react/jsx-fragments": 0,
39 | "react/jsx-wrap-multilines": 0,
40 | "react/prop-types": 0,
41 | "react/forbid-prop-types": 0,
42 | "react/sort-comp": 0,
43 | "react/react-in-jsx-scope": 0,
44 | "react/jsx-one-expression-per-line": 0,
45 | "generator-star-spacing": 0,
46 | "function-paren-newline": 0,
47 | "import/no-unresolved": 0,
48 | "import/order": 0,
49 | "import/no-named-as-default": 0,
50 | "import/no-cycle": 0,
51 | "import/prefer-default-export": 0,
52 | "import/no-default-export": 0,
53 | "import/no-extraneous-dependencies": 0,
54 | "import/named": 0,
55 | "import/no-named-as-default-member": 0,
56 | "import/no-duplicates": 0,
57 | "import/no-self-import": 0,
58 | "import/extensions": 0,
59 | "import/no-useless-path-segments": 0,
60 | "jsx-a11y/no-noninteractive-element-interactions": 0,
61 | "jsx-a11y/click-events-have-key-events": 0,
62 | "jsx-a11y/no-static-element-interactions": 0,
63 | "jsx-a11y/anchor-is-valid": 0,
64 | "sort-imports": 0,
65 | "class-methods-use-this": 0,
66 | "no-confusing-arrow": 0,
67 | "linebreak-style": 0,
68 | "no-prototype-builtins": "off",
69 | "unicorn/prevent-abbreviations": "off",
70 | // Conflict with prettier
71 | "arrow-body-style": 0,
72 | "arrow-parens": 0,
73 | "object-curly-newline": 0,
74 | "implicit-arrow-linebreak": 0,
75 | "operator-linebreak": 0,
76 | "eslint-comments/no-unlimited-disable": 0,
77 | "no-param-reassign": 2,
78 | "space-before-function-paren": 0,
79 | "@next/next/no-img-element": "off",
80 | "no-unused-vars": [
81 | "error",
82 | {
83 | "vars": "all",
84 | "args": "after-used",
85 | "ignoreRestSiblings": false,
86 | "argsIgnorePattern": "^_"
87 | }
88 | ],
89 | "prettier/prettier": [
90 | "error",
91 | {
92 | "usePrettierrc": true
93 | },
94 | {}
95 | ]
96 | }
97 | }
--------------------------------------------------------------------------------
/.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 | .vscode
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 | .pnpm-debug.log*
28 |
29 | # local env files
30 | .env*.local
31 |
32 | # vercel
33 | .vercel
34 |
35 | # typescript
36 | *.tsbuildinfo
37 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itz-dude/Tv---flim/5d88820f4e634d343a5197c33770054fa2fb9bbd/.prettierignore
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "semi": true,
3 | "trailingComma": "es5",
4 | "singleQuote": true,
5 | "tabWidth": 2,
6 | "useTabs": false,
7 | "endOfLine": "auto"
8 | }
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | you can use vercel to deploy
2 | set the tmdb api as env and you are up
3 | well the ui is a fork but the api integration is custom made so dont edit anyhting or else it'll break
4 |
5 |
6 |
7 | DEMO:
8 | https://fggg.vercel.app/
9 | 
10 |
--------------------------------------------------------------------------------
/components/Cast/CastItem.tsx:
--------------------------------------------------------------------------------
1 | import { Cast } from '@/model/movie';
2 | import { w500Image } from '@/ultis/constants';
3 |
4 | interface Props {
5 | item: Cast;
6 | }
7 |
8 | const CastItem = ({ item }: Props) => {
9 | return (
10 |
11 |
15 |
{item.name}
16 |
{item.character}
17 |
18 | );
19 | };
20 |
21 | export default CastItem;
22 |
--------------------------------------------------------------------------------
/components/Cast/CastList.tsx:
--------------------------------------------------------------------------------
1 | import { CastItem } from '@/components';
2 | import { Cast } from '@/model/movie';
3 |
4 | interface Props {
5 | items: Cast[];
6 | }
7 |
8 | const CastList = ({ items }: Props) => {
9 | return (
10 |
11 | {items.map((item) => (
12 |
13 | ))}
14 |
15 | );
16 | };
17 |
18 | export default CastList;
19 |
--------------------------------------------------------------------------------
/components/Input.tsx:
--------------------------------------------------------------------------------
1 | import { ChangeEvent, KeyboardEvent } from 'react';
2 |
3 | interface InputProps {
4 | type: string;
5 | placeholder: string;
6 | value?: string;
7 | onChange?: (_e: ChangeEvent) => void;
8 | onKeyup?: (_e: KeyboardEvent) => void;
9 | }
10 |
11 | const Input = ({ type, placeholder, value, onChange, onKeyup }: InputProps) => {
12 | return (
13 |
22 | );
23 | };
24 |
25 | export default Input;
26 |
--------------------------------------------------------------------------------
/components/ItemDetailView.tsx:
--------------------------------------------------------------------------------
1 | import { NextPage } from 'next';
2 | import { useRouter } from 'next/router';
3 | import Link from 'next/link';
4 |
5 | import { MovieItemProps, Cast, VideoTrailer } from '@/model/movie';
6 | import { Rating, Button, CastList, VideoItem, ItemList } from '@/components';
7 | import { imageOriginal } from '@/ultis/constants';
8 |
9 | interface Props {
10 | data: MovieItemProps;
11 | casts: Cast[];
12 | videos: VideoTrailer[];
13 | similar: MovieItemProps[];
14 | }
15 |
16 | const ItemDetailView: NextPage = ({ data, casts, videos, similar }) => {
17 | const router = useRouter();
18 | return (
19 | <>
20 |
26 |
27 |
35 |
36 |
{data.title || data.name}
37 |
38 |
39 |
40 |
41 |
Release Date: {data.release_date}
42 |
43 |
44 | {data.genres.map((genre) => (
45 |
49 | {genre.name}
50 |
51 | ))}
52 |
53 |
{data.overview}
54 |
55 | Official website :
56 |
57 |
58 | {data.homepage}
59 |
60 |
61 |
62 |
65 |
66 |
67 |
68 |
72 |
73 |
74 | {videos.map((video) => (
75 |
76 | ))}
77 |
78 |
82 |
83 | >
84 | );
85 | };
86 |
87 | export default ItemDetailView;
88 |
--------------------------------------------------------------------------------
/components/ItemGrid.tsx:
--------------------------------------------------------------------------------
1 | import { ItemCard } from '@/components';
2 | import { MovieItemProps } from '@/model/movie';
3 |
4 | interface Props {
5 | items: MovieItemProps[];
6 | }
7 |
8 | const ItemGrid = ({ items }: Props) => {
9 | return (
10 |
11 | {items.map((item) => (
12 |
13 | ))}
14 |
15 | );
16 | };
17 |
18 | export default ItemGrid;
19 |
--------------------------------------------------------------------------------
/components/ItemView.tsx:
--------------------------------------------------------------------------------
1 | import { NextPage } from 'next';
2 | import { ClipLoader } from 'react-spinners';
3 |
4 | import { MovieSliceParams } from '@/redux/movieSlice';
5 | import { ItemGrid, PageHeader, Button } from '@/components';
6 |
7 | interface Props extends MovieSliceParams {
8 | loadMore: () => void;
9 | media_type: 'movie' | 'tv';
10 | }
11 |
12 | const ItemView: NextPage = ({
13 | loading,
14 | items,
15 | loadingMore,
16 | page,
17 | total_pages,
18 | loadMore,
19 | media_type,
20 | }) => {
21 | return (
22 | <>
23 |
24 |
25 |
26 | {loading ? (
27 |
28 |
29 |
30 | ) : (
31 | <>
32 |
33 |
34 |
35 |
36 |
37 |
38 | {page < total_pages && (
39 |
40 |
43 |
44 | )}
45 | >
46 | )}
47 |
48 | >
49 | );
50 | };
51 |
52 | export default ItemView;
53 |
--------------------------------------------------------------------------------
/components/Layout/Footer.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link';
2 | import { FaGithub, FaFacebook } from 'react-icons/fa';
3 |
4 | const Footer = () => {
5 | return (
6 |
29 | );
30 | };
31 |
32 | export default Footer;
33 |
--------------------------------------------------------------------------------
/components/Layout/Meta.tsx:
--------------------------------------------------------------------------------
1 | import Head from 'next/head';
2 | import { NextPage } from 'next';
3 |
4 | interface MetaProps {
5 | title: string;
6 | description: string;
7 | image: string;
8 | }
9 |
10 | const Meta: NextPage = ({ title, description, image }) => {
11 | return (
12 |
13 | {title}
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | );
29 | };
30 |
31 | export default Meta;
32 |
--------------------------------------------------------------------------------
/components/Layout/Navbar.tsx:
--------------------------------------------------------------------------------
1 | import { useRef, useState, useEffect } from 'react';
2 | import Link from 'next/link';
3 | import Image from 'next/image';
4 | import Cn from 'classnames';
5 |
6 | import { NavbarLink, Search } from '@/components';
7 |
8 | const Navbar = () => {
9 | const navbarRef = useRef(null);
10 | const [isShrink, setIsShrink] = useState(false);
11 |
12 | useEffect(() => {
13 | const shrinkHeader = () => {
14 | if (
15 | document.body.scrollTop > 100 ||
16 | document.documentElement.scrollTop > 100
17 | ) {
18 | setIsShrink(true);
19 | } else {
20 | setIsShrink(false);
21 | }
22 | };
23 | window.addEventListener('scroll', shrinkHeader);
24 | return () => {
25 | window.removeEventListener('scroll', shrinkHeader);
26 | };
27 | }, []);
28 |
29 | return (
30 |
38 |
39 |
51 |
56 |
57 |
58 |
59 |
60 |
61 | );
62 | };
63 |
64 | export default Navbar;
65 |
--------------------------------------------------------------------------------
/components/Layout/NavbarLink.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link';
2 |
3 | const headerNav = [
4 | {
5 | display: 'Home',
6 | path: '/',
7 | },
8 | {
9 | display: 'Movies',
10 | path: '/movie',
11 | },
12 | {
13 | display: 'TV Series',
14 | path: '/tv',
15 | },
16 | ];
17 |
18 | const NavbarLink = () => {
19 | return (
20 |
21 |
22 | {headerNav.map((item) => (
23 |
24 | {item.display}
25 |
26 | ))}
27 |
28 |
29 | );
30 | };
31 |
32 | export default NavbarLink;
33 |
--------------------------------------------------------------------------------
/components/Layout/Pagination.tsx:
--------------------------------------------------------------------------------
1 | import { NextPage } from 'next';
2 | import { GrPrevious, GrNext } from 'react-icons/gr';
3 |
4 | interface Props {
5 | total: number;
6 | }
7 |
8 | const Pagination: NextPage = () => {
9 | return (
10 |
11 |
12 |
13 |
14 |
1
15 |
1
16 |
17 |
18 |
19 |
20 | );
21 | };
22 |
23 | export default Pagination;
24 |
--------------------------------------------------------------------------------
/components/Layout/Search.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from 'react';
2 | import { useRouter } from 'next/router';
3 | import { AiOutlineSearch } from 'react-icons/ai';
4 | import cn from 'classnames';
5 |
6 | import { MediaType } from '@/model/movie';
7 | import { mediaTypes } from '@/ultis/constants';
8 | import { Input } from '@/components';
9 |
10 | const Search = () => {
11 | const router = useRouter();
12 | const [value, setValue] = useState('');
13 | const [typeFillter, setTypeFillter] = useState('all');
14 | const onChange = (e: any) => setValue(e.target.value);
15 | const handleSearch = () => {
16 | router.push({
17 | pathname: '/search',
18 | query: {
19 | type: typeFillter,
20 | q: value,
21 | },
22 | });
23 | };
24 |
25 | const type = router.query.type as MediaType;
26 | const q = router.query.q as string;
27 | useEffect(() => {
28 | if (type && q) {
29 | setValue(q);
30 | setTypeFillter(type);
31 | }
32 | }, [type, q]);
33 |
34 | return (
35 |
36 |
e.key === 'Enter' && handleSearch()}
42 | />
43 |
44 |
50 |
51 | {mediaTypes.map((mediaType) => (
52 | - setTypeFillter(mediaType)}
65 | >
66 | {mediaType}
67 |
68 | ))}
69 |
70 |
71 |
72 | );
73 | };
74 |
75 | export default Search;
76 |
--------------------------------------------------------------------------------
/components/Modal.tsx:
--------------------------------------------------------------------------------
1 | import Cn from 'classnames';
2 | import { AiOutlineClose } from 'react-icons/ai';
3 |
4 | interface Props {
5 | isVisible: boolean;
6 | id?: number;
7 | onClose: () => void;
8 | trailerEndPoint?: string;
9 | }
10 |
11 | const Modal = ({ isVisible, id, onClose, trailerEndPoint }: Props) => {
12 | return (
13 |
35 | );
36 | };
37 |
38 | export default Modal;
39 |
--------------------------------------------------------------------------------
/components/PageHeader.tsx:
--------------------------------------------------------------------------------
1 | import { NextPage } from 'next';
2 | import { MediaType } from '@/model/movie';
3 |
4 | interface Props {
5 | media_type: MediaType;
6 | isSearchPage?: boolean;
7 | keyword?: string;
8 | }
9 |
10 | const PageHeader: NextPage = ({
11 | media_type,
12 | isSearchPage = false,
13 | keyword,
14 | }) => {
15 | const typePage = (media_type: MediaType) => {
16 | if (media_type === 'all') return 'Movies and TV shows';
17 | else if (media_type === 'movie') return 'Movies';
18 | else if (media_type === 'tv') return 'TV shows';
19 | };
20 | return (
21 |
28 |
29 | {isSearchPage ? (
30 | <>
31 | Search {typePage(media_type)} by keyword :
32 | {keyword}
33 | >
34 | ) : (
35 | `All ${typePage(media_type)}`
36 | )}
37 |
38 |
39 | );
40 | };
41 |
42 | export default PageHeader;
43 |
--------------------------------------------------------------------------------
/components/Rating.tsx:
--------------------------------------------------------------------------------
1 | import Cn from 'classnames';
2 | import { FaStar } from 'react-icons/fa';
3 |
4 | interface Props {
5 | rating: number;
6 | className?: string;
7 | size?: number;
8 | }
9 |
10 | const Rating = ({ rating, className, size = 14 }: Props) => {
11 | return (
12 |
18 |
19 | {rating.toFixed(1)}
20 |
21 |
22 |
23 |
24 | );
25 | };
26 |
27 | export default Rating;
28 |
--------------------------------------------------------------------------------
/components/Slider/ItemCard.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link';
2 | import { FaPlayCircle } from 'react-icons/fa';
3 |
4 | import { Button, Rating } from '@/components';
5 | import { MovieItemProps } from '@/model/movie';
6 | import { w500Image } from '@/ultis/constants';
7 |
8 | interface Props {
9 | item: MovieItemProps;
10 | }
11 |
12 | const ItemCard = ({ item }: Props) => {
13 | const bg = w500Image(item.poster_path || item.backdrop_path);
14 | return (
15 |
16 |
17 |
18 |
26 |
32 |
41 |
42 |
43 | {item.title || item.name}
44 |
45 |
46 |
47 |
48 | );
49 | };
50 |
51 | export default ItemCard;
52 |
--------------------------------------------------------------------------------
/components/Slider/ItemList.tsx:
--------------------------------------------------------------------------------
1 | import { Swiper, SwiperSlide } from 'swiper/react';
2 | import { Scrollbar, Mousewheel, FreeMode } from 'swiper';
3 |
4 | import ItemCard from './ItemCard';
5 | import { MovieItemProps } from '@/model/movie';
6 |
7 | interface Props {
8 | items: MovieItemProps[];
9 | vertical?: boolean;
10 | }
11 |
12 | // SwiperCore.use([Keyboard]);
13 |
14 | const ItemList = ({ items, vertical = false }: Props) => {
15 | const styleSlide = {
16 | width: vertical ? '100%' : '15%',
17 | // height: '15%',
18 | };
19 | return (
20 |
38 | {items.map((item) => (
39 |
40 |
41 |
42 | ))}
43 |
44 | );
45 | };
46 |
47 | export default ItemList;
48 |
--------------------------------------------------------------------------------
/components/Slider/ItemSlider.tsx:
--------------------------------------------------------------------------------
1 | import { useRouter } from 'next/router';
2 |
3 | import { Button } from '@/components';
4 | import ItemList from './ItemList';
5 | import { MovieItemProps } from '@/model/movie';
6 |
7 | interface Props {
8 | title: string;
9 | items: MovieItemProps[];
10 | }
11 |
12 | const ItemSlider = ({ title, items }: Props) => {
13 | const router = useRouter();
14 |
15 | return (
16 |
17 |
18 |
{title}
19 |
22 |
23 |
24 |
25 | );
26 | };
27 |
28 | export default ItemSlider;
29 |
--------------------------------------------------------------------------------
/components/Slider/MainSlider.tsx:
--------------------------------------------------------------------------------
1 | // import { useState } from 'react';
2 | import SwiperCore, { Autoplay } from 'swiper';
3 | import { Swiper, SwiperSlide } from 'swiper/react';
4 |
5 | import { useAppDispatch, useAppSelector } from '@/redux/hooks';
6 | import { activeModalId } from '@/redux/modalSlice';
7 | import { MovieItemProps } from '@/model/movie';
8 | import { Modal, MainSliderItem } from '@/components';
9 |
10 | SwiperCore.use([Autoplay]);
11 |
12 | interface Props {
13 | movieItems: MovieItemProps[];
14 | }
15 |
16 | const MainSlider = ({ movieItems }: Props) => {
17 | const dispatch = useAppDispatch();
18 | const { idVisible, trailerEndPoint } = useAppSelector((state) => state.modal);
19 | const closeModal = () => {
20 | dispatch(activeModalId(undefined));
21 | };
22 |
23 | return (
24 |
25 |
31 | {movieItems.map((item) => (
32 |
33 | {({ isActive }) => (
34 |
35 | )}
36 |
37 | ))}
38 |
39 | {movieItems.map((item) => (
40 |
47 | ))}
48 |
49 | );
50 | };
51 |
52 | export default MainSlider;
53 |
--------------------------------------------------------------------------------
/components/Slider/MainSliderItem.tsx:
--------------------------------------------------------------------------------
1 | import { useRouter } from 'next/router';
2 | import Image from 'next/image';
3 | import Cn from 'classnames';
4 |
5 | import { useAppDispatch } from '@/redux/hooks';
6 | import { activeModalId, fetchMovieTrailer } from '@/redux/modalSlice';
7 | import { imageOriginal, w500Image } from '@/ultis/constants';
8 | import { MovieItemProps } from '@/model/movie';
9 | import { Button, Rating } from '@/components';
10 |
11 | interface Props {
12 | item: MovieItemProps;
13 | isActive: boolean;
14 | }
15 |
16 | const MainSliderItem = ({ item, isActive }: Props) => {
17 | const dispatch = useAppDispatch();
18 | const router = useRouter();
19 | const background = imageOriginal(item.backdrop_path || item.poster_path);
20 |
21 | const handleWatchTrailer = () => {
22 | dispatch(activeModalId(item.id));
23 | dispatch(fetchMovieTrailer(item.id));
24 | };
25 |
26 | return (
27 |
35 |
36 |
*~*]:mt-12 px-12 w-[55%] [&>*]:transition-[transform,opacity] [&>*]:duration-[500ms,500ms] [&>*]:ease-[ease,ease]',
39 | isActive
40 | ? 'scale-100 translate-y-0'
41 | : '[&>*]:opacity-0 [&>*]:translate-y-[-100px]'
42 | )}
43 | >
44 |
45 | {item.title}
46 |
47 |
51 |
52 |
53 | {item.overview}
54 |
55 |
56 |
59 |
62 |
63 |
64 |
65 |
75 |
76 |
77 |
78 | );
79 | };
80 |
81 | export default MainSliderItem;
82 |
--------------------------------------------------------------------------------
/components/Video/VideoItem.tsx:
--------------------------------------------------------------------------------
1 | import { useRef, useEffect } from 'react';
2 |
3 | import { VideoTrailer } from '@/model/movie';
4 |
5 | interface Props {
6 | item: VideoTrailer;
7 | }
8 |
9 | const VideoItem = ({ item }: Props) => {
10 | const iframeRef = useRef(null);
11 |
12 | useEffect(() => {
13 | const height = (iframeRef.current!.offsetWidth * 9) / 16 + 'px';
14 | iframeRef.current!.setAttribute('height', height);
15 | }, []);
16 | return (
17 |
18 |
{item.name}
19 |
26 |
27 | );
28 | };
29 |
30 | export default VideoItem;
31 |
--------------------------------------------------------------------------------
/components/Watch/AboutDetail.tsx:
--------------------------------------------------------------------------------
1 | import { Rating } from '@/components';
2 | import { airDate } from '@/ultis/constants';
3 |
4 | interface Props {
5 | title?: string;
6 | name: string;
7 | overview: string;
8 | release_date?: string;
9 | first_air_date?: string;
10 | last_air_date?: string;
11 | air_date?: string;
12 | vote_average: number;
13 | }
14 |
15 | const AboutDetail = ({
16 | title,
17 | name,
18 | overview,
19 | release_date,
20 | first_air_date,
21 | last_air_date,
22 | air_date,
23 | vote_average,
24 | }: Props) => {
25 | return (
26 |
27 |
{title || name}
28 |
{overview}
29 | {release_date &&
Release Date: {release_date}
}
30 |
31 | {first_air_date && last_air_date && (
32 |
Air Date: {airDate(first_air_date, last_air_date)}
33 | )}
34 | {air_date &&
Air Date: {air_date}
}
35 |
36 |
37 |
38 |
39 |
40 | );
41 | };
42 |
43 | export default AboutDetail;
44 |
--------------------------------------------------------------------------------
/components/buttons/Button.tsx:
--------------------------------------------------------------------------------
1 | import { ReactNode } from 'react';
2 |
3 | import Cn from 'classnames';
4 | interface Props {
5 | onClick?: () => void;
6 | children: ReactNode;
7 | small?: boolean;
8 | outline?: boolean;
9 | className?: string;
10 | }
11 |
12 | const Button = ({
13 | onClick,
14 | children,
15 | small = false,
16 | outline = false,
17 | className,
18 | }: Props) => {
19 | return (
20 |
31 | );
32 | };
33 |
34 | export default Button;
35 |
--------------------------------------------------------------------------------
/components/index.tsx:
--------------------------------------------------------------------------------
1 | import Footer from './Layout/Footer';
2 | import Meta from './Layout/Meta';
3 | import Navbar from './Layout/Navbar';
4 | import NavbarLink from './Layout/NavbarLink';
5 | import Pagination from './Layout/Pagination';
6 | import Search from './Layout/Search';
7 | import CastList from './Cast/CastList';
8 | import CastItem from './Cast/CastItem';
9 | import Input from './Input';
10 | import ItemCard from './Slider/ItemCard';
11 | import ItemList from './Slider/ItemList';
12 | import MainSlider from './Slider/MainSlider';
13 | import MainSliderItem from './Slider/MainSliderItem';
14 | import ItemSlider from './Slider/ItemSlider';
15 | import VideoItem from './Video/VideoItem';
16 | import Button from './buttons/Button';
17 | import Modal from './Modal';
18 | import Rating from './Rating';
19 | import ItemGrid from './ItemGrid';
20 | import PageHeader from './PageHeader';
21 | import ItemView from './ItemView';
22 | import ItemDetailView from './ItemDetailView';
23 | import AboutDetail from './Watch/AboutDetail';
24 |
25 | export {
26 | Footer,
27 | Meta,
28 | Navbar,
29 | NavbarLink,
30 | Pagination,
31 | Search,
32 | CastList,
33 | CastItem,
34 | Input,
35 | ItemCard,
36 | ItemList,
37 | MainSlider,
38 | MainSliderItem,
39 | ItemSlider,
40 | VideoItem,
41 | Button,
42 | Modal,
43 | Rating,
44 | ItemGrid,
45 | PageHeader,
46 | ItemView,
47 | ItemDetailView,
48 | AboutDetail,
49 | };
50 |
--------------------------------------------------------------------------------
/model/movie.ts:
--------------------------------------------------------------------------------
1 | export type MediaType = 'all' | 'movie' | 'tv';
2 |
3 | export interface Childs {
4 | backdrop_path: string;
5 | poster_path: string;
6 | id: number;
7 | title: string;
8 | name: string;
9 | overview: string;
10 | vote_average: number;
11 | genres: { id: number; name: string }[];
12 | release_date: string;
13 | homepage: string;
14 | }
15 |
16 | export interface MovieItemProps extends Childs {
17 | adult?: boolean;
18 | media_type: 'movie' | 'tv';
19 | }
20 |
21 | export interface Cast {
22 | id: number;
23 | name: string;
24 | profile_path: string;
25 | character: string;
26 | }
27 |
28 | export interface VideoTrailer {
29 | name: string;
30 | key: string;
31 | }
32 |
--------------------------------------------------------------------------------
/model/tv.ts:
--------------------------------------------------------------------------------
1 | import { Childs } from '@/model/movie';
2 |
3 | export interface Episode {
4 | id: number;
5 | air_date: string;
6 | episode_number: number;
7 | name: string;
8 | overview: string;
9 | still_path: string;
10 | vote_average: number;
11 | vote_count: number;
12 | }
13 |
14 | export interface Season {
15 | id: number;
16 | episodes: Episode[];
17 | name: string;
18 | overview: string;
19 | poster_path: string;
20 | season_number: number;
21 | }
22 |
23 | export interface TypeTvDetail extends Childs {
24 | first_air_date: string;
25 | last_air_date: string;
26 | seasons: {
27 | episode_count: number;
28 | season_number: number;
29 | }[];
30 | number_of_episodes: number;
31 | number_of_seasons: number;
32 | }
33 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | reactStrictMode: true,
4 | swcMinify: true,
5 | env: {
6 | TMDB_API_KEY: process.env.TMDB_API_KEY,
7 | },
8 | images: {
9 | domains: ['image.tmdb.org'],
10 | },
11 | };
12 |
13 | module.exports = nextConfig;
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "next-movie",
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 | "@reduxjs/toolkit": "^1.8.4",
13 | "axios": "^0.27.2",
14 | "classnames": "^2.3.1",
15 | "next": "12.2.3",
16 | "query-string": "^7.1.1",
17 | "react": "18.2.0",
18 | "react-dom": "18.2.0",
19 | "react-icons": "^4.4.0",
20 | "react-paginate": "^8.1.3",
21 | "react-redux": "^8.0.2",
22 | "react-spinners": "^0.13.4",
23 | "sass": "^1.54.1",
24 | "swiper": "^8.3.2"
25 | },
26 | "devDependencies": {
27 | "@types/node": "18.6.2",
28 | "@types/react": "18.0.15",
29 | "@types/react-dom": "18.0.6",
30 | "autoprefixer": "^10.4.8",
31 | "eslint": "^8.21.0",
32 | "eslint-config-next": "12.2.3",
33 | "eslint-config-prettier": "^8.5.0",
34 | "eslint-plugin-prettier": "^4.2.1",
35 | "postcss": "^8.4.14",
36 | "prettier": "^2.7.1",
37 | "tailwindcss": "^3.1.7",
38 | "typescript": "4.7.4"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import '@/styles/globals.scss';
2 | import 'swiper/css';
3 | import 'swiper/css/navigation';
4 | import 'swiper/css/bundle';
5 |
6 | import { Provider } from 'react-redux';
7 | import store from '@/redux/store';
8 | import type { AppProps } from 'next/app';
9 | import Head from 'next/head';
10 |
11 | import { Navbar, Footer } from '@/components';
12 |
13 | function MyApp({ Component, pageProps }: AppProps) {
14 | return (
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | );
24 | }
25 |
26 | export default MyApp;
27 |
--------------------------------------------------------------------------------
/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import { GetStaticProps, NextPage } from 'next';
2 |
3 | import { MainSlider, ItemSlider, Meta } from '@/components';
4 | import { getHomeData } from '@/ultis/tmdbApi';
5 | import { MovieItemProps } from '@/model/movie';
6 |
7 | interface Props {
8 | data: { [id: string]: MovieItemProps[] };
9 | }
10 |
11 | const Home: NextPage = ({ data }) => {
12 | return (
13 | <>
14 |
19 |
20 |
21 |
22 |
23 | {Object.keys(data).map((key) => (
24 |
25 | ))}
26 |
27 |
28 | >
29 | );
30 | };
31 |
32 | export const getStaticProps: GetStaticProps = async () => {
33 | try {
34 | const data = await getHomeData();
35 | return {
36 | props: {
37 | data,
38 | },
39 | revalidate: 3600,
40 | };
41 | } catch (error) {
42 | console.log(error);
43 | return {
44 | notFound: true,
45 | revalidate: true,
46 | };
47 | }
48 | };
49 |
50 | export default Home;
51 |
--------------------------------------------------------------------------------
/pages/movie/[id]/index.tsx:
--------------------------------------------------------------------------------
1 | import { GetStaticPaths, GetStaticProps, NextPage } from 'next';
2 |
3 | import { ItemDetailView, Meta } from '@/components';
4 | import { MovieItemProps, Cast, VideoTrailer } from '@/model/movie';
5 | import { imageOriginal } from '@/ultis/constants';
6 | import { getMovieDetails } from '@/ultis/tmdbApi';
7 |
8 | interface Props {
9 | data: MovieItemProps;
10 | casts: Cast[];
11 | videos: VideoTrailer[];
12 | similar: MovieItemProps[];
13 | }
14 |
15 | const Movie: NextPage = ({ data, casts, videos, similar }) => {
16 | return (
17 | <>
18 |
23 |
29 | >
30 | );
31 | };
32 |
33 | export const getStaticProps: GetStaticProps = async ({ params }) => {
34 | const movieId = Number(params!.id);
35 |
36 | try {
37 | const response = await getMovieDetails(movieId);
38 | return {
39 | props: {
40 | ...response,
41 | },
42 | revalidate: 3600,
43 | };
44 | } catch (error) {
45 | return {
46 | notFound: true,
47 | revalidate: true,
48 | };
49 | }
50 | };
51 |
52 | export const getStaticPaths: GetStaticPaths = async () => {
53 | return {
54 | paths: [],
55 | fallback: 'blocking',
56 | };
57 | };
58 |
59 | export default Movie;
60 |
--------------------------------------------------------------------------------
/pages/movie/[id]/watch.tsx:
--------------------------------------------------------------------------------
1 | import { GetStaticPaths, GetStaticProps, NextPage } from 'next';
2 |
3 | import { AboutDetail, ItemList, Meta } from '@/components';
4 | import { MovieItemProps } from '@/model/movie';
5 | import { getWatchMovieDetail } from '@/ultis/tmdbApi';
6 | import { embedMovie, imageOriginal } from '@/ultis/constants';
7 |
8 | interface Props {
9 | data: MovieItemProps;
10 | similar: MovieItemProps[];
11 | }
12 |
13 | const Watch: NextPage = ({ data, similar }) => {
14 | return (
15 | <>
16 |
21 |
22 |
23 |
41 |
42 |
SIMILAR
43 |
44 |
45 |
46 |
47 |
48 |
49 | >
50 | );
51 | };
52 |
53 | export const getStaticProps: GetStaticProps = async ({ params }) => {
54 | try {
55 | const movieId = Number(params!.id);
56 | const response = await getWatchMovieDetail(movieId);
57 | return {
58 | props: {
59 | ...response,
60 | },
61 | revalidate: 3600,
62 | };
63 | } catch (error) {
64 | return {
65 | notFound: true,
66 | revalidate: true,
67 | };
68 | }
69 | };
70 |
71 | export const getStaticPaths: GetStaticPaths = async () => {
72 | return {
73 | paths: [],
74 | fallback: 'blocking',
75 | };
76 | };
77 |
78 | export default Watch;
79 |
--------------------------------------------------------------------------------
/pages/movie/index.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'react';
2 |
3 | import { useAppDispatch, useAppSelector } from '@/redux/hooks';
4 | import { fetchMovies, fetchLoadMoreMovies } from '@/redux/movieSlice';
5 | import { ItemView, Meta } from '@/components';
6 |
7 | const Movie = () => {
8 | const dispatch = useAppDispatch();
9 | const { loading, loadingMore, items, page, total_pages } = useAppSelector(
10 | (state) => state.movie
11 | );
12 |
13 | useEffect(() => {
14 | dispatch(fetchMovies());
15 | }, [dispatch]);
16 |
17 | const loadMore = () => {
18 | dispatch(fetchLoadMoreMovies(page + 1));
19 | };
20 |
21 | return (
22 | <>
23 |
28 |
37 | >
38 | );
39 | };
40 |
41 | export default Movie;
42 |
--------------------------------------------------------------------------------
/pages/search.tsx:
--------------------------------------------------------------------------------
1 | import { GetServerSideProps, NextPage } from 'next';
2 | import { useRouter } from 'next/router';
3 | import ReactPaginate from 'react-paginate';
4 | import { AiOutlineLeft, AiOutlineRight } from 'react-icons/ai';
5 |
6 | import { MediaType } from '@/model/movie';
7 | import { ItemGrid, PageHeader, Meta } from '@/components';
8 | import { searchAll, searchMovie, searchTV } from '@/ultis/tmdbApi';
9 | import { mediaTypes } from '@/ultis/constants';
10 |
11 | interface Props {
12 | type: MediaType;
13 | keyword: string;
14 | page: number;
15 | data?: any;
16 | }
17 |
18 | const SearchPage: NextPage = ({ data, page, type, keyword }) => {
19 | const router = useRouter();
20 | const handlePageChange = ({ selected }: { selected: number }) => {
21 | const currentPage = selected + 1;
22 | router.push({
23 | query: {
24 | ...router.query,
25 | page: currentPage,
26 | },
27 | });
28 | };
29 | return (
30 | <>
31 |
36 |
37 |
38 |
39 |
40 | }
46 | nextLabel={}
47 | forcePage={page - 1}
48 | onPageChange={handlePageChange}
49 | activeClassName="text-main"
50 | pageClassName="bg-stone-700 min-w-[32px] text-center"
51 | />
52 | >
53 | );
54 | };
55 |
56 | export const getServerSideProps: GetServerSideProps = async ({ query }) => {
57 | try {
58 | const keyword = query.q as string;
59 | const type = query.type as MediaType;
60 | const page = Number(query.page) || 1;
61 | if (!keyword || !mediaTypes.includes(type)) return { notFound: true };
62 |
63 | let data;
64 | switch (type) {
65 | case 'all':
66 | data = await searchAll(keyword, page);
67 | break;
68 | case 'movie':
69 | data = await searchMovie(keyword, page);
70 | break;
71 | case 'tv':
72 | data = await searchTV(keyword, page);
73 | break;
74 | }
75 |
76 | return {
77 | props: {
78 | page,
79 | keyword,
80 | type,
81 | data,
82 | },
83 | };
84 | } catch (error) {
85 | console.log(error);
86 | return {
87 | notFound: true,
88 | };
89 | }
90 | };
91 |
92 | export default SearchPage;
93 |
--------------------------------------------------------------------------------
/pages/tv/[id]/episode.tsx:
--------------------------------------------------------------------------------
1 | import { GetServerSideProps, NextPage } from 'next';
2 | import Link from 'next/link';
3 | import { useState } from 'react';
4 | import cn from 'classnames';
5 |
6 | import { getTVSeasons } from '@/ultis/tmdbApi';
7 | import { embedEpisode, w500Image, imageOriginal } from '@/ultis/constants';
8 | import { TypeTvDetail, Season, Episode } from '@/model/tv';
9 | import { AboutDetail, Meta } from '@/components';
10 |
11 | interface Props {
12 | data: TypeTvDetail;
13 | seasons: Season[];
14 | seasonNumber: number;
15 | episodeNumber: number;
16 | episode: Episode;
17 | }
18 |
19 | const Watch: NextPage = ({
20 | data,
21 | seasons,
22 | seasonNumber,
23 | episodeNumber,
24 | episode,
25 | }) => {
26 | const [openSeason, setOpenSeason] = useState(
27 | seasonNumber
28 | );
29 | return (
30 | <>
31 |
36 |
37 |
38 |
55 |
56 |
Other Episodes
57 |
58 | {seasons.map((season) => (
59 |
60 |
63 | openSeason === season.season_number
64 | ? setOpenSeason(undefined)
65 | : setOpenSeason(season.season_number)
66 | }
67 | >
68 |
})
73 |
78 | {season.name}
79 |
80 |
81 | {openSeason === season.season_number && (
82 |
124 | )}
125 |
126 | ))}
127 |
128 |
129 |
130 |
131 | >
132 | );
133 | };
134 |
135 | export const getServerSideProps: GetServerSideProps = async ({
136 | query,
137 | params,
138 | }) => {
139 | try {
140 | const id = Number(params!.id);
141 | const seasonNumber = Number(query.season);
142 | const episodeNumber = Number(query.episode);
143 |
144 | if (!seasonNumber || !episodeNumber) return { notFound: true };
145 |
146 | const res = (await getTVSeasons(id)) as {
147 | data: TypeTvDetail;
148 | seasons: Season[];
149 | };
150 |
151 | const episode = res.seasons
152 | .find((season) => season.season_number === seasonNumber)!
153 | .episodes.find((item) => item.episode_number === episodeNumber);
154 |
155 | if (!episode) return { notFound: true };
156 |
157 | return {
158 | props: {
159 | ...res,
160 | seasonNumber,
161 | episodeNumber,
162 | episode,
163 | },
164 | };
165 | } catch (error) {
166 | console.log(error);
167 | return {
168 | notFound: true,
169 | };
170 | }
171 | };
172 |
173 | export default Watch;
174 |
--------------------------------------------------------------------------------
/pages/tv/[id]/index.tsx:
--------------------------------------------------------------------------------
1 | import { GetStaticPaths, GetStaticProps, NextPage } from 'next';
2 |
3 | import { ItemDetailView, Meta } from '@/components';
4 | import { MovieItemProps, Cast, VideoTrailer } from '@/model/movie';
5 | import { imageOriginal } from '@/ultis/constants';
6 | import { getTVDetails } from '@/ultis/tmdbApi';
7 |
8 | interface Props {
9 | data: MovieItemProps;
10 | casts: Cast[];
11 | videos: VideoTrailer[];
12 | similar: MovieItemProps[];
13 | }
14 |
15 | const TV: NextPage = ({ data, casts, videos, similar }) => {
16 | return (
17 | <>
18 |
23 |
29 | >
30 | );
31 | };
32 |
33 | export const getStaticProps: GetStaticProps = async ({ params }) => {
34 | const tvId = Number(params!.id);
35 |
36 | try {
37 | const response = await getTVDetails(tvId);
38 | return {
39 | props: {
40 | ...response,
41 | },
42 | revalidate: 3600,
43 | };
44 | } catch (error) {
45 | return {
46 | notFound: true,
47 | revalidate: true,
48 | };
49 | }
50 | };
51 |
52 | export const getStaticPaths: GetStaticPaths = async () => {
53 | return {
54 | paths: [],
55 | fallback: 'blocking',
56 | };
57 | };
58 |
59 | export default TV;
60 |
--------------------------------------------------------------------------------
/pages/tv/[id]/watch.tsx:
--------------------------------------------------------------------------------
1 | import { GetStaticPaths, GetStaticProps, NextPage } from 'next';
2 | import Link from 'next/link';
3 | import { Fragment, useState } from 'react';
4 | import cn from 'classnames';
5 |
6 | import { AboutDetail, Meta } from '@/components';
7 | import { getTVSeasons } from '@/ultis/tmdbApi';
8 | import { w500Image, xEpisodes, imageOriginal } from '@/ultis/constants';
9 | import { TypeTvDetail, Season } from '@/model/tv';
10 |
11 | interface Props {
12 | data: TypeTvDetail;
13 | seasons: Season[];
14 | }
15 |
16 | const Watch: NextPage = ({ data, seasons }) => {
17 | const [openId, setOpenId] = useState();
18 | return (
19 | <>
20 |
25 |
26 |
27 |
28 |
29 |
30 |
})
35 |
36 |
46 |
47 |
Seasons
48 | {seasons.map((item) => (
49 |
50 |
57 | openId === item.id
58 | ? setOpenId(undefined)
59 | : setOpenId(item.id)
60 | }
61 | >
62 |
63 |
})
68 |
69 |
70 |
71 |
72 |
73 |
77 | {item.name}
78 |
79 |
80 | {xEpisodes(item.episodes.length)}
81 |
82 |
83 |
84 | {item.overview && (
85 |
86 |
{item.overview}
87 |
88 | )}
89 |
90 |
91 |
92 |
134 |
135 | ))}
136 |
137 |
138 |
139 | >
140 | );
141 | };
142 |
143 | export const getStaticProps: GetStaticProps = async ({ params }) => {
144 | try {
145 | const tvId = Number(params!.id);
146 | const response = await getTVSeasons(tvId);
147 | return {
148 | props: {
149 | ...response,
150 | },
151 | revalidate: 3600,
152 | };
153 | } catch (error) {
154 | return {
155 | notFound: true,
156 | revalidate: true,
157 | };
158 | }
159 | };
160 |
161 | export const getStaticPaths: GetStaticPaths = async () => {
162 | return {
163 | paths: [],
164 | fallback: 'blocking',
165 | };
166 | };
167 |
168 | export default Watch;
169 |
--------------------------------------------------------------------------------
/pages/tv/index.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'react';
2 |
3 | import { useAppDispatch, useAppSelector } from '@/redux/hooks';
4 | import { fetchTVs, fetchLoadMoreTVs } from '@/redux/tvSlice';
5 | import { ItemView, Meta } from '@/components';
6 |
7 | const TV = () => {
8 | const dispatch = useAppDispatch();
9 | const { loading, loadingMore, items, page, total_pages } = useAppSelector(
10 | (state) => state.tv
11 | );
12 |
13 | useEffect(() => {
14 | dispatch(fetchTVs());
15 | }, [dispatch]);
16 |
17 | const loadMore = () => {
18 | dispatch(fetchLoadMoreTVs(page + 1));
19 | };
20 |
21 | return (
22 | <>
23 |
28 |
37 | >
38 | );
39 | };
40 |
41 | export default TV;
42 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/public/footer-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itz-dude/Tv---flim/5d88820f4e634d343a5197c33770054fa2fb9bbd/public/footer-bg.jpg
--------------------------------------------------------------------------------
/public/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itz-dude/Tv---flim/5d88820f4e634d343a5197c33770054fa2fb9bbd/public/icon.png
--------------------------------------------------------------------------------
/public/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itz-dude/Tv---flim/5d88820f4e634d343a5197c33770054fa2fb9bbd/public/preview.png
--------------------------------------------------------------------------------
/public/tmovie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itz-dude/Tv---flim/5d88820f4e634d343a5197c33770054fa2fb9bbd/public/tmovie.png
--------------------------------------------------------------------------------
/redux/hooks.ts:
--------------------------------------------------------------------------------
1 | import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';
2 |
3 | import type { AppState, AppDispatch } from './store';
4 |
5 | export const useAppDispatch = () => useDispatch();
6 |
7 | export const useAppSelector: TypedUseSelectorHook = useSelector;
8 |
--------------------------------------------------------------------------------
/redux/modalSlice.ts:
--------------------------------------------------------------------------------
1 | import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
2 | import { getMovieTrailer } from '@/ultis/tmdbApi';
3 |
4 | export const fetchMovieTrailer = createAsyncThunk(
5 | 'modal/fetchMovieTrailer',
6 | getMovieTrailer
7 | );
8 |
9 | interface Params {
10 | loading: boolean;
11 | idVisible?: number;
12 | trailerEndPoint?: string;
13 | }
14 |
15 | const initialState: Params = {
16 | loading: false,
17 | };
18 |
19 | export const modalSlice = createSlice({
20 | name: 'modal',
21 | initialState,
22 | reducers: {
23 | activeModalId: (state, { payload }) => {
24 | state.idVisible = payload;
25 | if (!payload) {
26 | state.trailerEndPoint = undefined;
27 | }
28 | },
29 | },
30 | extraReducers: {
31 | [fetchMovieTrailer.pending.type]: (state) => {
32 | state.loading = true;
33 | },
34 | [fetchMovieTrailer.fulfilled.type]: (state, { payload }) => {
35 | state.loading = false;
36 | state.trailerEndPoint = payload.results[0].key;
37 | },
38 | },
39 | });
40 |
41 | export const { activeModalId } = modalSlice.actions;
42 | export default modalSlice.reducer;
43 |
--------------------------------------------------------------------------------
/redux/movieSlice.ts:
--------------------------------------------------------------------------------
1 | import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
2 | import { getMovies } from '@/ultis/tmdbApi';
3 | import { MovieItemProps } from '@/model/movie';
4 |
5 | export const fetchMovies = createAsyncThunk('movie/fetchMovies', getMovies);
6 |
7 | export const fetchLoadMoreMovies = createAsyncThunk(
8 | 'movie/fetchLoadMoreMovies',
9 | getMovies
10 | );
11 |
12 | export interface MovieSliceParams {
13 | loading: boolean;
14 | loadingMore: boolean;
15 | items: MovieItemProps[];
16 | page: number;
17 | total_pages: number;
18 | }
19 |
20 | const initialState: MovieSliceParams = {
21 | loading: false,
22 | loadingMore: false,
23 | items: [],
24 | page: 1,
25 | total_pages: 20,
26 | };
27 |
28 | export const movieSlice = createSlice({
29 | name: 'movie',
30 | initialState,
31 | reducers: {},
32 | extraReducers: {
33 | [fetchMovies.pending.type]: (state) => {
34 | state.loading = true;
35 | },
36 | [fetchMovies.fulfilled.type]: (state, { payload }) => {
37 | state.loading = false;
38 | state.page = payload.page;
39 | state.total_pages = payload.total_pages;
40 | state.items = payload.results.map((item: MovieItemProps) => ({
41 | ...item,
42 | media_type: 'movie',
43 | }));
44 | },
45 | [fetchLoadMoreMovies.pending.type]: (state) => {
46 | state.loadingMore = true;
47 | },
48 | [fetchLoadMoreMovies.fulfilled.type]: (state, { payload }) => {
49 | state.loadingMore = false;
50 | state.items = [
51 | ...state.items,
52 | ...payload.results.map((item: MovieItemProps) => ({
53 | ...item,
54 | media_type: 'movie',
55 | })),
56 | ];
57 | state.page = payload.page;
58 | },
59 | },
60 | });
61 |
62 | export default movieSlice.reducer;
63 |
--------------------------------------------------------------------------------
/redux/store.ts:
--------------------------------------------------------------------------------
1 | import { configureStore } from '@reduxjs/toolkit';
2 |
3 | import modal from './modalSlice';
4 | import movie from './movieSlice';
5 | import tv from './tvSlice';
6 |
7 | const store = configureStore({
8 | reducer: {
9 | modal,
10 | movie,
11 | tv,
12 | },
13 | });
14 |
15 | export type AppState = ReturnType;
16 |
17 | export type AppDispatch = typeof store.dispatch;
18 |
19 | export default store;
20 |
--------------------------------------------------------------------------------
/redux/tvSlice.ts:
--------------------------------------------------------------------------------
1 | import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
2 | import { getTVs } from '@/ultis/tmdbApi';
3 | import { MovieItemProps } from '@/model/movie';
4 |
5 | export const fetchTVs = createAsyncThunk('tv/fetchTVs', getTVs);
6 |
7 | export const fetchLoadMoreTVs = createAsyncThunk('tv/fetchLoadMoreTVs', getTVs);
8 |
9 | interface TVSliceParams {
10 | loading: boolean;
11 | loadingMore: boolean;
12 | items: MovieItemProps[];
13 | page: number;
14 | total_pages: number;
15 | }
16 |
17 | const initialState: TVSliceParams = {
18 | loading: false,
19 | loadingMore: false,
20 | items: [],
21 | page: 1,
22 | total_pages: 20,
23 | };
24 |
25 | export const movieSlice = createSlice({
26 | name: 'tv',
27 | initialState,
28 | reducers: {},
29 | extraReducers: {
30 | [fetchTVs.pending.type]: (state) => {
31 | state.loading = true;
32 | },
33 | [fetchTVs.fulfilled.type]: (state, { payload }) => {
34 | state.loading = false;
35 | state.items = payload.results.map((item: MovieItemProps) => ({
36 | ...item,
37 | media_type: 'tv',
38 | }));
39 | state.page = payload.page;
40 | state.total_pages = payload.total_pages;
41 | },
42 |
43 | [fetchLoadMoreTVs.pending.type]: (state) => {
44 | state.loadingMore = true;
45 | },
46 | [fetchLoadMoreTVs.fulfilled.type]: (state, { payload }) => {
47 | state.loadingMore = false;
48 | state.items = [
49 | ...state.items,
50 | ...payload.results.map((item: MovieItemProps) => ({
51 | ...item,
52 | media_type: 'tv',
53 | })),
54 | ];
55 | state.page = payload.page;
56 | },
57 | },
58 | });
59 |
60 | export default movieSlice.reducer;
61 |
--------------------------------------------------------------------------------
/styles/_index.scss:
--------------------------------------------------------------------------------
1 | @forward './variable';
--------------------------------------------------------------------------------
/styles/_variable.scss:
--------------------------------------------------------------------------------
1 | $body-bg: #0f0f0f;
2 | $main-color: #ff0000;
3 |
4 | $header-height: 8rem;
5 | $header-shrink-height: 5rem;
--------------------------------------------------------------------------------
/styles/globals.scss:
--------------------------------------------------------------------------------
1 | @use './' as *;
2 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,900;1,300&display=swap');
3 |
4 | @tailwind base;
5 | @tailwind components;
6 | @tailwind utilities;
7 |
8 |
9 |
10 | html,
11 | body {
12 | padding: 0;
13 | margin: 0;
14 | font-weight: 400;
15 | line-height: 1.5;
16 | font-family: 'Montserrat', sans-serif;
17 | // font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
18 | // Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
19 |
20 | @apply bg-body text-white;
21 | }
22 |
23 | a {
24 | color: unset;
25 | text-decoration: none;
26 | }
27 |
28 | * {
29 | box-sizing: border-box;
30 | }
31 |
32 | button,
33 | input {
34 | outline: 0;
35 | }
36 |
37 | ul {
38 | list-style: none;
39 | }
40 |
41 | img {
42 | max-width: 100%;
43 | }
44 |
45 | iframe {
46 | border: 0;
47 | }
48 |
49 | @media (prefers-color-scheme: dark) {
50 | html {
51 | color-scheme: dark;
52 | }
53 | body {
54 | color: white;
55 | background: black;
56 | }
57 | }
58 |
59 | @media (hover: hover) {
60 | a:hover {
61 | @apply text-main;
62 | }
63 | }
64 |
65 | //Swiper
66 | .swiper.swiper-initialized{
67 | .swiper-wrapper{
68 | // @apply mb-[-10px] ;
69 | }
70 | .swiper-scrollbar-drag{
71 | @apply bg-white;
72 | }
73 | }
74 |
75 | @layer components {
76 | .container {
77 | @apply max-w-screen-2xl m-auto ;
78 | }
79 |
80 | .flex-center-center {
81 | @apply flex items-center justify-center ;
82 | }
83 |
84 | // Hidden and visible
85 | .hidden{
86 | @apply opacity-0 invisible;
87 | }
88 |
89 | .not-hidden{
90 | @apply opacity-100 visible;
91 | }
92 |
93 |
94 | // Button
95 | .btn {
96 | @apply relative py-2 px-7 rounded-3xl border-4 border-solid border-transparent font-semibold text-[1.5rem] bg-main text-white cursor-pointer;
97 | box-shadow: 0px 0px 7px 8px #ff00004d;
98 | transition: box-shadow 0.3s ease;
99 |
100 | &:hover {
101 | box-shadow: 0px 0px 7px 15px #ff00004d;
102 | }
103 | }
104 |
105 | .btn-outline {
106 | @apply border-[3px] border-white bg-transparent;
107 | box-shadow: unset;
108 | transition: color 0.3s ease, background-color 0.3s ease;
109 |
110 | &:hover{
111 | @apply bg-white text-main;
112 | box-shadow: unset;
113 | }
114 | }
115 | }
116 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | const plugin = require('tailwindcss/plugin');
2 |
3 | module.exports = {
4 | content: [
5 | './pages/**/*.{js,ts,jsx,tsx}',
6 | './components/**/*.{js,ts,jsx,tsx}',
7 | ],
8 | theme: {
9 | extend: {
10 | colors: {
11 | main: '#ff0000',
12 | body: '#0f0f0f',
13 | },
14 | spacing: {
15 | headerHeight: '8rem',
16 | headerShrinkHeight: '5rem',
17 | },
18 | screens: {
19 | 'hover-hover': { raw: '(hover: hover)' },
20 | },
21 | },
22 | },
23 | plugins: [
24 | plugin(function ({ addVariant }) {
25 | addVariant('&>*~*', '&>*', 'not-last', '&:not(:last-child)');
26 | }),
27 | ],
28 | };
29 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "strict": true,
12 | "forceConsistentCasingInFileNames": true,
13 | "noEmit": true,
14 | "esModuleInterop": true,
15 | "module": "esnext",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "jsx": "preserve",
20 | "incremental": true,
21 | "emitDecoratorMetadata": true,
22 | "experimentalDecorators": true,
23 | "baseUrl": ".",
24 | "paths": {
25 | "@/*": [
26 | "./*"
27 | ]
28 | },
29 | "noUnusedLocals": true,
30 | "noUnusedParameters": true
31 | },
32 | "include": [
33 | "next-env.d.ts",
34 | "**/*.ts",
35 | "**/*.tsx"
36 | ],
37 | "exclude": [
38 | "node_modules"
39 | ]
40 | }
--------------------------------------------------------------------------------
/ultis/apiConfig.ts:
--------------------------------------------------------------------------------
1 | const apiConfig = {
2 | baseUrl: 'https://api.themoviedb.org/3',
3 | apiKey: process.env.TMDB_API_KEY,
4 | };
5 |
6 | export default apiConfig;
7 |
--------------------------------------------------------------------------------
/ultis/axiosClient.ts:
--------------------------------------------------------------------------------
1 | import axios from 'axios';
2 | import queryString from 'query-string';
3 |
4 | import apiConfig from './apiConfig';
5 |
6 | const axiosClient = axios.create({
7 | headers: {
8 | 'Content-Type': 'application/json',
9 | },
10 | baseURL: apiConfig.baseUrl,
11 | paramsSerializer: (param) =>
12 | queryString.stringify({ ...param, api_key: apiConfig.apiKey }),
13 | });
14 |
15 | axiosClient.interceptors.request.use(async (config) => config);
16 |
17 | axiosClient.interceptors.response.use(
18 | (response) => {
19 | if (response && response.data) {
20 | return response.data;
21 | }
22 |
23 | return response;
24 | },
25 | (error) => {
26 | throw error;
27 | }
28 | );
29 |
30 | export default axiosClient;
31 |
--------------------------------------------------------------------------------
/ultis/constants.ts:
--------------------------------------------------------------------------------
1 | import { MediaType } from '@/model/movie';
2 |
3 | export const TMDB_API = 'https://api.themoviedb.org/3';
4 | export const TMDB_IMAGE = 'https://image.tmdb.org/t/p/';
5 |
6 | export const mediaTypes: MediaType[] = ['all', 'movie', 'tv'];
7 |
8 | export const imageOriginal = (imgPath: string) =>
9 | `${TMDB_IMAGE}original${imgPath}`;
10 | export const w500Image = (imgPath: string) => `${TMDB_IMAGE}w500${imgPath}`;
11 | export const embedMovie = (id: number) => `https://www.2embed.to/embed/tmdb/movie?id=${id}`;
12 | export const imageResize = (src: string, dimension: string = 'w200') =>
13 | `${TMDB_IMAGE}${dimension}${src}`;
14 | export const embedEpisode = (id: number, season: number, episode: number) =>
15 | `https://2embed.org/embed/series?tmdb=${id}&sea=${season}&epi=${episode}`;
16 |
17 | export const airDate = (firstAir: string, lastAir: string) => {
18 | return firstAir === lastAir ? firstAir : `${firstAir} - ${lastAir}`;
19 | };
20 |
21 | export const xEpisodes = (id: number) =>
22 | id === 1 ? `${id} Episode` : `${id} Episodes`;
23 |
--------------------------------------------------------------------------------
/ultis/tmdbApi.ts:
--------------------------------------------------------------------------------
1 | import axiosClient from './axiosClient';
2 | import { TypeTvDetail } from '@/model/tv';
3 |
4 | export const getHomeData: () => Promise = async () => {
5 | const HomeAPIRoutes: {
6 | [key: string]: { url: string; media_type: 'tv' | 'movie' };
7 | } = {
8 | 'Trending Movies': { url: '/trending/movie/week', media_type: 'movie' },
9 | 'Popular Movies': { url: '/movie/popular', media_type: 'movie' },
10 | 'Top Rated Movies': { url: '/movie/top_rated', media_type: 'movie' },
11 | 'Trending TV': { url: '/trending/tv/week', media_type: 'tv' },
12 | 'Popular TV': { url: '/tv/popular', media_type: 'tv' },
13 | 'Top Rated TV': { url: '/tv/top_rated', media_type: 'tv' },
14 | };
15 |
16 | const promises = await Promise.all(
17 | Object.keys(HomeAPIRoutes).map((item) =>
18 | axiosClient.get(HomeAPIRoutes[item].url, { params: {} })
19 | )
20 | );
21 |
22 | const data = promises.reduce((final, current: any, index) => {
23 | final[Object.keys(HomeAPIRoutes)[index]] = current.results.map(
24 | (item: any) => ({
25 | ...item,
26 | media_type: HomeAPIRoutes[Object.keys(HomeAPIRoutes)[index]].media_type,
27 | })
28 | );
29 | return final;
30 | }, {} as any);
31 |
32 | return data;
33 | };
34 |
35 | export const getMovieDetails: (_id: number) => Promise = async (id) => {
36 | const labels = ['data', 'casts', 'similar', 'videos'];
37 | const params = {
38 | params: {},
39 | };
40 |
41 | const result = (
42 | await Promise.all([
43 | axiosClient.get(`/movie/${id}`, params),
44 | axiosClient.get(`/movie/${id}/credits`, params),
45 | axiosClient.get(`/movie/${id}/similar`, params),
46 | axiosClient.get(`/movie/${id}/videos`, params),
47 | ])
48 | ).reduce((final, current: any, index) => {
49 | if (labels[index] === 'data') {
50 | final[labels[index]] = current;
51 | } else if (labels[index] === 'casts') {
52 | final[labels[index]] = current.cast
53 | .filter((item: any) => item.name && item.character && item.profile_path)
54 | .slice(0, 10);
55 | } else if (labels[index] === 'similar') {
56 | final[labels[index]] = current.results.map((item: any) => ({
57 | ...item,
58 | media_type: 'movie',
59 | }));
60 | } else if (labels[index] === 'videos') {
61 | final[labels[index]] = current.results.filter(
62 | (item: any) => item.name && item.site === 'YouTube'
63 | );
64 | }
65 |
66 | return final;
67 | }, {} as any);
68 |
69 | return result;
70 | };
71 |
72 | export const getTVDetails: (_id: number) => Promise = async (id) => {
73 | const labels = ['data', 'casts', 'similar', 'videos'];
74 | const params = {
75 | params: {},
76 | };
77 |
78 | const result = (
79 | await Promise.all([
80 | axiosClient.get(`/tv/${id}`, params),
81 | axiosClient.get(`/tv/${id}/credits`, params),
82 | axiosClient.get(`/tv/${id}/similar`, params),
83 | axiosClient.get(`/tv/${id}/videos`, params),
84 | ])
85 | ).reduce((final, current: any, index) => {
86 | if (labels[index] === 'data') {
87 | final[labels[index]] = current;
88 | } else if (labels[index] === 'casts') {
89 | final[labels[index]] = current.cast
90 | .filter((item: any) => item.name && item.character && item.profile_path)
91 | .slice(0, 10);
92 | } else if (labels[index] === 'similar') {
93 | final[labels[index]] = current.results.map((item: any) => ({
94 | ...item,
95 | media_type: 'tv',
96 | }));
97 | } else if (labels[index] === 'videos') {
98 | final[labels[index]] = current.results.filter(
99 | (item: any) => item.name && item.site === 'YouTube'
100 | );
101 | }
102 |
103 | return final;
104 | }, {} as any);
105 |
106 | return result;
107 | };
108 |
109 | export const getMovieTrailer = async (id: number) =>
110 | await axiosClient.get(`/movie/${id}/videos`, { params: {} });
111 |
112 | export const getMovies: (_page?: number) => Promise = async (page = 1) =>
113 | await axiosClient.get('movie/upcoming', { params: { page } });
114 |
115 | export const getTVs: (_page?: number) => Promise = async (page = 1) =>
116 | await axiosClient.get('tv/popular', { params: { page } });
117 |
118 | export const getWatchMovieDetail: (_id: number) => Promise = async (
119 | id
120 | ) => {
121 | const labels = ['data', 'similar'];
122 | const params = {
123 | params: {},
124 | };
125 |
126 | const result = (
127 | await Promise.all([
128 | axiosClient.get(`/movie/${id}`, params),
129 | axiosClient.get(`/movie/${id}/similar`, params),
130 | ])
131 | ).reduce((final, current: any, index) => {
132 | if (labels[index] === 'data') {
133 | final[labels[index]] = current;
134 | } else if (labels[index] === 'similar') {
135 | final[labels[index]] = current.results.map((item: any) => ({
136 | ...item,
137 | media_type: 'movie',
138 | }));
139 | }
140 | return final;
141 | }, {} as any);
142 |
143 | return result;
144 | };
145 |
146 | export const getWatchTVDetail: (_id: number) => Promise = async (id) => {
147 | const labels = ['data', 'similar'];
148 | const params = {
149 | params: {},
150 | };
151 |
152 | const result = (
153 | await Promise.all([
154 | axiosClient.get(`/tv/${id}`, params),
155 | axiosClient.get(`/tv/${id}/similar`, params),
156 | ])
157 | ).reduce((final, current: any, index) => {
158 | if (labels[index] === 'data') {
159 | final[labels[index]] = current;
160 | } else if (labels[index] === 'similar') {
161 | final[labels[index]] = current.results.map((item: any) => ({
162 | ...item,
163 | media_type: 'tv',
164 | }));
165 | }
166 | return final;
167 | }, {} as any);
168 |
169 | return result;
170 | };
171 |
172 | export const getTVSeasons: (_id: number) => Promise = async (id) => {
173 | const params = {
174 | params: {},
175 | };
176 | const data = (await axiosClient.get(`tv/${id}`, params)) as TypeTvDetail;
177 |
178 | if (data.seasons.length === 0) throw new Error('404');
179 |
180 | const res = await Promise.all(
181 | data.seasons.map((item) =>
182 | axiosClient.get(`tv/${id}/season/${item.season_number}`, params)
183 | )
184 | );
185 |
186 | const seasons = res.filter(
187 | (item: any) =>
188 | item.name &&
189 | item.poster_path &&
190 | item.episodes.length > 0 &&
191 | item.episodes.every((child: any) => child.name && child.still_path)
192 | );
193 |
194 | return {
195 | seasons,
196 | data,
197 | };
198 | };
199 |
200 | export const searchAll: (
201 | _query: string,
202 | _page?: number
203 | ) => Promise = async (query, page = 1) => {
204 | const data: any = await axiosClient.get('/search/multi', {
205 | params: { query, page },
206 | });
207 |
208 | return {
209 | ...data,
210 | results: data.results.filter((item: any) => item.poster_path),
211 | };
212 | };
213 |
214 | export const searchMovie: (
215 | _query: string,
216 | _page?: number
217 | ) => Promise = async (query, page = 1) => {
218 | const data: any = await axiosClient.get('/search/movie', {
219 | params: { query, page },
220 | });
221 |
222 | return {
223 | ...data,
224 | results: data.results.filter((item: any) => item.poster_path),
225 | };
226 | };
227 |
228 | export const searchTV: (
229 | _query: string,
230 | _page?: number
231 | ) => Promise = async (query, page = 1) => {
232 | const data: any = await axiosClient.get('/search/tv', {
233 | params: { query, page },
234 | });
235 |
236 | return {
237 | ...data,
238 | results: data.results.filter((item: any) => item.poster_path),
239 | };
240 | };
241 | // export default tmdbApi;
242 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime-corejs3@^7.10.2":
6 | version "7.18.9"
7 | resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz#7bacecd1cb2dd694eacd32a91fcf7021c20770ae"
8 | integrity sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==
9 | dependencies:
10 | core-js-pure "^3.20.2"
11 | regenerator-runtime "^0.13.4"
12 |
13 | "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.18.9", "@babel/runtime@^7.9.2":
14 | version "7.18.9"
15 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
16 | integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
17 | dependencies:
18 | regenerator-runtime "^0.13.4"
19 |
20 | "@eslint/eslintrc@^1.3.0":
21 | version "1.3.0"
22 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f"
23 | integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==
24 | dependencies:
25 | ajv "^6.12.4"
26 | debug "^4.3.2"
27 | espree "^9.3.2"
28 | globals "^13.15.0"
29 | ignore "^5.2.0"
30 | import-fresh "^3.2.1"
31 | js-yaml "^4.1.0"
32 | minimatch "^3.1.2"
33 | strip-json-comments "^3.1.1"
34 |
35 | "@humanwhocodes/config-array@^0.10.4":
36 | version "0.10.4"
37 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c"
38 | integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==
39 | dependencies:
40 | "@humanwhocodes/object-schema" "^1.2.1"
41 | debug "^4.1.1"
42 | minimatch "^3.0.4"
43 |
44 | "@humanwhocodes/gitignore-to-minimatch@^1.0.2":
45 | version "1.0.2"
46 | resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d"
47 | integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==
48 |
49 | "@humanwhocodes/object-schema@^1.2.1":
50 | version "1.2.1"
51 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
52 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
53 |
54 | "@next/env@12.2.3":
55 | version "12.2.3"
56 | resolved "https://registry.yarnpkg.com/@next/env/-/env-12.2.3.tgz#64f210e74c137d3d9feea738795b055a7f8aebe2"
57 | integrity sha512-2lWKP5Xcvnor70NaaROZXBvU8z9mFReePCG8NhZw6NyNGnPvC+8s+Cre/63LAB1LKzWw/e9bZJnQUg0gYFRb2Q==
58 |
59 | "@next/eslint-plugin-next@12.2.3":
60 | version "12.2.3"
61 | resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.3.tgz#63726691aac6a7f01b64190a0323d590a0e8154d"
62 | integrity sha512-B2e8Yg1MpuLsGxhCx4rU8/Tcnr5wFmCx1O2eyLXBPnaCcsFXfGCo067ujagtDLtWASL3GNgzg78U1SB0dbc38A==
63 | dependencies:
64 | glob "7.1.7"
65 |
66 | "@next/swc-android-arm-eabi@12.2.3":
67 | version "12.2.3"
68 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.3.tgz#91388c8ec117d59ee80d2c1d4dc65fdfd267d2d4"
69 | integrity sha512-JxmCW9XB5PYnkGE67BdnBTdqW0SW6oMCiPMHLdjeRi4T3U4JJKJGnjQld99+6TPOfPWigtw3W7Cijp5gc+vJ/w==
70 |
71 | "@next/swc-android-arm64@12.2.3":
72 | version "12.2.3"
73 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.2.3.tgz#9be33553861f6494616b910a23abd5a1b0d7fb4b"
74 | integrity sha512-3l4zXpWnzy0fqoedsFRxzMy/eGlMMqn6IwPEuBmtEQ4h7srmQFHyT+Bk+eVHb0o1RQ7/TloAa+mu8JX5tz/5tA==
75 |
76 | "@next/swc-darwin-arm64@12.2.3":
77 | version "12.2.3"
78 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.3.tgz#ce1a5a7320936b2644b765ace3283e5d1676b6a0"
79 | integrity sha512-eutDO/RH6pf7+8zHo3i2GKLhF0qaMtxWpY8k3Oa1k+CyrcJ0IxwkfH/x3f75jTMeCrThn6Uu8j3WeZOxvhto1Q==
80 |
81 | "@next/swc-darwin-x64@12.2.3":
82 | version "12.2.3"
83 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.3.tgz#f70ce07016501c6f823035bc67296b8f80201145"
84 | integrity sha512-lve+lnTiddXbcT3Lh2ujOFywQSEycTYQhuf6j6JrPu9oLQGS01kjIqqSj3/KMmSoppEnXo3BxkgYu+g2+ecHkA==
85 |
86 | "@next/swc-freebsd-x64@12.2.3":
87 | version "12.2.3"
88 | resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.3.tgz#ccc6fa4588dadec85458091aa19c17bc3e99a10d"
89 | integrity sha512-V4bZU1qBFkULTPW53phY8ypioh3EERzHu9YKAasm9RxU4dj+8c/4s60y+kbFkFEEpIUgEU6yNuYZRR4lHHbUGA==
90 |
91 | "@next/swc-linux-arm-gnueabihf@12.2.3":
92 | version "12.2.3"
93 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.3.tgz#d7a481d3ede14dee85707d0807b4a05cd2300950"
94 | integrity sha512-MWxS/i+XSEKdQE0ZmdYkPPrWKBi4JwMVaXdOW9J/T/sZJsHsLlSC9ErBcNolKAJEVka+tnw9oPRyRCKOj+q0sw==
95 |
96 | "@next/swc-linux-arm64-gnu@12.2.3":
97 | version "12.2.3"
98 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.3.tgz#6d105c971cc0957c25563aa98af475291b4cd8aa"
99 | integrity sha512-ikXkqAmvEcWTzIQFDdmrUHLWzdDAF5s2pVsSpQn9rk/gK1i9webH1GRQd2bSM7JLuPBZSaYrNGvDTyHZdSEYlg==
100 |
101 | "@next/swc-linux-arm64-musl@12.2.3":
102 | version "12.2.3"
103 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.3.tgz#bebfe490130e3cb8746a03d35a5a9e23ac0e6f9b"
104 | integrity sha512-wE45gGFkeLLLnCoveKaBrdpYkkypl3qwNF2YhnfvfVK7etuu1O679LwClhCWinDVBr+KOkmyHok00Z+0uI1ycg==
105 |
106 | "@next/swc-linux-x64-gnu@12.2.3":
107 | version "12.2.3"
108 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.3.tgz#84a3d99f9d656fbc139f3a19f9b1baf73877d18f"
109 | integrity sha512-MbFI6413VSXiREzHwYD8YAJLTknBaC+bmjXgdHEEdloeOuBFQGE3NWn3izOCTy8kV+s98VDQO8au7EKKs+bW0g==
110 |
111 | "@next/swc-linux-x64-musl@12.2.3":
112 | version "12.2.3"
113 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.3.tgz#a283431f8c6c830b4bd61147094f150ea7deeb6e"
114 | integrity sha512-jMBD0Va6fInbPih/dNySlNY2RpjkK6MXS+UGVEvuTswl1MZr+iahvurmshwGKpjaRwVU4DSFMD8+gfWxsTFs1Q==
115 |
116 | "@next/swc-win32-arm64-msvc@12.2.3":
117 | version "12.2.3"
118 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.3.tgz#bab9ba8736d81db128badb70024268469eaa9b34"
119 | integrity sha512-Cq8ToPdc0jQP2C7pjChYctAsEe7+lO/B826ZCK5xFzobuHPiCyJ2Mzx/nEQwCY4SpYkeJQtCbwlCz5iyGW5zGg==
120 |
121 | "@next/swc-win32-ia32-msvc@12.2.3":
122 | version "12.2.3"
123 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.3.tgz#feea6ada1ba3e897f39ded9f2de5006f4e1c928b"
124 | integrity sha512-BtFq4c8IpeB0sDhJMHJFgm86rPkOvmYI8k3De8Y2kgNVWSeLQ0Q929PWf7e+GqcX1015ei/gEB41ZH8Iw49NzA==
125 |
126 | "@next/swc-win32-x64-msvc@12.2.3":
127 | version "12.2.3"
128 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.3.tgz#403e1575a84c31cbd7f3c0ecd51b61bc25b7f808"
129 | integrity sha512-huSNb98KSG77Kl96CoPgCwom28aamuUsPpRmn/4s9L0RNbbHVSkp9E6HA4yOAykZCEuWcdNsRLbVVuAbt8rtIw==
130 |
131 | "@nodelib/fs.scandir@2.1.5":
132 | version "2.1.5"
133 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
134 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
135 | dependencies:
136 | "@nodelib/fs.stat" "2.0.5"
137 | run-parallel "^1.1.9"
138 |
139 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
140 | version "2.0.5"
141 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
142 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
143 |
144 | "@nodelib/fs.walk@^1.2.3":
145 | version "1.2.8"
146 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
147 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
148 | dependencies:
149 | "@nodelib/fs.scandir" "2.1.5"
150 | fastq "^1.6.0"
151 |
152 | "@reduxjs/toolkit@^1.8.4":
153 | version "1.8.4"
154 | resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.4.tgz#8f226acff22adf539d078b64fa2eafc3f8d1d045"
155 | integrity sha512-IpFq1WI7sCYeLQpDCGvlcQY9wn70UpAM3cOLq78HRnVn1746RI+l3y5xcuOeVOxORaxABJh3cfJMxycD2IwH5w==
156 | dependencies:
157 | immer "^9.0.7"
158 | redux "^4.1.2"
159 | redux-thunk "^2.4.1"
160 | reselect "^4.1.5"
161 |
162 | "@rushstack/eslint-patch@^1.1.3":
163 | version "1.1.4"
164 | resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz#0c8b74c50f29ee44f423f7416829c0bf8bb5eb27"
165 | integrity sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==
166 |
167 | "@swc/helpers@0.4.3":
168 | version "0.4.3"
169 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.3.tgz#16593dfc248c53b699d4b5026040f88ddb497012"
170 | integrity sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==
171 | dependencies:
172 | tslib "^2.4.0"
173 |
174 | "@types/hoist-non-react-statics@^3.3.1":
175 | version "3.3.1"
176 | resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
177 | integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
178 | dependencies:
179 | "@types/react" "*"
180 | hoist-non-react-statics "^3.3.0"
181 |
182 | "@types/json5@^0.0.29":
183 | version "0.0.29"
184 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
185 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
186 |
187 | "@types/node@18.6.2":
188 | version "18.6.2"
189 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.2.tgz#ffc5f0f099d27887c8d9067b54e55090fcd54126"
190 | integrity sha512-KcfkBq9H4PI6Vpu5B/KoPeuVDAbmi+2mDBqGPGUgoL7yXQtcWGu2vJWmmRkneWK3Rh0nIAX192Aa87AqKHYChQ==
191 |
192 | "@types/prop-types@*":
193 | version "15.7.5"
194 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
195 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
196 |
197 | "@types/react-dom@18.0.6":
198 | version "18.0.6"
199 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1"
200 | integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==
201 | dependencies:
202 | "@types/react" "*"
203 |
204 | "@types/react@*", "@types/react@18.0.15":
205 | version "18.0.15"
206 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.15.tgz#d355644c26832dc27f3e6cbf0c4f4603fc4ab7fe"
207 | integrity sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==
208 | dependencies:
209 | "@types/prop-types" "*"
210 | "@types/scheduler" "*"
211 | csstype "^3.0.2"
212 |
213 | "@types/scheduler@*":
214 | version "0.16.2"
215 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
216 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
217 |
218 | "@types/use-sync-external-store@^0.0.3":
219 | version "0.0.3"
220 | resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43"
221 | integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==
222 |
223 | "@typescript-eslint/parser@^5.21.0":
224 | version "5.31.0"
225 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.31.0.tgz#7f42d7dcc68a0a6d80a0f3d9a65063aee7bb8d2c"
226 | integrity sha512-UStjQiZ9OFTFReTrN+iGrC6O/ko9LVDhreEK5S3edmXgR396JGq7CoX2TWIptqt/ESzU2iRKXAHfSF2WJFcWHw==
227 | dependencies:
228 | "@typescript-eslint/scope-manager" "5.31.0"
229 | "@typescript-eslint/types" "5.31.0"
230 | "@typescript-eslint/typescript-estree" "5.31.0"
231 | debug "^4.3.4"
232 |
233 | "@typescript-eslint/scope-manager@5.31.0":
234 | version "5.31.0"
235 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz#f47a794ba84d9b818ab7f8f44fff55a61016c606"
236 | integrity sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg==
237 | dependencies:
238 | "@typescript-eslint/types" "5.31.0"
239 | "@typescript-eslint/visitor-keys" "5.31.0"
240 |
241 | "@typescript-eslint/types@5.31.0":
242 | version "5.31.0"
243 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.31.0.tgz#7aa389122b64b18e473c1672fb3b8310e5f07a9a"
244 | integrity sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g==
245 |
246 | "@typescript-eslint/typescript-estree@5.31.0":
247 | version "5.31.0"
248 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz#eb92970c9d6e3946690d50c346fb9b1d745ee882"
249 | integrity sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw==
250 | dependencies:
251 | "@typescript-eslint/types" "5.31.0"
252 | "@typescript-eslint/visitor-keys" "5.31.0"
253 | debug "^4.3.4"
254 | globby "^11.1.0"
255 | is-glob "^4.0.3"
256 | semver "^7.3.7"
257 | tsutils "^3.21.0"
258 |
259 | "@typescript-eslint/visitor-keys@5.31.0":
260 | version "5.31.0"
261 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz#b0eca264df01ce85dceb76aebff3784629258f54"
262 | integrity sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg==
263 | dependencies:
264 | "@typescript-eslint/types" "5.31.0"
265 | eslint-visitor-keys "^3.3.0"
266 |
267 | acorn-jsx@^5.3.2:
268 | version "5.3.2"
269 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
270 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
271 |
272 | acorn-node@^1.8.2:
273 | version "1.8.2"
274 | resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
275 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
276 | dependencies:
277 | acorn "^7.0.0"
278 | acorn-walk "^7.0.0"
279 | xtend "^4.0.2"
280 |
281 | acorn-walk@^7.0.0:
282 | version "7.2.0"
283 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
284 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
285 |
286 | acorn@^7.0.0:
287 | version "7.4.1"
288 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
289 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
290 |
291 | acorn@^8.7.1, acorn@^8.8.0:
292 | version "8.8.0"
293 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
294 | integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
295 |
296 | ajv@^6.10.0, ajv@^6.12.4:
297 | version "6.12.6"
298 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
299 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
300 | dependencies:
301 | fast-deep-equal "^3.1.1"
302 | fast-json-stable-stringify "^2.0.0"
303 | json-schema-traverse "^0.4.1"
304 | uri-js "^4.2.2"
305 |
306 | ansi-regex@^5.0.1:
307 | version "5.0.1"
308 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
309 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
310 |
311 | ansi-styles@^4.1.0:
312 | version "4.3.0"
313 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
314 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
315 | dependencies:
316 | color-convert "^2.0.1"
317 |
318 | anymatch@~3.1.2:
319 | version "3.1.2"
320 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
321 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
322 | dependencies:
323 | normalize-path "^3.0.0"
324 | picomatch "^2.0.4"
325 |
326 | arg@^5.0.2:
327 | version "5.0.2"
328 | resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
329 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
330 |
331 | argparse@^2.0.1:
332 | version "2.0.1"
333 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
334 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
335 |
336 | aria-query@^4.2.2:
337 | version "4.2.2"
338 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
339 | integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==
340 | dependencies:
341 | "@babel/runtime" "^7.10.2"
342 | "@babel/runtime-corejs3" "^7.10.2"
343 |
344 | array-includes@^3.1.4, array-includes@^3.1.5:
345 | version "3.1.5"
346 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb"
347 | integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==
348 | dependencies:
349 | call-bind "^1.0.2"
350 | define-properties "^1.1.4"
351 | es-abstract "^1.19.5"
352 | get-intrinsic "^1.1.1"
353 | is-string "^1.0.7"
354 |
355 | array-union@^2.1.0:
356 | version "2.1.0"
357 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
358 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
359 |
360 | array.prototype.flat@^1.2.5:
361 | version "1.3.0"
362 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b"
363 | integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==
364 | dependencies:
365 | call-bind "^1.0.2"
366 | define-properties "^1.1.3"
367 | es-abstract "^1.19.2"
368 | es-shim-unscopables "^1.0.0"
369 |
370 | array.prototype.flatmap@^1.3.0:
371 | version "1.3.0"
372 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f"
373 | integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==
374 | dependencies:
375 | call-bind "^1.0.2"
376 | define-properties "^1.1.3"
377 | es-abstract "^1.19.2"
378 | es-shim-unscopables "^1.0.0"
379 |
380 | ast-types-flow@^0.0.7:
381 | version "0.0.7"
382 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
383 | integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
384 |
385 | asynckit@^0.4.0:
386 | version "0.4.0"
387 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
388 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
389 |
390 | autoprefixer@^10.4.8:
391 | version "10.4.8"
392 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5"
393 | integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==
394 | dependencies:
395 | browserslist "^4.21.3"
396 | caniuse-lite "^1.0.30001373"
397 | fraction.js "^4.2.0"
398 | normalize-range "^0.1.2"
399 | picocolors "^1.0.0"
400 | postcss-value-parser "^4.2.0"
401 |
402 | axe-core@^4.4.3:
403 | version "4.4.3"
404 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f"
405 | integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==
406 |
407 | axios@^0.27.2:
408 | version "0.27.2"
409 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
410 | integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
411 | dependencies:
412 | follow-redirects "^1.14.9"
413 | form-data "^4.0.0"
414 |
415 | axobject-query@^2.2.0:
416 | version "2.2.0"
417 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
418 | integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
419 |
420 | balanced-match@^1.0.0:
421 | version "1.0.2"
422 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
423 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
424 |
425 | binary-extensions@^2.0.0:
426 | version "2.2.0"
427 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
428 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
429 |
430 | brace-expansion@^1.1.7:
431 | version "1.1.11"
432 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
433 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
434 | dependencies:
435 | balanced-match "^1.0.0"
436 | concat-map "0.0.1"
437 |
438 | braces@^3.0.2, braces@~3.0.2:
439 | version "3.0.2"
440 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
441 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
442 | dependencies:
443 | fill-range "^7.0.1"
444 |
445 | browserslist@^4.21.3:
446 | version "4.21.3"
447 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
448 | integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
449 | dependencies:
450 | caniuse-lite "^1.0.30001370"
451 | electron-to-chromium "^1.4.202"
452 | node-releases "^2.0.6"
453 | update-browserslist-db "^1.0.5"
454 |
455 | call-bind@^1.0.0, call-bind@^1.0.2:
456 | version "1.0.2"
457 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
458 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
459 | dependencies:
460 | function-bind "^1.1.1"
461 | get-intrinsic "^1.0.2"
462 |
463 | callsites@^3.0.0:
464 | version "3.1.0"
465 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
466 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
467 |
468 | camelcase-css@^2.0.1:
469 | version "2.0.1"
470 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
471 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
472 |
473 | caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373:
474 | version "1.0.30001373"
475 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz#2dc3bc3bfcb5d5a929bec11300883040d7b4b4be"
476 | integrity sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==
477 |
478 | chalk@^4.0.0:
479 | version "4.1.2"
480 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
481 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
482 | dependencies:
483 | ansi-styles "^4.1.0"
484 | supports-color "^7.1.0"
485 |
486 | "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
487 | version "3.5.3"
488 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
489 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
490 | dependencies:
491 | anymatch "~3.1.2"
492 | braces "~3.0.2"
493 | glob-parent "~5.1.2"
494 | is-binary-path "~2.1.0"
495 | is-glob "~4.0.1"
496 | normalize-path "~3.0.0"
497 | readdirp "~3.6.0"
498 | optionalDependencies:
499 | fsevents "~2.3.2"
500 |
501 | classnames@^2.3.1:
502 | version "2.3.1"
503 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
504 | integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
505 |
506 | color-convert@^2.0.1:
507 | version "2.0.1"
508 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
509 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
510 | dependencies:
511 | color-name "~1.1.4"
512 |
513 | color-name@^1.1.4, color-name@~1.1.4:
514 | version "1.1.4"
515 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
516 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
517 |
518 | combined-stream@^1.0.8:
519 | version "1.0.8"
520 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
521 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
522 | dependencies:
523 | delayed-stream "~1.0.0"
524 |
525 | concat-map@0.0.1:
526 | version "0.0.1"
527 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
528 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
529 |
530 | core-js-pure@^3.20.2:
531 | version "3.24.0"
532 | resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.24.0.tgz#10eeb90dbf0d670a6b22b081aecc7deb2faec7e1"
533 | integrity sha512-uzMmW8cRh7uYw4JQtzqvGWRyC2T5+4zipQLQdi2FmiRqP83k3d6F3stv2iAlNhOs6cXN401FCD5TL0vvleuHgA==
534 |
535 | cross-spawn@^7.0.2:
536 | version "7.0.3"
537 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
538 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
539 | dependencies:
540 | path-key "^3.1.0"
541 | shebang-command "^2.0.0"
542 | which "^2.0.1"
543 |
544 | cssesc@^3.0.0:
545 | version "3.0.0"
546 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
547 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
548 |
549 | csstype@^3.0.2:
550 | version "3.1.0"
551 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2"
552 | integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==
553 |
554 | damerau-levenshtein@^1.0.8:
555 | version "1.0.8"
556 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
557 | integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
558 |
559 | debug@^2.6.9:
560 | version "2.6.9"
561 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
562 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
563 | dependencies:
564 | ms "2.0.0"
565 |
566 | debug@^3.2.7:
567 | version "3.2.7"
568 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
569 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
570 | dependencies:
571 | ms "^2.1.1"
572 |
573 | debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
574 | version "4.3.4"
575 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
576 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
577 | dependencies:
578 | ms "2.1.2"
579 |
580 | decode-uri-component@^0.2.0:
581 | version "0.2.0"
582 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
583 | integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==
584 |
585 | deep-is@^0.1.3:
586 | version "0.1.4"
587 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
588 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
589 |
590 | define-properties@^1.1.3, define-properties@^1.1.4:
591 | version "1.1.4"
592 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
593 | integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
594 | dependencies:
595 | has-property-descriptors "^1.0.0"
596 | object-keys "^1.1.1"
597 |
598 | defined@^1.0.0:
599 | version "1.0.0"
600 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
601 | integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==
602 |
603 | delayed-stream@~1.0.0:
604 | version "1.0.0"
605 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
606 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
607 |
608 | detective@^5.2.1:
609 | version "5.2.1"
610 | resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034"
611 | integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
612 | dependencies:
613 | acorn-node "^1.8.2"
614 | defined "^1.0.0"
615 | minimist "^1.2.6"
616 |
617 | didyoumean@^1.2.2:
618 | version "1.2.2"
619 | resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
620 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
621 |
622 | dir-glob@^3.0.1:
623 | version "3.0.1"
624 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
625 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
626 | dependencies:
627 | path-type "^4.0.0"
628 |
629 | dlv@^1.1.3:
630 | version "1.1.3"
631 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
632 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
633 |
634 | doctrine@^2.1.0:
635 | version "2.1.0"
636 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
637 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
638 | dependencies:
639 | esutils "^2.0.2"
640 |
641 | doctrine@^3.0.0:
642 | version "3.0.0"
643 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
644 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
645 | dependencies:
646 | esutils "^2.0.2"
647 |
648 | dom7@^4.0.4:
649 | version "4.0.4"
650 | resolved "https://registry.yarnpkg.com/dom7/-/dom7-4.0.4.tgz#8b68c5d8e5e2ed0fddb1cb93e433bc9060c8f3fb"
651 | integrity sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==
652 | dependencies:
653 | ssr-window "^4.0.0"
654 |
655 | electron-to-chromium@^1.4.202:
656 | version "1.4.206"
657 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz#580ff85b54d7ec0c05f20b1e37ea0becdd7b0ee4"
658 | integrity sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==
659 |
660 | emoji-regex@^9.2.2:
661 | version "9.2.2"
662 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
663 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
664 |
665 | es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5:
666 | version "1.20.1"
667 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814"
668 | integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==
669 | dependencies:
670 | call-bind "^1.0.2"
671 | es-to-primitive "^1.2.1"
672 | function-bind "^1.1.1"
673 | function.prototype.name "^1.1.5"
674 | get-intrinsic "^1.1.1"
675 | get-symbol-description "^1.0.0"
676 | has "^1.0.3"
677 | has-property-descriptors "^1.0.0"
678 | has-symbols "^1.0.3"
679 | internal-slot "^1.0.3"
680 | is-callable "^1.2.4"
681 | is-negative-zero "^2.0.2"
682 | is-regex "^1.1.4"
683 | is-shared-array-buffer "^1.0.2"
684 | is-string "^1.0.7"
685 | is-weakref "^1.0.2"
686 | object-inspect "^1.12.0"
687 | object-keys "^1.1.1"
688 | object.assign "^4.1.2"
689 | regexp.prototype.flags "^1.4.3"
690 | string.prototype.trimend "^1.0.5"
691 | string.prototype.trimstart "^1.0.5"
692 | unbox-primitive "^1.0.2"
693 |
694 | es-shim-unscopables@^1.0.0:
695 | version "1.0.0"
696 | resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
697 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==
698 | dependencies:
699 | has "^1.0.3"
700 |
701 | es-to-primitive@^1.2.1:
702 | version "1.2.1"
703 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
704 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
705 | dependencies:
706 | is-callable "^1.1.4"
707 | is-date-object "^1.0.1"
708 | is-symbol "^1.0.2"
709 |
710 | escalade@^3.1.1:
711 | version "3.1.1"
712 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
713 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
714 |
715 | escape-string-regexp@^4.0.0:
716 | version "4.0.0"
717 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
718 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
719 |
720 | eslint-config-next@12.2.3:
721 | version "12.2.3"
722 | resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.2.3.tgz#468fe9756ccbf7e4452139062db5b4e6557dc885"
723 | integrity sha512-xAQqAqwa2bu9ZMRypz58ym4tNCo22Wc6LuoLpbpf3yW5c4ZkVib9934AgGDDvh2zKrP56Z6X0Pp6gNnuuZzcRw==
724 | dependencies:
725 | "@next/eslint-plugin-next" "12.2.3"
726 | "@rushstack/eslint-patch" "^1.1.3"
727 | "@typescript-eslint/parser" "^5.21.0"
728 | eslint-import-resolver-node "^0.3.6"
729 | eslint-import-resolver-typescript "^2.7.1"
730 | eslint-plugin-import "^2.26.0"
731 | eslint-plugin-jsx-a11y "^6.5.1"
732 | eslint-plugin-react "^7.29.4"
733 | eslint-plugin-react-hooks "^4.5.0"
734 |
735 | eslint-config-prettier@^8.5.0:
736 | version "8.5.0"
737 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1"
738 | integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==
739 |
740 | eslint-import-resolver-node@^0.3.6:
741 | version "0.3.6"
742 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd"
743 | integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==
744 | dependencies:
745 | debug "^3.2.7"
746 | resolve "^1.20.0"
747 |
748 | eslint-import-resolver-typescript@^2.7.1:
749 | version "2.7.1"
750 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751"
751 | integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==
752 | dependencies:
753 | debug "^4.3.4"
754 | glob "^7.2.0"
755 | is-glob "^4.0.3"
756 | resolve "^1.22.0"
757 | tsconfig-paths "^3.14.1"
758 |
759 | eslint-module-utils@^2.7.3:
760 | version "2.7.3"
761 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee"
762 | integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==
763 | dependencies:
764 | debug "^3.2.7"
765 | find-up "^2.1.0"
766 |
767 | eslint-plugin-import@^2.26.0:
768 | version "2.26.0"
769 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b"
770 | integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==
771 | dependencies:
772 | array-includes "^3.1.4"
773 | array.prototype.flat "^1.2.5"
774 | debug "^2.6.9"
775 | doctrine "^2.1.0"
776 | eslint-import-resolver-node "^0.3.6"
777 | eslint-module-utils "^2.7.3"
778 | has "^1.0.3"
779 | is-core-module "^2.8.1"
780 | is-glob "^4.0.3"
781 | minimatch "^3.1.2"
782 | object.values "^1.1.5"
783 | resolve "^1.22.0"
784 | tsconfig-paths "^3.14.1"
785 |
786 | eslint-plugin-jsx-a11y@^6.5.1:
787 | version "6.6.1"
788 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff"
789 | integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==
790 | dependencies:
791 | "@babel/runtime" "^7.18.9"
792 | aria-query "^4.2.2"
793 | array-includes "^3.1.5"
794 | ast-types-flow "^0.0.7"
795 | axe-core "^4.4.3"
796 | axobject-query "^2.2.0"
797 | damerau-levenshtein "^1.0.8"
798 | emoji-regex "^9.2.2"
799 | has "^1.0.3"
800 | jsx-ast-utils "^3.3.2"
801 | language-tags "^1.0.5"
802 | minimatch "^3.1.2"
803 | semver "^6.3.0"
804 |
805 | eslint-plugin-prettier@^4.2.1:
806 | version "4.2.1"
807 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
808 | integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
809 | dependencies:
810 | prettier-linter-helpers "^1.0.0"
811 |
812 | eslint-plugin-react-hooks@^4.5.0:
813 | version "4.6.0"
814 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
815 | integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
816 |
817 | eslint-plugin-react@^7.29.4:
818 | version "7.30.1"
819 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22"
820 | integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==
821 | dependencies:
822 | array-includes "^3.1.5"
823 | array.prototype.flatmap "^1.3.0"
824 | doctrine "^2.1.0"
825 | estraverse "^5.3.0"
826 | jsx-ast-utils "^2.4.1 || ^3.0.0"
827 | minimatch "^3.1.2"
828 | object.entries "^1.1.5"
829 | object.fromentries "^2.0.5"
830 | object.hasown "^1.1.1"
831 | object.values "^1.1.5"
832 | prop-types "^15.8.1"
833 | resolve "^2.0.0-next.3"
834 | semver "^6.3.0"
835 | string.prototype.matchall "^4.0.7"
836 |
837 | eslint-scope@^7.1.1:
838 | version "7.1.1"
839 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
840 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
841 | dependencies:
842 | esrecurse "^4.3.0"
843 | estraverse "^5.2.0"
844 |
845 | eslint-utils@^3.0.0:
846 | version "3.0.0"
847 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
848 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
849 | dependencies:
850 | eslint-visitor-keys "^2.0.0"
851 |
852 | eslint-visitor-keys@^2.0.0:
853 | version "2.1.0"
854 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
855 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
856 |
857 | eslint-visitor-keys@^3.3.0:
858 | version "3.3.0"
859 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
860 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
861 |
862 | eslint@^8.21.0:
863 | version "8.21.0"
864 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef"
865 | integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==
866 | dependencies:
867 | "@eslint/eslintrc" "^1.3.0"
868 | "@humanwhocodes/config-array" "^0.10.4"
869 | "@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
870 | ajv "^6.10.0"
871 | chalk "^4.0.0"
872 | cross-spawn "^7.0.2"
873 | debug "^4.3.2"
874 | doctrine "^3.0.0"
875 | escape-string-regexp "^4.0.0"
876 | eslint-scope "^7.1.1"
877 | eslint-utils "^3.0.0"
878 | eslint-visitor-keys "^3.3.0"
879 | espree "^9.3.3"
880 | esquery "^1.4.0"
881 | esutils "^2.0.2"
882 | fast-deep-equal "^3.1.3"
883 | file-entry-cache "^6.0.1"
884 | find-up "^5.0.0"
885 | functional-red-black-tree "^1.0.1"
886 | glob-parent "^6.0.1"
887 | globals "^13.15.0"
888 | globby "^11.1.0"
889 | grapheme-splitter "^1.0.4"
890 | ignore "^5.2.0"
891 | import-fresh "^3.0.0"
892 | imurmurhash "^0.1.4"
893 | is-glob "^4.0.0"
894 | js-yaml "^4.1.0"
895 | json-stable-stringify-without-jsonify "^1.0.1"
896 | levn "^0.4.1"
897 | lodash.merge "^4.6.2"
898 | minimatch "^3.1.2"
899 | natural-compare "^1.4.0"
900 | optionator "^0.9.1"
901 | regexpp "^3.2.0"
902 | strip-ansi "^6.0.1"
903 | strip-json-comments "^3.1.0"
904 | text-table "^0.2.0"
905 | v8-compile-cache "^2.0.3"
906 |
907 | espree@^9.3.2:
908 | version "9.3.2"
909 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596"
910 | integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==
911 | dependencies:
912 | acorn "^8.7.1"
913 | acorn-jsx "^5.3.2"
914 | eslint-visitor-keys "^3.3.0"
915 |
916 | espree@^9.3.3:
917 | version "9.3.3"
918 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d"
919 | integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==
920 | dependencies:
921 | acorn "^8.8.0"
922 | acorn-jsx "^5.3.2"
923 | eslint-visitor-keys "^3.3.0"
924 |
925 | esquery@^1.4.0:
926 | version "1.4.0"
927 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
928 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
929 | dependencies:
930 | estraverse "^5.1.0"
931 |
932 | esrecurse@^4.3.0:
933 | version "4.3.0"
934 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
935 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
936 | dependencies:
937 | estraverse "^5.2.0"
938 |
939 | estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
940 | version "5.3.0"
941 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
942 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
943 |
944 | esutils@^2.0.2:
945 | version "2.0.3"
946 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
947 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
948 |
949 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
950 | version "3.1.3"
951 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
952 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
953 |
954 | fast-diff@^1.1.2:
955 | version "1.2.0"
956 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
957 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
958 |
959 | fast-glob@^3.2.11, fast-glob@^3.2.9:
960 | version "3.2.11"
961 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
962 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
963 | dependencies:
964 | "@nodelib/fs.stat" "^2.0.2"
965 | "@nodelib/fs.walk" "^1.2.3"
966 | glob-parent "^5.1.2"
967 | merge2 "^1.3.0"
968 | micromatch "^4.0.4"
969 |
970 | fast-json-stable-stringify@^2.0.0:
971 | version "2.1.0"
972 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
973 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
974 |
975 | fast-levenshtein@^2.0.6:
976 | version "2.0.6"
977 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
978 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
979 |
980 | fastq@^1.6.0:
981 | version "1.13.0"
982 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
983 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
984 | dependencies:
985 | reusify "^1.0.4"
986 |
987 | file-entry-cache@^6.0.1:
988 | version "6.0.1"
989 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
990 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
991 | dependencies:
992 | flat-cache "^3.0.4"
993 |
994 | fill-range@^7.0.1:
995 | version "7.0.1"
996 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
997 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
998 | dependencies:
999 | to-regex-range "^5.0.1"
1000 |
1001 | filter-obj@^1.1.0:
1002 | version "1.1.0"
1003 | resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
1004 | integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
1005 |
1006 | find-up@^2.1.0:
1007 | version "2.1.0"
1008 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
1009 | integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
1010 | dependencies:
1011 | locate-path "^2.0.0"
1012 |
1013 | find-up@^5.0.0:
1014 | version "5.0.0"
1015 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
1016 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
1017 | dependencies:
1018 | locate-path "^6.0.0"
1019 | path-exists "^4.0.0"
1020 |
1021 | flat-cache@^3.0.4:
1022 | version "3.0.4"
1023 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
1024 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
1025 | dependencies:
1026 | flatted "^3.1.0"
1027 | rimraf "^3.0.2"
1028 |
1029 | flatted@^3.1.0:
1030 | version "3.2.6"
1031 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2"
1032 | integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==
1033 |
1034 | follow-redirects@^1.14.9:
1035 | version "1.15.1"
1036 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5"
1037 | integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==
1038 |
1039 | form-data@^4.0.0:
1040 | version "4.0.0"
1041 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
1042 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
1043 | dependencies:
1044 | asynckit "^0.4.0"
1045 | combined-stream "^1.0.8"
1046 | mime-types "^2.1.12"
1047 |
1048 | fraction.js@^4.2.0:
1049 | version "4.2.0"
1050 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
1051 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
1052 |
1053 | fs.realpath@^1.0.0:
1054 | version "1.0.0"
1055 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1056 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1057 |
1058 | fsevents@~2.3.2:
1059 | version "2.3.2"
1060 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1061 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1062 |
1063 | function-bind@^1.1.1:
1064 | version "1.1.1"
1065 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1066 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1067 |
1068 | function.prototype.name@^1.1.5:
1069 | version "1.1.5"
1070 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
1071 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
1072 | dependencies:
1073 | call-bind "^1.0.2"
1074 | define-properties "^1.1.3"
1075 | es-abstract "^1.19.0"
1076 | functions-have-names "^1.2.2"
1077 |
1078 | functional-red-black-tree@^1.0.1:
1079 | version "1.0.1"
1080 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
1081 | integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
1082 |
1083 | functions-have-names@^1.2.2:
1084 | version "1.2.3"
1085 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
1086 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
1087 |
1088 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
1089 | version "1.1.2"
1090 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598"
1091 | integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==
1092 | dependencies:
1093 | function-bind "^1.1.1"
1094 | has "^1.0.3"
1095 | has-symbols "^1.0.3"
1096 |
1097 | get-symbol-description@^1.0.0:
1098 | version "1.0.0"
1099 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
1100 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
1101 | dependencies:
1102 | call-bind "^1.0.2"
1103 | get-intrinsic "^1.1.1"
1104 |
1105 | glob-parent@^5.1.2, glob-parent@~5.1.2:
1106 | version "5.1.2"
1107 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
1108 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1109 | dependencies:
1110 | is-glob "^4.0.1"
1111 |
1112 | glob-parent@^6.0.1, glob-parent@^6.0.2:
1113 | version "6.0.2"
1114 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
1115 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
1116 | dependencies:
1117 | is-glob "^4.0.3"
1118 |
1119 | glob@7.1.7:
1120 | version "7.1.7"
1121 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
1122 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
1123 | dependencies:
1124 | fs.realpath "^1.0.0"
1125 | inflight "^1.0.4"
1126 | inherits "2"
1127 | minimatch "^3.0.4"
1128 | once "^1.3.0"
1129 | path-is-absolute "^1.0.0"
1130 |
1131 | glob@^7.1.3, glob@^7.2.0:
1132 | version "7.2.3"
1133 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1134 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1135 | dependencies:
1136 | fs.realpath "^1.0.0"
1137 | inflight "^1.0.4"
1138 | inherits "2"
1139 | minimatch "^3.1.1"
1140 | once "^1.3.0"
1141 | path-is-absolute "^1.0.0"
1142 |
1143 | globals@^13.15.0:
1144 | version "13.17.0"
1145 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4"
1146 | integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==
1147 | dependencies:
1148 | type-fest "^0.20.2"
1149 |
1150 | globby@^11.1.0:
1151 | version "11.1.0"
1152 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
1153 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
1154 | dependencies:
1155 | array-union "^2.1.0"
1156 | dir-glob "^3.0.1"
1157 | fast-glob "^3.2.9"
1158 | ignore "^5.2.0"
1159 | merge2 "^1.4.1"
1160 | slash "^3.0.0"
1161 |
1162 | grapheme-splitter@^1.0.4:
1163 | version "1.0.4"
1164 | resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
1165 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
1166 |
1167 | has-bigints@^1.0.1, has-bigints@^1.0.2:
1168 | version "1.0.2"
1169 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
1170 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
1171 |
1172 | has-flag@^4.0.0:
1173 | version "4.0.0"
1174 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1175 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1176 |
1177 | has-property-descriptors@^1.0.0:
1178 | version "1.0.0"
1179 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
1180 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
1181 | dependencies:
1182 | get-intrinsic "^1.1.1"
1183 |
1184 | has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
1185 | version "1.0.3"
1186 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
1187 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
1188 |
1189 | has-tostringtag@^1.0.0:
1190 | version "1.0.0"
1191 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
1192 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
1193 | dependencies:
1194 | has-symbols "^1.0.2"
1195 |
1196 | has@^1.0.3:
1197 | version "1.0.3"
1198 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1199 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1200 | dependencies:
1201 | function-bind "^1.1.1"
1202 |
1203 | hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
1204 | version "3.3.2"
1205 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
1206 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
1207 | dependencies:
1208 | react-is "^16.7.0"
1209 |
1210 | ignore@^5.2.0:
1211 | version "5.2.0"
1212 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
1213 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
1214 |
1215 | immer@^9.0.7:
1216 | version "9.0.15"
1217 | resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc"
1218 | integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==
1219 |
1220 | immutable@^4.0.0:
1221 | version "4.1.0"
1222 | resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef"
1223 | integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==
1224 |
1225 | import-fresh@^3.0.0, import-fresh@^3.2.1:
1226 | version "3.3.0"
1227 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1228 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1229 | dependencies:
1230 | parent-module "^1.0.0"
1231 | resolve-from "^4.0.0"
1232 |
1233 | imurmurhash@^0.1.4:
1234 | version "0.1.4"
1235 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1236 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1237 |
1238 | inflight@^1.0.4:
1239 | version "1.0.6"
1240 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1241 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1242 | dependencies:
1243 | once "^1.3.0"
1244 | wrappy "1"
1245 |
1246 | inherits@2:
1247 | version "2.0.4"
1248 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1249 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1250 |
1251 | internal-slot@^1.0.3:
1252 | version "1.0.3"
1253 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
1254 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
1255 | dependencies:
1256 | get-intrinsic "^1.1.0"
1257 | has "^1.0.3"
1258 | side-channel "^1.0.4"
1259 |
1260 | is-bigint@^1.0.1:
1261 | version "1.0.4"
1262 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
1263 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
1264 | dependencies:
1265 | has-bigints "^1.0.1"
1266 |
1267 | is-binary-path@~2.1.0:
1268 | version "2.1.0"
1269 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
1270 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
1271 | dependencies:
1272 | binary-extensions "^2.0.0"
1273 |
1274 | is-boolean-object@^1.1.0:
1275 | version "1.1.2"
1276 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
1277 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
1278 | dependencies:
1279 | call-bind "^1.0.2"
1280 | has-tostringtag "^1.0.0"
1281 |
1282 | is-callable@^1.1.4, is-callable@^1.2.4:
1283 | version "1.2.4"
1284 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
1285 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
1286 |
1287 | is-core-module@^2.8.1, is-core-module@^2.9.0:
1288 | version "2.9.0"
1289 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
1290 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
1291 | dependencies:
1292 | has "^1.0.3"
1293 |
1294 | is-date-object@^1.0.1:
1295 | version "1.0.5"
1296 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
1297 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
1298 | dependencies:
1299 | has-tostringtag "^1.0.0"
1300 |
1301 | is-extglob@^2.1.1:
1302 | version "2.1.1"
1303 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1304 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1305 |
1306 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
1307 | version "4.0.3"
1308 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1309 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1310 | dependencies:
1311 | is-extglob "^2.1.1"
1312 |
1313 | is-negative-zero@^2.0.2:
1314 | version "2.0.2"
1315 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
1316 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
1317 |
1318 | is-number-object@^1.0.4:
1319 | version "1.0.7"
1320 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
1321 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
1322 | dependencies:
1323 | has-tostringtag "^1.0.0"
1324 |
1325 | is-number@^7.0.0:
1326 | version "7.0.0"
1327 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1328 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1329 |
1330 | is-regex@^1.1.4:
1331 | version "1.1.4"
1332 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
1333 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
1334 | dependencies:
1335 | call-bind "^1.0.2"
1336 | has-tostringtag "^1.0.0"
1337 |
1338 | is-shared-array-buffer@^1.0.2:
1339 | version "1.0.2"
1340 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
1341 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
1342 | dependencies:
1343 | call-bind "^1.0.2"
1344 |
1345 | is-string@^1.0.5, is-string@^1.0.7:
1346 | version "1.0.7"
1347 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
1348 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
1349 | dependencies:
1350 | has-tostringtag "^1.0.0"
1351 |
1352 | is-symbol@^1.0.2, is-symbol@^1.0.3:
1353 | version "1.0.4"
1354 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
1355 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
1356 | dependencies:
1357 | has-symbols "^1.0.2"
1358 |
1359 | is-weakref@^1.0.2:
1360 | version "1.0.2"
1361 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
1362 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
1363 | dependencies:
1364 | call-bind "^1.0.2"
1365 |
1366 | isexe@^2.0.0:
1367 | version "2.0.0"
1368 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1369 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1370 |
1371 | "js-tokens@^3.0.0 || ^4.0.0":
1372 | version "4.0.0"
1373 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1374 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1375 |
1376 | js-yaml@^4.1.0:
1377 | version "4.1.0"
1378 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
1379 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1380 | dependencies:
1381 | argparse "^2.0.1"
1382 |
1383 | json-schema-traverse@^0.4.1:
1384 | version "0.4.1"
1385 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1386 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1387 |
1388 | json-stable-stringify-without-jsonify@^1.0.1:
1389 | version "1.0.1"
1390 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1391 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
1392 |
1393 | json5@^1.0.1:
1394 | version "1.0.1"
1395 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
1396 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
1397 | dependencies:
1398 | minimist "^1.2.0"
1399 |
1400 | "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2:
1401 | version "3.3.2"
1402 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz#afe5efe4332cd3515c065072bd4d6b0aa22152bd"
1403 | integrity sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==
1404 | dependencies:
1405 | array-includes "^3.1.5"
1406 | object.assign "^4.1.2"
1407 |
1408 | language-subtag-registry@~0.3.2:
1409 | version "0.3.22"
1410 | resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d"
1411 | integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==
1412 |
1413 | language-tags@^1.0.5:
1414 | version "1.0.5"
1415 | resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
1416 | integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==
1417 | dependencies:
1418 | language-subtag-registry "~0.3.2"
1419 |
1420 | levn@^0.4.1:
1421 | version "0.4.1"
1422 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1423 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1424 | dependencies:
1425 | prelude-ls "^1.2.1"
1426 | type-check "~0.4.0"
1427 |
1428 | lilconfig@^2.0.5, lilconfig@^2.0.6:
1429 | version "2.0.6"
1430 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
1431 | integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
1432 |
1433 | locate-path@^2.0.0:
1434 | version "2.0.0"
1435 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
1436 | integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
1437 | dependencies:
1438 | p-locate "^2.0.0"
1439 | path-exists "^3.0.0"
1440 |
1441 | locate-path@^6.0.0:
1442 | version "6.0.0"
1443 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
1444 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1445 | dependencies:
1446 | p-locate "^5.0.0"
1447 |
1448 | lodash.merge@^4.6.2:
1449 | version "4.6.2"
1450 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1451 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1452 |
1453 | loose-envify@^1.1.0, loose-envify@^1.4.0:
1454 | version "1.4.0"
1455 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1456 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1457 | dependencies:
1458 | js-tokens "^3.0.0 || ^4.0.0"
1459 |
1460 | lru-cache@^6.0.0:
1461 | version "6.0.0"
1462 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1463 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1464 | dependencies:
1465 | yallist "^4.0.0"
1466 |
1467 | merge2@^1.3.0, merge2@^1.4.1:
1468 | version "1.4.1"
1469 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1470 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1471 |
1472 | micromatch@^4.0.4:
1473 | version "4.0.5"
1474 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
1475 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1476 | dependencies:
1477 | braces "^3.0.2"
1478 | picomatch "^2.3.1"
1479 |
1480 | mime-db@1.52.0:
1481 | version "1.52.0"
1482 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
1483 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1484 |
1485 | mime-types@^2.1.12:
1486 | version "2.1.35"
1487 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
1488 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
1489 | dependencies:
1490 | mime-db "1.52.0"
1491 |
1492 | minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
1493 | version "3.1.2"
1494 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1495 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1496 | dependencies:
1497 | brace-expansion "^1.1.7"
1498 |
1499 | minimist@^1.2.0, minimist@^1.2.6:
1500 | version "1.2.6"
1501 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
1502 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
1503 |
1504 | ms@2.0.0:
1505 | version "2.0.0"
1506 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1507 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
1508 |
1509 | ms@2.1.2:
1510 | version "2.1.2"
1511 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1512 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1513 |
1514 | ms@^2.1.1:
1515 | version "2.1.3"
1516 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1517 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1518 |
1519 | nanoid@^3.3.4:
1520 | version "3.3.4"
1521 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
1522 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
1523 |
1524 | natural-compare@^1.4.0:
1525 | version "1.4.0"
1526 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1527 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
1528 |
1529 | next@12.2.3:
1530 | version "12.2.3"
1531 | resolved "https://registry.yarnpkg.com/next/-/next-12.2.3.tgz#c29d235ce480e589894dfab3120dade25d015a22"
1532 | integrity sha512-TA0tmSA6Dk6S6kfvCNbF7CWYW8468gZUxr/3/30z4KvAQbXnl2ASYZElVe7q/hBW/1F1ee0tSBlHa4/sn+ZIBw==
1533 | dependencies:
1534 | "@next/env" "12.2.3"
1535 | "@swc/helpers" "0.4.3"
1536 | caniuse-lite "^1.0.30001332"
1537 | postcss "8.4.14"
1538 | styled-jsx "5.0.2"
1539 | use-sync-external-store "1.2.0"
1540 | optionalDependencies:
1541 | "@next/swc-android-arm-eabi" "12.2.3"
1542 | "@next/swc-android-arm64" "12.2.3"
1543 | "@next/swc-darwin-arm64" "12.2.3"
1544 | "@next/swc-darwin-x64" "12.2.3"
1545 | "@next/swc-freebsd-x64" "12.2.3"
1546 | "@next/swc-linux-arm-gnueabihf" "12.2.3"
1547 | "@next/swc-linux-arm64-gnu" "12.2.3"
1548 | "@next/swc-linux-arm64-musl" "12.2.3"
1549 | "@next/swc-linux-x64-gnu" "12.2.3"
1550 | "@next/swc-linux-x64-musl" "12.2.3"
1551 | "@next/swc-win32-arm64-msvc" "12.2.3"
1552 | "@next/swc-win32-ia32-msvc" "12.2.3"
1553 | "@next/swc-win32-x64-msvc" "12.2.3"
1554 |
1555 | node-releases@^2.0.6:
1556 | version "2.0.6"
1557 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
1558 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
1559 |
1560 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1561 | version "3.0.0"
1562 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1563 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1564 |
1565 | normalize-range@^0.1.2:
1566 | version "0.1.2"
1567 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
1568 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
1569 |
1570 | object-assign@^4.1.1:
1571 | version "4.1.1"
1572 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1573 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
1574 |
1575 | object-hash@^3.0.0:
1576 | version "3.0.0"
1577 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
1578 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
1579 |
1580 | object-inspect@^1.12.0, object-inspect@^1.9.0:
1581 | version "1.12.2"
1582 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
1583 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
1584 |
1585 | object-keys@^1.1.1:
1586 | version "1.1.1"
1587 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1588 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1589 |
1590 | object.assign@^4.1.2:
1591 | version "4.1.2"
1592 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
1593 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1594 | dependencies:
1595 | call-bind "^1.0.0"
1596 | define-properties "^1.1.3"
1597 | has-symbols "^1.0.1"
1598 | object-keys "^1.1.1"
1599 |
1600 | object.entries@^1.1.5:
1601 | version "1.1.5"
1602 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
1603 | integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
1604 | dependencies:
1605 | call-bind "^1.0.2"
1606 | define-properties "^1.1.3"
1607 | es-abstract "^1.19.1"
1608 |
1609 | object.fromentries@^2.0.5:
1610 | version "2.0.5"
1611 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"
1612 | integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
1613 | dependencies:
1614 | call-bind "^1.0.2"
1615 | define-properties "^1.1.3"
1616 | es-abstract "^1.19.1"
1617 |
1618 | object.hasown@^1.1.1:
1619 | version "1.1.1"
1620 | resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3"
1621 | integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==
1622 | dependencies:
1623 | define-properties "^1.1.4"
1624 | es-abstract "^1.19.5"
1625 |
1626 | object.values@^1.1.5:
1627 | version "1.1.5"
1628 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
1629 | integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
1630 | dependencies:
1631 | call-bind "^1.0.2"
1632 | define-properties "^1.1.3"
1633 | es-abstract "^1.19.1"
1634 |
1635 | once@^1.3.0:
1636 | version "1.4.0"
1637 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1638 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1639 | dependencies:
1640 | wrappy "1"
1641 |
1642 | optionator@^0.9.1:
1643 | version "0.9.1"
1644 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
1645 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
1646 | dependencies:
1647 | deep-is "^0.1.3"
1648 | fast-levenshtein "^2.0.6"
1649 | levn "^0.4.1"
1650 | prelude-ls "^1.2.1"
1651 | type-check "^0.4.0"
1652 | word-wrap "^1.2.3"
1653 |
1654 | p-limit@^1.1.0:
1655 | version "1.3.0"
1656 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
1657 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
1658 | dependencies:
1659 | p-try "^1.0.0"
1660 |
1661 | p-limit@^3.0.2:
1662 | version "3.1.0"
1663 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1664 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1665 | dependencies:
1666 | yocto-queue "^0.1.0"
1667 |
1668 | p-locate@^2.0.0:
1669 | version "2.0.0"
1670 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
1671 | integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
1672 | dependencies:
1673 | p-limit "^1.1.0"
1674 |
1675 | p-locate@^5.0.0:
1676 | version "5.0.0"
1677 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
1678 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1679 | dependencies:
1680 | p-limit "^3.0.2"
1681 |
1682 | p-try@^1.0.0:
1683 | version "1.0.0"
1684 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
1685 | integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
1686 |
1687 | parent-module@^1.0.0:
1688 | version "1.0.1"
1689 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1690 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1691 | dependencies:
1692 | callsites "^3.0.0"
1693 |
1694 | path-exists@^3.0.0:
1695 | version "3.0.0"
1696 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
1697 | integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
1698 |
1699 | path-exists@^4.0.0:
1700 | version "4.0.0"
1701 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1702 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1703 |
1704 | path-is-absolute@^1.0.0:
1705 | version "1.0.1"
1706 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1707 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1708 |
1709 | path-key@^3.1.0:
1710 | version "3.1.1"
1711 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1712 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1713 |
1714 | path-parse@^1.0.7:
1715 | version "1.0.7"
1716 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1717 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1718 |
1719 | path-type@^4.0.0:
1720 | version "4.0.0"
1721 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
1722 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1723 |
1724 | picocolors@^1.0.0:
1725 | version "1.0.0"
1726 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
1727 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1728 |
1729 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
1730 | version "2.3.1"
1731 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1732 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1733 |
1734 | pify@^2.3.0:
1735 | version "2.3.0"
1736 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
1737 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
1738 |
1739 | postcss-import@^14.1.0:
1740 | version "14.1.0"
1741 | resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0"
1742 | integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
1743 | dependencies:
1744 | postcss-value-parser "^4.0.0"
1745 | read-cache "^1.0.0"
1746 | resolve "^1.1.7"
1747 |
1748 | postcss-js@^4.0.0:
1749 | version "4.0.0"
1750 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
1751 | integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
1752 | dependencies:
1753 | camelcase-css "^2.0.1"
1754 |
1755 | postcss-load-config@^3.1.4:
1756 | version "3.1.4"
1757 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
1758 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
1759 | dependencies:
1760 | lilconfig "^2.0.5"
1761 | yaml "^1.10.2"
1762 |
1763 | postcss-nested@5.0.6:
1764 | version "5.0.6"
1765 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc"
1766 | integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
1767 | dependencies:
1768 | postcss-selector-parser "^6.0.6"
1769 |
1770 | postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
1771 | version "6.0.10"
1772 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
1773 | integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
1774 | dependencies:
1775 | cssesc "^3.0.0"
1776 | util-deprecate "^1.0.2"
1777 |
1778 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
1779 | version "4.2.0"
1780 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1781 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1782 |
1783 | postcss@8.4.14, postcss@^8.4.14:
1784 | version "8.4.14"
1785 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
1786 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
1787 | dependencies:
1788 | nanoid "^3.3.4"
1789 | picocolors "^1.0.0"
1790 | source-map-js "^1.0.2"
1791 |
1792 | prelude-ls@^1.2.1:
1793 | version "1.2.1"
1794 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
1795 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1796 |
1797 | prettier-linter-helpers@^1.0.0:
1798 | version "1.0.0"
1799 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
1800 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
1801 | dependencies:
1802 | fast-diff "^1.1.2"
1803 |
1804 | prettier@^2.7.1:
1805 | version "2.7.1"
1806 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
1807 | integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
1808 |
1809 | prop-types@^15.6.1, prop-types@^15.8.1:
1810 | version "15.8.1"
1811 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
1812 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
1813 | dependencies:
1814 | loose-envify "^1.4.0"
1815 | object-assign "^4.1.1"
1816 | react-is "^16.13.1"
1817 |
1818 | punycode@^2.1.0:
1819 | version "2.1.1"
1820 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1821 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1822 |
1823 | query-string@^7.1.1:
1824 | version "7.1.1"
1825 | resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1"
1826 | integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==
1827 | dependencies:
1828 | decode-uri-component "^0.2.0"
1829 | filter-obj "^1.1.0"
1830 | split-on-first "^1.0.0"
1831 | strict-uri-encode "^2.0.0"
1832 |
1833 | queue-microtask@^1.2.2:
1834 | version "1.2.3"
1835 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
1836 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1837 |
1838 | quick-lru@^5.1.1:
1839 | version "5.1.1"
1840 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
1841 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
1842 |
1843 | react-dom@18.2.0:
1844 | version "18.2.0"
1845 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
1846 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
1847 | dependencies:
1848 | loose-envify "^1.1.0"
1849 | scheduler "^0.23.0"
1850 |
1851 | react-icons@^4.4.0:
1852 | version "4.4.0"
1853 | resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703"
1854 | integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==
1855 |
1856 | react-is@^16.13.1, react-is@^16.7.0:
1857 | version "16.13.1"
1858 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
1859 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
1860 |
1861 | react-is@^18.0.0:
1862 | version "18.2.0"
1863 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
1864 | integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
1865 |
1866 | react-paginate@^8.1.3:
1867 | version "8.1.3"
1868 | resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-8.1.3.tgz#cd6f3cb8a56b47617a61a6a52e3d7c662ad9b91b"
1869 | integrity sha512-zBp80DBRcaeBnAeHUfbGKD0XHfbGNUolQ+S60Ymfs8o7rusYaJYZMAt1j93ADDNLlzRmJ0tMF/NeTlcdKf7dlQ==
1870 | dependencies:
1871 | prop-types "^15.6.1"
1872 |
1873 | react-redux@^8.0.2:
1874 | version "8.0.2"
1875 | resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.2.tgz#bc2a304bb21e79c6808e3e47c50fe1caf62f7aad"
1876 | integrity sha512-nBwiscMw3NoP59NFCXFf02f8xdo+vSHT/uZ1ldDwF7XaTpzm+Phk97VT4urYBl5TYAPNVaFm12UHAEyzkpNzRA==
1877 | dependencies:
1878 | "@babel/runtime" "^7.12.1"
1879 | "@types/hoist-non-react-statics" "^3.3.1"
1880 | "@types/use-sync-external-store" "^0.0.3"
1881 | hoist-non-react-statics "^3.3.2"
1882 | react-is "^18.0.0"
1883 | use-sync-external-store "^1.0.0"
1884 |
1885 | react-spinners@^0.13.4:
1886 | version "0.13.4"
1887 | resolved "https://registry.yarnpkg.com/react-spinners/-/react-spinners-0.13.4.tgz#20f7435e5cb3a2bde23110efa8b7dfbe485373e9"
1888 | integrity sha512-V6IURjYOwomhdngMfuVxBp4utCF6v21sjQ6r4K2JoKl8fwXZp1UeHMBLf+2SU+cts8hAVj9rHOJ8kdT5UqqaJw==
1889 |
1890 | react@18.2.0:
1891 | version "18.2.0"
1892 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
1893 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
1894 | dependencies:
1895 | loose-envify "^1.1.0"
1896 |
1897 | read-cache@^1.0.0:
1898 | version "1.0.0"
1899 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
1900 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
1901 | dependencies:
1902 | pify "^2.3.0"
1903 |
1904 | readdirp@~3.6.0:
1905 | version "3.6.0"
1906 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
1907 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1908 | dependencies:
1909 | picomatch "^2.2.1"
1910 |
1911 | redux-thunk@^2.4.1:
1912 | version "2.4.1"
1913 | resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.1.tgz#0dd8042cf47868f4b29699941de03c9301a75714"
1914 | integrity sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==
1915 |
1916 | redux@^4.1.2:
1917 | version "4.2.0"
1918 | resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13"
1919 | integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==
1920 | dependencies:
1921 | "@babel/runtime" "^7.9.2"
1922 |
1923 | regenerator-runtime@^0.13.4:
1924 | version "0.13.9"
1925 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
1926 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
1927 |
1928 | regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3:
1929 | version "1.4.3"
1930 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
1931 | integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
1932 | dependencies:
1933 | call-bind "^1.0.2"
1934 | define-properties "^1.1.3"
1935 | functions-have-names "^1.2.2"
1936 |
1937 | regexpp@^3.2.0:
1938 | version "3.2.0"
1939 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
1940 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
1941 |
1942 | reselect@^4.1.5:
1943 | version "4.1.6"
1944 | resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.6.tgz#19ca2d3d0b35373a74dc1c98692cdaffb6602656"
1945 | integrity sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==
1946 |
1947 | resolve-from@^4.0.0:
1948 | version "4.0.0"
1949 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1950 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1951 |
1952 | resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1:
1953 | version "1.22.1"
1954 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
1955 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
1956 | dependencies:
1957 | is-core-module "^2.9.0"
1958 | path-parse "^1.0.7"
1959 | supports-preserve-symlinks-flag "^1.0.0"
1960 |
1961 | resolve@^2.0.0-next.3:
1962 | version "2.0.0-next.4"
1963 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660"
1964 | integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==
1965 | dependencies:
1966 | is-core-module "^2.9.0"
1967 | path-parse "^1.0.7"
1968 | supports-preserve-symlinks-flag "^1.0.0"
1969 |
1970 | reusify@^1.0.4:
1971 | version "1.0.4"
1972 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1973 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1974 |
1975 | rimraf@^3.0.2:
1976 | version "3.0.2"
1977 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1978 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1979 | dependencies:
1980 | glob "^7.1.3"
1981 |
1982 | run-parallel@^1.1.9:
1983 | version "1.2.0"
1984 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1985 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1986 | dependencies:
1987 | queue-microtask "^1.2.2"
1988 |
1989 | sass@^1.54.1:
1990 | version "1.54.1"
1991 | resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.1.tgz#4f72ef57ce2a6c3251f4e2c75eee9a0c19e09eb5"
1992 | integrity sha512-GHJJr31Me32RjjUBagyzx8tzjKBUcDwo5239XANIRBq0adDu5iIG0aFO0i/TBb/4I9oyxkEv44nq/kL1DxdDhA==
1993 | dependencies:
1994 | chokidar ">=3.0.0 <4.0.0"
1995 | immutable "^4.0.0"
1996 | source-map-js ">=0.6.2 <2.0.0"
1997 |
1998 | scheduler@^0.23.0:
1999 | version "0.23.0"
2000 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
2001 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
2002 | dependencies:
2003 | loose-envify "^1.1.0"
2004 |
2005 | semver@^6.3.0:
2006 | version "6.3.0"
2007 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
2008 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
2009 |
2010 | semver@^7.3.7:
2011 | version "7.3.7"
2012 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
2013 | integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
2014 | dependencies:
2015 | lru-cache "^6.0.0"
2016 |
2017 | shebang-command@^2.0.0:
2018 | version "2.0.0"
2019 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
2020 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
2021 | dependencies:
2022 | shebang-regex "^3.0.0"
2023 |
2024 | shebang-regex@^3.0.0:
2025 | version "3.0.0"
2026 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
2027 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
2028 |
2029 | side-channel@^1.0.4:
2030 | version "1.0.4"
2031 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
2032 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
2033 | dependencies:
2034 | call-bind "^1.0.0"
2035 | get-intrinsic "^1.0.2"
2036 | object-inspect "^1.9.0"
2037 |
2038 | slash@^3.0.0:
2039 | version "3.0.0"
2040 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
2041 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
2042 |
2043 | "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
2044 | version "1.0.2"
2045 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
2046 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
2047 |
2048 | split-on-first@^1.0.0:
2049 | version "1.1.0"
2050 | resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
2051 | integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
2052 |
2053 | ssr-window@^4.0.0, ssr-window@^4.0.2:
2054 | version "4.0.2"
2055 | resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-4.0.2.tgz#dc6b3ee37be86ac0e3ddc60030f7b3bc9b8553be"
2056 | integrity sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==
2057 |
2058 | strict-uri-encode@^2.0.0:
2059 | version "2.0.0"
2060 | resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
2061 | integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
2062 |
2063 | string.prototype.matchall@^4.0.7:
2064 | version "4.0.7"
2065 | resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d"
2066 | integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==
2067 | dependencies:
2068 | call-bind "^1.0.2"
2069 | define-properties "^1.1.3"
2070 | es-abstract "^1.19.1"
2071 | get-intrinsic "^1.1.1"
2072 | has-symbols "^1.0.3"
2073 | internal-slot "^1.0.3"
2074 | regexp.prototype.flags "^1.4.1"
2075 | side-channel "^1.0.4"
2076 |
2077 | string.prototype.trimend@^1.0.5:
2078 | version "1.0.5"
2079 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0"
2080 | integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==
2081 | dependencies:
2082 | call-bind "^1.0.2"
2083 | define-properties "^1.1.4"
2084 | es-abstract "^1.19.5"
2085 |
2086 | string.prototype.trimstart@^1.0.5:
2087 | version "1.0.5"
2088 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef"
2089 | integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==
2090 | dependencies:
2091 | call-bind "^1.0.2"
2092 | define-properties "^1.1.4"
2093 | es-abstract "^1.19.5"
2094 |
2095 | strip-ansi@^6.0.1:
2096 | version "6.0.1"
2097 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
2098 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
2099 | dependencies:
2100 | ansi-regex "^5.0.1"
2101 |
2102 | strip-bom@^3.0.0:
2103 | version "3.0.0"
2104 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
2105 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
2106 |
2107 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
2108 | version "3.1.1"
2109 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
2110 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
2111 |
2112 | styled-jsx@5.0.2:
2113 | version "5.0.2"
2114 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.2.tgz#ff230fd593b737e9e68b630a694d460425478729"
2115 | integrity sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==
2116 |
2117 | supports-color@^7.1.0:
2118 | version "7.2.0"
2119 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
2120 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
2121 | dependencies:
2122 | has-flag "^4.0.0"
2123 |
2124 | supports-preserve-symlinks-flag@^1.0.0:
2125 | version "1.0.0"
2126 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
2127 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
2128 |
2129 | swiper@^8.3.2:
2130 | version "8.3.2"
2131 | resolved "https://registry.yarnpkg.com/swiper/-/swiper-8.3.2.tgz#55a2637125b0514e58715aa51e040dc070203b47"
2132 | integrity sha512-8wsC7ORYvVSnLUoxs2+xmfLrDPNjBVQXMCFbOlqtHeON6wtu/blOyySDr8TCBCdse1bdcIbn7m8xJNxVFL8o4Q==
2133 | dependencies:
2134 | dom7 "^4.0.4"
2135 | ssr-window "^4.0.2"
2136 |
2137 | tailwindcss@^3.1.7:
2138 | version "3.1.7"
2139 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.7.tgz#ce99425f30a74e01457a2e6a724463b0df3159ac"
2140 | integrity sha512-r7mgumZ3k0InfVPpGWcX8X/Ut4xBfv+1O/+C73ar/m01LxGVzWvPxF/w6xIUPEztrCoz7axfx0SMdh8FH8ZvRQ==
2141 | dependencies:
2142 | arg "^5.0.2"
2143 | chokidar "^3.5.3"
2144 | color-name "^1.1.4"
2145 | detective "^5.2.1"
2146 | didyoumean "^1.2.2"
2147 | dlv "^1.1.3"
2148 | fast-glob "^3.2.11"
2149 | glob-parent "^6.0.2"
2150 | is-glob "^4.0.3"
2151 | lilconfig "^2.0.6"
2152 | normalize-path "^3.0.0"
2153 | object-hash "^3.0.0"
2154 | picocolors "^1.0.0"
2155 | postcss "^8.4.14"
2156 | postcss-import "^14.1.0"
2157 | postcss-js "^4.0.0"
2158 | postcss-load-config "^3.1.4"
2159 | postcss-nested "5.0.6"
2160 | postcss-selector-parser "^6.0.10"
2161 | postcss-value-parser "^4.2.0"
2162 | quick-lru "^5.1.1"
2163 | resolve "^1.22.1"
2164 |
2165 | text-table@^0.2.0:
2166 | version "0.2.0"
2167 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2168 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
2169 |
2170 | to-regex-range@^5.0.1:
2171 | version "5.0.1"
2172 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
2173 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
2174 | dependencies:
2175 | is-number "^7.0.0"
2176 |
2177 | tsconfig-paths@^3.14.1:
2178 | version "3.14.1"
2179 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a"
2180 | integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==
2181 | dependencies:
2182 | "@types/json5" "^0.0.29"
2183 | json5 "^1.0.1"
2184 | minimist "^1.2.6"
2185 | strip-bom "^3.0.0"
2186 |
2187 | tslib@^1.8.1:
2188 | version "1.14.1"
2189 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
2190 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
2191 |
2192 | tslib@^2.4.0:
2193 | version "2.4.0"
2194 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
2195 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
2196 |
2197 | tsutils@^3.21.0:
2198 | version "3.21.0"
2199 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
2200 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
2201 | dependencies:
2202 | tslib "^1.8.1"
2203 |
2204 | type-check@^0.4.0, type-check@~0.4.0:
2205 | version "0.4.0"
2206 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
2207 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
2208 | dependencies:
2209 | prelude-ls "^1.2.1"
2210 |
2211 | type-fest@^0.20.2:
2212 | version "0.20.2"
2213 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
2214 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
2215 |
2216 | typescript@4.7.4:
2217 | version "4.7.4"
2218 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
2219 | integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
2220 |
2221 | unbox-primitive@^1.0.2:
2222 | version "1.0.2"
2223 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
2224 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
2225 | dependencies:
2226 | call-bind "^1.0.2"
2227 | has-bigints "^1.0.2"
2228 | has-symbols "^1.0.3"
2229 | which-boxed-primitive "^1.0.2"
2230 |
2231 | update-browserslist-db@^1.0.5:
2232 | version "1.0.5"
2233 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
2234 | integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
2235 | dependencies:
2236 | escalade "^3.1.1"
2237 | picocolors "^1.0.0"
2238 |
2239 | uri-js@^4.2.2:
2240 | version "4.4.1"
2241 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
2242 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
2243 | dependencies:
2244 | punycode "^2.1.0"
2245 |
2246 | use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0:
2247 | version "1.2.0"
2248 | resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
2249 | integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
2250 |
2251 | util-deprecate@^1.0.2:
2252 | version "1.0.2"
2253 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2254 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
2255 |
2256 | v8-compile-cache@^2.0.3:
2257 | version "2.3.0"
2258 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
2259 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
2260 |
2261 | which-boxed-primitive@^1.0.2:
2262 | version "1.0.2"
2263 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
2264 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
2265 | dependencies:
2266 | is-bigint "^1.0.1"
2267 | is-boolean-object "^1.1.0"
2268 | is-number-object "^1.0.4"
2269 | is-string "^1.0.5"
2270 | is-symbol "^1.0.3"
2271 |
2272 | which@^2.0.1:
2273 | version "2.0.2"
2274 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
2275 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
2276 | dependencies:
2277 | isexe "^2.0.0"
2278 |
2279 | word-wrap@^1.2.3:
2280 | version "1.2.3"
2281 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
2282 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
2283 |
2284 | wrappy@1:
2285 | version "1.0.2"
2286 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2287 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
2288 |
2289 | xtend@^4.0.2:
2290 | version "4.0.2"
2291 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
2292 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
2293 |
2294 | yallist@^4.0.0:
2295 | version "4.0.0"
2296 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
2297 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
2298 |
2299 | yaml@^1.10.2:
2300 | version "1.10.2"
2301 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
2302 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
2303 |
2304 | yocto-queue@^0.1.0:
2305 | version "0.1.0"
2306 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
2307 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
2308 |
--------------------------------------------------------------------------------