├── .env.example
├── .eslintrc.json
├── .github
└── FUNDING.yml
├── .gitignore
├── .prettierrc
├── LICENSE
├── README.md
├── components
├── footer.js
├── pollCard.tsx
└── pollForm.js
├── lib
├── addNewUpvote.ts
├── addNewVote.ts
├── checkForUpvote.ts
├── checkForVote.ts
└── theme.ts
├── next-env.d.ts
├── next.config.js
├── package.json
├── pages
├── 404.js
├── _app.js
├── api
│ ├── poll.js
│ ├── upvote.js
│ ├── vote.js
│ └── votes.js
├── create.jsx
├── index.js
├── poll
│ ├── [slug].tsx
│ └── results
│ │ └── [slug].tsx
└── polls.tsx
├── pnpm-lock.yaml
├── postcss.config.js
├── prisma
└── schema.prisma
├── public
└── vercel.svg
├── styles
├── globals.css
└── nprogress.css
├── tailwind.config.js
└── tsconfig.json
/.env.example:
--------------------------------------------------------------------------------
1 | DATABASE_URL=
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: asheeeshh
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 | .pnpm-debug.log*
27 |
28 | # local env files
29 | /*.env
30 |
31 | # vercel
32 | .vercel
33 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "semi": true,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "$schema": "https://json.schemastore.org/prettierrc",
6 | "arrowParens": "always",
7 | "trailingComma": "all",
8 | "singleQuote": false,
9 | "jsxSingleQuote": false
10 | }
11 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 ashish
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Oh My Poll
2 |
3 | create and share polls privately or publicly -- its fast and free!
4 |
5 | ### Tech Stack
6 | - Next.js
7 | - TailwindCSS
8 | - Prisma
9 | - PlanetScale
10 |
11 | ### External Dependencies
12 | - formik
13 | - nanoid
14 | - react-icons
15 | - nprogress
16 | - react-hot-toast
17 |
18 | ### Run Locally
19 | - Clone the repository
20 | ```bash
21 | git clone https://github.com/asheeeshh/ohmypoll.git
22 | ```
23 | - Create a database on [planetscale](https://planetscale.com) and set the `DATABASE_URL` environment variable in a `.env` file, see [`.env.example`](/.env.example) for example. You can also use this command.
24 | ```bash
25 | echo "DATABASE_URL=your_databse_url" > .env
26 | ```
27 | - Install dependencies
28 | ```bash
29 | cd ohmypoll
30 | pnpm i # or npm i
31 | ```
32 | - Fire up prisma
33 | ```bash
34 | pnpm dlx prisma db push # or npx prisma db push
35 | ```
36 | - Run the app
37 | ```bash
38 | pnpm run dev # or npm run dev
39 | ```
40 |
41 | ### License
42 | [MIT License](LICENSE)
43 |
44 | ### Contributing
45 | - Fork the repository
46 | - Create a new branch
47 | - Make your changes
48 | - Commit your changes
49 | - Push your changes to the main branch
50 | - Open a pull request
51 |
52 | ### Ending Note
53 | - If you have any questions, suggestions or bug reports please open an issue.
54 | - Leave a star if you like the project.
55 | - If you like this project, please consider [supporting](https://www.buymeacoffee.com/asheeshh) me.
56 |
57 |
--------------------------------------------------------------------------------
/components/footer.js:
--------------------------------------------------------------------------------
1 | const SiteFooter = () => {
2 | return (
3 |
15 | );
16 | };
17 |
18 | export default SiteFooter;
19 |
--------------------------------------------------------------------------------
/components/pollCard.tsx:
--------------------------------------------------------------------------------
1 | import { Poll } from "@prisma/client";
2 | import { useRouter } from "next/router";
3 |
4 | type Props = {
5 | poll: Poll;
6 | };
7 |
8 | export default function PollCard(props: Props) {
9 | const router = useRouter();
10 | const { title, createdAt, upvotes, createdBy, id, votes } = props?.poll;
11 | return (
12 | router.push(`/poll/${id}`)}
15 | >
16 |
17 |
18 | poll#{id}
19 |
20 |
21 | {title}
22 |
23 |
24 |
25 |
26 | △ {upvotes}
27 |
28 | {" | "}
29 |
30 | by {createdBy}
31 |
32 |
33 | on {new Date(createdAt).toLocaleDateString()}
34 |
35 | {" | "}
36 |
37 | {votes} {votes === 1 ? "person" : "people"} voted
38 |
39 |
40 |
41 | );
42 | }
43 |
--------------------------------------------------------------------------------
/components/pollForm.js:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import { useRouter } from "next/router";
3 | import { toast } from "react-hot-toast";
4 | import { Formik, Form } from "formik";
5 | import { FiPlus, FiX } from "react-icons/fi";
6 |
7 | const PollForm = ({ redirectPath = "", onSubmit = () => null }) => {
8 | const router = useRouter();
9 | const [cBy, setCBy] = useState("anonymous");
10 | const [visibility, setVisibility] = useState("private");
11 | const [disabled, setDisabled] = useState(false);
12 | const [options, setOptions] = useState([]);
13 | const [question, setQuestion] = useState("");
14 | const [newOption, setNewOption] = useState("");
15 |
16 | const handleSubmit = async (values) => {
17 | let toastId;
18 | try {
19 | setDisabled(true);
20 |
21 | if (typeof onSubmit === "function") {
22 | if (options.length >= 2 && options.length <= 6) {
23 | if (question.length > 0) {
24 | toastId = toast.loading("Creating poll...");
25 | await onSubmit({
26 | title: question,
27 | options: options,
28 | visibility: visibility,
29 | createdBy: cBy,
30 | });
31 | toast.success("Poll created successfully!", {
32 | autoClose: 3000,
33 | closeButton: false,
34 | id: toastId,
35 | });
36 | router.push(redirectPath);
37 | } else {
38 | toast.error("Please add a question!");
39 | setDisabled(false);
40 | }
41 | } else {
42 | if (options.length < 2) {
43 | // console.log("i love you");
44 | toast.error("Please add at least two options!");
45 | setDisabled(false);
46 | } else if (options.length > 6) {
47 | toast.error("You can add at most six options!");
48 | setDisabled(false);
49 | }
50 | }
51 |
52 | // await onSubmit({ ...values, createdBy: cBy, visibility: visibility });
53 | }
54 | } catch (error) {
55 | toast.error(error.message, {
56 | autoClose: 3000,
57 | closeButton: false,
58 | id: toastId,
59 | });
60 | setDisabled(false);
61 | }
62 | };
63 |
64 | return (
65 | {}}
71 | onSubmit={handleSubmit}
72 | >
73 | {({ isSubmitting, isValid }) => (
74 |
216 | )}
217 |
218 | );
219 | };
220 |
221 | export default PollForm;
222 |
--------------------------------------------------------------------------------
/lib/addNewUpvote.ts:
--------------------------------------------------------------------------------
1 | export function addNewUpVote(pollID: string) {
2 | const allUpVotes = localStorage.getItem("upvotes");
3 | if (allUpVotes) {
4 | const upvotes = JSON.parse(allUpVotes);
5 | upvotes.push(pollID);
6 | localStorage.setItem("upvotes", JSON.stringify(upvotes));
7 | } else {
8 | localStorage.setItem("upvotes", JSON.stringify([pollID]));
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/lib/addNewVote.ts:
--------------------------------------------------------------------------------
1 | export function addNewVote(voteID: string) {
2 | const allVotes = localStorage.getItem("votes");
3 | if (allVotes) {
4 | const votes = JSON.parse(allVotes);
5 | votes.push(voteID);
6 | console.log(votes);
7 | localStorage.setItem("votes", JSON.stringify(votes));
8 | } else {
9 | localStorage.setItem("votes", JSON.stringify([voteID]));
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/lib/checkForUpvote.ts:
--------------------------------------------------------------------------------
1 | export function checkForUpVote(pollID: string) {
2 | const allUpVotes = localStorage.getItem("upvotes");
3 | if (allUpVotes) {
4 | const upvotes = JSON.parse(allUpVotes);
5 | if (upvotes.includes(pollID)) {
6 | return true;
7 | }
8 | return false;
9 | }
10 | return false;
11 | }
12 |
--------------------------------------------------------------------------------
/lib/checkForVote.ts:
--------------------------------------------------------------------------------
1 | export function checkForVote(voteID: string) {
2 | const allVotes = localStorage.getItem("votes");
3 | if (allVotes) {
4 | const votes = JSON.parse(allVotes);
5 | if (votes.includes(voteID)) {
6 | return true;
7 | }
8 | return false;
9 | }
10 | return false;
11 | }
12 |
--------------------------------------------------------------------------------
/lib/theme.ts:
--------------------------------------------------------------------------------
1 | export function getTheme(): string {
2 | const theme = localStorage.getItem("theme");
3 | if (theme !== null && theme !== undefined) {
4 | return theme;
5 | } else {
6 | return "light";
7 | }
8 | }
9 |
10 | export function setTheme(theme: string) {
11 | localStorage.setItem("theme", theme);
12 | }
13 |
--------------------------------------------------------------------------------
/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 | };
5 |
6 | module.exports = nextConfig;
7 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ohmypoll",
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 | "@prisma/client": "^4.0.0",
13 | "axios": "^0.27.2",
14 | "formik": "^2.2.9",
15 | "nanoid": "^4.0.0",
16 | "next": "12.2.0",
17 | "nprogress": "^0.2.0",
18 | "react": "18.2.0",
19 | "react-dom": "18.2.0",
20 | "react-hot-toast": "^2.2.0",
21 | "react-icons": "^4.4.0"
22 | },
23 | "devDependencies": {
24 | "@tailwindcss/forms": "^0.5.2",
25 | "@types/node": "^18.0.1",
26 | "@types/react": "^18.0.14",
27 | "@types/react-dom": "^18.0.5",
28 | "autoprefixer": "^10.4.7",
29 | "eslint": "8.19.0",
30 | "eslint-config-next": "12.2.0",
31 | "postcss": "^8.4.14",
32 | "prisma": "^4.0.0",
33 | "tailwindcss": "^3.1.4",
34 | "typescript": "^4.7.4"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/pages/404.js:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 |
3 | export default function FourOhFour() {
4 | return (
5 |
23 | );
24 | }
25 |
--------------------------------------------------------------------------------
/pages/_app.js:
--------------------------------------------------------------------------------
1 | import "../styles/globals.css";
2 | import { Toaster } from "react-hot-toast";
3 | import NProgress from "nprogress";
4 | // import "nprogress/nprogress.css";
5 | import "../styles/nprogress.css";
6 | import { Router } from "next/router";
7 | import Head from "next/head";
8 |
9 | function MyApp({ Component, pageProps }) {
10 | NProgress.configure({ showSpinner: false });
11 | Router.events.on("routeChangeStart", () => NProgress.start());
12 | Router.events.on("routeChangeComplete", () => NProgress.done());
13 | Router.events.on("routeChangeError", () => NProgress.done());
14 | return (
15 |
16 |
17 |
Oh My Poll!
18 |
19 |
23 |
24 |
28 |
29 |
30 |
31 |
35 |
36 |
37 |
38 |
39 |
40 | );
41 | }
42 |
43 | export default MyApp;
44 |
--------------------------------------------------------------------------------
/pages/api/poll.js:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from "@prisma/client";
2 |
3 | const prisma = new PrismaClient();
4 |
5 | export default async function handler(req, res) {
6 | if (req.method === "POST") {
7 | try {
8 | const { id, title, options, visibility, createdBy } = req.body;
9 | const poll = await prisma.poll.create({
10 | data: {
11 | id,
12 | title,
13 | options: {
14 | create: options.map((option, index) => ({
15 | number: index + 1,
16 | text: option,
17 | })),
18 | },
19 | visibility,
20 | createdBy,
21 | },
22 | });
23 | res.status(200).json(poll);
24 | } catch (error) {
25 | console.log(error);
26 | res.status(500).json({ error: error.message });
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/pages/api/upvote.js:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from "@prisma/client";
2 |
3 | const prisma = new PrismaClient();
4 |
5 | export default async function handler(req, res) {
6 | if (req.method === "POST") {
7 | try {
8 | const { id } = req.body;
9 | const upvote = await prisma.poll.update({
10 | where: {
11 | id: id,
12 | },
13 | data: {
14 | upvotes: {
15 | increment: 1,
16 | },
17 | },
18 | });
19 | res.status(200).json(upvote);
20 | } catch (error) {
21 | // console.log(error);
22 | res.status(500).json({ error: error.message });
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/pages/api/vote.js:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from "@prisma/client";
2 |
3 | const prisma = new PrismaClient();
4 |
5 | export default async function handler(req, res) {
6 | if (req.method === "POST") {
7 | try {
8 | const { id } = req.body;
9 | const vote = await prisma.option.update({
10 | where: {
11 | id: id,
12 | },
13 | data: {
14 | votes: {
15 | increment: 1,
16 | },
17 | },
18 | });
19 | res.status(200).json(vote);
20 | } catch (error) {
21 | // console.log(error);
22 | res.status(500).json({ error: error.message });
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/pages/api/votes.js:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from "@prisma/client";
2 |
3 | const prisma = new PrismaClient();
4 |
5 | export default async function handler(req, res) {
6 | if (req.method === "POST") {
7 | try {
8 | const { id } = req.body;
9 | const vote = await prisma.poll.update({
10 | where: {
11 | id: id,
12 | },
13 | data: {
14 | votes: {
15 | increment: 1,
16 | },
17 | },
18 | });
19 | res.status(200).json(vote);
20 | } catch (error) {
21 | // console.log(error);
22 | res.status(500).json({ error: error.message });
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/pages/create.jsx:
--------------------------------------------------------------------------------
1 | import { nanoid } from "nanoid";
2 | import axios from "axios";
3 | import PollForm from "../components/pollForm";
4 | import Link from "next/link";
5 | import SiteFooter from "../components/footer";
6 | import { setTheme, getTheme } from "../lib/theme";
7 | import { useEffect, useState } from "react";
8 | import { FiMoon, FiSun } from "react-icons/fi";
9 |
10 | export default function Create() {
11 | const id = nanoid(6);
12 | const addPoll = (poll) => axios.post("/api/poll", { id, ...poll });
13 | const [currentTheme, setCurrentTheme] = useState("light");
14 |
15 | useEffect(() => {
16 | setTheme(getTheme());
17 | setCurrentTheme(getTheme());
18 | document.body.classList.add(getTheme());
19 | }, [currentTheme]);
20 |
21 | function switchTheme() {
22 | if (currentTheme === "light") {
23 | setTheme("dark");
24 | setCurrentTheme("dark");
25 | document.body.classList.add("dark");
26 | } else {
27 | setTheme("light");
28 | setCurrentTheme("light");
29 | document.body.classList.remove("dark");
30 | }
31 | }
32 |
33 | return (
34 |
35 |
39 | {currentTheme === "light" ? (
40 |
41 | ) : (
42 |
43 | )}
44 |
45 |
55 |
56 |
57 | Create a poll
58 |
59 |
60 |
61 |
62 |
63 | );
64 | }
65 |
--------------------------------------------------------------------------------
/pages/index.js:
--------------------------------------------------------------------------------
1 | import { useRouter } from "next/router";
2 | import SiteFooter from "../components/footer";
3 | import { useEffect, useState } from "react";
4 | import { setTheme, getTheme } from "../lib/theme";
5 | import { FiMoon, FiSun } from "react-icons/fi";
6 |
7 | export default function Home() {
8 | const router = useRouter();
9 | const [currentTheme, setCurrentTheme] = useState("light");
10 |
11 | useEffect(() => {
12 | setTheme(getTheme());
13 | setCurrentTheme(getTheme());
14 | document.body.classList.add(getTheme());
15 | }, [currentTheme]);
16 |
17 | function switchTheme() {
18 | if (currentTheme === "light") {
19 | setTheme("dark");
20 | setCurrentTheme("dark");
21 | document.body.classList.add("dark");
22 | } else {
23 | setTheme("light");
24 | setCurrentTheme("light");
25 | document.body.classList.remove("dark");
26 | }
27 | }
28 |
29 | return (
30 |
31 |
35 | {currentTheme === "light" ? (
36 |
37 | ) : (
38 |
39 | )}
40 |
41 |
42 |
43 | oh my poll !
44 |
45 |
46 | create polls and ask others anything you want privately or publicly -{" "}
47 | {`it's`} free!
48 |
49 |
50 |
51 | router.push("/create")}
54 | >
55 | create a poll
56 |
57 | router.push("/polls")}
60 | >
61 | see public polls
62 |
63 |
64 |
65 |
66 | );
67 | }
68 |
--------------------------------------------------------------------------------
/pages/poll/[slug].tsx:
--------------------------------------------------------------------------------
1 | // Import the generated Prisma client
2 | import { PrismaClient } from "@prisma/client";
3 | import axios from "axios";
4 | import { toast } from "react-hot-toast";
5 | import { addNewVote } from "../../lib/addNewVote";
6 | import { checkForVote } from "../../lib/checkForVote";
7 | import { addNewUpVote } from "../../lib/addNewUpvote";
8 | import { checkForUpVote } from "../../lib/checkForUpvote";
9 | import { Option, Poll } from "@prisma/client";
10 | import { useRouter } from "next/router";
11 | import { useEffect, useState } from "react";
12 | import SiteFooter from "../../components/footer";
13 | import Link from "next/link";
14 |
15 | // Instantiate it
16 | const prisma = new PrismaClient();
17 |
18 | export type Props = {
19 | poll: Poll;
20 | options: Option[];
21 | };
22 |
23 | export async function getStaticPaths() {
24 | const polls = await prisma.poll.findMany({
25 | select: {
26 | id: true,
27 | },
28 | });
29 |
30 | return {
31 | paths: polls.map((poll) => ({
32 | params: {
33 | slug: poll.id,
34 | },
35 | })),
36 | fallback: true,
37 | };
38 | }
39 |
40 | export async function getStaticProps({ params }: any) {
41 | const poll = await prisma.poll.findUnique({
42 | where: {
43 | id: params.slug,
44 | },
45 | });
46 | const options = await prisma.option.findMany({
47 | where: {
48 | pollID: params.slug,
49 | },
50 | });
51 |
52 | if (poll) {
53 | return {
54 | props: {
55 | poll: JSON.parse(JSON.stringify(poll)),
56 | options: JSON.parse(JSON.stringify(options)),
57 | },
58 | revalidate: 2,
59 | };
60 | }
61 |
62 | return {
63 | redirect: {
64 | destination: "/",
65 | permanent: false,
66 | },
67 | };
68 | }
69 |
70 | export default function PollPage(props: Props) {
71 | const router = useRouter();
72 | const [hasVoted, setHasVoted] = useState(false);
73 | const [hasUpVoted, setHasUpVoted] = useState(false);
74 | const [upvotes, setUpvotes] = useState(props?.poll?.upvotes);
75 | useEffect(() => {
76 | setHasUpVoted(checkForUpVote(props?.poll?.id));
77 | setHasVoted(checkForVote(props?.poll?.id));
78 | }, [props?.poll?.id]);
79 | const addVote = (id: number, pollId: string) => {
80 | if (hasVoted !== true) {
81 | addNewVote(pollId);
82 | let toastId;
83 | toastId = toast.loading("Adding your vote...");
84 | try {
85 | Promise.all([
86 | axios.post("/api/vote", {
87 | id: id,
88 | }),
89 | axios.post("/api/votes", {
90 | id: pollId,
91 | }),
92 | ]);
93 | toast.success("Your vote has been added!", {
94 | id: toastId,
95 | });
96 | setHasVoted(true);
97 | router.push(`/poll/results/${pollId}`);
98 | } catch (error) {
99 | toast.error("Something went wrong...", {
100 | id: toastId,
101 | });
102 | }
103 | } else {
104 | toast.error("You have already voted for this poll!");
105 | }
106 | };
107 |
108 | const addUpVote = (pollId: string) => {
109 | if (hasUpVoted !== true) {
110 | addNewUpVote(pollId);
111 | let toastId;
112 | toastId = toast.loading("Adding your upvote...");
113 | try {
114 | axios.post("/api/upvote", {
115 | id: pollId,
116 | });
117 | toast.success("Your upvote has been added!", {
118 | id: toastId,
119 | });
120 | setUpvotes(upvotes + 1);
121 | setHasUpVoted(true);
122 | } catch (error) {
123 | toast.error("Something went wrong...", {
124 | id: toastId,
125 | });
126 | }
127 | } else {
128 | toast.error("You have already upvoted this poll!");
129 | }
130 | };
131 |
132 | if (router.isFallback) {
133 | return (
134 |
135 | Loading...
136 |
137 | );
138 | }
139 |
140 | return (
141 |
142 |
152 |
153 |
154 | {props?.poll?.title}{" "}
155 |
156 | {props?.poll?.visibility}
157 |
158 |
159 |
160 | {props?.options?.map((option: Option) => {
161 | return (
162 | addVote(option.id, option.pollID)}
164 | className="flex duration-300 relative justify-between text-gray-700 items-center rounded bg-green-300 hover:ring-2 ring-green-400 cursor-pointer px-4 py-2 w-full h-full shadow-md"
165 | key={option.id}
166 | >
167 |
168 | {option.number}.
169 |
170 |
171 | {option.text}
172 |
173 |
174 | );
175 | })}
176 |
177 |
178 | {hasVoted === true && (
179 | <>
180 |
router.push(`/poll/results/${props?.poll?.id}`)}
183 | >
184 | view results
185 |
186 | {" | "}
187 | >
188 | )}
189 |
addUpVote(props?.poll?.id)}
192 | >
193 | {upvotes}△{" "}
194 |
195 | upvote
196 |
197 |
198 |
199 |
200 |
201 | created by
202 | {" "}
203 | {props?.poll?.createdBy}
204 | {" | "}
205 |
206 | created on
207 | {" "}
208 | {new Date(props?.poll?.createdAt).toLocaleDateString()}{" "}
209 | {new Date(props?.poll?.createdAt).toLocaleTimeString()}
210 |
211 |
212 |
213 |
214 | );
215 | }
216 |
--------------------------------------------------------------------------------
/pages/poll/results/[slug].tsx:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from "@prisma/client";
2 | import { Props } from "../[slug]";
3 | import { Option } from "@prisma/client";
4 | import SiteFooter from "../../../components/footer";
5 | import Link from "next/link";
6 | import { useRouter } from "next/router";
7 | import { useState, useEffect } from "react";
8 | import { checkForVote } from "../../../lib/checkForVote";
9 |
10 | const prisma = new PrismaClient();
11 |
12 | export async function getStaticPaths() {
13 | const polls = await prisma.poll.findMany({
14 | select: {
15 | id: true,
16 | },
17 | });
18 |
19 | return {
20 | paths: polls.map((poll) => ({
21 | params: {
22 | slug: poll.id,
23 | },
24 | })),
25 | fallback: true,
26 | };
27 | }
28 |
29 | export async function getStaticProps({ params }: any) {
30 | const poll = await prisma.poll.findUnique({
31 | where: {
32 | id: params.slug,
33 | },
34 | });
35 | const options = await prisma.option.findMany({
36 | where: {
37 | pollID: params.slug,
38 | },
39 | });
40 |
41 | if (poll) {
42 | return {
43 | props: {
44 | poll: JSON.parse(JSON.stringify(poll)),
45 | options: JSON.parse(JSON.stringify(options)),
46 | },
47 | revalidate: 2,
48 | };
49 | }
50 |
51 | return {
52 | redirect: {
53 | destination: "/",
54 | permanent: false,
55 | },
56 | };
57 | }
58 |
59 | export default function Results({ poll, options }: Props) {
60 | const totalVotes = options?.reduce((acc, option) => {
61 | return acc + option.votes;
62 | }, 0);
63 | const [hasVoted, setHasVoted] = useState(false);
64 | const router = useRouter();
65 | useEffect(() => {
66 | setHasVoted(checkForVote(poll?.id));
67 | }, [poll?.id]);
68 | if (router.isFallback) {
69 | return (
70 |
71 | Loading...
72 |
73 | );
74 | }
75 | if (hasVoted === false) {
76 | return (
77 |
78 |
79 | You haven{`'`}t voted for this poll yet!
80 |
81 |
router.push(`/poll/${poll?.id}`)}
84 | >
85 | vote for poll #{poll?.id}
86 |
87 |
88 | );
89 | }
90 | return (
91 |
92 |
102 |
103 |
104 | {poll?.title}{" "}
105 |
106 | {poll?.visibility}
107 |
108 |
109 |
110 | {options?.map((option: Option) => {
111 | return (
112 |
113 |
117 | {option.votes} votes
118 |
119 |
131 |
132 | {option.number}.
133 |
134 |
135 | {option.text}
136 |
137 |
138 | {Math.round((100 * option.votes) / totalVotes)}%
139 |
140 |
141 |
142 | );
143 | })}
144 |
145 |
146 |
147 | created by
148 | {" "}
149 | {poll?.createdBy}
150 | {" | "}
151 |
152 | {poll?.upvotes === 1 ? "upvote" : "upvotes"}
153 | {" "}
154 | {poll?.upvotes}
155 | {" | "}
156 |
157 | created on
158 | {" "}
159 | {new Date(poll?.createdAt).toLocaleDateString()}{" "}
160 | {new Date(poll?.createdAt).toLocaleTimeString()}
161 |
162 |
163 |
164 |
165 | );
166 | }
167 |
--------------------------------------------------------------------------------
/pages/polls.tsx:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 | import { useEffect, useState } from "react";
3 | import { PrismaClient } from "@prisma/client";
4 | import { Poll } from "@prisma/client";
5 | import PollCard from "../components/pollCard";
6 | import SiteFooter from "../components/footer";
7 | import { getTheme, setTheme } from "../lib/theme";
8 | import { FiMoon, FiSun } from "react-icons/fi";
9 |
10 | const prisma = new PrismaClient();
11 |
12 | type Props = {
13 | pollsByUpvotes: Poll[];
14 | pollsByDate: Poll[];
15 | };
16 |
17 | async function getPolls() {
18 | const pollsByUpvotes = await prisma.poll.findMany({
19 | where: {
20 | visibility: "public",
21 | },
22 | orderBy: {
23 | upvotes: "desc",
24 | },
25 | });
26 | const pollsByDate = await prisma.poll.findMany({
27 | where: {
28 | visibility: "public",
29 | },
30 | orderBy: {
31 | createdAt: "desc",
32 | },
33 | });
34 | return {
35 | pollsByUpvotes,
36 | pollsByDate,
37 | };
38 | }
39 |
40 | export async function getServerSideProps() {
41 | const { pollsByUpvotes, pollsByDate } = await getPolls();
42 |
43 | return {
44 | props: {
45 | pollsByUpvotes: JSON.parse(JSON.stringify(pollsByUpvotes)),
46 | pollsByDate: JSON.parse(JSON.stringify(pollsByDate)),
47 | },
48 | };
49 | }
50 |
51 | export default function Polls(props: Props) {
52 | const [sortType, setSortType] = useState("upvotes");
53 | const [currentTheme, setCurrentTheme] = useState("light");
54 |
55 | useEffect(() => {
56 | setTheme(getTheme());
57 | setCurrentTheme(getTheme());
58 | document.body.classList.add(getTheme());
59 | }, [currentTheme]);
60 |
61 | function switchTheme() {
62 | if (currentTheme === "light") {
63 | setTheme("dark");
64 | setCurrentTheme("dark");
65 | document.body.classList.add("dark");
66 | } else {
67 | setTheme("light");
68 | setCurrentTheme("light");
69 | document.body.classList.remove("dark");
70 | }
71 | }
72 |
73 | const switchSortType = () => {
74 | console.log(sortType);
75 | if (sortType === "upvotes") {
76 | setSortType("date");
77 | } else {
78 | setSortType("upvotes");
79 | }
80 | };
81 |
82 | return (
83 |
84 |
88 | {currentTheme === "light" ? (
89 |
90 | ) : (
91 |
92 | )}
93 |
94 |
104 |
105 |
106 | Public Poll List
107 |
108 | switchSortType()}
111 | >
112 | Sort by upvotes
113 | Sort by date
114 |
115 |
116 |
117 | {sortType === "date"
118 | ? props?.pollsByDate.map((poll: Poll) => {
119 | return (
120 |
123 | );
124 | })
125 | : props?.pollsByUpvotes.map((poll: Poll) => {
126 | return (
127 |
130 | );
131 | })}
132 |
133 |
134 |
135 | );
136 | }
137 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@prisma/client': ^4.0.0
5 | '@tailwindcss/forms': ^0.5.2
6 | '@types/node': ^18.0.1
7 | '@types/react': ^18.0.14
8 | '@types/react-dom': ^18.0.5
9 | autoprefixer: ^10.4.7
10 | axios: ^0.27.2
11 | eslint: 8.19.0
12 | eslint-config-next: 12.2.0
13 | formik: ^2.2.9
14 | nanoid: ^4.0.0
15 | next: 12.2.0
16 | nprogress: ^0.2.0
17 | postcss: ^8.4.14
18 | prisma: ^4.0.0
19 | react: 18.2.0
20 | react-dom: 18.2.0
21 | react-hot-toast: ^2.2.0
22 | react-icons: ^4.4.0
23 | tailwindcss: ^3.1.4
24 | typescript: ^4.7.4
25 |
26 | dependencies:
27 | '@prisma/client': 4.0.0_prisma@4.0.0
28 | axios: 0.27.2
29 | formik: 2.2.9_react@18.2.0
30 | nanoid: 4.0.0
31 | next: 12.2.0_biqbaboplfbrettd7655fr4n2y
32 | nprogress: 0.2.0
33 | react: 18.2.0
34 | react-dom: 18.2.0_react@18.2.0
35 | react-hot-toast: 2.2.0_biqbaboplfbrettd7655fr4n2y
36 | react-icons: 4.4.0_react@18.2.0
37 |
38 | devDependencies:
39 | '@tailwindcss/forms': 0.5.2_tailwindcss@3.1.4
40 | '@types/node': 18.0.1
41 | '@types/react': 18.0.14
42 | '@types/react-dom': 18.0.5
43 | autoprefixer: 10.4.7_postcss@8.4.14
44 | eslint: 8.19.0
45 | eslint-config-next: 12.2.0_4x5o4skxv6sl53vpwefgt23khm
46 | postcss: 8.4.14
47 | prisma: 4.0.0
48 | tailwindcss: 3.1.4
49 | typescript: 4.7.4
50 |
51 | packages:
52 |
53 | /@babel/runtime-corejs3/7.18.6:
54 | resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
55 | engines: {node: '>=6.9.0'}
56 | dependencies:
57 | core-js-pure: 3.23.3
58 | regenerator-runtime: 0.13.9
59 | dev: true
60 |
61 | /@babel/runtime/7.18.6:
62 | resolution: {integrity: sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==}
63 | engines: {node: '>=6.9.0'}
64 | dependencies:
65 | regenerator-runtime: 0.13.9
66 | dev: true
67 |
68 | /@eslint/eslintrc/1.3.0:
69 | resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==}
70 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
71 | dependencies:
72 | ajv: 6.12.6
73 | debug: 4.3.4
74 | espree: 9.3.2
75 | globals: 13.15.0
76 | ignore: 5.2.0
77 | import-fresh: 3.3.0
78 | js-yaml: 4.1.0
79 | minimatch: 3.1.2
80 | strip-json-comments: 3.1.1
81 | transitivePeerDependencies:
82 | - supports-color
83 | dev: true
84 |
85 | /@humanwhocodes/config-array/0.9.5:
86 | resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==}
87 | engines: {node: '>=10.10.0'}
88 | dependencies:
89 | '@humanwhocodes/object-schema': 1.2.1
90 | debug: 4.3.4
91 | minimatch: 3.1.2
92 | transitivePeerDependencies:
93 | - supports-color
94 | dev: true
95 |
96 | /@humanwhocodes/object-schema/1.2.1:
97 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
98 | dev: true
99 |
100 | /@next/env/12.2.0:
101 | resolution: {integrity: sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==}
102 | dev: false
103 |
104 | /@next/eslint-plugin-next/12.2.0:
105 | resolution: {integrity: sha512-nIj5xV/z3dOfeBnE7qFAjUQZAi4pTlIMuusRM6s/T6lOz8x7mjY5s1ZkTUBmcjPVCb2VIv3CrMH0WZL6xfjZZg==}
106 | dependencies:
107 | glob: 7.1.7
108 | dev: true
109 |
110 | /@next/swc-android-arm-eabi/12.2.0:
111 | resolution: {integrity: sha512-hbneH8DNRB2x0Nf5fPCYoL8a0osvdTCe4pvOc9Rv5CpDsoOlf8BWBs2OWpeP0U2BktGvIsuUhmISmdYYGyrvTw==}
112 | engines: {node: '>= 10'}
113 | cpu: [arm]
114 | os: [android]
115 | requiresBuild: true
116 | dev: false
117 | optional: true
118 |
119 | /@next/swc-android-arm64/12.2.0:
120 | resolution: {integrity: sha512-1eEk91JHjczcJomxJ8X0XaUeNcp5Lx1U2Ic7j15ouJ83oRX+3GIslOuabW2oPkSgXbHkThMClhirKpvG98kwZg==}
121 | engines: {node: '>= 10'}
122 | cpu: [arm64]
123 | os: [android]
124 | requiresBuild: true
125 | dev: false
126 | optional: true
127 |
128 | /@next/swc-darwin-arm64/12.2.0:
129 | resolution: {integrity: sha512-x5U5gJd7ZvrEtTFnBld9O2bUlX8opu7mIQUqRzj7KeWzBwPhrIzTTsQXAiNqsaMuaRPvyHBVW/5d/6g6+89Y8g==}
130 | engines: {node: '>= 10'}
131 | cpu: [arm64]
132 | os: [darwin]
133 | requiresBuild: true
134 | dev: false
135 | optional: true
136 |
137 | /@next/swc-darwin-x64/12.2.0:
138 | resolution: {integrity: sha512-iwMNFsrAPjfedjKDv9AXPAV16PWIomP3qw/FfPaxkDVRbUls7BNdofBLzkQmqxqWh93WrawLwaqyXpJuAaiwJA==}
139 | engines: {node: '>= 10'}
140 | cpu: [x64]
141 | os: [darwin]
142 | requiresBuild: true
143 | dev: false
144 | optional: true
145 |
146 | /@next/swc-freebsd-x64/12.2.0:
147 | resolution: {integrity: sha512-gRiAw8g3Akf6niTDLEm1Emfa7jXDjvaAj/crDO8hKASKA4Y1fS4kbi/tyWw5VtoFI4mUzRmCPmZ8eL0tBSG58A==}
148 | engines: {node: '>= 10'}
149 | cpu: [x64]
150 | os: [freebsd]
151 | requiresBuild: true
152 | dev: false
153 | optional: true
154 |
155 | /@next/swc-linux-arm-gnueabihf/12.2.0:
156 | resolution: {integrity: sha512-/TJZkxaIpeEwnXh6A40trgwd40C5+LJroLUOEQwMOJdavLl62PjCA6dGl1pgooWLCIb5YdBQ0EG4ylzvLwS2+Q==}
157 | engines: {node: '>= 10'}
158 | cpu: [arm]
159 | os: [linux]
160 | requiresBuild: true
161 | dev: false
162 | optional: true
163 |
164 | /@next/swc-linux-arm64-gnu/12.2.0:
165 | resolution: {integrity: sha512-++WAB4ElXCSOKG9H8r4ENF8EaV+w0QkrpjehmryFkQXmt5juVXz+nKDVlCRMwJU7A1O0Mie82XyEoOrf6Np1pA==}
166 | engines: {node: '>= 10'}
167 | cpu: [arm64]
168 | os: [linux]
169 | requiresBuild: true
170 | dev: false
171 | optional: true
172 |
173 | /@next/swc-linux-arm64-musl/12.2.0:
174 | resolution: {integrity: sha512-XrqkHi/VglEn5zs2CYK6ofJGQySrd+Lr4YdmfJ7IhsCnMKkQY1ma9Hv5THwhZVof3e+6oFHrQ9bWrw9K4WTjFA==}
175 | engines: {node: '>= 10'}
176 | cpu: [arm64]
177 | os: [linux]
178 | requiresBuild: true
179 | dev: false
180 | optional: true
181 |
182 | /@next/swc-linux-x64-gnu/12.2.0:
183 | resolution: {integrity: sha512-MyhHbAKVjpn065WzRbqpLu2krj4kHLi6RITQdD1ee+uxq9r2yg5Qe02l24NxKW+1/lkmpusl4Y5Lks7rBiJn4w==}
184 | engines: {node: '>= 10'}
185 | cpu: [x64]
186 | os: [linux]
187 | requiresBuild: true
188 | dev: false
189 | optional: true
190 |
191 | /@next/swc-linux-x64-musl/12.2.0:
192 | resolution: {integrity: sha512-Tz1tJZ5egE0S/UqCd5V6ZPJsdSzv/8aa7FkwFmIJ9neLS8/00za+OY5pq470iZQbPrkTwpKzmfTTIPRVD5iqDg==}
193 | engines: {node: '>= 10'}
194 | cpu: [x64]
195 | os: [linux]
196 | requiresBuild: true
197 | dev: false
198 | optional: true
199 |
200 | /@next/swc-win32-arm64-msvc/12.2.0:
201 | resolution: {integrity: sha512-0iRO/CPMCdCYUzuH6wXLnsfJX1ykBX4emOOvH0qIgtiZM0nVYbF8lkEyY2ph4XcsurpinS+ziWuYCXVqrOSqiw==}
202 | engines: {node: '>= 10'}
203 | cpu: [arm64]
204 | os: [win32]
205 | requiresBuild: true
206 | dev: false
207 | optional: true
208 |
209 | /@next/swc-win32-ia32-msvc/12.2.0:
210 | resolution: {integrity: sha512-8A26RJVcJHwIKm8xo/qk2ePRquJ6WCI2keV2qOW/Qm+ZXrPXHMIWPYABae/nKN243YFBNyPiHytjX37VrcpUhg==}
211 | engines: {node: '>= 10'}
212 | cpu: [ia32]
213 | os: [win32]
214 | requiresBuild: true
215 | dev: false
216 | optional: true
217 |
218 | /@next/swc-win32-x64-msvc/12.2.0:
219 | resolution: {integrity: sha512-OI14ozFLThEV3ey6jE47zrzSTV/6eIMsvbwozo+XfdWqOPwQ7X00YkRx4GVMKMC0rM44oGS2gmwMKYpe4EblnA==}
220 | engines: {node: '>= 10'}
221 | cpu: [x64]
222 | os: [win32]
223 | requiresBuild: true
224 | dev: false
225 | optional: true
226 |
227 | /@nodelib/fs.scandir/2.1.5:
228 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
229 | engines: {node: '>= 8'}
230 | dependencies:
231 | '@nodelib/fs.stat': 2.0.5
232 | run-parallel: 1.2.0
233 | dev: true
234 |
235 | /@nodelib/fs.stat/2.0.5:
236 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
237 | engines: {node: '>= 8'}
238 | dev: true
239 |
240 | /@nodelib/fs.walk/1.2.8:
241 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
242 | engines: {node: '>= 8'}
243 | dependencies:
244 | '@nodelib/fs.scandir': 2.1.5
245 | fastq: 1.13.0
246 | dev: true
247 |
248 | /@prisma/client/4.0.0_prisma@4.0.0:
249 | resolution: {integrity: sha512-g1h2OGoRo7anBVQ9Cw3gsbjwPtvf7i0pkGxKeZICtwkvE5CZXW+xZF4FZdmrViYkKaAShbISL0teNpu9ecpf4g==}
250 | engines: {node: '>=14.17'}
251 | requiresBuild: true
252 | peerDependencies:
253 | prisma: '*'
254 | peerDependenciesMeta:
255 | prisma:
256 | optional: true
257 | dependencies:
258 | '@prisma/engines-version': 3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11
259 | prisma: 4.0.0
260 | dev: false
261 |
262 | /@prisma/engines-version/3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11:
263 | resolution: {integrity: sha512-PiZhdD624SrYEjyLboI0X7OugNbxUzDJx9v/6ldTKuqNDVUCmRH/Z00XwDi/dgM4FlqOSO+YiUsSiSKjxxG8cw==}
264 | dev: false
265 |
266 | /@prisma/engines/3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11:
267 | resolution: {integrity: sha512-u/rG4lDHALolWBLr3yebZ+N2qImp3SDMcu7bHNJuRDaYvYEXy/MqfNRNEgd9GoPsXL3gofYf0VzJf2AmCG3YVw==}
268 | requiresBuild: true
269 |
270 | /@rushstack/eslint-patch/1.1.4:
271 | resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==}
272 | dev: true
273 |
274 | /@swc/helpers/0.4.2:
275 | resolution: {integrity: sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==}
276 | dependencies:
277 | tslib: 2.4.0
278 | dev: false
279 |
280 | /@tailwindcss/forms/0.5.2_tailwindcss@3.1.4:
281 | resolution: {integrity: sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w==}
282 | peerDependencies:
283 | tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
284 | dependencies:
285 | mini-svg-data-uri: 1.4.4
286 | tailwindcss: 3.1.4
287 | dev: true
288 |
289 | /@types/json5/0.0.29:
290 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
291 | dev: true
292 |
293 | /@types/node/18.0.1:
294 | resolution: {integrity: sha512-CmR8+Tsy95hhwtZBKJBs0/FFq4XX7sDZHlGGf+0q+BRZfMbOTkzkj0AFAuTyXbObDIoanaBBW0+KEW+m3N16Wg==}
295 | dev: true
296 |
297 | /@types/prop-types/15.7.5:
298 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
299 | dev: true
300 |
301 | /@types/react-dom/18.0.5:
302 | resolution: {integrity: sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==}
303 | dependencies:
304 | '@types/react': 18.0.14
305 | dev: true
306 |
307 | /@types/react/18.0.14:
308 | resolution: {integrity: sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==}
309 | dependencies:
310 | '@types/prop-types': 15.7.5
311 | '@types/scheduler': 0.16.2
312 | csstype: 3.1.0
313 | dev: true
314 |
315 | /@types/scheduler/0.16.2:
316 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
317 | dev: true
318 |
319 | /@typescript-eslint/parser/5.30.3_4x5o4skxv6sl53vpwefgt23khm:
320 | resolution: {integrity: sha512-ddwGEPC3E49DduAUC8UThQafHRE5uc1NE8jdOgl+w8/NrYF50MJQNeD3u4JZrqAXdY9rJz0CdQ9HpNME20CzkA==}
321 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
322 | peerDependencies:
323 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
324 | typescript: '*'
325 | peerDependenciesMeta:
326 | typescript:
327 | optional: true
328 | dependencies:
329 | '@typescript-eslint/scope-manager': 5.30.3
330 | '@typescript-eslint/types': 5.30.3
331 | '@typescript-eslint/typescript-estree': 5.30.3_typescript@4.7.4
332 | debug: 4.3.4
333 | eslint: 8.19.0
334 | typescript: 4.7.4
335 | transitivePeerDependencies:
336 | - supports-color
337 | dev: true
338 |
339 | /@typescript-eslint/scope-manager/5.30.3:
340 | resolution: {integrity: sha512-yVJIIUXeo/vv6Alj6lKBvsqnRs5hcxUpN3Dg3aD9Zv6r7p6Nn106jJcr5rnpRHAReEb/aMI2RWrt3JmL17eCVA==}
341 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
342 | dependencies:
343 | '@typescript-eslint/types': 5.30.3
344 | '@typescript-eslint/visitor-keys': 5.30.3
345 | dev: true
346 |
347 | /@typescript-eslint/types/5.30.3:
348 | resolution: {integrity: sha512-vshU3pjSTgBPNgfd55JLYngHkXuwQP68fxYFUAg1Uq+JrR3xG/XjvL9Dmv28CpOERtqwkaR4QQ3mD0NLZcE2Xw==}
349 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
350 | dev: true
351 |
352 | /@typescript-eslint/typescript-estree/5.30.3_typescript@4.7.4:
353 | resolution: {integrity: sha512-jqVh5N9AJx6+7yRgoA+ZelAFrHezgI9pzI9giv7s84DDOmtpFwTgURcpICDHyz9x6vAeOu91iACZ4dBTVfzIyA==}
354 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
355 | peerDependencies:
356 | typescript: '*'
357 | peerDependenciesMeta:
358 | typescript:
359 | optional: true
360 | dependencies:
361 | '@typescript-eslint/types': 5.30.3
362 | '@typescript-eslint/visitor-keys': 5.30.3
363 | debug: 4.3.4
364 | globby: 11.1.0
365 | is-glob: 4.0.3
366 | semver: 7.3.7
367 | tsutils: 3.21.0_typescript@4.7.4
368 | typescript: 4.7.4
369 | transitivePeerDependencies:
370 | - supports-color
371 | dev: true
372 |
373 | /@typescript-eslint/visitor-keys/5.30.3:
374 | resolution: {integrity: sha512-ep2xtHOhnSRt6fDP9DSSxrA/FqZhdMF7/Y9fYsxrKss2uWJMbzJyBJ/We1fKc786BJ10pHwrzUlhvpz8i7XzBg==}
375 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
376 | dependencies:
377 | '@typescript-eslint/types': 5.30.3
378 | eslint-visitor-keys: 3.3.0
379 | dev: true
380 |
381 | /acorn-jsx/5.3.2_acorn@8.7.1:
382 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
383 | peerDependencies:
384 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
385 | dependencies:
386 | acorn: 8.7.1
387 | dev: true
388 |
389 | /acorn-node/1.8.2:
390 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==}
391 | dependencies:
392 | acorn: 7.4.1
393 | acorn-walk: 7.2.0
394 | xtend: 4.0.2
395 | dev: true
396 |
397 | /acorn-walk/7.2.0:
398 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
399 | engines: {node: '>=0.4.0'}
400 | dev: true
401 |
402 | /acorn/7.4.1:
403 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
404 | engines: {node: '>=0.4.0'}
405 | hasBin: true
406 | dev: true
407 |
408 | /acorn/8.7.1:
409 | resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==}
410 | engines: {node: '>=0.4.0'}
411 | hasBin: true
412 | dev: true
413 |
414 | /ajv/6.12.6:
415 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
416 | dependencies:
417 | fast-deep-equal: 3.1.3
418 | fast-json-stable-stringify: 2.1.0
419 | json-schema-traverse: 0.4.1
420 | uri-js: 4.4.1
421 | dev: true
422 |
423 | /ansi-regex/5.0.1:
424 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
425 | engines: {node: '>=8'}
426 | dev: true
427 |
428 | /ansi-styles/4.3.0:
429 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
430 | engines: {node: '>=8'}
431 | dependencies:
432 | color-convert: 2.0.1
433 | dev: true
434 |
435 | /anymatch/3.1.2:
436 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
437 | engines: {node: '>= 8'}
438 | dependencies:
439 | normalize-path: 3.0.0
440 | picomatch: 2.3.1
441 | dev: true
442 |
443 | /arg/5.0.2:
444 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
445 | dev: true
446 |
447 | /argparse/2.0.1:
448 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
449 | dev: true
450 |
451 | /aria-query/4.2.2:
452 | resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==}
453 | engines: {node: '>=6.0'}
454 | dependencies:
455 | '@babel/runtime': 7.18.6
456 | '@babel/runtime-corejs3': 7.18.6
457 | dev: true
458 |
459 | /array-includes/3.1.5:
460 | resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==}
461 | engines: {node: '>= 0.4'}
462 | dependencies:
463 | call-bind: 1.0.2
464 | define-properties: 1.1.4
465 | es-abstract: 1.20.1
466 | get-intrinsic: 1.1.2
467 | is-string: 1.0.7
468 | dev: true
469 |
470 | /array-union/2.1.0:
471 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
472 | engines: {node: '>=8'}
473 | dev: true
474 |
475 | /array.prototype.flat/1.3.0:
476 | resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==}
477 | engines: {node: '>= 0.4'}
478 | dependencies:
479 | call-bind: 1.0.2
480 | define-properties: 1.1.4
481 | es-abstract: 1.20.1
482 | es-shim-unscopables: 1.0.0
483 | dev: true
484 |
485 | /array.prototype.flatmap/1.3.0:
486 | resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==}
487 | engines: {node: '>= 0.4'}
488 | dependencies:
489 | call-bind: 1.0.2
490 | define-properties: 1.1.4
491 | es-abstract: 1.20.1
492 | es-shim-unscopables: 1.0.0
493 | dev: true
494 |
495 | /ast-types-flow/0.0.7:
496 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
497 | dev: true
498 |
499 | /asynckit/0.4.0:
500 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
501 | dev: false
502 |
503 | /autoprefixer/10.4.7_postcss@8.4.14:
504 | resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==}
505 | engines: {node: ^10 || ^12 || >=14}
506 | hasBin: true
507 | peerDependencies:
508 | postcss: ^8.1.0
509 | dependencies:
510 | browserslist: 4.21.1
511 | caniuse-lite: 1.0.30001361
512 | fraction.js: 4.2.0
513 | normalize-range: 0.1.2
514 | picocolors: 1.0.0
515 | postcss: 8.4.14
516 | postcss-value-parser: 4.2.0
517 | dev: true
518 |
519 | /axe-core/4.4.2:
520 | resolution: {integrity: sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==}
521 | engines: {node: '>=12'}
522 | dev: true
523 |
524 | /axios/0.27.2:
525 | resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
526 | dependencies:
527 | follow-redirects: 1.15.1
528 | form-data: 4.0.0
529 | transitivePeerDependencies:
530 | - debug
531 | dev: false
532 |
533 | /axobject-query/2.2.0:
534 | resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==}
535 | dev: true
536 |
537 | /balanced-match/1.0.2:
538 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
539 | dev: true
540 |
541 | /binary-extensions/2.2.0:
542 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
543 | engines: {node: '>=8'}
544 | dev: true
545 |
546 | /brace-expansion/1.1.11:
547 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
548 | dependencies:
549 | balanced-match: 1.0.2
550 | concat-map: 0.0.1
551 | dev: true
552 |
553 | /braces/3.0.2:
554 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
555 | engines: {node: '>=8'}
556 | dependencies:
557 | fill-range: 7.0.1
558 | dev: true
559 |
560 | /browserslist/4.21.1:
561 | resolution: {integrity: sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==}
562 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
563 | hasBin: true
564 | dependencies:
565 | caniuse-lite: 1.0.30001361
566 | electron-to-chromium: 1.4.177
567 | node-releases: 2.0.5
568 | update-browserslist-db: 1.0.4_browserslist@4.21.1
569 | dev: true
570 |
571 | /call-bind/1.0.2:
572 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
573 | dependencies:
574 | function-bind: 1.1.1
575 | get-intrinsic: 1.1.2
576 | dev: true
577 |
578 | /callsites/3.1.0:
579 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
580 | engines: {node: '>=6'}
581 | dev: true
582 |
583 | /camelcase-css/2.0.1:
584 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
585 | engines: {node: '>= 6'}
586 | dev: true
587 |
588 | /caniuse-lite/1.0.30001361:
589 | resolution: {integrity: sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==}
590 |
591 | /chalk/4.1.2:
592 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
593 | engines: {node: '>=10'}
594 | dependencies:
595 | ansi-styles: 4.3.0
596 | supports-color: 7.2.0
597 | dev: true
598 |
599 | /chokidar/3.5.3:
600 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
601 | engines: {node: '>= 8.10.0'}
602 | dependencies:
603 | anymatch: 3.1.2
604 | braces: 3.0.2
605 | glob-parent: 5.1.2
606 | is-binary-path: 2.1.0
607 | is-glob: 4.0.3
608 | normalize-path: 3.0.0
609 | readdirp: 3.6.0
610 | optionalDependencies:
611 | fsevents: 2.3.2
612 | dev: true
613 |
614 | /color-convert/2.0.1:
615 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
616 | engines: {node: '>=7.0.0'}
617 | dependencies:
618 | color-name: 1.1.4
619 | dev: true
620 |
621 | /color-name/1.1.4:
622 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
623 | dev: true
624 |
625 | /combined-stream/1.0.8:
626 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
627 | engines: {node: '>= 0.8'}
628 | dependencies:
629 | delayed-stream: 1.0.0
630 | dev: false
631 |
632 | /concat-map/0.0.1:
633 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
634 | dev: true
635 |
636 | /core-js-pure/3.23.3:
637 | resolution: {integrity: sha512-XpoouuqIj4P+GWtdyV8ZO3/u4KftkeDVMfvp+308eGMhCrA3lVDSmAxO0c6GGOcmgVlaKDrgWVMo49h2ab/TDA==}
638 | requiresBuild: true
639 | dev: true
640 |
641 | /cross-spawn/7.0.3:
642 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
643 | engines: {node: '>= 8'}
644 | dependencies:
645 | path-key: 3.1.1
646 | shebang-command: 2.0.0
647 | which: 2.0.2
648 | dev: true
649 |
650 | /cssesc/3.0.0:
651 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
652 | engines: {node: '>=4'}
653 | hasBin: true
654 | dev: true
655 |
656 | /csstype/3.1.0:
657 | resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==}
658 | dev: true
659 |
660 | /damerau-levenshtein/1.0.8:
661 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
662 | dev: true
663 |
664 | /debug/2.6.9:
665 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
666 | peerDependencies:
667 | supports-color: '*'
668 | peerDependenciesMeta:
669 | supports-color:
670 | optional: true
671 | dependencies:
672 | ms: 2.0.0
673 | dev: true
674 |
675 | /debug/3.2.7:
676 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
677 | peerDependencies:
678 | supports-color: '*'
679 | peerDependenciesMeta:
680 | supports-color:
681 | optional: true
682 | dependencies:
683 | ms: 2.1.3
684 | dev: true
685 |
686 | /debug/4.3.4:
687 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
688 | engines: {node: '>=6.0'}
689 | peerDependencies:
690 | supports-color: '*'
691 | peerDependenciesMeta:
692 | supports-color:
693 | optional: true
694 | dependencies:
695 | ms: 2.1.2
696 | dev: true
697 |
698 | /deep-is/0.1.4:
699 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
700 | dev: true
701 |
702 | /deepmerge/2.2.1:
703 | resolution: {integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==}
704 | engines: {node: '>=0.10.0'}
705 | dev: false
706 |
707 | /define-properties/1.1.4:
708 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
709 | engines: {node: '>= 0.4'}
710 | dependencies:
711 | has-property-descriptors: 1.0.0
712 | object-keys: 1.1.1
713 | dev: true
714 |
715 | /defined/1.0.0:
716 | resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==}
717 | dev: true
718 |
719 | /delayed-stream/1.0.0:
720 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
721 | engines: {node: '>=0.4.0'}
722 | dev: false
723 |
724 | /detective/5.2.1:
725 | resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==}
726 | engines: {node: '>=0.8.0'}
727 | hasBin: true
728 | dependencies:
729 | acorn-node: 1.8.2
730 | defined: 1.0.0
731 | minimist: 1.2.6
732 | dev: true
733 |
734 | /didyoumean/1.2.2:
735 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
736 | dev: true
737 |
738 | /dir-glob/3.0.1:
739 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
740 | engines: {node: '>=8'}
741 | dependencies:
742 | path-type: 4.0.0
743 | dev: true
744 |
745 | /dlv/1.1.3:
746 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
747 | dev: true
748 |
749 | /doctrine/2.1.0:
750 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
751 | engines: {node: '>=0.10.0'}
752 | dependencies:
753 | esutils: 2.0.3
754 | dev: true
755 |
756 | /doctrine/3.0.0:
757 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
758 | engines: {node: '>=6.0.0'}
759 | dependencies:
760 | esutils: 2.0.3
761 | dev: true
762 |
763 | /electron-to-chromium/1.4.177:
764 | resolution: {integrity: sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg==}
765 | dev: true
766 |
767 | /emoji-regex/9.2.2:
768 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
769 | dev: true
770 |
771 | /es-abstract/1.20.1:
772 | resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==}
773 | engines: {node: '>= 0.4'}
774 | dependencies:
775 | call-bind: 1.0.2
776 | es-to-primitive: 1.2.1
777 | function-bind: 1.1.1
778 | function.prototype.name: 1.1.5
779 | get-intrinsic: 1.1.2
780 | get-symbol-description: 1.0.0
781 | has: 1.0.3
782 | has-property-descriptors: 1.0.0
783 | has-symbols: 1.0.3
784 | internal-slot: 1.0.3
785 | is-callable: 1.2.4
786 | is-negative-zero: 2.0.2
787 | is-regex: 1.1.4
788 | is-shared-array-buffer: 1.0.2
789 | is-string: 1.0.7
790 | is-weakref: 1.0.2
791 | object-inspect: 1.12.2
792 | object-keys: 1.1.1
793 | object.assign: 4.1.2
794 | regexp.prototype.flags: 1.4.3
795 | string.prototype.trimend: 1.0.5
796 | string.prototype.trimstart: 1.0.5
797 | unbox-primitive: 1.0.2
798 | dev: true
799 |
800 | /es-shim-unscopables/1.0.0:
801 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
802 | dependencies:
803 | has: 1.0.3
804 | dev: true
805 |
806 | /es-to-primitive/1.2.1:
807 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
808 | engines: {node: '>= 0.4'}
809 | dependencies:
810 | is-callable: 1.2.4
811 | is-date-object: 1.0.5
812 | is-symbol: 1.0.4
813 | dev: true
814 |
815 | /escalade/3.1.1:
816 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
817 | engines: {node: '>=6'}
818 | dev: true
819 |
820 | /escape-string-regexp/4.0.0:
821 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
822 | engines: {node: '>=10'}
823 | dev: true
824 |
825 | /eslint-config-next/12.2.0_4x5o4skxv6sl53vpwefgt23khm:
826 | resolution: {integrity: sha512-QWzNegadFXjQ0h3hixnLacRM9Kot85vQefyNsA8IeOnERZMz0Gvays1W6DMCjSxJbnCwuWaMXj9DCpar5IahRA==}
827 | peerDependencies:
828 | eslint: ^7.23.0 || ^8.0.0
829 | typescript: '>=3.3.1'
830 | peerDependenciesMeta:
831 | typescript:
832 | optional: true
833 | dependencies:
834 | '@next/eslint-plugin-next': 12.2.0
835 | '@rushstack/eslint-patch': 1.1.4
836 | '@typescript-eslint/parser': 5.30.3_4x5o4skxv6sl53vpwefgt23khm
837 | eslint: 8.19.0
838 | eslint-import-resolver-node: 0.3.6
839 | eslint-import-resolver-typescript: 2.7.1_q2xwze32dd33a2fc2qubwr4ie4
840 | eslint-plugin-import: 2.26.0_lpr6b4f57sykalm7s3cchxuzae
841 | eslint-plugin-jsx-a11y: 6.6.0_eslint@8.19.0
842 | eslint-plugin-react: 7.30.1_eslint@8.19.0
843 | eslint-plugin-react-hooks: 4.6.0_eslint@8.19.0
844 | typescript: 4.7.4
845 | transitivePeerDependencies:
846 | - eslint-import-resolver-webpack
847 | - supports-color
848 | dev: true
849 |
850 | /eslint-import-resolver-node/0.3.6:
851 | resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==}
852 | dependencies:
853 | debug: 3.2.7
854 | resolve: 1.22.1
855 | transitivePeerDependencies:
856 | - supports-color
857 | dev: true
858 |
859 | /eslint-import-resolver-typescript/2.7.1_q2xwze32dd33a2fc2qubwr4ie4:
860 | resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
861 | engines: {node: '>=4'}
862 | peerDependencies:
863 | eslint: '*'
864 | eslint-plugin-import: '*'
865 | dependencies:
866 | debug: 4.3.4
867 | eslint: 8.19.0
868 | eslint-plugin-import: 2.26.0_lpr6b4f57sykalm7s3cchxuzae
869 | glob: 7.2.3
870 | is-glob: 4.0.3
871 | resolve: 1.22.1
872 | tsconfig-paths: 3.14.1
873 | transitivePeerDependencies:
874 | - supports-color
875 | dev: true
876 |
877 | /eslint-module-utils/2.7.3_rtb5dxpn5xly2nzth5ytfc22ia:
878 | resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
879 | engines: {node: '>=4'}
880 | peerDependencies:
881 | '@typescript-eslint/parser': '*'
882 | eslint-import-resolver-node: '*'
883 | eslint-import-resolver-typescript: '*'
884 | eslint-import-resolver-webpack: '*'
885 | peerDependenciesMeta:
886 | '@typescript-eslint/parser':
887 | optional: true
888 | eslint-import-resolver-node:
889 | optional: true
890 | eslint-import-resolver-typescript:
891 | optional: true
892 | eslint-import-resolver-webpack:
893 | optional: true
894 | dependencies:
895 | '@typescript-eslint/parser': 5.30.3_4x5o4skxv6sl53vpwefgt23khm
896 | debug: 3.2.7
897 | eslint-import-resolver-node: 0.3.6
898 | eslint-import-resolver-typescript: 2.7.1_q2xwze32dd33a2fc2qubwr4ie4
899 | find-up: 2.1.0
900 | transitivePeerDependencies:
901 | - supports-color
902 | dev: true
903 |
904 | /eslint-plugin-import/2.26.0_lpr6b4f57sykalm7s3cchxuzae:
905 | resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
906 | engines: {node: '>=4'}
907 | peerDependencies:
908 | '@typescript-eslint/parser': '*'
909 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
910 | peerDependenciesMeta:
911 | '@typescript-eslint/parser':
912 | optional: true
913 | dependencies:
914 | '@typescript-eslint/parser': 5.30.3_4x5o4skxv6sl53vpwefgt23khm
915 | array-includes: 3.1.5
916 | array.prototype.flat: 1.3.0
917 | debug: 2.6.9
918 | doctrine: 2.1.0
919 | eslint: 8.19.0
920 | eslint-import-resolver-node: 0.3.6
921 | eslint-module-utils: 2.7.3_rtb5dxpn5xly2nzth5ytfc22ia
922 | has: 1.0.3
923 | is-core-module: 2.9.0
924 | is-glob: 4.0.3
925 | minimatch: 3.1.2
926 | object.values: 1.1.5
927 | resolve: 1.22.1
928 | tsconfig-paths: 3.14.1
929 | transitivePeerDependencies:
930 | - eslint-import-resolver-typescript
931 | - eslint-import-resolver-webpack
932 | - supports-color
933 | dev: true
934 |
935 | /eslint-plugin-jsx-a11y/6.6.0_eslint@8.19.0:
936 | resolution: {integrity: sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==}
937 | engines: {node: '>=4.0'}
938 | peerDependencies:
939 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
940 | dependencies:
941 | '@babel/runtime': 7.18.6
942 | aria-query: 4.2.2
943 | array-includes: 3.1.5
944 | ast-types-flow: 0.0.7
945 | axe-core: 4.4.2
946 | axobject-query: 2.2.0
947 | damerau-levenshtein: 1.0.8
948 | emoji-regex: 9.2.2
949 | eslint: 8.19.0
950 | has: 1.0.3
951 | jsx-ast-utils: 3.3.1
952 | language-tags: 1.0.5
953 | minimatch: 3.1.2
954 | semver: 6.3.0
955 | dev: true
956 |
957 | /eslint-plugin-react-hooks/4.6.0_eslint@8.19.0:
958 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
959 | engines: {node: '>=10'}
960 | peerDependencies:
961 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
962 | dependencies:
963 | eslint: 8.19.0
964 | dev: true
965 |
966 | /eslint-plugin-react/7.30.1_eslint@8.19.0:
967 | resolution: {integrity: sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==}
968 | engines: {node: '>=4'}
969 | peerDependencies:
970 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
971 | dependencies:
972 | array-includes: 3.1.5
973 | array.prototype.flatmap: 1.3.0
974 | doctrine: 2.1.0
975 | eslint: 8.19.0
976 | estraverse: 5.3.0
977 | jsx-ast-utils: 3.3.1
978 | minimatch: 3.1.2
979 | object.entries: 1.1.5
980 | object.fromentries: 2.0.5
981 | object.hasown: 1.1.1
982 | object.values: 1.1.5
983 | prop-types: 15.8.1
984 | resolve: 2.0.0-next.4
985 | semver: 6.3.0
986 | string.prototype.matchall: 4.0.7
987 | dev: true
988 |
989 | /eslint-scope/7.1.1:
990 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
991 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
992 | dependencies:
993 | esrecurse: 4.3.0
994 | estraverse: 5.3.0
995 | dev: true
996 |
997 | /eslint-utils/3.0.0_eslint@8.19.0:
998 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
999 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
1000 | peerDependencies:
1001 | eslint: '>=5'
1002 | dependencies:
1003 | eslint: 8.19.0
1004 | eslint-visitor-keys: 2.1.0
1005 | dev: true
1006 |
1007 | /eslint-visitor-keys/2.1.0:
1008 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
1009 | engines: {node: '>=10'}
1010 | dev: true
1011 |
1012 | /eslint-visitor-keys/3.3.0:
1013 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
1014 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1015 | dev: true
1016 |
1017 | /eslint/8.19.0:
1018 | resolution: {integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==}
1019 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1020 | hasBin: true
1021 | dependencies:
1022 | '@eslint/eslintrc': 1.3.0
1023 | '@humanwhocodes/config-array': 0.9.5
1024 | ajv: 6.12.6
1025 | chalk: 4.1.2
1026 | cross-spawn: 7.0.3
1027 | debug: 4.3.4
1028 | doctrine: 3.0.0
1029 | escape-string-regexp: 4.0.0
1030 | eslint-scope: 7.1.1
1031 | eslint-utils: 3.0.0_eslint@8.19.0
1032 | eslint-visitor-keys: 3.3.0
1033 | espree: 9.3.2
1034 | esquery: 1.4.0
1035 | esutils: 2.0.3
1036 | fast-deep-equal: 3.1.3
1037 | file-entry-cache: 6.0.1
1038 | functional-red-black-tree: 1.0.1
1039 | glob-parent: 6.0.2
1040 | globals: 13.15.0
1041 | ignore: 5.2.0
1042 | import-fresh: 3.3.0
1043 | imurmurhash: 0.1.4
1044 | is-glob: 4.0.3
1045 | js-yaml: 4.1.0
1046 | json-stable-stringify-without-jsonify: 1.0.1
1047 | levn: 0.4.1
1048 | lodash.merge: 4.6.2
1049 | minimatch: 3.1.2
1050 | natural-compare: 1.4.0
1051 | optionator: 0.9.1
1052 | regexpp: 3.2.0
1053 | strip-ansi: 6.0.1
1054 | strip-json-comments: 3.1.1
1055 | text-table: 0.2.0
1056 | v8-compile-cache: 2.3.0
1057 | transitivePeerDependencies:
1058 | - supports-color
1059 | dev: true
1060 |
1061 | /espree/9.3.2:
1062 | resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==}
1063 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1064 | dependencies:
1065 | acorn: 8.7.1
1066 | acorn-jsx: 5.3.2_acorn@8.7.1
1067 | eslint-visitor-keys: 3.3.0
1068 | dev: true
1069 |
1070 | /esquery/1.4.0:
1071 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
1072 | engines: {node: '>=0.10'}
1073 | dependencies:
1074 | estraverse: 5.3.0
1075 | dev: true
1076 |
1077 | /esrecurse/4.3.0:
1078 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1079 | engines: {node: '>=4.0'}
1080 | dependencies:
1081 | estraverse: 5.3.0
1082 | dev: true
1083 |
1084 | /estraverse/5.3.0:
1085 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1086 | engines: {node: '>=4.0'}
1087 | dev: true
1088 |
1089 | /esutils/2.0.3:
1090 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1091 | engines: {node: '>=0.10.0'}
1092 | dev: true
1093 |
1094 | /fast-deep-equal/3.1.3:
1095 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1096 | dev: true
1097 |
1098 | /fast-glob/3.2.11:
1099 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
1100 | engines: {node: '>=8.6.0'}
1101 | dependencies:
1102 | '@nodelib/fs.stat': 2.0.5
1103 | '@nodelib/fs.walk': 1.2.8
1104 | glob-parent: 5.1.2
1105 | merge2: 1.4.1
1106 | micromatch: 4.0.5
1107 | dev: true
1108 |
1109 | /fast-json-stable-stringify/2.1.0:
1110 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1111 | dev: true
1112 |
1113 | /fast-levenshtein/2.0.6:
1114 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1115 | dev: true
1116 |
1117 | /fastq/1.13.0:
1118 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
1119 | dependencies:
1120 | reusify: 1.0.4
1121 | dev: true
1122 |
1123 | /file-entry-cache/6.0.1:
1124 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1125 | engines: {node: ^10.12.0 || >=12.0.0}
1126 | dependencies:
1127 | flat-cache: 3.0.4
1128 | dev: true
1129 |
1130 | /fill-range/7.0.1:
1131 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1132 | engines: {node: '>=8'}
1133 | dependencies:
1134 | to-regex-range: 5.0.1
1135 | dev: true
1136 |
1137 | /find-up/2.1.0:
1138 | resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
1139 | engines: {node: '>=4'}
1140 | dependencies:
1141 | locate-path: 2.0.0
1142 | dev: true
1143 |
1144 | /flat-cache/3.0.4:
1145 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
1146 | engines: {node: ^10.12.0 || >=12.0.0}
1147 | dependencies:
1148 | flatted: 3.2.6
1149 | rimraf: 3.0.2
1150 | dev: true
1151 |
1152 | /flatted/3.2.6:
1153 | resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==}
1154 | dev: true
1155 |
1156 | /follow-redirects/1.15.1:
1157 | resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==}
1158 | engines: {node: '>=4.0'}
1159 | peerDependencies:
1160 | debug: '*'
1161 | peerDependenciesMeta:
1162 | debug:
1163 | optional: true
1164 | dev: false
1165 |
1166 | /form-data/4.0.0:
1167 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
1168 | engines: {node: '>= 6'}
1169 | dependencies:
1170 | asynckit: 0.4.0
1171 | combined-stream: 1.0.8
1172 | mime-types: 2.1.35
1173 | dev: false
1174 |
1175 | /formik/2.2.9_react@18.2.0:
1176 | resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==}
1177 | peerDependencies:
1178 | react: '>=16.8.0'
1179 | dependencies:
1180 | deepmerge: 2.2.1
1181 | hoist-non-react-statics: 3.3.2
1182 | lodash: 4.17.21
1183 | lodash-es: 4.17.21
1184 | react: 18.2.0
1185 | react-fast-compare: 2.0.4
1186 | tiny-warning: 1.0.3
1187 | tslib: 1.14.1
1188 | dev: false
1189 |
1190 | /fraction.js/4.2.0:
1191 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
1192 | dev: true
1193 |
1194 | /fs.realpath/1.0.0:
1195 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1196 | dev: true
1197 |
1198 | /fsevents/2.3.2:
1199 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1200 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1201 | os: [darwin]
1202 | requiresBuild: true
1203 | dev: true
1204 | optional: true
1205 |
1206 | /function-bind/1.1.1:
1207 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1208 | dev: true
1209 |
1210 | /function.prototype.name/1.1.5:
1211 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
1212 | engines: {node: '>= 0.4'}
1213 | dependencies:
1214 | call-bind: 1.0.2
1215 | define-properties: 1.1.4
1216 | es-abstract: 1.20.1
1217 | functions-have-names: 1.2.3
1218 | dev: true
1219 |
1220 | /functional-red-black-tree/1.0.1:
1221 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==}
1222 | dev: true
1223 |
1224 | /functions-have-names/1.2.3:
1225 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1226 | dev: true
1227 |
1228 | /get-intrinsic/1.1.2:
1229 | resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==}
1230 | dependencies:
1231 | function-bind: 1.1.1
1232 | has: 1.0.3
1233 | has-symbols: 1.0.3
1234 | dev: true
1235 |
1236 | /get-symbol-description/1.0.0:
1237 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
1238 | engines: {node: '>= 0.4'}
1239 | dependencies:
1240 | call-bind: 1.0.2
1241 | get-intrinsic: 1.1.2
1242 | dev: true
1243 |
1244 | /glob-parent/5.1.2:
1245 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1246 | engines: {node: '>= 6'}
1247 | dependencies:
1248 | is-glob: 4.0.3
1249 | dev: true
1250 |
1251 | /glob-parent/6.0.2:
1252 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1253 | engines: {node: '>=10.13.0'}
1254 | dependencies:
1255 | is-glob: 4.0.3
1256 | dev: true
1257 |
1258 | /glob/7.1.7:
1259 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
1260 | dependencies:
1261 | fs.realpath: 1.0.0
1262 | inflight: 1.0.6
1263 | inherits: 2.0.4
1264 | minimatch: 3.1.2
1265 | once: 1.4.0
1266 | path-is-absolute: 1.0.1
1267 | dev: true
1268 |
1269 | /glob/7.2.3:
1270 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1271 | dependencies:
1272 | fs.realpath: 1.0.0
1273 | inflight: 1.0.6
1274 | inherits: 2.0.4
1275 | minimatch: 3.1.2
1276 | once: 1.4.0
1277 | path-is-absolute: 1.0.1
1278 | dev: true
1279 |
1280 | /globals/13.15.0:
1281 | resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==}
1282 | engines: {node: '>=8'}
1283 | dependencies:
1284 | type-fest: 0.20.2
1285 | dev: true
1286 |
1287 | /globby/11.1.0:
1288 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1289 | engines: {node: '>=10'}
1290 | dependencies:
1291 | array-union: 2.1.0
1292 | dir-glob: 3.0.1
1293 | fast-glob: 3.2.11
1294 | ignore: 5.2.0
1295 | merge2: 1.4.1
1296 | slash: 3.0.0
1297 | dev: true
1298 |
1299 | /goober/2.1.10:
1300 | resolution: {integrity: sha512-7PpuQMH10jaTWm33sQgBQvz45pHR8N4l3Cu3WMGEWmHShAcTuuP7I+5/DwKo39fwti5A80WAjvqgz6SSlgWmGA==}
1301 | peerDependencies:
1302 | csstype: ^3.0.10
1303 | dev: false
1304 |
1305 | /has-bigints/1.0.2:
1306 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
1307 | dev: true
1308 |
1309 | /has-flag/4.0.0:
1310 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1311 | engines: {node: '>=8'}
1312 | dev: true
1313 |
1314 | /has-property-descriptors/1.0.0:
1315 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
1316 | dependencies:
1317 | get-intrinsic: 1.1.2
1318 | dev: true
1319 |
1320 | /has-symbols/1.0.3:
1321 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1322 | engines: {node: '>= 0.4'}
1323 | dev: true
1324 |
1325 | /has-tostringtag/1.0.0:
1326 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
1327 | engines: {node: '>= 0.4'}
1328 | dependencies:
1329 | has-symbols: 1.0.3
1330 | dev: true
1331 |
1332 | /has/1.0.3:
1333 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1334 | engines: {node: '>= 0.4.0'}
1335 | dependencies:
1336 | function-bind: 1.1.1
1337 | dev: true
1338 |
1339 | /hoist-non-react-statics/3.3.2:
1340 | resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
1341 | dependencies:
1342 | react-is: 16.13.1
1343 | dev: false
1344 |
1345 | /ignore/5.2.0:
1346 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
1347 | engines: {node: '>= 4'}
1348 | dev: true
1349 |
1350 | /import-fresh/3.3.0:
1351 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1352 | engines: {node: '>=6'}
1353 | dependencies:
1354 | parent-module: 1.0.1
1355 | resolve-from: 4.0.0
1356 | dev: true
1357 |
1358 | /imurmurhash/0.1.4:
1359 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1360 | engines: {node: '>=0.8.19'}
1361 | dev: true
1362 |
1363 | /inflight/1.0.6:
1364 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1365 | dependencies:
1366 | once: 1.4.0
1367 | wrappy: 1.0.2
1368 | dev: true
1369 |
1370 | /inherits/2.0.4:
1371 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1372 | dev: true
1373 |
1374 | /internal-slot/1.0.3:
1375 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==}
1376 | engines: {node: '>= 0.4'}
1377 | dependencies:
1378 | get-intrinsic: 1.1.2
1379 | has: 1.0.3
1380 | side-channel: 1.0.4
1381 | dev: true
1382 |
1383 | /is-bigint/1.0.4:
1384 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1385 | dependencies:
1386 | has-bigints: 1.0.2
1387 | dev: true
1388 |
1389 | /is-binary-path/2.1.0:
1390 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1391 | engines: {node: '>=8'}
1392 | dependencies:
1393 | binary-extensions: 2.2.0
1394 | dev: true
1395 |
1396 | /is-boolean-object/1.1.2:
1397 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1398 | engines: {node: '>= 0.4'}
1399 | dependencies:
1400 | call-bind: 1.0.2
1401 | has-tostringtag: 1.0.0
1402 | dev: true
1403 |
1404 | /is-callable/1.2.4:
1405 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==}
1406 | engines: {node: '>= 0.4'}
1407 | dev: true
1408 |
1409 | /is-core-module/2.9.0:
1410 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
1411 | dependencies:
1412 | has: 1.0.3
1413 | dev: true
1414 |
1415 | /is-date-object/1.0.5:
1416 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1417 | engines: {node: '>= 0.4'}
1418 | dependencies:
1419 | has-tostringtag: 1.0.0
1420 | dev: true
1421 |
1422 | /is-extglob/2.1.1:
1423 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1424 | engines: {node: '>=0.10.0'}
1425 | dev: true
1426 |
1427 | /is-glob/4.0.3:
1428 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1429 | engines: {node: '>=0.10.0'}
1430 | dependencies:
1431 | is-extglob: 2.1.1
1432 | dev: true
1433 |
1434 | /is-negative-zero/2.0.2:
1435 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
1436 | engines: {node: '>= 0.4'}
1437 | dev: true
1438 |
1439 | /is-number-object/1.0.7:
1440 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1441 | engines: {node: '>= 0.4'}
1442 | dependencies:
1443 | has-tostringtag: 1.0.0
1444 | dev: true
1445 |
1446 | /is-number/7.0.0:
1447 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1448 | engines: {node: '>=0.12.0'}
1449 | dev: true
1450 |
1451 | /is-regex/1.1.4:
1452 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1453 | engines: {node: '>= 0.4'}
1454 | dependencies:
1455 | call-bind: 1.0.2
1456 | has-tostringtag: 1.0.0
1457 | dev: true
1458 |
1459 | /is-shared-array-buffer/1.0.2:
1460 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
1461 | dependencies:
1462 | call-bind: 1.0.2
1463 | dev: true
1464 |
1465 | /is-string/1.0.7:
1466 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1467 | engines: {node: '>= 0.4'}
1468 | dependencies:
1469 | has-tostringtag: 1.0.0
1470 | dev: true
1471 |
1472 | /is-symbol/1.0.4:
1473 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1474 | engines: {node: '>= 0.4'}
1475 | dependencies:
1476 | has-symbols: 1.0.3
1477 | dev: true
1478 |
1479 | /is-weakref/1.0.2:
1480 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1481 | dependencies:
1482 | call-bind: 1.0.2
1483 | dev: true
1484 |
1485 | /isexe/2.0.0:
1486 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1487 | dev: true
1488 |
1489 | /js-tokens/4.0.0:
1490 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1491 |
1492 | /js-yaml/4.1.0:
1493 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1494 | hasBin: true
1495 | dependencies:
1496 | argparse: 2.0.1
1497 | dev: true
1498 |
1499 | /json-schema-traverse/0.4.1:
1500 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1501 | dev: true
1502 |
1503 | /json-stable-stringify-without-jsonify/1.0.1:
1504 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1505 | dev: true
1506 |
1507 | /json5/1.0.1:
1508 | resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==}
1509 | hasBin: true
1510 | dependencies:
1511 | minimist: 1.2.6
1512 | dev: true
1513 |
1514 | /jsx-ast-utils/3.3.1:
1515 | resolution: {integrity: sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ==}
1516 | engines: {node: '>=4.0'}
1517 | dependencies:
1518 | array-includes: 3.1.5
1519 | object.assign: 4.1.2
1520 | dev: true
1521 |
1522 | /language-subtag-registry/0.3.21:
1523 | resolution: {integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==}
1524 | dev: true
1525 |
1526 | /language-tags/1.0.5:
1527 | resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==}
1528 | dependencies:
1529 | language-subtag-registry: 0.3.21
1530 | dev: true
1531 |
1532 | /levn/0.4.1:
1533 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1534 | engines: {node: '>= 0.8.0'}
1535 | dependencies:
1536 | prelude-ls: 1.2.1
1537 | type-check: 0.4.0
1538 | dev: true
1539 |
1540 | /lilconfig/2.0.5:
1541 | resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==}
1542 | engines: {node: '>=10'}
1543 | dev: true
1544 |
1545 | /locate-path/2.0.0:
1546 | resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
1547 | engines: {node: '>=4'}
1548 | dependencies:
1549 | p-locate: 2.0.0
1550 | path-exists: 3.0.0
1551 | dev: true
1552 |
1553 | /lodash-es/4.17.21:
1554 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
1555 | dev: false
1556 |
1557 | /lodash.merge/4.6.2:
1558 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1559 | dev: true
1560 |
1561 | /lodash/4.17.21:
1562 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
1563 | dev: false
1564 |
1565 | /loose-envify/1.4.0:
1566 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1567 | hasBin: true
1568 | dependencies:
1569 | js-tokens: 4.0.0
1570 |
1571 | /lru-cache/6.0.0:
1572 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1573 | engines: {node: '>=10'}
1574 | dependencies:
1575 | yallist: 4.0.0
1576 | dev: true
1577 |
1578 | /merge2/1.4.1:
1579 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1580 | engines: {node: '>= 8'}
1581 | dev: true
1582 |
1583 | /micromatch/4.0.5:
1584 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1585 | engines: {node: '>=8.6'}
1586 | dependencies:
1587 | braces: 3.0.2
1588 | picomatch: 2.3.1
1589 | dev: true
1590 |
1591 | /mime-db/1.52.0:
1592 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
1593 | engines: {node: '>= 0.6'}
1594 | dev: false
1595 |
1596 | /mime-types/2.1.35:
1597 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
1598 | engines: {node: '>= 0.6'}
1599 | dependencies:
1600 | mime-db: 1.52.0
1601 | dev: false
1602 |
1603 | /mini-svg-data-uri/1.4.4:
1604 | resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
1605 | hasBin: true
1606 | dev: true
1607 |
1608 | /minimatch/3.1.2:
1609 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1610 | dependencies:
1611 | brace-expansion: 1.1.11
1612 | dev: true
1613 |
1614 | /minimist/1.2.6:
1615 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
1616 | dev: true
1617 |
1618 | /ms/2.0.0:
1619 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
1620 | dev: true
1621 |
1622 | /ms/2.1.2:
1623 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1624 | dev: true
1625 |
1626 | /ms/2.1.3:
1627 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1628 | dev: true
1629 |
1630 | /nanoid/3.3.4:
1631 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
1632 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1633 | hasBin: true
1634 |
1635 | /nanoid/4.0.0:
1636 | resolution: {integrity: sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==}
1637 | engines: {node: ^14 || ^16 || >=18}
1638 | hasBin: true
1639 | dev: false
1640 |
1641 | /natural-compare/1.4.0:
1642 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1643 | dev: true
1644 |
1645 | /next/12.2.0_biqbaboplfbrettd7655fr4n2y:
1646 | resolution: {integrity: sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==}
1647 | engines: {node: '>=12.22.0'}
1648 | hasBin: true
1649 | peerDependencies:
1650 | fibers: '>= 3.1.0'
1651 | node-sass: ^6.0.0 || ^7.0.0
1652 | react: ^17.0.2 || ^18.0.0-0
1653 | react-dom: ^17.0.2 || ^18.0.0-0
1654 | sass: ^1.3.0
1655 | peerDependenciesMeta:
1656 | fibers:
1657 | optional: true
1658 | node-sass:
1659 | optional: true
1660 | sass:
1661 | optional: true
1662 | dependencies:
1663 | '@next/env': 12.2.0
1664 | '@swc/helpers': 0.4.2
1665 | caniuse-lite: 1.0.30001361
1666 | postcss: 8.4.5
1667 | react: 18.2.0
1668 | react-dom: 18.2.0_react@18.2.0
1669 | styled-jsx: 5.0.2_react@18.2.0
1670 | use-sync-external-store: 1.1.0_react@18.2.0
1671 | optionalDependencies:
1672 | '@next/swc-android-arm-eabi': 12.2.0
1673 | '@next/swc-android-arm64': 12.2.0
1674 | '@next/swc-darwin-arm64': 12.2.0
1675 | '@next/swc-darwin-x64': 12.2.0
1676 | '@next/swc-freebsd-x64': 12.2.0
1677 | '@next/swc-linux-arm-gnueabihf': 12.2.0
1678 | '@next/swc-linux-arm64-gnu': 12.2.0
1679 | '@next/swc-linux-arm64-musl': 12.2.0
1680 | '@next/swc-linux-x64-gnu': 12.2.0
1681 | '@next/swc-linux-x64-musl': 12.2.0
1682 | '@next/swc-win32-arm64-msvc': 12.2.0
1683 | '@next/swc-win32-ia32-msvc': 12.2.0
1684 | '@next/swc-win32-x64-msvc': 12.2.0
1685 | transitivePeerDependencies:
1686 | - '@babel/core'
1687 | - babel-plugin-macros
1688 | dev: false
1689 |
1690 | /node-releases/2.0.5:
1691 | resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==}
1692 | dev: true
1693 |
1694 | /normalize-path/3.0.0:
1695 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1696 | engines: {node: '>=0.10.0'}
1697 | dev: true
1698 |
1699 | /normalize-range/0.1.2:
1700 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1701 | engines: {node: '>=0.10.0'}
1702 | dev: true
1703 |
1704 | /nprogress/0.2.0:
1705 | resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
1706 | dev: false
1707 |
1708 | /object-assign/4.1.1:
1709 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1710 | engines: {node: '>=0.10.0'}
1711 | dev: true
1712 |
1713 | /object-hash/3.0.0:
1714 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1715 | engines: {node: '>= 6'}
1716 | dev: true
1717 |
1718 | /object-inspect/1.12.2:
1719 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
1720 | dev: true
1721 |
1722 | /object-keys/1.1.1:
1723 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1724 | engines: {node: '>= 0.4'}
1725 | dev: true
1726 |
1727 | /object.assign/4.1.2:
1728 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
1729 | engines: {node: '>= 0.4'}
1730 | dependencies:
1731 | call-bind: 1.0.2
1732 | define-properties: 1.1.4
1733 | has-symbols: 1.0.3
1734 | object-keys: 1.1.1
1735 | dev: true
1736 |
1737 | /object.entries/1.1.5:
1738 | resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==}
1739 | engines: {node: '>= 0.4'}
1740 | dependencies:
1741 | call-bind: 1.0.2
1742 | define-properties: 1.1.4
1743 | es-abstract: 1.20.1
1744 | dev: true
1745 |
1746 | /object.fromentries/2.0.5:
1747 | resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==}
1748 | engines: {node: '>= 0.4'}
1749 | dependencies:
1750 | call-bind: 1.0.2
1751 | define-properties: 1.1.4
1752 | es-abstract: 1.20.1
1753 | dev: true
1754 |
1755 | /object.hasown/1.1.1:
1756 | resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==}
1757 | dependencies:
1758 | define-properties: 1.1.4
1759 | es-abstract: 1.20.1
1760 | dev: true
1761 |
1762 | /object.values/1.1.5:
1763 | resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==}
1764 | engines: {node: '>= 0.4'}
1765 | dependencies:
1766 | call-bind: 1.0.2
1767 | define-properties: 1.1.4
1768 | es-abstract: 1.20.1
1769 | dev: true
1770 |
1771 | /once/1.4.0:
1772 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1773 | dependencies:
1774 | wrappy: 1.0.2
1775 | dev: true
1776 |
1777 | /optionator/0.9.1:
1778 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1779 | engines: {node: '>= 0.8.0'}
1780 | dependencies:
1781 | deep-is: 0.1.4
1782 | fast-levenshtein: 2.0.6
1783 | levn: 0.4.1
1784 | prelude-ls: 1.2.1
1785 | type-check: 0.4.0
1786 | word-wrap: 1.2.3
1787 | dev: true
1788 |
1789 | /p-limit/1.3.0:
1790 | resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
1791 | engines: {node: '>=4'}
1792 | dependencies:
1793 | p-try: 1.0.0
1794 | dev: true
1795 |
1796 | /p-locate/2.0.0:
1797 | resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
1798 | engines: {node: '>=4'}
1799 | dependencies:
1800 | p-limit: 1.3.0
1801 | dev: true
1802 |
1803 | /p-try/1.0.0:
1804 | resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
1805 | engines: {node: '>=4'}
1806 | dev: true
1807 |
1808 | /parent-module/1.0.1:
1809 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1810 | engines: {node: '>=6'}
1811 | dependencies:
1812 | callsites: 3.1.0
1813 | dev: true
1814 |
1815 | /path-exists/3.0.0:
1816 | resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
1817 | engines: {node: '>=4'}
1818 | dev: true
1819 |
1820 | /path-is-absolute/1.0.1:
1821 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1822 | engines: {node: '>=0.10.0'}
1823 | dev: true
1824 |
1825 | /path-key/3.1.1:
1826 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1827 | engines: {node: '>=8'}
1828 | dev: true
1829 |
1830 | /path-parse/1.0.7:
1831 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1832 | dev: true
1833 |
1834 | /path-type/4.0.0:
1835 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1836 | engines: {node: '>=8'}
1837 | dev: true
1838 |
1839 | /picocolors/1.0.0:
1840 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1841 |
1842 | /picomatch/2.3.1:
1843 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1844 | engines: {node: '>=8.6'}
1845 | dev: true
1846 |
1847 | /pify/2.3.0:
1848 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1849 | engines: {node: '>=0.10.0'}
1850 | dev: true
1851 |
1852 | /postcss-import/14.1.0_postcss@8.4.14:
1853 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
1854 | engines: {node: '>=10.0.0'}
1855 | peerDependencies:
1856 | postcss: ^8.0.0
1857 | dependencies:
1858 | postcss: 8.4.14
1859 | postcss-value-parser: 4.2.0
1860 | read-cache: 1.0.0
1861 | resolve: 1.22.1
1862 | dev: true
1863 |
1864 | /postcss-js/4.0.0_postcss@8.4.14:
1865 | resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
1866 | engines: {node: ^12 || ^14 || >= 16}
1867 | peerDependencies:
1868 | postcss: ^8.3.3
1869 | dependencies:
1870 | camelcase-css: 2.0.1
1871 | postcss: 8.4.14
1872 | dev: true
1873 |
1874 | /postcss-load-config/3.1.4_postcss@8.4.14:
1875 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
1876 | engines: {node: '>= 10'}
1877 | peerDependencies:
1878 | postcss: '>=8.0.9'
1879 | ts-node: '>=9.0.0'
1880 | peerDependenciesMeta:
1881 | postcss:
1882 | optional: true
1883 | ts-node:
1884 | optional: true
1885 | dependencies:
1886 | lilconfig: 2.0.5
1887 | postcss: 8.4.14
1888 | yaml: 1.10.2
1889 | dev: true
1890 |
1891 | /postcss-nested/5.0.6_postcss@8.4.14:
1892 | resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
1893 | engines: {node: '>=12.0'}
1894 | peerDependencies:
1895 | postcss: ^8.2.14
1896 | dependencies:
1897 | postcss: 8.4.14
1898 | postcss-selector-parser: 6.0.10
1899 | dev: true
1900 |
1901 | /postcss-selector-parser/6.0.10:
1902 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
1903 | engines: {node: '>=4'}
1904 | dependencies:
1905 | cssesc: 3.0.0
1906 | util-deprecate: 1.0.2
1907 | dev: true
1908 |
1909 | /postcss-value-parser/4.2.0:
1910 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1911 | dev: true
1912 |
1913 | /postcss/8.4.14:
1914 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
1915 | engines: {node: ^10 || ^12 || >=14}
1916 | dependencies:
1917 | nanoid: 3.3.4
1918 | picocolors: 1.0.0
1919 | source-map-js: 1.0.2
1920 | dev: true
1921 |
1922 | /postcss/8.4.5:
1923 | resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==}
1924 | engines: {node: ^10 || ^12 || >=14}
1925 | dependencies:
1926 | nanoid: 3.3.4
1927 | picocolors: 1.0.0
1928 | source-map-js: 1.0.2
1929 | dev: false
1930 |
1931 | /prelude-ls/1.2.1:
1932 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1933 | engines: {node: '>= 0.8.0'}
1934 | dev: true
1935 |
1936 | /prisma/4.0.0:
1937 | resolution: {integrity: sha512-Dtsar03XpCBkcEb2ooGWO/WcgblDTLzGhPcustbehwlFXuTMliMDRzXsfygsgYwQoZnAUKRd1rhpvBNEUziOVw==}
1938 | engines: {node: '>=14.17'}
1939 | hasBin: true
1940 | requiresBuild: true
1941 | dependencies:
1942 | '@prisma/engines': 3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11
1943 |
1944 | /prop-types/15.8.1:
1945 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1946 | dependencies:
1947 | loose-envify: 1.4.0
1948 | object-assign: 4.1.1
1949 | react-is: 16.13.1
1950 | dev: true
1951 |
1952 | /punycode/2.1.1:
1953 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
1954 | engines: {node: '>=6'}
1955 | dev: true
1956 |
1957 | /queue-microtask/1.2.3:
1958 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1959 | dev: true
1960 |
1961 | /quick-lru/5.1.1:
1962 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
1963 | engines: {node: '>=10'}
1964 | dev: true
1965 |
1966 | /react-dom/18.2.0_react@18.2.0:
1967 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
1968 | peerDependencies:
1969 | react: ^18.2.0
1970 | dependencies:
1971 | loose-envify: 1.4.0
1972 | react: 18.2.0
1973 | scheduler: 0.23.0
1974 | dev: false
1975 |
1976 | /react-fast-compare/2.0.4:
1977 | resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==}
1978 | dev: false
1979 |
1980 | /react-hot-toast/2.2.0_biqbaboplfbrettd7655fr4n2y:
1981 | resolution: {integrity: sha512-248rXw13uhf/6TNDVzagX+y7R8J183rp7MwUMNkcrBRyHj/jWOggfXTGlM8zAOuh701WyVW+eUaWG2LeSufX9g==}
1982 | engines: {node: '>=10'}
1983 | peerDependencies:
1984 | react: '>=16'
1985 | react-dom: '>=16'
1986 | dependencies:
1987 | goober: 2.1.10
1988 | react: 18.2.0
1989 | react-dom: 18.2.0_react@18.2.0
1990 | transitivePeerDependencies:
1991 | - csstype
1992 | dev: false
1993 |
1994 | /react-icons/4.4.0_react@18.2.0:
1995 | resolution: {integrity: sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==}
1996 | peerDependencies:
1997 | react: '*'
1998 | dependencies:
1999 | react: 18.2.0
2000 | dev: false
2001 |
2002 | /react-is/16.13.1:
2003 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2004 |
2005 | /react/18.2.0:
2006 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
2007 | engines: {node: '>=0.10.0'}
2008 | dependencies:
2009 | loose-envify: 1.4.0
2010 | dev: false
2011 |
2012 | /read-cache/1.0.0:
2013 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
2014 | dependencies:
2015 | pify: 2.3.0
2016 | dev: true
2017 |
2018 | /readdirp/3.6.0:
2019 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
2020 | engines: {node: '>=8.10.0'}
2021 | dependencies:
2022 | picomatch: 2.3.1
2023 | dev: true
2024 |
2025 | /regenerator-runtime/0.13.9:
2026 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
2027 | dev: true
2028 |
2029 | /regexp.prototype.flags/1.4.3:
2030 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
2031 | engines: {node: '>= 0.4'}
2032 | dependencies:
2033 | call-bind: 1.0.2
2034 | define-properties: 1.1.4
2035 | functions-have-names: 1.2.3
2036 | dev: true
2037 |
2038 | /regexpp/3.2.0:
2039 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
2040 | engines: {node: '>=8'}
2041 | dev: true
2042 |
2043 | /resolve-from/4.0.0:
2044 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2045 | engines: {node: '>=4'}
2046 | dev: true
2047 |
2048 | /resolve/1.22.1:
2049 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
2050 | hasBin: true
2051 | dependencies:
2052 | is-core-module: 2.9.0
2053 | path-parse: 1.0.7
2054 | supports-preserve-symlinks-flag: 1.0.0
2055 | dev: true
2056 |
2057 | /resolve/2.0.0-next.4:
2058 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
2059 | hasBin: true
2060 | dependencies:
2061 | is-core-module: 2.9.0
2062 | path-parse: 1.0.7
2063 | supports-preserve-symlinks-flag: 1.0.0
2064 | dev: true
2065 |
2066 | /reusify/1.0.4:
2067 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2068 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2069 | dev: true
2070 |
2071 | /rimraf/3.0.2:
2072 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
2073 | hasBin: true
2074 | dependencies:
2075 | glob: 7.2.3
2076 | dev: true
2077 |
2078 | /run-parallel/1.2.0:
2079 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2080 | dependencies:
2081 | queue-microtask: 1.2.3
2082 | dev: true
2083 |
2084 | /scheduler/0.23.0:
2085 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
2086 | dependencies:
2087 | loose-envify: 1.4.0
2088 | dev: false
2089 |
2090 | /semver/6.3.0:
2091 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
2092 | hasBin: true
2093 | dev: true
2094 |
2095 | /semver/7.3.7:
2096 | resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
2097 | engines: {node: '>=10'}
2098 | hasBin: true
2099 | dependencies:
2100 | lru-cache: 6.0.0
2101 | dev: true
2102 |
2103 | /shebang-command/2.0.0:
2104 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2105 | engines: {node: '>=8'}
2106 | dependencies:
2107 | shebang-regex: 3.0.0
2108 | dev: true
2109 |
2110 | /shebang-regex/3.0.0:
2111 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2112 | engines: {node: '>=8'}
2113 | dev: true
2114 |
2115 | /side-channel/1.0.4:
2116 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
2117 | dependencies:
2118 | call-bind: 1.0.2
2119 | get-intrinsic: 1.1.2
2120 | object-inspect: 1.12.2
2121 | dev: true
2122 |
2123 | /slash/3.0.0:
2124 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
2125 | engines: {node: '>=8'}
2126 | dev: true
2127 |
2128 | /source-map-js/1.0.2:
2129 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
2130 | engines: {node: '>=0.10.0'}
2131 |
2132 | /string.prototype.matchall/4.0.7:
2133 | resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==}
2134 | dependencies:
2135 | call-bind: 1.0.2
2136 | define-properties: 1.1.4
2137 | es-abstract: 1.20.1
2138 | get-intrinsic: 1.1.2
2139 | has-symbols: 1.0.3
2140 | internal-slot: 1.0.3
2141 | regexp.prototype.flags: 1.4.3
2142 | side-channel: 1.0.4
2143 | dev: true
2144 |
2145 | /string.prototype.trimend/1.0.5:
2146 | resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==}
2147 | dependencies:
2148 | call-bind: 1.0.2
2149 | define-properties: 1.1.4
2150 | es-abstract: 1.20.1
2151 | dev: true
2152 |
2153 | /string.prototype.trimstart/1.0.5:
2154 | resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==}
2155 | dependencies:
2156 | call-bind: 1.0.2
2157 | define-properties: 1.1.4
2158 | es-abstract: 1.20.1
2159 | dev: true
2160 |
2161 | /strip-ansi/6.0.1:
2162 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2163 | engines: {node: '>=8'}
2164 | dependencies:
2165 | ansi-regex: 5.0.1
2166 | dev: true
2167 |
2168 | /strip-bom/3.0.0:
2169 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
2170 | engines: {node: '>=4'}
2171 | dev: true
2172 |
2173 | /strip-json-comments/3.1.1:
2174 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
2175 | engines: {node: '>=8'}
2176 | dev: true
2177 |
2178 | /styled-jsx/5.0.2_react@18.2.0:
2179 | resolution: {integrity: sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==}
2180 | engines: {node: '>= 12.0.0'}
2181 | peerDependencies:
2182 | '@babel/core': '*'
2183 | babel-plugin-macros: '*'
2184 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
2185 | peerDependenciesMeta:
2186 | '@babel/core':
2187 | optional: true
2188 | babel-plugin-macros:
2189 | optional: true
2190 | dependencies:
2191 | react: 18.2.0
2192 | dev: false
2193 |
2194 | /supports-color/7.2.0:
2195 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
2196 | engines: {node: '>=8'}
2197 | dependencies:
2198 | has-flag: 4.0.0
2199 | dev: true
2200 |
2201 | /supports-preserve-symlinks-flag/1.0.0:
2202 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2203 | engines: {node: '>= 0.4'}
2204 | dev: true
2205 |
2206 | /tailwindcss/3.1.4:
2207 | resolution: {integrity: sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ==}
2208 | engines: {node: '>=12.13.0'}
2209 | hasBin: true
2210 | dependencies:
2211 | arg: 5.0.2
2212 | chokidar: 3.5.3
2213 | color-name: 1.1.4
2214 | detective: 5.2.1
2215 | didyoumean: 1.2.2
2216 | dlv: 1.1.3
2217 | fast-glob: 3.2.11
2218 | glob-parent: 6.0.2
2219 | is-glob: 4.0.3
2220 | lilconfig: 2.0.5
2221 | normalize-path: 3.0.0
2222 | object-hash: 3.0.0
2223 | picocolors: 1.0.0
2224 | postcss: 8.4.14
2225 | postcss-import: 14.1.0_postcss@8.4.14
2226 | postcss-js: 4.0.0_postcss@8.4.14
2227 | postcss-load-config: 3.1.4_postcss@8.4.14
2228 | postcss-nested: 5.0.6_postcss@8.4.14
2229 | postcss-selector-parser: 6.0.10
2230 | postcss-value-parser: 4.2.0
2231 | quick-lru: 5.1.1
2232 | resolve: 1.22.1
2233 | transitivePeerDependencies:
2234 | - ts-node
2235 | dev: true
2236 |
2237 | /text-table/0.2.0:
2238 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2239 | dev: true
2240 |
2241 | /tiny-warning/1.0.3:
2242 | resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
2243 | dev: false
2244 |
2245 | /to-regex-range/5.0.1:
2246 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2247 | engines: {node: '>=8.0'}
2248 | dependencies:
2249 | is-number: 7.0.0
2250 | dev: true
2251 |
2252 | /tsconfig-paths/3.14.1:
2253 | resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
2254 | dependencies:
2255 | '@types/json5': 0.0.29
2256 | json5: 1.0.1
2257 | minimist: 1.2.6
2258 | strip-bom: 3.0.0
2259 | dev: true
2260 |
2261 | /tslib/1.14.1:
2262 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
2263 |
2264 | /tslib/2.4.0:
2265 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
2266 | dev: false
2267 |
2268 | /tsutils/3.21.0_typescript@4.7.4:
2269 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
2270 | engines: {node: '>= 6'}
2271 | peerDependencies:
2272 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
2273 | dependencies:
2274 | tslib: 1.14.1
2275 | typescript: 4.7.4
2276 | dev: true
2277 |
2278 | /type-check/0.4.0:
2279 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2280 | engines: {node: '>= 0.8.0'}
2281 | dependencies:
2282 | prelude-ls: 1.2.1
2283 | dev: true
2284 |
2285 | /type-fest/0.20.2:
2286 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
2287 | engines: {node: '>=10'}
2288 | dev: true
2289 |
2290 | /typescript/4.7.4:
2291 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
2292 | engines: {node: '>=4.2.0'}
2293 | hasBin: true
2294 | dev: true
2295 |
2296 | /unbox-primitive/1.0.2:
2297 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
2298 | dependencies:
2299 | call-bind: 1.0.2
2300 | has-bigints: 1.0.2
2301 | has-symbols: 1.0.3
2302 | which-boxed-primitive: 1.0.2
2303 | dev: true
2304 |
2305 | /update-browserslist-db/1.0.4_browserslist@4.21.1:
2306 | resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==}
2307 | hasBin: true
2308 | peerDependencies:
2309 | browserslist: '>= 4.21.0'
2310 | dependencies:
2311 | browserslist: 4.21.1
2312 | escalade: 3.1.1
2313 | picocolors: 1.0.0
2314 | dev: true
2315 |
2316 | /uri-js/4.4.1:
2317 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2318 | dependencies:
2319 | punycode: 2.1.1
2320 | dev: true
2321 |
2322 | /use-sync-external-store/1.1.0_react@18.2.0:
2323 | resolution: {integrity: sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==}
2324 | peerDependencies:
2325 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
2326 | dependencies:
2327 | react: 18.2.0
2328 | dev: false
2329 |
2330 | /util-deprecate/1.0.2:
2331 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
2332 | dev: true
2333 |
2334 | /v8-compile-cache/2.3.0:
2335 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
2336 | dev: true
2337 |
2338 | /which-boxed-primitive/1.0.2:
2339 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
2340 | dependencies:
2341 | is-bigint: 1.0.4
2342 | is-boolean-object: 1.1.2
2343 | is-number-object: 1.0.7
2344 | is-string: 1.0.7
2345 | is-symbol: 1.0.4
2346 | dev: true
2347 |
2348 | /which/2.0.2:
2349 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2350 | engines: {node: '>= 8'}
2351 | hasBin: true
2352 | dependencies:
2353 | isexe: 2.0.0
2354 | dev: true
2355 |
2356 | /word-wrap/1.2.3:
2357 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
2358 | engines: {node: '>=0.10.0'}
2359 | dev: true
2360 |
2361 | /wrappy/1.0.2:
2362 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
2363 | dev: true
2364 |
2365 | /xtend/4.0.2:
2366 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
2367 | engines: {node: '>=0.4'}
2368 | dev: true
2369 |
2370 | /yallist/4.0.0:
2371 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
2372 | dev: true
2373 |
2374 | /yaml/1.10.2:
2375 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
2376 | engines: {node: '>= 6'}
2377 | dev: true
2378 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/prisma/schema.prisma:
--------------------------------------------------------------------------------
1 | // This is your Prisma schema file,
2 | // learn more about it in the docs: https://pris.ly/d/prisma-schema
3 |
4 | generator client {
5 | provider = "prisma-client-js"
6 | previewFeatures = ["referentialIntegrity"]
7 | }
8 |
9 | datasource db {
10 | provider = "mysql"
11 | url = env("DATABASE_URL")
12 | referentialIntegrity = "prisma"
13 | }
14 |
15 | model Option {
16 | id Int @id @default(autoincrement())
17 | pollID String
18 | number Int
19 | poll Poll @relation(fields: [pollID], references: [id])
20 | text String
21 | votes Int @default(0)
22 | }
23 |
24 | model Poll {
25 | id String @id
26 | title String
27 | options Option[]
28 | visibility String @default("public")
29 | createdBy String @default("anonymous")
30 | createdAt DateTime @default(now())
31 | updatedAt DateTime @default(now())
32 | upvotes Int @default(0)
33 | votes Int @default(0)
34 | }
35 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.bunny.net/css?family=work-sans:900,800,700,600,500,400,900i,800i,700i,600i,500i);
2 |
3 | @tailwind base;
4 | @tailwind components;
5 | @tailwind utilities;
6 |
7 | .options-container::-webkit-scrollbar {
8 | display: none;
9 | }
10 |
11 | /* Hide scrollbar for IE, Edge and Firefox */
12 | .options-container {
13 | -ms-overflow-style: none; /* IE and Edge */
14 | scrollbar-width: none; /* Firefox */
15 | }
16 |
17 | ::selection {
18 | background: #e5e7eb;
19 | }
20 |
--------------------------------------------------------------------------------
/styles/nprogress.css:
--------------------------------------------------------------------------------
1 | #nprogress {
2 | pointer-events: none;
3 | }
4 |
5 | #nprogress .bar {
6 | background: #22c55e;
7 |
8 | position: fixed;
9 | z-index: 1031;
10 | top: 0;
11 | left: 0;
12 |
13 | width: 100%;
14 | height: 2px;
15 | }
16 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | const plugin = require("tailwindcss/plugin");
3 |
4 | module.exports = {
5 | content: [
6 | "./pages/**/*.{js,ts,jsx,tsx}",
7 | "./components/**/*.{js,ts,jsx,tsx}",
8 | ],
9 | darkMode: 'class',
10 | theme: {
11 | extend: {
12 | fontFamily: {
13 | sans: ["Work Sans", "sans-serif"],
14 | },
15 | textShadow: {
16 | sm: "0 1px 2px var(--tw-shadow)",
17 | DEFAULT: "0 2px 4px var(--tw-shadow)",
18 | lg: "0 8px 16px var(--tw-shadow)",
19 | },
20 | keyframes: {
21 | "progress-bar-fill": {
22 | "0%": {
23 | transform: "scaleX(0)",
24 | },
25 | "100%": {
26 | transform: "scaleX(1)",
27 | },
28 | },
29 | },
30 | animation: {
31 | "progress-bar-fill": "progress-bar-fill 3s ease-in-out",
32 | },
33 | },
34 | },
35 | plugins: [
36 | plugin(function ({ matchUtilities, theme }) {
37 | matchUtilities(
38 | {
39 | "text-shadow": (value) => ({
40 | textShadow: value,
41 | }),
42 | },
43 | { values: theme("textShadow") },
44 | );
45 | }),
46 | ],
47 | };
48 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "incremental": true
17 | },
18 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
19 | "exclude": ["node_modules"]
20 | }
21 |
--------------------------------------------------------------------------------