├── .eslintrc.json
├── sanity-backend
├── plugins
│ └── .gitkeep
├── config
│ ├── @sanity
│ │ ├── data-aspects.json
│ │ ├── vision.json
│ │ ├── form-builder.json
│ │ ├── default-layout.json
│ │ └── default-login.json
│ └── .checksums
├── .eslintrc
├── static
│ ├── .gitkeep
│ └── favicon.ico
├── schemas
│ ├── postedBy.js
│ ├── user.js
│ ├── comment.js
│ ├── schema.js
│ └── post.js
├── .npmignore
├── tsconfig.json
├── README.md
├── sanity.json
└── package.json
├── public
├── favicon.ico
└── vercel.svg
├── utils
├── tiktik-logo.png
├── client.ts
├── index.ts
├── constants.tsx
└── queries.ts
├── postcss.config.js
├── next-env.d.ts
├── next.config.js
├── .env.development
├── pages
├── api
│ ├── auth.ts
│ ├── users.ts
│ ├── discover
│ │ └── [topic].ts
│ ├── search
│ │ └── [searchTerm].ts
│ ├── post
│ │ ├── index.ts
│ │ └── [id].ts
│ ├── like.ts
│ └── profile
│ │ └── [id].ts
├── index.tsx
├── _app.tsx
├── profile
│ └── [id].tsx
├── search
│ └── [searchTerm].tsx
├── detail
│ └── [id].tsx
└── upload.tsx
├── .gitignore
├── tsconfig.json
├── styles
└── globals.css
├── components
├── NoResults.tsx
├── Footer.tsx
├── LikeButton.tsx
├── Discover.tsx
├── Sidebar.tsx
├── SuggestedAccounts.tsx
├── Comments.tsx
├── Navbar.tsx
└── VideoCard.tsx
├── store
└── authStore.ts
├── types.d.ts
├── package.json
├── tailwind.config.js
├── README.md
└── yarn.lock
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/sanity-backend/plugins/.gitkeep:
--------------------------------------------------------------------------------
1 | User-specific packages can be placed here
2 |
--------------------------------------------------------------------------------
/sanity-backend/config/@sanity/data-aspects.json:
--------------------------------------------------------------------------------
1 | {
2 | "listOptions": {}
3 | }
4 |
--------------------------------------------------------------------------------
/sanity-backend/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@sanity/eslint-config-studio"
3 | }
4 |
--------------------------------------------------------------------------------
/sanity-backend/config/@sanity/vision.json:
--------------------------------------------------------------------------------
1 | {
2 | "defaultApiVersion": "2021-10-21"
3 | }
4 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/adrianhajdin/tiktik_clone/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/utils/tiktik-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/adrianhajdin/tiktik_clone/HEAD/utils/tiktik-logo.png
--------------------------------------------------------------------------------
/sanity-backend/config/@sanity/form-builder.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": {
3 | "directUploads": true
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/sanity-backend/static/.gitkeep:
--------------------------------------------------------------------------------
1 | Files placed here will be served by the Sanity server under the `/static`-prefix
2 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/sanity-backend/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/adrianhajdin/tiktik_clone/HEAD/sanity-backend/static/favicon.ico
--------------------------------------------------------------------------------
/sanity-backend/config/@sanity/default-layout.json:
--------------------------------------------------------------------------------
1 | {
2 | "toolSwitcher": {
3 | "order": [],
4 | "hidden": []
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/sanity-backend/schemas/postedBy.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'postedBy',
3 | title: 'Posted By',
4 | type: 'reference',
5 | to: [{type: 'user'}]
6 | }
--------------------------------------------------------------------------------
/sanity-backend/config/@sanity/default-login.json:
--------------------------------------------------------------------------------
1 | {
2 | "providers": {
3 | "mode": "append",
4 | "redirectOnSingle": false,
5 | "entries": []
6 | },
7 | "loginMethod": "dual"
8 | }
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/sanity-backend/.npmignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | /logs
3 | *.log
4 |
5 | # Coverage directory used by tools like istanbul
6 | /coverage
7 |
8 | # Dependency directories
9 | node_modules
10 |
11 | # Compiled sanity studio
12 | /dist
13 |
--------------------------------------------------------------------------------
/utils/client.ts:
--------------------------------------------------------------------------------
1 | import sanityClient from '@sanity/client';
2 |
3 | export const client = sanityClient({
4 | projectId: 'dtveib2y',
5 | dataset: 'production',
6 | apiVersion: '2022-03-10',
7 | useCdn: false,
8 | token: process.env.NEXT_PUBLIC_SANITY_TOKEN,
9 | });
10 |
--------------------------------------------------------------------------------
/sanity-backend/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | // Note: This config is only used to help editors like VS Code understand/resolve
3 | // parts, the actual transpilation is done by babel. Any compiler configuration in
4 | // here will be ignored.
5 | "include": ["./node_modules/@sanity/base/types/**/*.ts", "./**/*.ts", "./**/*.tsx"]
6 | }
7 |
--------------------------------------------------------------------------------
/sanity-backend/schemas/user.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'user',
3 | title: 'User',
4 | type: 'document',
5 | fields: [
6 | {
7 | name: 'userName',
8 | title: 'User Name',
9 | type: 'string'
10 | },
11 | {
12 | name: 'image',
13 | title: 'Image',
14 | type: 'string',
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | typescript: {
4 | ignoreBuildErrors: true,
5 | },
6 |
7 | reactStrictMode: true,
8 | images: {
9 | domains: [
10 | 'yt3.ggpht.com',
11 | 'lh3.googleusercontent.com'
12 | ],
13 | }
14 | }
15 |
16 | module.exports = nextConfig
17 |
--------------------------------------------------------------------------------
/sanity-backend/schemas/comment.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'comment',
3 | title: 'Comment',
4 | type: 'document',
5 | fields: [
6 | {
7 | name: 'postedBy',
8 | title: 'Posted By',
9 | type: 'postedBy'
10 | },
11 | {
12 | name: 'comment',
13 | title: 'Comment',
14 | type: 'string',
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/.env.development:
--------------------------------------------------------------------------------
1 | NEXT_PUBLIC_SANITY_TOKEN = skjuMEMXj6VjArEo9RufQXqhLD7ft7G6weSVxODBTySNetWiQWUWXU3kO5n3YTVEqMCf8SlAuGAuNWzQkcnLTSiexq1RBDVg9uHvjTP5yG0Ch1Hh1XqKi1NrJcPJwVMQB8xhFl8l2JtghNjVHYqgGTvi7tQVoqt1JCXJGBuIDE2m5topULr7
2 |
3 | NEXT_PUBLIC_GOOGLE_API_TOKEN = 936679625426-fq1dme9fjg6ude38emqa4f8eh4dvomqc.apps.googleusercontent.com
4 |
5 | NEXT_PUBLIC_BASE_URL = http://localhost:3000
--------------------------------------------------------------------------------
/pages/api/auth.ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 |
3 | import { client } from '../../utils/client';
4 |
5 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
6 | if(req.method === 'POST') {
7 | const user = req.body;
8 |
9 | client.createIfNotExists(user)
10 | .then(() => res.status(200).json('Login success'))
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/pages/api/users.ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 |
3 | import { allUsersQuery } from '../../utils/queries';
4 | import { client } from '../../utils/client';
5 |
6 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
7 | if(req.method === 'GET') {
8 | const data = await client.fetch(allUsersQuery());
9 |
10 | if(data) {
11 | res.status(200).json(data);
12 | } else {
13 | res.json([]);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/.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*.local
30 |
31 | # vercel
32 | .vercel
33 |
34 | # typescript
35 | *.tsbuildinfo
36 |
--------------------------------------------------------------------------------
/pages/api/discover/[topic].ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 |
3 | import { topicPostsQuery } from '../../../utils/queries';
4 | import { client } from '../../../utils/client';
5 |
6 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
7 | if(req.method === 'GET') {
8 | const { topic } = req.query;
9 |
10 | const videosQuery = topicPostsQuery(topic);
11 |
12 | const videos = await client.fetch(videosQuery);
13 |
14 | res.status(200).json(videos);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/pages/api/search/[searchTerm].ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 |
3 | import { searchPostsQuery } from '../../../utils/queries';
4 | import { client } from '../../../utils/client';
5 |
6 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
7 | if(req.method === 'GET') {
8 | const { searchTerm } = req.query;
9 |
10 | const videosQuery = searchPostsQuery(searchTerm);
11 |
12 | const videos = await client.fetch(videosQuery);
13 |
14 | res.status(200).json(videos);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/sanity-backend/README.md:
--------------------------------------------------------------------------------
1 | # Sanity Clean Content Studio
2 |
3 | Congratulations, you have now installed the Sanity Content Studio, an open source real-time content editing environment connected to the Sanity backend.
4 |
5 | Now you can do the following things:
6 |
7 | - [Read “getting started” in the docs](https://www.sanity.io/docs/introduction/getting-started?utm_source=readme)
8 | - [Join the community Slack](https://slack.sanity.io/?utm_source=readme)
9 | - [Extend and build plugins](https://www.sanity.io/docs/content-studio/extending?utm_source=readme)
10 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/utils/index.ts:
--------------------------------------------------------------------------------
1 | import axios from 'axios';
2 | import jwt_decode from 'jwt-decode';
3 |
4 | export const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL;
5 |
6 | export const createOrGetUser = async (response: any, addUser: any) => {
7 | const decoded: { name: string, picture: string, sub: string } = jwt_decode(response.credential);
8 |
9 | const { name, picture, sub } = decoded;
10 |
11 | const user = {
12 | _id: sub,
13 | _type: 'user',
14 | userName: name,
15 | image: picture
16 | }
17 |
18 | addUser(user);
19 |
20 | await axios.post(`${BASE_URL}/api/auth`, user);
21 | };
22 |
--------------------------------------------------------------------------------
/sanity-backend/config/.checksums:
--------------------------------------------------------------------------------
1 | {
2 | "#": "Used by Sanity to keep track of configuration file checksums, do not delete or modify!",
3 | "@sanity/default-layout": "bb034f391ba508a6ca8cd971967cbedeb131c4d19b17b28a0895f32db5d568ea",
4 | "@sanity/default-login": "e2ed4e51e97331c0699ba7cf9f67cbf76f1c6a5f806d6eabf8259b2bcb5f1002",
5 | "@sanity/form-builder": "b38478227ba5e22c91981da4b53436df22e48ff25238a55a973ed620be5068aa",
6 | "@sanity/data-aspects": "d199e2c199b3e26cd28b68dc84d7fc01c9186bf5089580f2e2446994d36b3cb6",
7 | "@sanity/vision": "da5b6ed712703ecd04bf4df560570c668aa95252c6bc1c41d6df1bda9b8b8f60"
8 | }
9 |
--------------------------------------------------------------------------------
/sanity-backend/sanity.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "project": {
4 | "name": "sanity-backend"
5 | },
6 | "api": {
7 | "projectId": "dtveib2y",
8 | "dataset": "production"
9 | },
10 | "plugins": [
11 | "@sanity/base",
12 | "@sanity/default-layout",
13 | "@sanity/default-login",
14 | "@sanity/desk-tool"
15 | ],
16 | "env": {
17 | "development": {
18 | "plugins": [
19 | "@sanity/vision"
20 | ]
21 | }
22 | },
23 | "parts": [
24 | {
25 | "name": "part:@sanity/base/schema",
26 | "path": "./schemas/schema"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | html,
6 | body {
7 | padding: 0;
8 | margin: 0;
9 | box-sizing: border-box;
10 | }
11 |
12 | a {
13 | color: inherit;
14 | text-decoration: none;
15 | }
16 |
17 | * {
18 | box-sizing: border-box;
19 | }
20 |
21 | .videos::-webkit-scrollbar {
22 | width: 0px;
23 | }
24 |
25 | ::-webkit-scrollbar {
26 | width: 4px;
27 | }
28 |
29 | ::-webkit-scrollbar-thumb {
30 | background-color: rgb(237, 237, 237);
31 | border-radius: 40px;
32 | }
33 |
34 | ::-webkit-scrollbar-track {
35 | background-color: transparent;
36 | }
--------------------------------------------------------------------------------
/pages/api/post/index.ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 | import { client } from '../../../utils/client';
3 | import { allPostsQuery } from '../../../utils/queries';
4 |
5 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
6 | if(req.method === 'GET') {
7 | const query = allPostsQuery();
8 |
9 | const data = await client.fetch(query);
10 |
11 | res.status(200).json(data);
12 | } else if(req.method === 'POST') {
13 | const document = req.body;
14 |
15 | client.create(document)
16 | .then(() => res.status(201).json('Video Created'))
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/NoResults.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { MdOutlineVideocamOff } from 'react-icons/md';
3 | import { BiCommentX } from 'react-icons/bi';
4 |
5 | interface IProps {
6 | text: string;
7 | }
8 |
9 | const NoResults = ({ text }: IProps) => {
10 | return (
11 |
12 |
13 | {text === 'No comments yet'
14 | ?
15 | :
16 | }
17 |
18 |
{text}
19 |
20 | )
21 | }
22 |
23 | export default NoResults
--------------------------------------------------------------------------------
/store/authStore.ts:
--------------------------------------------------------------------------------
1 | import create from 'zustand';
2 | import { persist } from 'zustand/middleware';
3 | import axios from 'axios';
4 |
5 | import { BASE_URL } from '../utils';
6 |
7 | const authStore = (set: any) => ({
8 | userProfile: null,
9 | allUsers: [],
10 |
11 | addUser: (user: any) => set({ userProfile: user }),
12 | removeUser: () => set({ userProfile : null}),
13 |
14 | fetchAllUsers: async () => {
15 | const response = await axios.get(`${BASE_URL}/api/users`);
16 |
17 | set({ allUsers: response.data })
18 | }
19 | });
20 |
21 | const useAuthStore = create(
22 | persist(authStore, {
23 | name: 'auth'
24 | })
25 | )
26 |
27 | export default useAuthStore;
--------------------------------------------------------------------------------
/types.d.ts:
--------------------------------------------------------------------------------
1 | export interface Video {
2 | caption: string;
3 | video: {
4 | asset: {
5 | _id: string;
6 | url: string;
7 | };
8 | };
9 | _id: string;
10 | postedBy: {
11 | _id: string;
12 | userName: string;
13 | image: string;
14 | };
15 | likes: {
16 | postedBy: {
17 | _id: string;
18 | userName: string;
19 | image: string;
20 | };
21 | }[];
22 | comments: {
23 | comment: string;
24 | _key: string;
25 | postedBy: {
26 | _ref: string;
27 | };
28 | }[];
29 | userId: string;
30 | }
31 |
32 | export interface IUser {
33 | _id: string;
34 | _type: string;
35 | userName: string;
36 | image: string;
37 | }
38 |
--------------------------------------------------------------------------------
/components/Footer.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { footerList1, footerList2, footerList3 } from '../utils/constants';
4 |
5 | const List = ({ items, mt }: { items: string[], mt: boolean }) => (
6 |
7 | {items.map((item) => (
8 |
9 | {item}
10 |
11 | ))}
12 |
13 | )
14 |
15 | const Footer = () => {
16 | return (
17 |
18 |
19 |
20 |
21 |
2022 JSM TikTik
22 |
23 | )
24 | }
25 |
26 | export default Footer
--------------------------------------------------------------------------------
/sanity-backend/schemas/schema.js:
--------------------------------------------------------------------------------
1 | // First, we must import the schema creator
2 | import createSchema from 'part:@sanity/base/schema-creator'
3 |
4 | // Then import schema types from any plugins that might expose them
5 | import schemaTypes from 'all:part:@sanity/base/schema-type'
6 | import post from './post';
7 | import user from './user';
8 | import comment from './comment';
9 | import postedBy from './postedBy';
10 |
11 | // Then we give our schema to the builder and provide the result to Sanity
12 | export default createSchema({
13 | // We name our schema
14 | name: 'default',
15 | // Then proceed to concatenate our document type
16 | // to the ones provided by any plugins that are installed
17 | types: schemaTypes.concat([
18 | /* Your types here! */
19 | post, user, comment, postedBy
20 | ]),
21 | })
22 |
--------------------------------------------------------------------------------
/pages/api/like.ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 | import { uuid } from 'uuidv4';
3 |
4 | import { client } from '../../utils/client';
5 |
6 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
7 | if(req.method === 'PUT') {
8 | const { userId, postId, like } = req.body;
9 |
10 | const data =
11 | like ? await client
12 | .patch(postId)
13 | .setIfMissing({ likes: [] })
14 | .insert('after', 'likes[-1]', [
15 | {
16 | _key: uuid(),
17 | _ref: userId
18 | }
19 | ])
20 | .commit()
21 | : await client
22 | .patch(postId)
23 | .unset([`likes[_ref=="${userId}"]`])
24 | .commit();
25 |
26 | res.status(200).json(data);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/sanity-backend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sanity-backend",
3 | "private": true,
4 | "version": "1.0.0",
5 | "description": "",
6 | "main": "package.json",
7 | "author": "JavaScript Mastery ",
8 | "license": "UNLICENSED",
9 | "scripts": {
10 | "start": "sanity start",
11 | "build": "sanity build"
12 | },
13 | "keywords": [
14 | "sanity"
15 | ],
16 | "dependencies": {
17 | "@sanity/base": "^2.30.1",
18 | "@sanity/core": "^2.30.2",
19 | "@sanity/default-layout": "^2.30.1",
20 | "@sanity/default-login": "^2.30.1",
21 | "@sanity/desk-tool": "^2.30.1",
22 | "@sanity/eslint-config-studio": "^2.0.0",
23 | "@sanity/vision": "^2.30.1",
24 | "eslint": "^8.6.0",
25 | "prop-types": "^15.7",
26 | "react": "^17.0",
27 | "react-dom": "^17.0",
28 | "styled-components": "^5.2.0"
29 | },
30 | "devDependencies": {}
31 | }
32 |
--------------------------------------------------------------------------------
/pages/api/profile/[id].ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 |
3 | import { singleUserQuery, userCreatedPostsQuery, userLikedPostsQuery } from '../../../utils/queries';
4 | import { client } from '../../../utils/client';
5 |
6 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
7 | if(req.method === 'GET') {
8 | const { id } = req.query;
9 |
10 | const query = singleUserQuery(id);
11 | const userVideosQuery = userCreatedPostsQuery(id);
12 | const userLikedVideosQuery = userLikedPostsQuery(id);
13 |
14 | try {
15 | const user = await client.fetch(query);
16 | const userVideos = await client.fetch(userVideosQuery);
17 | const userLikedVideos = await client.fetch(userLikedVideosQuery)
18 |
19 | res.status(200).json({ user: user[0], userVideos, userLikedVideos })
20 | } catch (error) {
21 | console.log(error);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tiktik_app",
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 | "@react-oauth/google": "^0.2.6",
13 | "jwt-decode": "^3.1.2",
14 | "@sanity/client": "^3.3.0",
15 | "axios": "^0.27.2",
16 | "next": "12.1.6",
17 | "react": "18.1.0",
18 | "react-dom": "18.1.0",
19 | "react-google-login": "^5.2.2",
20 | "react-icons": "^4.3.1",
21 | "uuidv4": "^6.2.13",
22 | "zustand": "^4.0.0-rc.1"
23 | },
24 | "devDependencies": {
25 | "@types/node": "18.0.0",
26 | "@types/react": "18.0.14",
27 | "@types/react-dom": "18.0.5",
28 | "autoprefixer": "^10.4.7",
29 | "eslint": "8.18.0",
30 | "eslint-config-next": "12.1.6",
31 | "postcss": "^8.4.14",
32 | "tailwindcss": "^3.1.4",
33 | "typescript": "4.7.4"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/pages/api/post/[id].ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next'
2 | import { uuid } from 'uuidv4';
3 |
4 | import { client } from '../../../utils/client';
5 | import { postDetailQuery } from '../../../utils/queries';
6 |
7 | export default async function handler(req: NextApiRequest, res: NextApiResponse) {
8 | if(req.method === 'GET') {
9 | const { id } = req.query;
10 | const query = postDetailQuery(id);
11 |
12 | const data = await client.fetch(query);
13 |
14 | res.status(200).json(data[0]);
15 | } else if (req.method === 'PUT') {
16 | const { comment, userId } = req.body;
17 | const { id }:any = req.query;
18 |
19 | const data = await client
20 | .patch(id)
21 | .setIfMissing({ comments: [] })
22 | .insert('after', 'comments[-1]', [
23 | {
24 | comment,
25 | _key: uuid(),
26 | postedBy: { _type: 'postedBy', _ref: userId }
27 | }
28 | ])
29 | .commit()
30 |
31 | res.status(200).json(data);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/sanity-backend/schemas/post.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'post',
3 | title: 'Post',
4 | type: 'document',
5 | fields: [
6 | {
7 | name: 'caption',
8 | title: 'Caption',
9 | type: 'string',
10 | },
11 | {
12 | name: 'video',
13 | title: 'Video',
14 | type: 'file',
15 | options: {
16 | hotspot: true,
17 | },
18 | },
19 | {
20 | name: 'userId',
21 | title: 'UserId',
22 | type: 'string',
23 | },
24 | {
25 | name: 'postedBy',
26 | title: 'PostedBy',
27 | type: 'postedBy',
28 | },
29 | {
30 | name: 'likes',
31 | title: 'Likes',
32 | type: 'array',
33 | of: [
34 | {
35 | type: 'reference',
36 | to: [{ type: 'user' }],
37 | },
38 | ],
39 | },
40 | {
41 | name: 'comments',
42 | title: 'Comments',
43 | type: 'array',
44 | of: [{ type: 'comment' }],
45 | },
46 | {
47 | name: 'topic',
48 | title: 'Topic',
49 | type: 'string',
50 | },
51 | ],
52 | };
53 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: [
3 | './pages/**/*.{js,ts,jsx,tsx}',
4 | './components/**/*.{js,ts,jsx,tsx}',
5 | ],
6 | theme: {
7 | extend: {
8 | width: {
9 | 1600: '1600px',
10 | 400: '400px',
11 | 450: '450px',
12 | 210: '210px',
13 | 550: '550px',
14 | 260: '260px',
15 | 650: '650px',
16 | },
17 | height: {
18 | 600: '600px',
19 | 280: '280px',
20 | 900: '900px',
21 | 458: '458px',
22 | },
23 | top: {
24 | ' 50%': '50%',
25 | },
26 | backgroundColor: {
27 | primary: '#F1F1F2',
28 | blur: '#030303',
29 | },
30 | colors: {
31 | primary: 'rgb(22, 24, 35)',
32 | },
33 | height: {
34 | '88vh': '88vh',
35 | },
36 | backgroundImage: {
37 | 'blurred-img':
38 | "url('https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSsaaJ7s4lqcBF4IDROVPzrlL5fexcwRmDlnuEYQenWTt1DejFY5kmYDref2a0Hp2eE4aw&usqp=CAU')",
39 | },
40 | },
41 | },
42 | plugins: [],
43 | };
44 |
--------------------------------------------------------------------------------
/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import axios from 'axios';
2 |
3 | import NoResults from '../components/NoResults';
4 | import VideoCard from '../components/VideoCard';
5 | import { Video } from '../types';
6 | import { BASE_URL } from '../utils';
7 |
8 | interface IProps {
9 | videos: Video[]
10 | }
11 |
12 | const Home = ({ videos }: IProps) => {
13 | return (
14 |
15 | {videos.length ? (
16 | videos.map((video: Video) => (
17 |
18 | ))
19 | ) : (
20 |
21 | )}
22 |
23 | )
24 | }
25 |
26 | export const getServerSideProps = async ({
27 | query: { topic }
28 | }: {
29 | query: { topic: string }
30 | }) => {
31 | let response = null;
32 |
33 | if(topic) {
34 | response = await axios.get(`${BASE_URL}/api/discover/${topic}`);
35 | } else {
36 | response = await axios.get(`${BASE_URL}/api/post`);
37 | }
38 |
39 | return {
40 | props: {
41 | videos: response.data
42 | }
43 | }
44 | }
45 |
46 | export default Home
47 |
--------------------------------------------------------------------------------
/utils/constants.tsx:
--------------------------------------------------------------------------------
1 | import { BsCode, BsEmojiSunglasses } from 'react-icons/bs';
2 | import { GiCakeSlice, GiGalaxy, GiLipstick } from 'react-icons/gi';
3 | import { FaPaw, FaMedal, FaGamepad } from 'react-icons/fa';
4 |
5 | export const topics = [
6 | {
7 | name: 'coding',
8 | icon: ,
9 | },
10 | {
11 | name: 'comedy',
12 | icon: ,
13 | },
14 | {
15 | name: 'gaming',
16 | icon: ,
17 | },
18 | {
19 | name: 'food',
20 | icon: ,
21 | },
22 | {
23 | name: 'dance',
24 | icon: ,
25 | },
26 | {
27 | name: 'beauty',
28 | icon: ,
29 | },
30 | {
31 | name: 'animals',
32 | icon: ,
33 | },
34 | {
35 | name: 'sports',
36 | icon: ,
37 | },
38 | ];
39 |
40 | export const footerList1 = ['About', 'Newsroom', 'Store', 'Contact', 'Carrers', 'ByteDance', 'Creator Directory']
41 | export const footerList2 = [ 'TikTok for Good','Advertise','Developers','Transparency','TikTok Rewards' ]
42 | export const footerList3 = [ 'Help', 'Safety', 'Terms', 'Privacy', 'Creator Portal', 'Community Guidelines' ]
--------------------------------------------------------------------------------
/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import type { AppProps } from 'next/app';
2 | import { useState, useEffect } from 'react';
3 | import { GoogleOAuthProvider } from '@react-oauth/google';
4 |
5 | import Navbar from '../components/Navbar';
6 | import Sidebar from '../components/Sidebar';
7 | import '../styles/globals.css'
8 |
9 | const MyApp = ({ Component, pageProps }: AppProps) => {
10 | const [isSSR, setIsSSR] = useState(true);
11 |
12 | useEffect(() => {
13 | setIsSSR(false);
14 | }, []);
15 |
16 | if(isSSR) return null;
17 |
18 | return (
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | );
33 | }
34 |
35 | export default MyApp
36 |
--------------------------------------------------------------------------------
/components/LikeButton.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react';
2 | import { MdFavorite } from 'react-icons/md';
3 |
4 | import useAuthStore from '../store/authStore';
5 |
6 | interface IProps {
7 | handleLike: () => void;
8 | handleDislike: () => void;
9 | likes: any[];
10 | }
11 |
12 | const LikeButton = ({ likes, handleLike, handleDislike }: IProps) => {
13 | const [alreadyLiked, setAlreadyLiked] = useState(false);
14 | const { userProfile }: any = useAuthStore();
15 | const filterLikes = likes?.filter((item) => item._ref === userProfile?._id)
16 |
17 | useEffect(() => {
18 | if(filterLikes?.length > 0) {
19 | setAlreadyLiked(true);
20 | } else {
21 | setAlreadyLiked(false)
22 | }
23 | }, [filterLikes, likes])
24 |
25 | return (
26 |
27 |
28 | {alreadyLiked ? (
29 |
30 |
31 |
32 | ) : (
33 |
34 |
35 |
36 | )}
37 |
{likes?.length || 0 }
38 |
39 |
40 | )
41 | }
42 |
43 | export default LikeButton
--------------------------------------------------------------------------------
/components/Discover.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Link from 'next/link';
3 | import { useRouter } from 'next/router';
4 |
5 | import { topics } from '../utils/constants';
6 |
7 | const Discover = () => {
8 | const router = useRouter();
9 | const { topic } = router.query;
10 |
11 | const activeTopicStyle = "xl:border-2 hover:bg-primary xl:border-[#F51997] px-3 py-2 rounded xl:rounded-full flex items-center gap-2 justify-center cursor-pointer text-[#FF1997]"
12 |
13 | const topicStyle = "xl:border-2 hover:bg-primary xl:border-gray-300 px-3 py-2 rounded xl:rounded-full flex items-center gap-2 justify-center cursor-pointer text-black"
14 |
15 | return (
16 |
17 |
18 | Popular Topics
19 |
20 |
21 | {topics.map((item) => (
22 |
23 |
24 |
25 | {item.icon}
26 |
27 |
28 | {item.name}
29 |
30 |
31 |
32 | ))}
33 |
34 |
35 | )
36 | }
37 |
38 | export default Discover
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2 |
3 | ## Getting Started
4 |
5 | First, run the development server:
6 |
7 | ```bash
8 | npm run dev
9 | # or
10 | yarn dev
11 | ```
12 |
13 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
14 |
15 | You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
16 |
17 | [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
18 |
19 | The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
20 |
21 | ## Learn More
22 |
23 | To learn more about Next.js, take a look at the following resources:
24 |
25 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
26 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
27 |
28 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
29 |
30 | ## Deploy on Vercel
31 |
32 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
33 |
34 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
35 |
--------------------------------------------------------------------------------
/components/Sidebar.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { NextPage } from 'next';
3 | import { useRouter } from 'next/router';
4 | import Link from 'next/link';
5 | import GoogleLogin from 'react-google-login';
6 | import { AiFillHome, AiOutlineMenu } from 'react-icons/ai';
7 | import { ImCancelCircle } from 'react-icons/im';
8 | import Discover from './Discover';
9 | import SuggestedAccounts from './SuggestedAccounts';
10 | import Footer from './Footer';
11 |
12 | const Sidebar = () => {
13 | const [showSidebar, setShowSidebar] = useState(true);
14 |
15 | const userProfile = false;
16 |
17 | const normalLink = 'flex items-center gap-3 hover:bg-primary p-3 justify-center xl:justify-start cursor-pointer font-semibold text-[#F51997] rounded';
18 |
19 | return (
20 |
21 |
setShowSidebar((prev) => !prev)}
24 | >
25 | {showSidebar ?
:
}
26 |
27 | {showSidebar && (
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | For You
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | )}
46 |
47 | )
48 | }
49 |
50 | export default Sidebar
--------------------------------------------------------------------------------
/components/SuggestedAccounts.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect } from 'react'
2 | import Image from 'next/image';
3 | import Link from 'next/link';
4 | import { GoVerified } from 'react-icons/go';
5 |
6 | import useAuthStore from '../store/authStore';
7 | import { IUser } from '../types';
8 |
9 | const SuggestedAccounts = () => {
10 | const { fetchAllUsers, allUsers } = useAuthStore();
11 |
12 | useEffect(() => {
13 | fetchAllUsers();
14 | }, [fetchAllUsers]);
15 |
16 | return (
17 |
18 |
Suggested Accounts
19 |
20 |
21 | {allUsers.slice(0, 6).map((user: IUser) => (
22 |
23 |
24 |
25 |
33 |
34 |
35 |
36 |
37 | {user.userName.replaceAll(' ', '')}
38 |
39 |
40 |
41 | {user.userName}
42 |
43 |
44 |
45 |
46 | ))}
47 |
48 |
49 | )
50 | }
51 |
52 | export default SuggestedAccounts
--------------------------------------------------------------------------------
/pages/profile/[id].tsx:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from 'react';
2 | import Image from 'next/image';
3 | import { GoVerified } from 'react-icons/go';
4 | import axios from 'axios';
5 |
6 | import VideoCard from '../../components/VideoCard';
7 | import NoResults from '../../components/NoResults';
8 | import { IUser, Video } from '../../types';
9 | import { BASE_URL } from '../../utils';
10 |
11 | interface IProps {
12 | data: {
13 | user: IUser,
14 | userVideos: Video[],
15 | userLikedVideos: Video[]
16 | }
17 | }
18 |
19 | const Profile = ({ data }: IProps) => {
20 | const [showUserVideos, setShowUserVideos] = useState(true);
21 | const [videosList, setVideosList] = useState([]);
22 | const { user, userVideos, userLikedVideos } = data;
23 |
24 | const videos = showUserVideos ? 'border-b-2 border-black' : 'text-gray-400'
25 | const liked = !showUserVideos ? 'border-b-2 border-black' : 'text-gray-400'
26 |
27 | useEffect(() => {
28 | if(showUserVideos) {
29 | setVideosList(userVideos);
30 | } else {
31 | setVideosList(userLikedVideos);
32 | }
33 | }, [showUserVideos, userLikedVideos, userVideos]);
34 |
35 | return (
36 |
37 |
38 |
39 |
47 |
48 |
49 |
50 |
51 | {user.userName.replaceAll(' ', '')}
52 |
53 |
54 |
55 | {user.userName}
56 |
57 |
58 |
59 |
60 |
61 |
62 |
setShowUserVideos(true)}>Videos
63 |
setShowUserVideos(false)}>Liked
64 |
65 |
66 |
67 | {videosList.length > 0 ? (
68 | videosList.map((post: Video, idx: number) => (
69 |
70 | ))
71 | ) : }
72 |
73 |
74 |
75 |
76 | )
77 | }
78 |
79 | export const getServerSideProps = async ({
80 | params: { id }
81 | }: {
82 | params: { id: string }
83 | }) => {
84 | const res = await axios.get(`${BASE_URL}/api/profile/${id}`)
85 |
86 | return {
87 | props: { data: res.data }
88 | }
89 | }
90 |
91 | export default Profile;
--------------------------------------------------------------------------------
/pages/search/[searchTerm].tsx:
--------------------------------------------------------------------------------
1 | import { useState } from 'react';
2 | import Image from 'next/image';
3 | import { GoVerified } from 'react-icons/go';
4 | import axios from 'axios';
5 | import Link from 'next/link';
6 | import { useRouter } from 'next/router';
7 |
8 | import VideoCard from '../../components/VideoCard';
9 | import NoResults from '../../components/NoResults';
10 | import { IUser, Video } from '../../types';
11 | import { BASE_URL } from '../../utils';
12 | import useAuthStore from '../../store/authStore';
13 |
14 | const Search = ({ videos }: { videos: Video[] }) => {
15 | const [isAccounts, setIsAccounts] = useState(false);
16 | const router = useRouter();
17 | const { searchTerm }: any = router.query;
18 | const { allUsers } = useAuthStore();
19 |
20 | const accounts = isAccounts ? 'border-b-2 border-black' : 'text-gray-400'
21 | const isVideos = !isAccounts ? 'border-b-2 border-black' : 'text-gray-400'
22 | const searchedAccounts = allUsers.filter((user: IUser) => user.userName.toLowerCase().includes(searchTerm.toLowerCase()))
23 |
24 | return (
25 |
26 |
27 |
setIsAccounts(true)}>Accounts
28 |
setIsAccounts(false)}>Videos
29 |
30 | {isAccounts ? (
31 |
32 | {searchedAccounts.length > 0 ? (
33 | searchedAccounts.map((user: IUser, idx: number) => (
34 |
35 |
36 |
37 |
44 |
45 |
46 |
47 |
48 | {user.userName.replaceAll(' ', '')}
49 |
50 |
51 |
52 | {user.userName}
53 |
54 |
55 |
56 |
57 | ))
58 | ) :
}
59 |
60 | ) :
61 | {videos.length ? (
62 | videos.map((video: Video, idx) => (
63 |
64 | ))
65 | ) : }
66 |
}
67 |
68 | )
69 | }
70 |
71 | export const getServerSideProps = async ({
72 | params: { searchTerm }
73 | }: {
74 | params: { searchTerm: string }
75 | }) => {
76 | const res = await axios.get(`${BASE_URL}/api/search/${searchTerm}`)
77 |
78 | return {
79 | props: { videos: res.data }
80 | }
81 | }
82 |
83 | export default Search
--------------------------------------------------------------------------------
/components/Comments.tsx:
--------------------------------------------------------------------------------
1 | import React, { Dispatch, SetStateAction } from 'react'
2 | import Image from 'next/image';
3 | import Link from 'next/link';
4 | import { GoVerified } from 'react-icons/go';
5 |
6 | import useAuthStore from '../store/authStore';
7 | import NoResults from './NoResults';
8 | import { IUser } from '../types';
9 |
10 | interface IProps {
11 | isPostingComment: Boolean,
12 | comment: string;
13 | setComment: Dispatch>;
14 | addComment: (e: React.FormEvent) => void;
15 | comments: IComment[];
16 | }
17 |
18 | interface IComment {
19 | comment: string;
20 | lenght?: number;
21 | _key: string;
22 | postedBy: { _ref: string; _id: string };
23 | }
24 |
25 | const Comments = ({ comment, setComment, addComment, comments, isPostingComment }: IProps) => {
26 | const { userProfile, allUsers } = useAuthStore();
27 |
28 | return (
29 |
30 |
31 | {comments?.length ? (
32 | comments.map((item, idx) => (
33 | <>
34 | {allUsers.map((user: IUser) => (
35 | user._id === (item.postedBy._id || item.postedBy._ref) && (
36 |
37 |
38 |
39 |
40 |
48 |
49 |
50 |
51 |
52 | {user.userName.replaceAll(' ', '')}
53 |
54 |
55 |
56 | {user.userName}
57 |
58 |
59 |
60 |
61 |
62 |
65 |
66 |
67 | )
68 | ))}
69 | >
70 | ))
71 | ) : (
72 |
73 | )}
74 |
75 |
76 | {userProfile && (
77 |
78 |
89 |
90 | )}
91 |
92 | )
93 | }
94 |
95 | export default Comments
--------------------------------------------------------------------------------
/components/Navbar.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react';
2 | import Image from 'next/image';
3 | import Link from 'next/link';
4 | import { useRouter } from 'next/router';
5 | import { AiOutlineLogout } from 'react-icons/ai';
6 | import { GoogleLogin, googleLogout } from '@react-oauth/google'
7 | import { BiSearch } from 'react-icons/bi';
8 | import { IoMdAdd } from 'react-icons/io';
9 |
10 | import Logo from '../utils/tiktik-logo.png';
11 | import { createOrGetUser } from '../utils';
12 |
13 | import useAuthStore from '../store/authStore';
14 |
15 | const Navbar = () => {
16 | const { userProfile, addUser, removeUser } = useAuthStore();
17 | const [searchValue, setSearchValue] = useState('');
18 | const router = useRouter();
19 |
20 | const handleSearch = (e: { preventDefault: () => void }) => {
21 | e.preventDefault();
22 |
23 | if(searchValue) {
24 | router.push(`/search/${searchValue}`)
25 | }
26 | }
27 |
28 | return (
29 |
30 |
31 |
32 |
38 |
39 |
40 |
41 |
42 |
60 |
61 |
62 |
63 | {userProfile ? (
64 |
65 |
66 |
67 | {` `}
68 | Upload
69 |
70 |
71 | {userProfile.image && (
72 |
73 | <>
74 |
81 | >
82 |
83 | )}
84 |
{
88 | googleLogout();
89 | removeUser();
90 | }}
91 | >
92 |
93 |
94 |
95 | ) : (
96 |
createOrGetUser(response, addUser)}
98 | onError={() => console.log('Error')}
99 | />
100 | )}
101 |
102 |
103 | )
104 | }
105 |
106 | export default Navbar
--------------------------------------------------------------------------------
/utils/queries.ts:
--------------------------------------------------------------------------------
1 | export const allPostsQuery = () => {
2 | const query = `*[_type == "post"] | order(_createdAt desc){
3 | _id,
4 | caption,
5 | video{
6 | asset->{
7 | _id,
8 | url
9 | }
10 | },
11 | userId,
12 | postedBy->{
13 | _id,
14 | userName,
15 | image
16 | },
17 | likes,
18 | comments[]{
19 | comment,
20 | _key,
21 | postedBy->{
22 | _id,
23 | userName,
24 | image
25 | },
26 | }
27 | } `;
28 |
29 | return query;
30 | };
31 |
32 | export const postDetailQuery = (postId: string | string[]) => {
33 | const query = `*[_type == "post" && _id == '${postId}']{
34 | _id,
35 | caption,
36 | video{
37 | asset->{
38 | _id,
39 | url
40 | }
41 | },
42 | userId,
43 | postedBy->{
44 | _id,
45 | userName,
46 | image
47 | },
48 | likes,
49 | comments[]{
50 | comment,
51 | _key,
52 | postedBy->{
53 | _ref,
54 | _id,
55 | },
56 | }
57 | }`;
58 | return query;
59 | };
60 |
61 | export const searchPostsQuery = (searchTerm: string | string[]) => {
62 | const query = `*[_type == "post" && caption match '${searchTerm}*' || topic match '${searchTerm}*'] {
63 | _id,
64 | caption,
65 | video{
66 | asset->{
67 | _id,
68 | url
69 | }
70 | },
71 | userId,
72 | postedBy->{
73 | _id,
74 | userName,
75 | image
76 | },
77 | likes,
78 | comments[]{
79 | comment,
80 | _key,
81 | postedBy->{
82 | _id,
83 | userName,
84 | image
85 | },
86 | }
87 | }`;
88 | return query;
89 | };
90 |
91 | export const singleUserQuery = (userId: string | string[]) => {
92 | const query = `*[_type == "user" && _id == '${userId}']`;
93 |
94 | return query;
95 | };
96 |
97 | export const allUsersQuery = () => {
98 | const query = `*[_type == "user"]`;
99 |
100 | return query;
101 | };
102 |
103 | export const userCreatedPostsQuery = (userId: string | string[]) => {
104 | const query = `*[ _type == 'post' && userId == '${userId}'] | order(_createdAt desc){
105 | _id,
106 | caption,
107 | video{
108 | asset->{
109 | _id,
110 | url
111 | }
112 | },
113 | userId,
114 | postedBy->{
115 | _id,
116 | userName,
117 | image
118 | },
119 | likes,
120 |
121 | comments[]{
122 | comment,
123 | _key,
124 | postedBy->{
125 | _id,
126 | userName,
127 | image
128 | },
129 | }
130 | }`;
131 |
132 | return query;
133 | };
134 |
135 | export const userLikedPostsQuery = (userId: string | string[]) => {
136 | const query = `*[_type == 'post' && '${userId}' in likes[]._ref ] | order(_createdAt desc) {
137 | _id,
138 | caption,
139 | video{
140 | asset->{
141 | _id,
142 | url
143 | }
144 | },
145 | userId,
146 | postedBy->{
147 | _id,
148 | userName,
149 | image
150 | },
151 | likes,
152 |
153 | comments[]{
154 | comment,
155 | _key,
156 | postedBy->{
157 | _id,
158 | userName,
159 | image
160 | },
161 | }
162 | }`;
163 |
164 | return query;
165 | };
166 |
167 | export const topicPostsQuery = (topic: string | string[]) => {
168 | const query = `*[_type == "post" && topic match '${topic}*'] {
169 | _id,
170 | caption,
171 | video{
172 | asset->{
173 | _id,
174 | url
175 | }
176 | },
177 | userId,
178 | postedBy->{
179 | _id,
180 | userName,
181 | image
182 | },
183 | likes,
184 |
185 | comments[]{
186 | comment,
187 | _key,
188 | postedBy->{
189 | _id,
190 | userName,
191 | image
192 | },
193 | }
194 | }`;
195 |
196 | return query;
197 | };
198 |
--------------------------------------------------------------------------------
/components/VideoCard.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect, useRef } from 'react';
2 | import { NextPage } from 'next';
3 | import Image from 'next/image';
4 | import Link from 'next/link';
5 | import { HiVolumeUp, HiVolumeOff } from 'react-icons/hi';
6 | import { BsPlay, BsFillPlayFill, BsFillPauseFill } from 'react-icons/bs';
7 | import { GoVerified } from 'react-icons/go';
8 |
9 | import { Video } from '../types';
10 |
11 | interface IProps {
12 | post: Video;
13 | }
14 |
15 | const VideoCard: NextPage = ({ post }) => {
16 | const [isHover, setIsHover] = useState(false);
17 | const [playing, setPlaying] = useState(false);
18 | const [isVideoMuted, setIsVideoMuted] = useState(false);
19 | const videoRef = useRef(null);
20 |
21 | const onVideoPress = () => {
22 | if(playing) {
23 | videoRef?.current?.pause();
24 | setPlaying(false);
25 | } else {
26 | videoRef?.current?.play();
27 | setPlaying(true);
28 | }
29 | }
30 |
31 | useEffect(() => {
32 | if(videoRef?.current) {
33 | videoRef.current.muted = isVideoMuted;
34 | }
35 | }, [isVideoMuted])
36 |
37 | return (
38 |
39 |
40 |
41 |
42 |
43 | <>
44 |
52 | >
53 |
54 |
55 |
56 |
57 |
58 |
59 | {post.postedBy.userName} {` `}
60 |
61 |
62 |
{post.postedBy.userName}
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
setIsHover(true)}
72 | onMouseLeave={() => setIsHover(false)}
73 | className="rounded-3xl">
74 |
75 |
81 |
82 |
83 |
84 | {isHover && (
85 |
86 | {playing ? (
87 |
88 |
89 |
90 | ) : (
91 |
92 |
93 |
94 | )}
95 | {isVideoMuted ? (
96 | setIsVideoMuted(false)}>
97 |
98 |
99 | ) : (
100 | setIsVideoMuted(true)}>
101 |
102 |
103 | )}
104 |
105 | )}
106 |
107 |
108 |
109 | )
110 | }
111 |
112 | export default VideoCard
--------------------------------------------------------------------------------
/pages/detail/[id].tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect, useRef } from 'react';
2 | import { useRouter } from 'next/router';
3 | import Image from 'next/image';
4 | import Link from 'next/link';
5 | import { GoVerified } from 'react-icons/go';
6 | import { MdOutlineCancel } from 'react-icons/md';
7 | import { BsFillPlayFill } from 'react-icons/bs';
8 | import { HiVolumeUp, HiVolumeOff } from 'react-icons/hi';
9 | import axios from 'axios';
10 |
11 | import { BASE_URL } from '../../utils';
12 | import { Video } from '../../types';
13 | import useAuthStore from '../../store/authStore';
14 | import LikeButton from '../../components/LikeButton';
15 | import Comments from '../../components/Comments';
16 |
17 | interface IProps {
18 | postDetails: Video,
19 | }
20 |
21 | const Detail = ({ postDetails }: IProps) => {
22 | const [post, setPost] = useState(postDetails);
23 | const [playing, setPlaying] = useState(false);
24 | const [isVideoMuted, setIsVideoMuted] = useState(false);
25 | const videoRef = useRef(null);
26 | const router = useRouter();
27 | const { userProfile }: any = useAuthStore();
28 | const [comment, setComment] = useState('');
29 | const [isPostingComment, setIsPostingComment] = useState(false)
30 |
31 | const onVideoClick = () => {
32 | if(playing) {
33 | videoRef?.current?.pause();
34 | setPlaying(false);
35 | } else {
36 | videoRef?.current?.play();
37 | setPlaying(true);
38 | }
39 | }
40 |
41 | useEffect(() => {
42 | if(post && videoRef?.current) {
43 | videoRef.current.muted = isVideoMuted;
44 | }
45 | }, [post, isVideoMuted])
46 |
47 | const handleLike = async (like: boolean) => {
48 | if(userProfile) {
49 | const { data } = await axios.put(`${BASE_URL}/api/like`, {
50 | userId: userProfile._id,
51 | postId: post._id,
52 | like
53 | })
54 |
55 | setPost({ ...post, likes: data.likes });
56 | }
57 | }
58 |
59 | const addComment = async (e) => {
60 | e.preventDefault();
61 |
62 | if(userProfile && comment) {
63 | setIsPostingComment(true);
64 |
65 | const { data } = await axios.put(`${BASE_URL}/api/post/${post._id}`, {
66 | userId: userProfile._id,
67 | comment
68 | });
69 |
70 | setPost({ ...post, comments: data.comments});
71 | setComment('');
72 | setIsPostingComment(false);
73 | }
74 | }
75 |
76 | if(!post) return null;
77 |
78 | return (
79 |
80 |
81 |
82 |
router.back()}>
83 |
84 |
85 |
86 |
87 |
88 |
95 |
96 |
97 |
98 |
99 | {!playing && (
100 |
101 |
102 |
103 | )}
104 |
105 |
106 |
107 |
108 | {isVideoMuted ? (
109 | setIsVideoMuted(false)}>
110 |
111 |
112 | ) : (
113 | setIsVideoMuted(true)}>
114 |
115 |
116 | )}
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 | <>
126 |
134 | >
135 |
136 |
137 |
138 |
139 |
140 |
141 | {post.postedBy.userName} {` `}
142 |
143 |
144 |
{post.postedBy.userName}
145 |
146 |
147 |
148 |
149 |
150 |
{post.caption}
151 |
152 |
153 | {userProfile && (
154 | handleLike(true)}
157 | handleDislike={() => handleLike(false)}
158 | />
159 | )}
160 |
161 |
168 |
169 |
170 |
171 |
172 | )
173 | }
174 |
175 | export const getServerSideProps = async ({
176 | params: { id }
177 | }: {
178 | params: { id: string }
179 | }) => {
180 | const { data } = await axios.get(`${BASE_URL}/api/post/${id}`)
181 |
182 | return {
183 | props: { postDetails: data }
184 | }
185 | }
186 |
187 | export default Detail
--------------------------------------------------------------------------------
/pages/upload.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react'
2 | import { useRouter } from 'next/router';
3 | import { FaCloudUploadAlt } from 'react-icons/fa';
4 | import { MdDelete } from 'react-icons/md';
5 | import axios from 'axios';
6 | import { SanityAssetDocument } from '@sanity/client';
7 |
8 | import useAuthStore from '../store/authStore';
9 | import { client } from '../utils/client';
10 |
11 | import { topics } from '../utils/constants';
12 | import { BASE_URL } from '../utils';
13 |
14 | const Upload = () => {
15 | const [isLoading, setIsLoading] = useState(false);
16 | const [videoAsset, setVideoAsset] = useState();
17 | const [wrongFileType, setWrongFileType] = useState(false);
18 | const [caption, setCaption] = useState('');
19 | const [category, setCategory] = useState(topics[0].name);
20 | const [savingPost, setSavingPost] = useState(false);
21 |
22 | const { userProfile }: { userProfile: any } = useAuthStore();
23 | const router = useRouter();
24 |
25 |
26 | const uploadVideo = async (e: any) => {
27 | const selectedFile = e.target.files[0];
28 | const fileTypes = ['video/mp4', 'video/webm', 'video/ogg'];
29 |
30 | if(fileTypes.includes(selectedFile.type)) {
31 | client.assets.upload('file', selectedFile, {
32 | contentType: selectedFile.type,
33 | filename: selectedFile.name
34 | })
35 | .then((data) => {
36 | setVideoAsset(data);
37 | setIsLoading(false);
38 | })
39 | } else {
40 | setIsLoading(false);
41 | setWrongFileType(true);
42 | }
43 | }
44 |
45 | const handlePost = async () => {
46 | if(caption && videoAsset?._id && category) {
47 | setSavingPost(true);
48 |
49 | const document = {
50 | _type: 'post',
51 | caption,
52 | video: {
53 | _type: 'file',
54 | asset: {
55 | _type: 'reference',
56 | _ref: videoAsset?._id
57 | }
58 | },
59 | userId: userProfile?._id,
60 | postedBy: {
61 | _type: 'postedBy',
62 | _ref: userProfile?._id
63 | },
64 | topic: category
65 | }
66 |
67 | await axios.post(`${BASE_URL}/api/post`, document);
68 |
69 | router.push('/');
70 | }
71 | }
72 |
73 | return (
74 |
75 |
76 |
77 |
78 |
Upload Video
79 |
Post a video to your account
80 |
81 |
82 | {isLoading ? (
83 |
Uploading...
84 | ): (
85 |
86 | {videoAsset ? (
87 |
88 |
94 |
95 |
96 | ) : (
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 | Upload Video
105 |
106 |
107 |
108 | MP4 or WebM or ogg
109 | 720x1280 or higher
110 | Up to 10 minutes
111 | Less than 2GB
112 |
113 |
114 | Select File
115 |
116 |
117 |
123 |
124 | )}
125 |
126 | )}
127 | {wrongFileType && (
128 |
129 | Please select a video file
130 |
131 | )}
132 |
133 |
134 |
135 |
136 |
137 |
138 |
Caption
139 |
setCaption(e.target.value)}
143 | className="rounded outline-none text-md border-2 border-gray-200 p-2"
144 | />
145 |
Choose a Category
146 |
setCategory(e.target.value)}
148 | className="outline-none border-2 border-gray-200 text-md capitalize lg:p-4 p-2 rounded cursor-pointer"
149 | >
150 | {topics.map((topic) => (
151 |
156 | {topic.name}
157 |
158 | ))}
159 |
160 |
161 | {}}
163 | type="button"
164 | className="border-gray-300 border-2 text-md font-medium p-2 rounded w-28 lg:w-44 outline-none"
165 | >
166 | Discard
167 |
168 |
173 | Post
174 |
175 |
176 |
177 |
178 |
179 | )
180 | }
181 |
182 | export default Upload
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime-corejs3@^7.10.2":
6 | "integrity" "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q=="
7 | "resolved" "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz"
8 | "version" "7.18.3"
9 | dependencies:
10 | "core-js-pure" "^3.20.2"
11 | "regenerator-runtime" "^0.13.4"
12 |
13 | "@babel/runtime@^7.10.2", "@babel/runtime@^7.18.3":
14 | "integrity" "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug=="
15 | "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz"
16 | "version" "7.18.3"
17 | dependencies:
18 | "regenerator-runtime" "^0.13.4"
19 |
20 | "@eslint/eslintrc@^1.3.0":
21 | "integrity" "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw=="
22 | "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz"
23 | "version" "1.3.0"
24 | dependencies:
25 | "ajv" "^6.12.4"
26 | "debug" "^4.3.2"
27 | "espree" "^9.3.2"
28 | "globals" "^13.15.0"
29 | "ignore" "^5.2.0"
30 | "import-fresh" "^3.2.1"
31 | "js-yaml" "^4.1.0"
32 | "minimatch" "^3.1.2"
33 | "strip-json-comments" "^3.1.1"
34 |
35 | "@humanwhocodes/config-array@^0.9.2":
36 | "integrity" "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw=="
37 | "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz"
38 | "version" "0.9.5"
39 | dependencies:
40 | "@humanwhocodes/object-schema" "^1.2.1"
41 | "debug" "^4.1.1"
42 | "minimatch" "^3.0.4"
43 |
44 | "@humanwhocodes/object-schema@^1.2.1":
45 | "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
46 | "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
47 | "version" "1.2.1"
48 |
49 | "@next/env@12.1.6":
50 | "integrity" "sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA=="
51 | "resolved" "https://registry.npmjs.org/@next/env/-/env-12.1.6.tgz"
52 | "version" "12.1.6"
53 |
54 | "@next/eslint-plugin-next@12.1.6":
55 | "integrity" "sha512-yNUtJ90NEiYFT6TJnNyofKMPYqirKDwpahcbxBgSIuABwYOdkGwzos1ZkYD51Qf0diYwpQZBeVqElTk7Q2WNqw=="
56 | "resolved" "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.6.tgz"
57 | "version" "12.1.6"
58 | dependencies:
59 | "glob" "7.1.7"
60 |
61 | "@next/swc-win32-x64-msvc@12.1.6":
62 | "integrity" "sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA=="
63 | "resolved" "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz"
64 | "version" "12.1.6"
65 |
66 | "@nodelib/fs.scandir@2.1.5":
67 | "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="
68 | "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
69 | "version" "2.1.5"
70 | dependencies:
71 | "@nodelib/fs.stat" "2.0.5"
72 | "run-parallel" "^1.1.9"
73 |
74 | "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
75 | "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
76 | "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
77 | "version" "2.0.5"
78 |
79 | "@nodelib/fs.walk@^1.2.3":
80 | "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="
81 | "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
82 | "version" "1.2.8"
83 | dependencies:
84 | "@nodelib/fs.scandir" "2.1.5"
85 | "fastq" "^1.6.0"
86 |
87 | "@react-oauth/google@^0.2.6":
88 | "integrity" "sha512-Az6w/EL3QHSvWVbfX2WbUB15PGqM0hm86bpAoyvjw2nhDdPp9IOjpFg5HfSGJQJBydjbCFnZjI8PJskTzLOhew=="
89 | "resolved" "https://registry.npmjs.org/@react-oauth/google/-/google-0.2.6.tgz"
90 | "version" "0.2.6"
91 |
92 | "@rushstack/eslint-patch@^1.1.3":
93 | "integrity" "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw=="
94 | "resolved" "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz"
95 | "version" "1.1.3"
96 |
97 | "@sanity/client@^3.3.0":
98 | "integrity" "sha512-M89v/KcNob0tnoMCW2caSnwYhSSqO1j5XuDXCloe966ZRFUAZWe9EVyyvvP7x1vPff5xR9PKxidrcx95l221mg=="
99 | "resolved" "https://registry.npmjs.org/@sanity/client/-/client-3.3.2.tgz"
100 | "version" "3.3.2"
101 | dependencies:
102 | "@sanity/eventsource" "^4.0.0"
103 | "@sanity/generate-help-url" "^3.0.0"
104 | "get-it" "^6.0.1"
105 | "make-error" "^1.3.0"
106 | "object-assign" "^4.1.1"
107 | "rxjs" "^6.0.0"
108 |
109 | "@sanity/eventsource@^4.0.0":
110 | "integrity" "sha512-W0AD141JILOySJ177j2+HTr5k4tWNyXjGsr0dDXJzpqlwZ09J/uPHI73hMe5XtoFumPa9Bj6jy8uu2qdZX84NQ=="
111 | "resolved" "https://registry.npmjs.org/@sanity/eventsource/-/eventsource-4.0.0.tgz"
112 | "version" "4.0.0"
113 | dependencies:
114 | "event-source-polyfill" "1.0.25"
115 | "eventsource" "^2.0.2"
116 |
117 | "@sanity/generate-help-url@^3.0.0":
118 | "integrity" "sha512-wtMYcV5GIDIhVyF/jjmdwq1GdlK07dRL40XMns73VbrFI7FteRltxv48bhYVZPcLkRXb0SHjpDS/icj9/yzbVA=="
119 | "resolved" "https://registry.npmjs.org/@sanity/generate-help-url/-/generate-help-url-3.0.0.tgz"
120 | "version" "3.0.0"
121 |
122 | "@sanity/timed-out@^4.0.2":
123 | "integrity" "sha512-NBDKGj14g9Z+bopIvZcQKWCzJq5JSrdmzRR1CS+iyA3Gm8SnIWBfZa7I3mTg2X6Nu8LQXG0EPKXdOGozLS4i3w=="
124 | "resolved" "https://registry.npmjs.org/@sanity/timed-out/-/timed-out-4.0.2.tgz"
125 | "version" "4.0.2"
126 |
127 | "@types/json5@^0.0.29":
128 | "integrity" "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
129 | "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
130 | "version" "0.0.29"
131 |
132 | "@types/node@18.0.0":
133 | "integrity" "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA=="
134 | "resolved" "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz"
135 | "version" "18.0.0"
136 |
137 | "@types/prop-types@*":
138 | "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
139 | "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
140 | "version" "15.7.5"
141 |
142 | "@types/react-dom@18.0.5":
143 | "integrity" "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA=="
144 | "resolved" "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz"
145 | "version" "18.0.5"
146 | dependencies:
147 | "@types/react" "*"
148 |
149 | "@types/react@*", "@types/react@18.0.14":
150 | "integrity" "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q=="
151 | "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz"
152 | "version" "18.0.14"
153 | dependencies:
154 | "@types/prop-types" "*"
155 | "@types/scheduler" "*"
156 | "csstype" "^3.0.2"
157 |
158 | "@types/scheduler@*":
159 | "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
160 | "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
161 | "version" "0.16.2"
162 |
163 | "@types/uuid@8.3.4":
164 | "integrity" "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="
165 | "resolved" "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz"
166 | "version" "8.3.4"
167 |
168 | "@typescript-eslint/parser@^5.21.0":
169 | "integrity" "sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw=="
170 | "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.29.0.tgz"
171 | "version" "5.29.0"
172 | dependencies:
173 | "@typescript-eslint/scope-manager" "5.29.0"
174 | "@typescript-eslint/types" "5.29.0"
175 | "@typescript-eslint/typescript-estree" "5.29.0"
176 | "debug" "^4.3.4"
177 |
178 | "@typescript-eslint/scope-manager@5.29.0":
179 | "integrity" "sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA=="
180 | "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz"
181 | "version" "5.29.0"
182 | dependencies:
183 | "@typescript-eslint/types" "5.29.0"
184 | "@typescript-eslint/visitor-keys" "5.29.0"
185 |
186 | "@typescript-eslint/types@5.29.0":
187 | "integrity" "sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg=="
188 | "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.29.0.tgz"
189 | "version" "5.29.0"
190 |
191 | "@typescript-eslint/typescript-estree@5.29.0":
192 | "integrity" "sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ=="
193 | "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz"
194 | "version" "5.29.0"
195 | dependencies:
196 | "@typescript-eslint/types" "5.29.0"
197 | "@typescript-eslint/visitor-keys" "5.29.0"
198 | "debug" "^4.3.4"
199 | "globby" "^11.1.0"
200 | "is-glob" "^4.0.3"
201 | "semver" "^7.3.7"
202 | "tsutils" "^3.21.0"
203 |
204 | "@typescript-eslint/visitor-keys@5.29.0":
205 | "integrity" "sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ=="
206 | "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz"
207 | "version" "5.29.0"
208 | dependencies:
209 | "@typescript-eslint/types" "5.29.0"
210 | "eslint-visitor-keys" "^3.3.0"
211 |
212 | "acorn-jsx@^5.3.2":
213 | "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
214 | "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
215 | "version" "5.3.2"
216 |
217 | "acorn-node@^1.8.2":
218 | "integrity" "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A=="
219 | "resolved" "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
220 | "version" "1.8.2"
221 | dependencies:
222 | "acorn" "^7.0.0"
223 | "acorn-walk" "^7.0.0"
224 | "xtend" "^4.0.2"
225 |
226 | "acorn-walk@^7.0.0":
227 | "integrity" "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
228 | "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
229 | "version" "7.2.0"
230 |
231 | "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.7.1":
232 | "integrity" "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A=="
233 | "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz"
234 | "version" "8.7.1"
235 |
236 | "acorn@^7.0.0":
237 | "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
238 | "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
239 | "version" "7.4.1"
240 |
241 | "ajv@^6.10.0", "ajv@^6.12.4":
242 | "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
243 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
244 | "version" "6.12.6"
245 | dependencies:
246 | "fast-deep-equal" "^3.1.1"
247 | "fast-json-stable-stringify" "^2.0.0"
248 | "json-schema-traverse" "^0.4.1"
249 | "uri-js" "^4.2.2"
250 |
251 | "ansi-regex@^5.0.1":
252 | "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
253 | "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
254 | "version" "5.0.1"
255 |
256 | "ansi-styles@^4.1.0":
257 | "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="
258 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
259 | "version" "4.3.0"
260 | dependencies:
261 | "color-convert" "^2.0.1"
262 |
263 | "anymatch@~3.1.2":
264 | "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg=="
265 | "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
266 | "version" "3.1.2"
267 | dependencies:
268 | "normalize-path" "^3.0.0"
269 | "picomatch" "^2.0.4"
270 |
271 | "arg@^5.0.2":
272 | "integrity" "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
273 | "resolved" "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
274 | "version" "5.0.2"
275 |
276 | "argparse@^2.0.1":
277 | "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
278 | "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
279 | "version" "2.0.1"
280 |
281 | "aria-query@^4.2.2":
282 | "integrity" "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA=="
283 | "resolved" "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz"
284 | "version" "4.2.2"
285 | dependencies:
286 | "@babel/runtime" "^7.10.2"
287 | "@babel/runtime-corejs3" "^7.10.2"
288 |
289 | "array-includes@^3.1.4", "array-includes@^3.1.5":
290 | "integrity" "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ=="
291 | "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz"
292 | "version" "3.1.5"
293 | dependencies:
294 | "call-bind" "^1.0.2"
295 | "define-properties" "^1.1.4"
296 | "es-abstract" "^1.19.5"
297 | "get-intrinsic" "^1.1.1"
298 | "is-string" "^1.0.7"
299 |
300 | "array-union@^2.1.0":
301 | "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
302 | "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
303 | "version" "2.1.0"
304 |
305 | "array.prototype.flat@^1.2.5":
306 | "integrity" "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw=="
307 | "resolved" "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz"
308 | "version" "1.3.0"
309 | dependencies:
310 | "call-bind" "^1.0.2"
311 | "define-properties" "^1.1.3"
312 | "es-abstract" "^1.19.2"
313 | "es-shim-unscopables" "^1.0.0"
314 |
315 | "array.prototype.flatmap@^1.3.0":
316 | "integrity" "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg=="
317 | "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz"
318 | "version" "1.3.0"
319 | dependencies:
320 | "call-bind" "^1.0.2"
321 | "define-properties" "^1.1.3"
322 | "es-abstract" "^1.19.2"
323 | "es-shim-unscopables" "^1.0.0"
324 |
325 | "ast-types-flow@^0.0.7":
326 | "integrity" "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
327 | "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz"
328 | "version" "0.0.7"
329 |
330 | "asynckit@^0.4.0":
331 | "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
332 | "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
333 | "version" "0.4.0"
334 |
335 | "autoprefixer@^10.4.7":
336 | "integrity" "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA=="
337 | "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz"
338 | "version" "10.4.7"
339 | dependencies:
340 | "browserslist" "^4.20.3"
341 | "caniuse-lite" "^1.0.30001335"
342 | "fraction.js" "^4.2.0"
343 | "normalize-range" "^0.1.2"
344 | "picocolors" "^1.0.0"
345 | "postcss-value-parser" "^4.2.0"
346 |
347 | "axe-core@^4.4.2":
348 | "integrity" "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA=="
349 | "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz"
350 | "version" "4.4.2"
351 |
352 | "axios@^0.27.2":
353 | "integrity" "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ=="
354 | "resolved" "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz"
355 | "version" "0.27.2"
356 | dependencies:
357 | "follow-redirects" "^1.14.9"
358 | "form-data" "^4.0.0"
359 |
360 | "axobject-query@^2.2.0":
361 | "integrity" "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
362 | "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz"
363 | "version" "2.2.0"
364 |
365 | "balanced-match@^1.0.0":
366 | "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
367 | "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
368 | "version" "1.0.2"
369 |
370 | "binary-extensions@^2.0.0":
371 | "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
372 | "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
373 | "version" "2.2.0"
374 |
375 | "brace-expansion@^1.1.7":
376 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
377 | "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
378 | "version" "1.1.11"
379 | dependencies:
380 | "balanced-match" "^1.0.0"
381 | "concat-map" "0.0.1"
382 |
383 | "braces@^3.0.2", "braces@~3.0.2":
384 | "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="
385 | "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
386 | "version" "3.0.2"
387 | dependencies:
388 | "fill-range" "^7.0.1"
389 |
390 | "browserslist@^4.20.3", "browserslist@>= 4.21.0":
391 | "integrity" "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA=="
392 | "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz"
393 | "version" "4.21.0"
394 | dependencies:
395 | "caniuse-lite" "^1.0.30001358"
396 | "electron-to-chromium" "^1.4.164"
397 | "node-releases" "^2.0.5"
398 | "update-browserslist-db" "^1.0.0"
399 |
400 | "call-bind@^1.0.0", "call-bind@^1.0.2":
401 | "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
402 | "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
403 | "version" "1.0.2"
404 | dependencies:
405 | "function-bind" "^1.1.1"
406 | "get-intrinsic" "^1.0.2"
407 |
408 | "callsites@^3.0.0":
409 | "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
410 | "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
411 | "version" "3.1.0"
412 |
413 | "camelcase-css@^2.0.1":
414 | "integrity" "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
415 | "resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
416 | "version" "2.0.1"
417 |
418 | "caniuse-lite@^1.0.30001332", "caniuse-lite@^1.0.30001335", "caniuse-lite@^1.0.30001358":
419 | "integrity" "sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw=="
420 | "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001359.tgz"
421 | "version" "1.0.30001359"
422 |
423 | "capture-stack-trace@^1.0.0":
424 | "integrity" "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw=="
425 | "resolved" "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz"
426 | "version" "1.0.1"
427 |
428 | "chalk@^4.0.0":
429 | "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="
430 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
431 | "version" "4.1.2"
432 | dependencies:
433 | "ansi-styles" "^4.1.0"
434 | "supports-color" "^7.1.0"
435 |
436 | "chokidar@^3.5.3":
437 | "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="
438 | "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
439 | "version" "3.5.3"
440 | dependencies:
441 | "anymatch" "~3.1.2"
442 | "braces" "~3.0.2"
443 | "glob-parent" "~5.1.2"
444 | "is-binary-path" "~2.1.0"
445 | "is-glob" "~4.0.1"
446 | "normalize-path" "~3.0.0"
447 | "readdirp" "~3.6.0"
448 | optionalDependencies:
449 | "fsevents" "~2.3.2"
450 |
451 | "color-convert@^2.0.1":
452 | "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="
453 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
454 | "version" "2.0.1"
455 | dependencies:
456 | "color-name" "~1.1.4"
457 |
458 | "color-name@^1.1.4", "color-name@~1.1.4":
459 | "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
460 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
461 | "version" "1.1.4"
462 |
463 | "combined-stream@^1.0.8":
464 | "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
465 | "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
466 | "version" "1.0.8"
467 | dependencies:
468 | "delayed-stream" "~1.0.0"
469 |
470 | "concat-map@0.0.1":
471 | "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
472 | "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
473 | "version" "0.0.1"
474 |
475 | "core-js-pure@^3.20.2":
476 | "integrity" "sha512-XpoouuqIj4P+GWtdyV8ZO3/u4KftkeDVMfvp+308eGMhCrA3lVDSmAxO0c6GGOcmgVlaKDrgWVMo49h2ab/TDA=="
477 | "resolved" "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.3.tgz"
478 | "version" "3.23.3"
479 |
480 | "core-util-is@~1.0.0":
481 | "integrity" "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
482 | "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"
483 | "version" "1.0.3"
484 |
485 | "create-error-class@^3.0.2":
486 | "integrity" "sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw=="
487 | "resolved" "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz"
488 | "version" "3.0.2"
489 | dependencies:
490 | "capture-stack-trace" "^1.0.0"
491 |
492 | "cross-spawn@^7.0.2":
493 | "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
494 | "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
495 | "version" "7.0.3"
496 | dependencies:
497 | "path-key" "^3.1.0"
498 | "shebang-command" "^2.0.0"
499 | "which" "^2.0.1"
500 |
501 | "cssesc@^3.0.0":
502 | "integrity" "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
503 | "resolved" "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
504 | "version" "3.0.0"
505 |
506 | "csstype@^3.0.2":
507 | "integrity" "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
508 | "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz"
509 | "version" "3.1.0"
510 |
511 | "damerau-levenshtein@^1.0.8":
512 | "integrity" "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
513 | "resolved" "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz"
514 | "version" "1.0.8"
515 |
516 | "debug@^2.6.8":
517 | "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
518 | "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
519 | "version" "2.6.9"
520 | dependencies:
521 | "ms" "2.0.0"
522 |
523 | "debug@^2.6.9":
524 | "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
525 | "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
526 | "version" "2.6.9"
527 | dependencies:
528 | "ms" "2.0.0"
529 |
530 | "debug@^3.2.7":
531 | "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="
532 | "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
533 | "version" "3.2.7"
534 | dependencies:
535 | "ms" "^2.1.1"
536 |
537 | "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4":
538 | "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
539 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
540 | "version" "4.3.4"
541 | dependencies:
542 | "ms" "2.1.2"
543 |
544 | "decompress-response@^6.0.0":
545 | "integrity" "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="
546 | "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz"
547 | "version" "6.0.0"
548 | dependencies:
549 | "mimic-response" "^3.1.0"
550 |
551 | "deep-is@^0.1.3":
552 | "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
553 | "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
554 | "version" "0.1.4"
555 |
556 | "define-properties@^1.1.3", "define-properties@^1.1.4":
557 | "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA=="
558 | "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz"
559 | "version" "1.1.4"
560 | dependencies:
561 | "has-property-descriptors" "^1.0.0"
562 | "object-keys" "^1.1.1"
563 |
564 | "defined@^1.0.0":
565 | "integrity" "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
566 | "resolved" "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
567 | "version" "1.0.0"
568 |
569 | "delayed-stream@~1.0.0":
570 | "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
571 | "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
572 | "version" "1.0.0"
573 |
574 | "detective@^5.2.1":
575 | "integrity" "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw=="
576 | "resolved" "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz"
577 | "version" "5.2.1"
578 | dependencies:
579 | "acorn-node" "^1.8.2"
580 | "defined" "^1.0.0"
581 | "minimist" "^1.2.6"
582 |
583 | "didyoumean@^1.2.2":
584 | "integrity" "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
585 | "resolved" "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
586 | "version" "1.2.2"
587 |
588 | "dir-glob@^3.0.1":
589 | "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
590 | "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
591 | "version" "3.0.1"
592 | dependencies:
593 | "path-type" "^4.0.0"
594 |
595 | "dlv@^1.1.3":
596 | "integrity" "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
597 | "resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
598 | "version" "1.1.3"
599 |
600 | "doctrine@^2.1.0":
601 | "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="
602 | "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
603 | "version" "2.1.0"
604 | dependencies:
605 | "esutils" "^2.0.2"
606 |
607 | "doctrine@^3.0.0":
608 | "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="
609 | "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
610 | "version" "3.0.0"
611 | dependencies:
612 | "esutils" "^2.0.2"
613 |
614 | "electron-to-chromium@^1.4.164":
615 | "integrity" "sha512-rZ8PZLhK4ORPjFqLp9aqC4/S1j4qWFsPPz13xmWdrbBkU/LlxMcok+f+6f8YnQ57MiZwKtOaW15biZZsY5Igvw=="
616 | "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.170.tgz"
617 | "version" "1.4.170"
618 |
619 | "emoji-regex@^9.2.2":
620 | "integrity" "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
621 | "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz"
622 | "version" "9.2.2"
623 |
624 | "es-abstract@^1.19.0", "es-abstract@^1.19.1", "es-abstract@^1.19.2", "es-abstract@^1.19.5":
625 | "integrity" "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA=="
626 | "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz"
627 | "version" "1.20.1"
628 | dependencies:
629 | "call-bind" "^1.0.2"
630 | "es-to-primitive" "^1.2.1"
631 | "function-bind" "^1.1.1"
632 | "function.prototype.name" "^1.1.5"
633 | "get-intrinsic" "^1.1.1"
634 | "get-symbol-description" "^1.0.0"
635 | "has" "^1.0.3"
636 | "has-property-descriptors" "^1.0.0"
637 | "has-symbols" "^1.0.3"
638 | "internal-slot" "^1.0.3"
639 | "is-callable" "^1.2.4"
640 | "is-negative-zero" "^2.0.2"
641 | "is-regex" "^1.1.4"
642 | "is-shared-array-buffer" "^1.0.2"
643 | "is-string" "^1.0.7"
644 | "is-weakref" "^1.0.2"
645 | "object-inspect" "^1.12.0"
646 | "object-keys" "^1.1.1"
647 | "object.assign" "^4.1.2"
648 | "regexp.prototype.flags" "^1.4.3"
649 | "string.prototype.trimend" "^1.0.5"
650 | "string.prototype.trimstart" "^1.0.5"
651 | "unbox-primitive" "^1.0.2"
652 |
653 | "es-shim-unscopables@^1.0.0":
654 | "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w=="
655 | "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
656 | "version" "1.0.0"
657 | dependencies:
658 | "has" "^1.0.3"
659 |
660 | "es-to-primitive@^1.2.1":
661 | "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="
662 | "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
663 | "version" "1.2.1"
664 | dependencies:
665 | "is-callable" "^1.1.4"
666 | "is-date-object" "^1.0.1"
667 | "is-symbol" "^1.0.2"
668 |
669 | "escalade@^3.1.1":
670 | "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
671 | "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
672 | "version" "3.1.1"
673 |
674 | "escape-string-regexp@^4.0.0":
675 | "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
676 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
677 | "version" "4.0.0"
678 |
679 | "eslint-config-next@12.1.6":
680 | "integrity" "sha512-qoiS3g/EPzfCTkGkaPBSX9W0NGE/B1wNO3oWrd76QszVGrdpLggNqcO8+LR6MB0CNqtp9Q8NoeVrxNVbzM9hqA=="
681 | "resolved" "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.1.6.tgz"
682 | "version" "12.1.6"
683 | dependencies:
684 | "@next/eslint-plugin-next" "12.1.6"
685 | "@rushstack/eslint-patch" "^1.1.3"
686 | "@typescript-eslint/parser" "^5.21.0"
687 | "eslint-import-resolver-node" "^0.3.6"
688 | "eslint-import-resolver-typescript" "^2.7.1"
689 | "eslint-plugin-import" "^2.26.0"
690 | "eslint-plugin-jsx-a11y" "^6.5.1"
691 | "eslint-plugin-react" "^7.29.4"
692 | "eslint-plugin-react-hooks" "^4.5.0"
693 |
694 | "eslint-import-resolver-node@^0.3.6":
695 | "integrity" "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw=="
696 | "resolved" "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz"
697 | "version" "0.3.6"
698 | dependencies:
699 | "debug" "^3.2.7"
700 | "resolve" "^1.20.0"
701 |
702 | "eslint-import-resolver-typescript@^2.7.1":
703 | "integrity" "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ=="
704 | "resolved" "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz"
705 | "version" "2.7.1"
706 | dependencies:
707 | "debug" "^4.3.4"
708 | "glob" "^7.2.0"
709 | "is-glob" "^4.0.3"
710 | "resolve" "^1.22.0"
711 | "tsconfig-paths" "^3.14.1"
712 |
713 | "eslint-module-utils@^2.7.3":
714 | "integrity" "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ=="
715 | "resolved" "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz"
716 | "version" "2.7.3"
717 | dependencies:
718 | "debug" "^3.2.7"
719 | "find-up" "^2.1.0"
720 |
721 | "eslint-plugin-import@*", "eslint-plugin-import@^2.26.0":
722 | "integrity" "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA=="
723 | "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz"
724 | "version" "2.26.0"
725 | dependencies:
726 | "array-includes" "^3.1.4"
727 | "array.prototype.flat" "^1.2.5"
728 | "debug" "^2.6.9"
729 | "doctrine" "^2.1.0"
730 | "eslint-import-resolver-node" "^0.3.6"
731 | "eslint-module-utils" "^2.7.3"
732 | "has" "^1.0.3"
733 | "is-core-module" "^2.8.1"
734 | "is-glob" "^4.0.3"
735 | "minimatch" "^3.1.2"
736 | "object.values" "^1.1.5"
737 | "resolve" "^1.22.0"
738 | "tsconfig-paths" "^3.14.1"
739 |
740 | "eslint-plugin-jsx-a11y@^6.5.1":
741 | "integrity" "sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw=="
742 | "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz"
743 | "version" "6.6.0"
744 | dependencies:
745 | "@babel/runtime" "^7.18.3"
746 | "aria-query" "^4.2.2"
747 | "array-includes" "^3.1.5"
748 | "ast-types-flow" "^0.0.7"
749 | "axe-core" "^4.4.2"
750 | "axobject-query" "^2.2.0"
751 | "damerau-levenshtein" "^1.0.8"
752 | "emoji-regex" "^9.2.2"
753 | "has" "^1.0.3"
754 | "jsx-ast-utils" "^3.3.1"
755 | "language-tags" "^1.0.5"
756 | "minimatch" "^3.1.2"
757 | "semver" "^6.3.0"
758 |
759 | "eslint-plugin-react-hooks@^4.5.0":
760 | "integrity" "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g=="
761 | "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz"
762 | "version" "4.6.0"
763 |
764 | "eslint-plugin-react@^7.29.4":
765 | "integrity" "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg=="
766 | "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz"
767 | "version" "7.30.1"
768 | dependencies:
769 | "array-includes" "^3.1.5"
770 | "array.prototype.flatmap" "^1.3.0"
771 | "doctrine" "^2.1.0"
772 | "estraverse" "^5.3.0"
773 | "jsx-ast-utils" "^2.4.1 || ^3.0.0"
774 | "minimatch" "^3.1.2"
775 | "object.entries" "^1.1.5"
776 | "object.fromentries" "^2.0.5"
777 | "object.hasown" "^1.1.1"
778 | "object.values" "^1.1.5"
779 | "prop-types" "^15.8.1"
780 | "resolve" "^2.0.0-next.3"
781 | "semver" "^6.3.0"
782 | "string.prototype.matchall" "^4.0.7"
783 |
784 | "eslint-scope@^7.1.1":
785 | "integrity" "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw=="
786 | "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz"
787 | "version" "7.1.1"
788 | dependencies:
789 | "esrecurse" "^4.3.0"
790 | "estraverse" "^5.2.0"
791 |
792 | "eslint-utils@^3.0.0":
793 | "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA=="
794 | "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz"
795 | "version" "3.0.0"
796 | dependencies:
797 | "eslint-visitor-keys" "^2.0.0"
798 |
799 | "eslint-visitor-keys@^2.0.0":
800 | "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
801 | "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
802 | "version" "2.1.0"
803 |
804 | "eslint-visitor-keys@^3.3.0":
805 | "integrity" "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA=="
806 | "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"
807 | "version" "3.3.0"
808 |
809 | "eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", "eslint@>=5", "eslint@8.18.0":
810 | "integrity" "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA=="
811 | "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz"
812 | "version" "8.18.0"
813 | dependencies:
814 | "@eslint/eslintrc" "^1.3.0"
815 | "@humanwhocodes/config-array" "^0.9.2"
816 | "ajv" "^6.10.0"
817 | "chalk" "^4.0.0"
818 | "cross-spawn" "^7.0.2"
819 | "debug" "^4.3.2"
820 | "doctrine" "^3.0.0"
821 | "escape-string-regexp" "^4.0.0"
822 | "eslint-scope" "^7.1.1"
823 | "eslint-utils" "^3.0.0"
824 | "eslint-visitor-keys" "^3.3.0"
825 | "espree" "^9.3.2"
826 | "esquery" "^1.4.0"
827 | "esutils" "^2.0.2"
828 | "fast-deep-equal" "^3.1.3"
829 | "file-entry-cache" "^6.0.1"
830 | "functional-red-black-tree" "^1.0.1"
831 | "glob-parent" "^6.0.1"
832 | "globals" "^13.15.0"
833 | "ignore" "^5.2.0"
834 | "import-fresh" "^3.0.0"
835 | "imurmurhash" "^0.1.4"
836 | "is-glob" "^4.0.0"
837 | "js-yaml" "^4.1.0"
838 | "json-stable-stringify-without-jsonify" "^1.0.1"
839 | "levn" "^0.4.1"
840 | "lodash.merge" "^4.6.2"
841 | "minimatch" "^3.1.2"
842 | "natural-compare" "^1.4.0"
843 | "optionator" "^0.9.1"
844 | "regexpp" "^3.2.0"
845 | "strip-ansi" "^6.0.1"
846 | "strip-json-comments" "^3.1.0"
847 | "text-table" "^0.2.0"
848 | "v8-compile-cache" "^2.0.3"
849 |
850 | "espree@^9.3.2":
851 | "integrity" "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA=="
852 | "resolved" "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz"
853 | "version" "9.3.2"
854 | dependencies:
855 | "acorn" "^8.7.1"
856 | "acorn-jsx" "^5.3.2"
857 | "eslint-visitor-keys" "^3.3.0"
858 |
859 | "esquery@^1.4.0":
860 | "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w=="
861 | "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz"
862 | "version" "1.4.0"
863 | dependencies:
864 | "estraverse" "^5.1.0"
865 |
866 | "esrecurse@^4.3.0":
867 | "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
868 | "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
869 | "version" "4.3.0"
870 | dependencies:
871 | "estraverse" "^5.2.0"
872 |
873 | "estraverse@^5.1.0", "estraverse@^5.2.0", "estraverse@^5.3.0":
874 | "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
875 | "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
876 | "version" "5.3.0"
877 |
878 | "esutils@^2.0.2":
879 | "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
880 | "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
881 | "version" "2.0.3"
882 |
883 | "event-source-polyfill@1.0.25":
884 | "integrity" "sha512-hQxu6sN1Eq4JjoI7ITdQeGGUN193A2ra83qC0Ltm9I2UJVAten3OFVN6k5RX4YWeCS0BoC8xg/5czOCIHVosQg=="
885 | "resolved" "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.25.tgz"
886 | "version" "1.0.25"
887 |
888 | "eventsource@^2.0.2":
889 | "integrity" "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA=="
890 | "resolved" "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz"
891 | "version" "2.0.2"
892 |
893 | "fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
894 | "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
895 | "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
896 | "version" "3.1.3"
897 |
898 | "fast-glob@^3.2.11", "fast-glob@^3.2.9":
899 | "integrity" "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew=="
900 | "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz"
901 | "version" "3.2.11"
902 | dependencies:
903 | "@nodelib/fs.stat" "^2.0.2"
904 | "@nodelib/fs.walk" "^1.2.3"
905 | "glob-parent" "^5.1.2"
906 | "merge2" "^1.3.0"
907 | "micromatch" "^4.0.4"
908 |
909 | "fast-json-stable-stringify@^2.0.0":
910 | "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
911 | "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
912 | "version" "2.1.0"
913 |
914 | "fast-levenshtein@^2.0.6":
915 | "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
916 | "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
917 | "version" "2.0.6"
918 |
919 | "fastq@^1.6.0":
920 | "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw=="
921 | "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
922 | "version" "1.13.0"
923 | dependencies:
924 | "reusify" "^1.0.4"
925 |
926 | "file-entry-cache@^6.0.1":
927 | "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
928 | "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
929 | "version" "6.0.1"
930 | dependencies:
931 | "flat-cache" "^3.0.4"
932 |
933 | "fill-range@^7.0.1":
934 | "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
935 | "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
936 | "version" "7.0.1"
937 | dependencies:
938 | "to-regex-range" "^5.0.1"
939 |
940 | "find-up@^2.1.0":
941 | "integrity" "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ=="
942 | "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
943 | "version" "2.1.0"
944 | dependencies:
945 | "locate-path" "^2.0.0"
946 |
947 | "flat-cache@^3.0.4":
948 | "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
949 | "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
950 | "version" "3.0.4"
951 | dependencies:
952 | "flatted" "^3.1.0"
953 | "rimraf" "^3.0.2"
954 |
955 | "flatted@^3.1.0":
956 | "integrity" "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ=="
957 | "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz"
958 | "version" "3.2.6"
959 |
960 | "follow-redirects@^1.14.9", "follow-redirects@^1.2.4":
961 | "integrity" "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
962 | "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz"
963 | "version" "1.15.1"
964 |
965 | "form-data@^4.0.0":
966 | "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww=="
967 | "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
968 | "version" "4.0.0"
969 | dependencies:
970 | "asynckit" "^0.4.0"
971 | "combined-stream" "^1.0.8"
972 | "mime-types" "^2.1.12"
973 |
974 | "form-urlencoded@^2.0.7":
975 | "integrity" "sha512-fWUzNiOnYa126vFAT6TFXd1mhJrvD8IqmQ9ilZPjkLYQfaRreBr5fIUoOpPlWtqaAG64nzoE7u5zSetifab9IA=="
976 | "resolved" "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-2.0.9.tgz"
977 | "version" "2.0.9"
978 |
979 | "fraction.js@^4.2.0":
980 | "integrity" "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
981 | "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz"
982 | "version" "4.2.0"
983 |
984 | "from2@^2.1.1":
985 | "integrity" "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g=="
986 | "resolved" "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz"
987 | "version" "2.3.0"
988 | dependencies:
989 | "inherits" "^2.0.1"
990 | "readable-stream" "^2.0.0"
991 |
992 | "fs.realpath@^1.0.0":
993 | "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
994 | "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
995 | "version" "1.0.0"
996 |
997 | "function-bind@^1.1.1":
998 | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
999 | "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
1000 | "version" "1.1.1"
1001 |
1002 | "function.prototype.name@^1.1.5":
1003 | "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA=="
1004 | "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz"
1005 | "version" "1.1.5"
1006 | dependencies:
1007 | "call-bind" "^1.0.2"
1008 | "define-properties" "^1.1.3"
1009 | "es-abstract" "^1.19.0"
1010 | "functions-have-names" "^1.2.2"
1011 |
1012 | "functional-red-black-tree@^1.0.1":
1013 | "integrity" "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
1014 | "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
1015 | "version" "1.0.1"
1016 |
1017 | "functions-have-names@^1.2.2":
1018 | "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
1019 | "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
1020 | "version" "1.2.3"
1021 |
1022 | "get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1":
1023 | "integrity" "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA=="
1024 | "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz"
1025 | "version" "1.1.2"
1026 | dependencies:
1027 | "function-bind" "^1.1.1"
1028 | "has" "^1.0.3"
1029 | "has-symbols" "^1.0.3"
1030 |
1031 | "get-it@^6.0.1":
1032 | "integrity" "sha512-hvk2h2hiOHji57MpBQ/o9CnJT7hpNII7Jio3AyY41I7AmkUVvnYrpQAPIQGc3j7R5QNYnhwyXmok+DSSdBLWbg=="
1033 | "resolved" "https://registry.npmjs.org/get-it/-/get-it-6.1.0.tgz"
1034 | "version" "6.1.0"
1035 | dependencies:
1036 | "@sanity/timed-out" "^4.0.2"
1037 | "create-error-class" "^3.0.2"
1038 | "debug" "^2.6.8"
1039 | "decompress-response" "^6.0.0"
1040 | "follow-redirects" "^1.2.4"
1041 | "form-urlencoded" "^2.0.7"
1042 | "into-stream" "^3.1.0"
1043 | "is-plain-object" "^2.0.4"
1044 | "is-retry-allowed" "^1.1.0"
1045 | "is-stream" "^1.1.0"
1046 | "nano-pubsub" "^1.0.2"
1047 | "object-assign" "^4.1.1"
1048 | "parse-headers" "^2.0.4"
1049 | "progress-stream" "^2.0.0"
1050 | "same-origin" "^0.1.1"
1051 | "simple-concat" "^1.0.1"
1052 | "tunnel-agent" "^0.6.0"
1053 | "url-parse" "^1.1.9"
1054 |
1055 | "get-symbol-description@^1.0.0":
1056 | "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw=="
1057 | "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
1058 | "version" "1.0.0"
1059 | dependencies:
1060 | "call-bind" "^1.0.2"
1061 | "get-intrinsic" "^1.1.1"
1062 |
1063 | "glob-parent@^5.1.2":
1064 | "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
1065 | "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
1066 | "version" "5.1.2"
1067 | dependencies:
1068 | "is-glob" "^4.0.1"
1069 |
1070 | "glob-parent@^6.0.1", "glob-parent@^6.0.2":
1071 | "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="
1072 | "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
1073 | "version" "6.0.2"
1074 | dependencies:
1075 | "is-glob" "^4.0.3"
1076 |
1077 | "glob-parent@~5.1.2":
1078 | "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
1079 | "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
1080 | "version" "5.1.2"
1081 | dependencies:
1082 | "is-glob" "^4.0.1"
1083 |
1084 | "glob@^7.1.3", "glob@^7.2.0":
1085 | "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
1086 | "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
1087 | "version" "7.2.3"
1088 | dependencies:
1089 | "fs.realpath" "^1.0.0"
1090 | "inflight" "^1.0.4"
1091 | "inherits" "2"
1092 | "minimatch" "^3.1.1"
1093 | "once" "^1.3.0"
1094 | "path-is-absolute" "^1.0.0"
1095 |
1096 | "glob@7.1.7":
1097 | "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ=="
1098 | "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz"
1099 | "version" "7.1.7"
1100 | dependencies:
1101 | "fs.realpath" "^1.0.0"
1102 | "inflight" "^1.0.4"
1103 | "inherits" "2"
1104 | "minimatch" "^3.0.4"
1105 | "once" "^1.3.0"
1106 | "path-is-absolute" "^1.0.0"
1107 |
1108 | "globals@^13.15.0":
1109 | "integrity" "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog=="
1110 | "resolved" "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz"
1111 | "version" "13.15.0"
1112 | dependencies:
1113 | "type-fest" "^0.20.2"
1114 |
1115 | "globby@^11.1.0":
1116 | "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="
1117 | "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
1118 | "version" "11.1.0"
1119 | dependencies:
1120 | "array-union" "^2.1.0"
1121 | "dir-glob" "^3.0.1"
1122 | "fast-glob" "^3.2.9"
1123 | "ignore" "^5.2.0"
1124 | "merge2" "^1.4.1"
1125 | "slash" "^3.0.0"
1126 |
1127 | "has-bigints@^1.0.1", "has-bigints@^1.0.2":
1128 | "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
1129 | "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
1130 | "version" "1.0.2"
1131 |
1132 | "has-flag@^4.0.0":
1133 | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
1134 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
1135 | "version" "4.0.0"
1136 |
1137 | "has-property-descriptors@^1.0.0":
1138 | "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ=="
1139 | "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
1140 | "version" "1.0.0"
1141 | dependencies:
1142 | "get-intrinsic" "^1.1.1"
1143 |
1144 | "has-symbols@^1.0.1", "has-symbols@^1.0.2", "has-symbols@^1.0.3":
1145 | "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
1146 | "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
1147 | "version" "1.0.3"
1148 |
1149 | "has-tostringtag@^1.0.0":
1150 | "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ=="
1151 | "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
1152 | "version" "1.0.0"
1153 | dependencies:
1154 | "has-symbols" "^1.0.2"
1155 |
1156 | "has@^1.0.3":
1157 | "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
1158 | "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
1159 | "version" "1.0.3"
1160 | dependencies:
1161 | "function-bind" "^1.1.1"
1162 |
1163 | "ignore@^5.2.0":
1164 | "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="
1165 | "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz"
1166 | "version" "5.2.0"
1167 |
1168 | "import-fresh@^3.0.0", "import-fresh@^3.2.1":
1169 | "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="
1170 | "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
1171 | "version" "3.3.0"
1172 | dependencies:
1173 | "parent-module" "^1.0.0"
1174 | "resolve-from" "^4.0.0"
1175 |
1176 | "imurmurhash@^0.1.4":
1177 | "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
1178 | "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
1179 | "version" "0.1.4"
1180 |
1181 | "inflight@^1.0.4":
1182 | "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
1183 | "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
1184 | "version" "1.0.6"
1185 | dependencies:
1186 | "once" "^1.3.0"
1187 | "wrappy" "1"
1188 |
1189 | "inherits@^2.0.1", "inherits@~2.0.3", "inherits@2":
1190 | "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1191 | "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
1192 | "version" "2.0.4"
1193 |
1194 | "internal-slot@^1.0.3":
1195 | "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA=="
1196 | "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz"
1197 | "version" "1.0.3"
1198 | dependencies:
1199 | "get-intrinsic" "^1.1.0"
1200 | "has" "^1.0.3"
1201 | "side-channel" "^1.0.4"
1202 |
1203 | "into-stream@^3.1.0":
1204 | "integrity" "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ=="
1205 | "resolved" "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz"
1206 | "version" "3.1.0"
1207 | dependencies:
1208 | "from2" "^2.1.1"
1209 | "p-is-promise" "^1.1.0"
1210 |
1211 | "is-bigint@^1.0.1":
1212 | "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg=="
1213 | "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
1214 | "version" "1.0.4"
1215 | dependencies:
1216 | "has-bigints" "^1.0.1"
1217 |
1218 | "is-binary-path@~2.1.0":
1219 | "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="
1220 | "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
1221 | "version" "2.1.0"
1222 | dependencies:
1223 | "binary-extensions" "^2.0.0"
1224 |
1225 | "is-boolean-object@^1.1.0":
1226 | "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA=="
1227 | "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz"
1228 | "version" "1.1.2"
1229 | dependencies:
1230 | "call-bind" "^1.0.2"
1231 | "has-tostringtag" "^1.0.0"
1232 |
1233 | "is-callable@^1.1.4", "is-callable@^1.2.4":
1234 | "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
1235 | "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz"
1236 | "version" "1.2.4"
1237 |
1238 | "is-core-module@^2.8.1", "is-core-module@^2.9.0":
1239 | "integrity" "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A=="
1240 | "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz"
1241 | "version" "2.9.0"
1242 | dependencies:
1243 | "has" "^1.0.3"
1244 |
1245 | "is-date-object@^1.0.1":
1246 | "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ=="
1247 | "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
1248 | "version" "1.0.5"
1249 | dependencies:
1250 | "has-tostringtag" "^1.0.0"
1251 |
1252 | "is-extglob@^2.1.1":
1253 | "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
1254 | "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
1255 | "version" "2.1.1"
1256 |
1257 | "is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1":
1258 | "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
1259 | "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
1260 | "version" "4.0.3"
1261 | dependencies:
1262 | "is-extglob" "^2.1.1"
1263 |
1264 | "is-negative-zero@^2.0.2":
1265 | "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
1266 | "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
1267 | "version" "2.0.2"
1268 |
1269 | "is-number-object@^1.0.4":
1270 | "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ=="
1271 | "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz"
1272 | "version" "1.0.7"
1273 | dependencies:
1274 | "has-tostringtag" "^1.0.0"
1275 |
1276 | "is-number@^7.0.0":
1277 | "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
1278 | "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
1279 | "version" "7.0.0"
1280 |
1281 | "is-plain-object@^2.0.4":
1282 | "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="
1283 | "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
1284 | "version" "2.0.4"
1285 | dependencies:
1286 | "isobject" "^3.0.1"
1287 |
1288 | "is-regex@^1.1.4":
1289 | "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg=="
1290 | "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
1291 | "version" "1.1.4"
1292 | dependencies:
1293 | "call-bind" "^1.0.2"
1294 | "has-tostringtag" "^1.0.0"
1295 |
1296 | "is-retry-allowed@^1.1.0":
1297 | "integrity" "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
1298 | "resolved" "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz"
1299 | "version" "1.2.0"
1300 |
1301 | "is-shared-array-buffer@^1.0.2":
1302 | "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA=="
1303 | "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz"
1304 | "version" "1.0.2"
1305 | dependencies:
1306 | "call-bind" "^1.0.2"
1307 |
1308 | "is-stream@^1.1.0":
1309 | "integrity" "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
1310 | "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
1311 | "version" "1.1.0"
1312 |
1313 | "is-string@^1.0.5", "is-string@^1.0.7":
1314 | "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg=="
1315 | "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
1316 | "version" "1.0.7"
1317 | dependencies:
1318 | "has-tostringtag" "^1.0.0"
1319 |
1320 | "is-symbol@^1.0.2", "is-symbol@^1.0.3":
1321 | "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg=="
1322 | "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
1323 | "version" "1.0.4"
1324 | dependencies:
1325 | "has-symbols" "^1.0.2"
1326 |
1327 | "is-weakref@^1.0.2":
1328 | "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ=="
1329 | "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
1330 | "version" "1.0.2"
1331 | dependencies:
1332 | "call-bind" "^1.0.2"
1333 |
1334 | "isarray@~1.0.0":
1335 | "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
1336 | "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
1337 | "version" "1.0.0"
1338 |
1339 | "isexe@^2.0.0":
1340 | "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
1341 | "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
1342 | "version" "2.0.0"
1343 |
1344 | "isobject@^3.0.1":
1345 | "integrity" "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
1346 | "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
1347 | "version" "3.0.1"
1348 |
1349 | "js-tokens@^3.0.0 || ^4.0.0":
1350 | "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1351 | "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
1352 | "version" "4.0.0"
1353 |
1354 | "js-yaml@^4.1.0":
1355 | "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="
1356 | "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
1357 | "version" "4.1.0"
1358 | dependencies:
1359 | "argparse" "^2.0.1"
1360 |
1361 | "json-schema-traverse@^0.4.1":
1362 | "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
1363 | "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
1364 | "version" "0.4.1"
1365 |
1366 | "json-stable-stringify-without-jsonify@^1.0.1":
1367 | "integrity" "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
1368 | "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
1369 | "version" "1.0.1"
1370 |
1371 | "json5@^1.0.1":
1372 | "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="
1373 | "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"
1374 | "version" "1.0.1"
1375 | dependencies:
1376 | "minimist" "^1.2.0"
1377 |
1378 | "jsx-ast-utils@^2.4.1 || ^3.0.0", "jsx-ast-utils@^3.3.1":
1379 | "integrity" "sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ=="
1380 | "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz"
1381 | "version" "3.3.1"
1382 | dependencies:
1383 | "array-includes" "^3.1.5"
1384 | "object.assign" "^4.1.2"
1385 |
1386 | "jwt-decode@^3.1.2":
1387 | "integrity" "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
1388 | "resolved" "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz"
1389 | "version" "3.1.2"
1390 |
1391 | "language-subtag-registry@~0.3.2":
1392 | "integrity" "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg=="
1393 | "resolved" "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz"
1394 | "version" "0.3.21"
1395 |
1396 | "language-tags@^1.0.5":
1397 | "integrity" "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ=="
1398 | "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz"
1399 | "version" "1.0.5"
1400 | dependencies:
1401 | "language-subtag-registry" "~0.3.2"
1402 |
1403 | "levn@^0.4.1":
1404 | "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="
1405 | "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
1406 | "version" "0.4.1"
1407 | dependencies:
1408 | "prelude-ls" "^1.2.1"
1409 | "type-check" "~0.4.0"
1410 |
1411 | "lilconfig@^2.0.5":
1412 | "integrity" "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg=="
1413 | "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz"
1414 | "version" "2.0.5"
1415 |
1416 | "locate-path@^2.0.0":
1417 | "integrity" "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA=="
1418 | "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"
1419 | "version" "2.0.0"
1420 | dependencies:
1421 | "p-locate" "^2.0.0"
1422 | "path-exists" "^3.0.0"
1423 |
1424 | "lodash.merge@^4.6.2":
1425 | "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
1426 | "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
1427 | "version" "4.6.2"
1428 |
1429 | "loose-envify@^1.1.0", "loose-envify@^1.4.0":
1430 | "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
1431 | "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
1432 | "version" "1.4.0"
1433 | dependencies:
1434 | "js-tokens" "^3.0.0 || ^4.0.0"
1435 |
1436 | "lru-cache@^6.0.0":
1437 | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
1438 | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
1439 | "version" "6.0.0"
1440 | dependencies:
1441 | "yallist" "^4.0.0"
1442 |
1443 | "make-error@^1.3.0":
1444 | "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
1445 | "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
1446 | "version" "1.3.6"
1447 |
1448 | "merge2@^1.3.0", "merge2@^1.4.1":
1449 | "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
1450 | "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
1451 | "version" "1.4.1"
1452 |
1453 | "micromatch@^4.0.4":
1454 | "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA=="
1455 | "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
1456 | "version" "4.0.5"
1457 | dependencies:
1458 | "braces" "^3.0.2"
1459 | "picomatch" "^2.3.1"
1460 |
1461 | "mime-db@1.52.0":
1462 | "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
1463 | "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
1464 | "version" "1.52.0"
1465 |
1466 | "mime-types@^2.1.12":
1467 | "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
1468 | "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
1469 | "version" "2.1.35"
1470 | dependencies:
1471 | "mime-db" "1.52.0"
1472 |
1473 | "mimic-response@^3.1.0":
1474 | "integrity" "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
1475 | "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz"
1476 | "version" "3.1.0"
1477 |
1478 | "minimatch@^3.0.4", "minimatch@^3.1.1", "minimatch@^3.1.2":
1479 | "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
1480 | "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
1481 | "version" "3.1.2"
1482 | dependencies:
1483 | "brace-expansion" "^1.1.7"
1484 |
1485 | "minimist@^1.2.0", "minimist@^1.2.6":
1486 | "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
1487 | "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
1488 | "version" "1.2.6"
1489 |
1490 | "ms@^2.1.1":
1491 | "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1492 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
1493 | "version" "2.1.3"
1494 |
1495 | "ms@2.0.0":
1496 | "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1497 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
1498 | "version" "2.0.0"
1499 |
1500 | "ms@2.1.2":
1501 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1502 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1503 | "version" "2.1.2"
1504 |
1505 | "nano-pubsub@^1.0.2":
1506 | "integrity" "sha512-HtPs1RbULM/z8wt3BbeeZlxVNiJbl+zQAwwrbc0KAq5NHaCG3MmffOVCpRhNTs+TK67MdN6aZ+5wzPtRZvME+w=="
1507 | "resolved" "https://registry.npmjs.org/nano-pubsub/-/nano-pubsub-1.0.2.tgz"
1508 | "version" "1.0.2"
1509 |
1510 | "nanoid@^3.1.30", "nanoid@^3.3.4":
1511 | "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
1512 | "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
1513 | "version" "3.3.4"
1514 |
1515 | "natural-compare@^1.4.0":
1516 | "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
1517 | "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
1518 | "version" "1.4.0"
1519 |
1520 | "next@>=10.2.0", "next@12.1.6":
1521 | "integrity" "sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A=="
1522 | "resolved" "https://registry.npmjs.org/next/-/next-12.1.6.tgz"
1523 | "version" "12.1.6"
1524 | dependencies:
1525 | "@next/env" "12.1.6"
1526 | "caniuse-lite" "^1.0.30001332"
1527 | "postcss" "8.4.5"
1528 | "styled-jsx" "5.0.2"
1529 | optionalDependencies:
1530 | "@next/swc-android-arm-eabi" "12.1.6"
1531 | "@next/swc-android-arm64" "12.1.6"
1532 | "@next/swc-darwin-arm64" "12.1.6"
1533 | "@next/swc-darwin-x64" "12.1.6"
1534 | "@next/swc-linux-arm-gnueabihf" "12.1.6"
1535 | "@next/swc-linux-arm64-gnu" "12.1.6"
1536 | "@next/swc-linux-arm64-musl" "12.1.6"
1537 | "@next/swc-linux-x64-gnu" "12.1.6"
1538 | "@next/swc-linux-x64-musl" "12.1.6"
1539 | "@next/swc-win32-arm64-msvc" "12.1.6"
1540 | "@next/swc-win32-ia32-msvc" "12.1.6"
1541 | "@next/swc-win32-x64-msvc" "12.1.6"
1542 |
1543 | "node-releases@^2.0.5":
1544 | "integrity" "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q=="
1545 | "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz"
1546 | "version" "2.0.5"
1547 |
1548 | "normalize-path@^3.0.0", "normalize-path@~3.0.0":
1549 | "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
1550 | "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1551 | "version" "3.0.0"
1552 |
1553 | "normalize-range@^0.1.2":
1554 | "integrity" "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
1555 | "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
1556 | "version" "0.1.2"
1557 |
1558 | "object-assign@^4.1.1":
1559 | "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
1560 | "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
1561 | "version" "4.1.1"
1562 |
1563 | "object-hash@^3.0.0":
1564 | "integrity" "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
1565 | "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
1566 | "version" "3.0.0"
1567 |
1568 | "object-inspect@^1.12.0", "object-inspect@^1.9.0":
1569 | "integrity" "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
1570 | "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz"
1571 | "version" "1.12.2"
1572 |
1573 | "object-keys@^1.1.1":
1574 | "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
1575 | "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
1576 | "version" "1.1.1"
1577 |
1578 | "object.assign@^4.1.2":
1579 | "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ=="
1580 | "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz"
1581 | "version" "4.1.2"
1582 | dependencies:
1583 | "call-bind" "^1.0.0"
1584 | "define-properties" "^1.1.3"
1585 | "has-symbols" "^1.0.1"
1586 | "object-keys" "^1.1.1"
1587 |
1588 | "object.entries@^1.1.5":
1589 | "integrity" "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g=="
1590 | "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz"
1591 | "version" "1.1.5"
1592 | dependencies:
1593 | "call-bind" "^1.0.2"
1594 | "define-properties" "^1.1.3"
1595 | "es-abstract" "^1.19.1"
1596 |
1597 | "object.fromentries@^2.0.5":
1598 | "integrity" "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw=="
1599 | "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz"
1600 | "version" "2.0.5"
1601 | dependencies:
1602 | "call-bind" "^1.0.2"
1603 | "define-properties" "^1.1.3"
1604 | "es-abstract" "^1.19.1"
1605 |
1606 | "object.hasown@^1.1.1":
1607 | "integrity" "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A=="
1608 | "resolved" "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz"
1609 | "version" "1.1.1"
1610 | dependencies:
1611 | "define-properties" "^1.1.4"
1612 | "es-abstract" "^1.19.5"
1613 |
1614 | "object.values@^1.1.5":
1615 | "integrity" "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg=="
1616 | "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz"
1617 | "version" "1.1.5"
1618 | dependencies:
1619 | "call-bind" "^1.0.2"
1620 | "define-properties" "^1.1.3"
1621 | "es-abstract" "^1.19.1"
1622 |
1623 | "once@^1.3.0":
1624 | "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
1625 | "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
1626 | "version" "1.4.0"
1627 | dependencies:
1628 | "wrappy" "1"
1629 |
1630 | "optionator@^0.9.1":
1631 | "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="
1632 | "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
1633 | "version" "0.9.1"
1634 | dependencies:
1635 | "deep-is" "^0.1.3"
1636 | "fast-levenshtein" "^2.0.6"
1637 | "levn" "^0.4.1"
1638 | "prelude-ls" "^1.2.1"
1639 | "type-check" "^0.4.0"
1640 | "word-wrap" "^1.2.3"
1641 |
1642 | "p-is-promise@^1.1.0":
1643 | "integrity" "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg=="
1644 | "resolved" "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz"
1645 | "version" "1.1.0"
1646 |
1647 | "p-limit@^1.1.0":
1648 | "integrity" "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q=="
1649 | "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz"
1650 | "version" "1.3.0"
1651 | dependencies:
1652 | "p-try" "^1.0.0"
1653 |
1654 | "p-locate@^2.0.0":
1655 | "integrity" "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg=="
1656 | "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"
1657 | "version" "2.0.0"
1658 | dependencies:
1659 | "p-limit" "^1.1.0"
1660 |
1661 | "p-try@^1.0.0":
1662 | "integrity" "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww=="
1663 | "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz"
1664 | "version" "1.0.0"
1665 |
1666 | "parent-module@^1.0.0":
1667 | "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
1668 | "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
1669 | "version" "1.0.1"
1670 | dependencies:
1671 | "callsites" "^3.0.0"
1672 |
1673 | "parse-headers@^2.0.4":
1674 | "integrity" "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
1675 | "resolved" "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz"
1676 | "version" "2.0.5"
1677 |
1678 | "path-exists@^3.0.0":
1679 | "integrity" "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
1680 | "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
1681 | "version" "3.0.0"
1682 |
1683 | "path-is-absolute@^1.0.0":
1684 | "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
1685 | "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1686 | "version" "1.0.1"
1687 |
1688 | "path-key@^3.1.0":
1689 | "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
1690 | "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
1691 | "version" "3.1.1"
1692 |
1693 | "path-parse@^1.0.7":
1694 | "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1695 | "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1696 | "version" "1.0.7"
1697 |
1698 | "path-type@^4.0.0":
1699 | "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
1700 | "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
1701 | "version" "4.0.0"
1702 |
1703 | "picocolors@^1.0.0":
1704 | "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1705 | "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
1706 | "version" "1.0.0"
1707 |
1708 | "picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1":
1709 | "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
1710 | "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1711 | "version" "2.3.1"
1712 |
1713 | "pify@^2.3.0":
1714 | "integrity" "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
1715 | "resolved" "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
1716 | "version" "2.3.0"
1717 |
1718 | "postcss-import@^14.1.0":
1719 | "integrity" "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw=="
1720 | "resolved" "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz"
1721 | "version" "14.1.0"
1722 | dependencies:
1723 | "postcss-value-parser" "^4.0.0"
1724 | "read-cache" "^1.0.0"
1725 | "resolve" "^1.1.7"
1726 |
1727 | "postcss-js@^4.0.0":
1728 | "integrity" "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ=="
1729 | "resolved" "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz"
1730 | "version" "4.0.0"
1731 | dependencies:
1732 | "camelcase-css" "^2.0.1"
1733 |
1734 | "postcss-load-config@^3.1.4":
1735 | "integrity" "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="
1736 | "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz"
1737 | "version" "3.1.4"
1738 | dependencies:
1739 | "lilconfig" "^2.0.5"
1740 | "yaml" "^1.10.2"
1741 |
1742 | "postcss-nested@5.0.6":
1743 | "integrity" "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA=="
1744 | "resolved" "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz"
1745 | "version" "5.0.6"
1746 | dependencies:
1747 | "postcss-selector-parser" "^6.0.6"
1748 |
1749 | "postcss-selector-parser@^6.0.10", "postcss-selector-parser@^6.0.6":
1750 | "integrity" "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w=="
1751 | "resolved" "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz"
1752 | "version" "6.0.10"
1753 | dependencies:
1754 | "cssesc" "^3.0.0"
1755 | "util-deprecate" "^1.0.2"
1756 |
1757 | "postcss-value-parser@^4.0.0", "postcss-value-parser@^4.2.0":
1758 | "integrity" "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
1759 | "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
1760 | "version" "4.2.0"
1761 |
1762 | "postcss@^8.0.0", "postcss@^8.1.0", "postcss@^8.2.14", "postcss@^8.3.3", "postcss@^8.4.14", "postcss@>=8.0.9":
1763 | "integrity" "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig=="
1764 | "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz"
1765 | "version" "8.4.14"
1766 | dependencies:
1767 | "nanoid" "^3.3.4"
1768 | "picocolors" "^1.0.0"
1769 | "source-map-js" "^1.0.2"
1770 |
1771 | "postcss@8.4.5":
1772 | "integrity" "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg=="
1773 | "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz"
1774 | "version" "8.4.5"
1775 | dependencies:
1776 | "nanoid" "^3.1.30"
1777 | "picocolors" "^1.0.0"
1778 | "source-map-js" "^1.0.1"
1779 |
1780 | "prelude-ls@^1.2.1":
1781 | "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
1782 | "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
1783 | "version" "1.2.1"
1784 |
1785 | "process-nextick-args@~2.0.0":
1786 | "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1787 | "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
1788 | "version" "2.0.1"
1789 |
1790 | "progress-stream@^2.0.0":
1791 | "integrity" "sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q=="
1792 | "resolved" "https://registry.npmjs.org/progress-stream/-/progress-stream-2.0.0.tgz"
1793 | "version" "2.0.0"
1794 | dependencies:
1795 | "speedometer" "~1.0.0"
1796 | "through2" "~2.0.3"
1797 |
1798 | "prop-types@^15.6.0", "prop-types@^15.8.1":
1799 | "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
1800 | "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
1801 | "version" "15.8.1"
1802 | dependencies:
1803 | "loose-envify" "^1.4.0"
1804 | "object-assign" "^4.1.1"
1805 | "react-is" "^16.13.1"
1806 |
1807 | "punycode@^2.1.0":
1808 | "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1809 | "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
1810 | "version" "2.1.1"
1811 |
1812 | "querystringify@^2.1.1":
1813 | "integrity" "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
1814 | "resolved" "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz"
1815 | "version" "2.2.0"
1816 |
1817 | "queue-microtask@^1.2.2":
1818 | "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
1819 | "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1820 | "version" "1.2.3"
1821 |
1822 | "quick-lru@^5.1.1":
1823 | "integrity" "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
1824 | "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
1825 | "version" "5.1.1"
1826 |
1827 | "react-dom@^16 || ^17", "react-dom@^17.0.2 || ^18.0.0-0", "react-dom@>=16.8.0", "react-dom@18.1.0":
1828 | "integrity" "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w=="
1829 | "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz"
1830 | "version" "18.1.0"
1831 | dependencies:
1832 | "loose-envify" "^1.1.0"
1833 | "scheduler" "^0.22.0"
1834 |
1835 | "react-google-login@^5.2.2":
1836 | "integrity" "sha512-JUngfvaSMcOuV0lFff7+SzJ2qviuNMQdqlsDJkUM145xkGPVIfqWXq9Ui+2Dr6jdJWH5KYdynz9+4CzKjI5u6g=="
1837 | "resolved" "https://registry.npmjs.org/react-google-login/-/react-google-login-5.2.2.tgz"
1838 | "version" "5.2.2"
1839 | dependencies:
1840 | "@types/react" "*"
1841 | "prop-types" "^15.6.0"
1842 |
1843 | "react-icons@^4.3.1":
1844 | "integrity" "sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg=="
1845 | "resolved" "https://registry.npmjs.org/react-icons/-/react-icons-4.4.0.tgz"
1846 | "version" "4.4.0"
1847 |
1848 | "react-is@^16.13.1":
1849 | "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
1850 | "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
1851 | "version" "16.13.1"
1852 |
1853 | "react@*", "react@^16 || ^17", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^17.0.2 || ^18.0.0-0", "react@^18.1.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@>=16.8", "react@>=16.8.0", "react@18.1.0":
1854 | "integrity" "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ=="
1855 | "resolved" "https://registry.npmjs.org/react/-/react-18.1.0.tgz"
1856 | "version" "18.1.0"
1857 | dependencies:
1858 | "loose-envify" "^1.1.0"
1859 |
1860 | "read-cache@^1.0.0":
1861 | "integrity" "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="
1862 | "resolved" "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz"
1863 | "version" "1.0.0"
1864 | dependencies:
1865 | "pify" "^2.3.0"
1866 |
1867 | "readable-stream@^2.0.0", "readable-stream@~2.3.6":
1868 | "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="
1869 | "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
1870 | "version" "2.3.7"
1871 | dependencies:
1872 | "core-util-is" "~1.0.0"
1873 | "inherits" "~2.0.3"
1874 | "isarray" "~1.0.0"
1875 | "process-nextick-args" "~2.0.0"
1876 | "safe-buffer" "~5.1.1"
1877 | "string_decoder" "~1.1.1"
1878 | "util-deprecate" "~1.0.1"
1879 |
1880 | "readdirp@~3.6.0":
1881 | "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
1882 | "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
1883 | "version" "3.6.0"
1884 | dependencies:
1885 | "picomatch" "^2.2.1"
1886 |
1887 | "regenerator-runtime@^0.13.4":
1888 | "integrity" "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
1889 | "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
1890 | "version" "0.13.9"
1891 |
1892 | "regexp.prototype.flags@^1.4.1", "regexp.prototype.flags@^1.4.3":
1893 | "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA=="
1894 | "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz"
1895 | "version" "1.4.3"
1896 | dependencies:
1897 | "call-bind" "^1.0.2"
1898 | "define-properties" "^1.1.3"
1899 | "functions-have-names" "^1.2.2"
1900 |
1901 | "regexpp@^3.2.0":
1902 | "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="
1903 | "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz"
1904 | "version" "3.2.0"
1905 |
1906 | "requires-port@^1.0.0":
1907 | "integrity" "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
1908 | "resolved" "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
1909 | "version" "1.0.0"
1910 |
1911 | "resolve-from@^4.0.0":
1912 | "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
1913 | "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
1914 | "version" "4.0.0"
1915 |
1916 | "resolve@^1.1.7", "resolve@^1.20.0", "resolve@^1.22.0":
1917 | "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="
1918 | "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"
1919 | "version" "1.22.1"
1920 | dependencies:
1921 | "is-core-module" "^2.9.0"
1922 | "path-parse" "^1.0.7"
1923 | "supports-preserve-symlinks-flag" "^1.0.0"
1924 |
1925 | "resolve@^2.0.0-next.3":
1926 | "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ=="
1927 | "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz"
1928 | "version" "2.0.0-next.4"
1929 | dependencies:
1930 | "is-core-module" "^2.9.0"
1931 | "path-parse" "^1.0.7"
1932 | "supports-preserve-symlinks-flag" "^1.0.0"
1933 |
1934 | "reusify@^1.0.4":
1935 | "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
1936 | "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
1937 | "version" "1.0.4"
1938 |
1939 | "rimraf@^3.0.2":
1940 | "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
1941 | "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
1942 | "version" "3.0.2"
1943 | dependencies:
1944 | "glob" "^7.1.3"
1945 |
1946 | "run-parallel@^1.1.9":
1947 | "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="
1948 | "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1949 | "version" "1.2.0"
1950 | dependencies:
1951 | "queue-microtask" "^1.2.2"
1952 |
1953 | "rxjs@^6.0.0":
1954 | "integrity" "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ=="
1955 | "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz"
1956 | "version" "6.6.7"
1957 | dependencies:
1958 | "tslib" "^1.9.0"
1959 |
1960 | "safe-buffer@^5.0.1", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1":
1961 | "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1962 | "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
1963 | "version" "5.1.2"
1964 |
1965 | "same-origin@^0.1.1":
1966 | "integrity" "sha512-effkSW9cap879l6CVNdwL5iubVz8tkspqgfiqwgBgFQspV7152WHaLzr5590yR8oFgt7E1d4lO09uUhtAgUPoA=="
1967 | "resolved" "https://registry.npmjs.org/same-origin/-/same-origin-0.1.1.tgz"
1968 | "version" "0.1.1"
1969 |
1970 | "scheduler@^0.22.0":
1971 | "integrity" "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ=="
1972 | "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz"
1973 | "version" "0.22.0"
1974 | dependencies:
1975 | "loose-envify" "^1.1.0"
1976 |
1977 | "semver@^6.3.0":
1978 | "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1979 | "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
1980 | "version" "6.3.0"
1981 |
1982 | "semver@^7.3.7":
1983 | "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g=="
1984 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz"
1985 | "version" "7.3.7"
1986 | dependencies:
1987 | "lru-cache" "^6.0.0"
1988 |
1989 | "shebang-command@^2.0.0":
1990 | "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
1991 | "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
1992 | "version" "2.0.0"
1993 | dependencies:
1994 | "shebang-regex" "^3.0.0"
1995 |
1996 | "shebang-regex@^3.0.0":
1997 | "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
1998 | "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
1999 | "version" "3.0.0"
2000 |
2001 | "side-channel@^1.0.4":
2002 | "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
2003 | "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
2004 | "version" "1.0.4"
2005 | dependencies:
2006 | "call-bind" "^1.0.0"
2007 | "get-intrinsic" "^1.0.2"
2008 | "object-inspect" "^1.9.0"
2009 |
2010 | "simple-concat@^1.0.1":
2011 | "integrity" "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
2012 | "resolved" "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"
2013 | "version" "1.0.1"
2014 |
2015 | "slash@^3.0.0":
2016 | "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
2017 | "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
2018 | "version" "3.0.0"
2019 |
2020 | "source-map-js@^1.0.1", "source-map-js@^1.0.2":
2021 | "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
2022 | "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
2023 | "version" "1.0.2"
2024 |
2025 | "speedometer@~1.0.0":
2026 | "integrity" "sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw=="
2027 | "resolved" "https://registry.npmjs.org/speedometer/-/speedometer-1.0.0.tgz"
2028 | "version" "1.0.0"
2029 |
2030 | "string_decoder@~1.1.1":
2031 | "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="
2032 | "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
2033 | "version" "1.1.1"
2034 | dependencies:
2035 | "safe-buffer" "~5.1.0"
2036 |
2037 | "string.prototype.matchall@^4.0.7":
2038 | "integrity" "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg=="
2039 | "resolved" "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz"
2040 | "version" "4.0.7"
2041 | dependencies:
2042 | "call-bind" "^1.0.2"
2043 | "define-properties" "^1.1.3"
2044 | "es-abstract" "^1.19.1"
2045 | "get-intrinsic" "^1.1.1"
2046 | "has-symbols" "^1.0.3"
2047 | "internal-slot" "^1.0.3"
2048 | "regexp.prototype.flags" "^1.4.1"
2049 | "side-channel" "^1.0.4"
2050 |
2051 | "string.prototype.trimend@^1.0.5":
2052 | "integrity" "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog=="
2053 | "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz"
2054 | "version" "1.0.5"
2055 | dependencies:
2056 | "call-bind" "^1.0.2"
2057 | "define-properties" "^1.1.4"
2058 | "es-abstract" "^1.19.5"
2059 |
2060 | "string.prototype.trimstart@^1.0.5":
2061 | "integrity" "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg=="
2062 | "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz"
2063 | "version" "1.0.5"
2064 | dependencies:
2065 | "call-bind" "^1.0.2"
2066 | "define-properties" "^1.1.4"
2067 | "es-abstract" "^1.19.5"
2068 |
2069 | "strip-ansi@^6.0.1":
2070 | "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
2071 | "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
2072 | "version" "6.0.1"
2073 | dependencies:
2074 | "ansi-regex" "^5.0.1"
2075 |
2076 | "strip-bom@^3.0.0":
2077 | "integrity" "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
2078 | "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
2079 | "version" "3.0.0"
2080 |
2081 | "strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1":
2082 | "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
2083 | "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
2084 | "version" "3.1.1"
2085 |
2086 | "styled-jsx@5.0.2":
2087 | "integrity" "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ=="
2088 | "resolved" "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz"
2089 | "version" "5.0.2"
2090 |
2091 | "supports-color@^7.1.0":
2092 | "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
2093 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
2094 | "version" "7.2.0"
2095 | dependencies:
2096 | "has-flag" "^4.0.0"
2097 |
2098 | "supports-preserve-symlinks-flag@^1.0.0":
2099 | "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
2100 | "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
2101 | "version" "1.0.0"
2102 |
2103 | "tailwindcss@^3.1.4":
2104 | "integrity" "sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ=="
2105 | "resolved" "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.4.tgz"
2106 | "version" "3.1.4"
2107 | dependencies:
2108 | "arg" "^5.0.2"
2109 | "chokidar" "^3.5.3"
2110 | "color-name" "^1.1.4"
2111 | "detective" "^5.2.1"
2112 | "didyoumean" "^1.2.2"
2113 | "dlv" "^1.1.3"
2114 | "fast-glob" "^3.2.11"
2115 | "glob-parent" "^6.0.2"
2116 | "is-glob" "^4.0.3"
2117 | "lilconfig" "^2.0.5"
2118 | "normalize-path" "^3.0.0"
2119 | "object-hash" "^3.0.0"
2120 | "picocolors" "^1.0.0"
2121 | "postcss" "^8.4.14"
2122 | "postcss-import" "^14.1.0"
2123 | "postcss-js" "^4.0.0"
2124 | "postcss-load-config" "^3.1.4"
2125 | "postcss-nested" "5.0.6"
2126 | "postcss-selector-parser" "^6.0.10"
2127 | "postcss-value-parser" "^4.2.0"
2128 | "quick-lru" "^5.1.1"
2129 | "resolve" "^1.22.0"
2130 |
2131 | "text-table@^0.2.0":
2132 | "integrity" "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
2133 | "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
2134 | "version" "0.2.0"
2135 |
2136 | "through2@~2.0.3":
2137 | "integrity" "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="
2138 | "resolved" "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"
2139 | "version" "2.0.5"
2140 | dependencies:
2141 | "readable-stream" "~2.3.6"
2142 | "xtend" "~4.0.1"
2143 |
2144 | "to-regex-range@^5.0.1":
2145 | "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
2146 | "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
2147 | "version" "5.0.1"
2148 | dependencies:
2149 | "is-number" "^7.0.0"
2150 |
2151 | "tsconfig-paths@^3.14.1":
2152 | "integrity" "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ=="
2153 | "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz"
2154 | "version" "3.14.1"
2155 | dependencies:
2156 | "@types/json5" "^0.0.29"
2157 | "json5" "^1.0.1"
2158 | "minimist" "^1.2.6"
2159 | "strip-bom" "^3.0.0"
2160 |
2161 | "tslib@^1.8.1", "tslib@^1.9.0":
2162 | "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
2163 | "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
2164 | "version" "1.14.1"
2165 |
2166 | "tsutils@^3.21.0":
2167 | "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA=="
2168 | "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
2169 | "version" "3.21.0"
2170 | dependencies:
2171 | "tslib" "^1.8.1"
2172 |
2173 | "tunnel-agent@^0.6.0":
2174 | "integrity" "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="
2175 | "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
2176 | "version" "0.6.0"
2177 | dependencies:
2178 | "safe-buffer" "^5.0.1"
2179 |
2180 | "type-check@^0.4.0", "type-check@~0.4.0":
2181 | "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="
2182 | "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
2183 | "version" "0.4.0"
2184 | dependencies:
2185 | "prelude-ls" "^1.2.1"
2186 |
2187 | "type-fest@^0.20.2":
2188 | "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
2189 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
2190 | "version" "0.20.2"
2191 |
2192 | "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", "typescript@>=3.3.1", "typescript@4.7.4":
2193 | "integrity" "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
2194 | "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz"
2195 | "version" "4.7.4"
2196 |
2197 | "unbox-primitive@^1.0.2":
2198 | "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
2199 | "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
2200 | "version" "1.0.2"
2201 | dependencies:
2202 | "call-bind" "^1.0.2"
2203 | "has-bigints" "^1.0.2"
2204 | "has-symbols" "^1.0.3"
2205 | "which-boxed-primitive" "^1.0.2"
2206 |
2207 | "update-browserslist-db@^1.0.0":
2208 | "integrity" "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA=="
2209 | "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz"
2210 | "version" "1.0.4"
2211 | dependencies:
2212 | "escalade" "^3.1.1"
2213 | "picocolors" "^1.0.0"
2214 |
2215 | "uri-js@^4.2.2":
2216 | "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
2217 | "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
2218 | "version" "4.4.1"
2219 | dependencies:
2220 | "punycode" "^2.1.0"
2221 |
2222 | "url-parse@^1.1.9":
2223 | "integrity" "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="
2224 | "resolved" "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz"
2225 | "version" "1.5.10"
2226 | dependencies:
2227 | "querystringify" "^2.1.1"
2228 | "requires-port" "^1.0.0"
2229 |
2230 | "use-sync-external-store@1.1.0":
2231 | "integrity" "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ=="
2232 | "resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz"
2233 | "version" "1.1.0"
2234 |
2235 | "util-deprecate@^1.0.2", "util-deprecate@~1.0.1":
2236 | "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
2237 | "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
2238 | "version" "1.0.2"
2239 |
2240 | "uuid@8.3.2":
2241 | "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
2242 | "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
2243 | "version" "8.3.2"
2244 |
2245 | "uuidv4@^6.2.13":
2246 | "integrity" "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ=="
2247 | "resolved" "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz"
2248 | "version" "6.2.13"
2249 | dependencies:
2250 | "@types/uuid" "8.3.4"
2251 | "uuid" "8.3.2"
2252 |
2253 | "v8-compile-cache@^2.0.3":
2254 | "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="
2255 | "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"
2256 | "version" "2.3.0"
2257 |
2258 | "which-boxed-primitive@^1.0.2":
2259 | "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg=="
2260 | "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
2261 | "version" "1.0.2"
2262 | dependencies:
2263 | "is-bigint" "^1.0.1"
2264 | "is-boolean-object" "^1.1.0"
2265 | "is-number-object" "^1.0.4"
2266 | "is-string" "^1.0.5"
2267 | "is-symbol" "^1.0.3"
2268 |
2269 | "which@^2.0.1":
2270 | "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
2271 | "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
2272 | "version" "2.0.2"
2273 | dependencies:
2274 | "isexe" "^2.0.0"
2275 |
2276 | "word-wrap@^1.2.3":
2277 | "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
2278 | "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
2279 | "version" "1.2.3"
2280 |
2281 | "wrappy@1":
2282 | "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2283 | "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
2284 | "version" "1.0.2"
2285 |
2286 | "xtend@^4.0.2", "xtend@~4.0.1":
2287 | "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
2288 | "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
2289 | "version" "4.0.2"
2290 |
2291 | "yallist@^4.0.0":
2292 | "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2293 | "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
2294 | "version" "4.0.0"
2295 |
2296 | "yaml@^1.10.2":
2297 | "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
2298 | "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
2299 | "version" "1.10.2"
2300 |
2301 | "zustand@^4.0.0-rc.1":
2302 | "integrity" "sha512-qgcs7zLqBdHu0PuT3GW4WCIY5SgXdsv30GQMu9Qpp1BA2aS+sNS8l4x0hWuyEhjXkN+701aGWawhKDv6oWJAcw=="
2303 | "resolved" "https://registry.npmjs.org/zustand/-/zustand-4.0.0-rc.1.tgz"
2304 | "version" "4.0.0-rc.1"
2305 | dependencies:
2306 | "use-sync-external-store" "1.1.0"
2307 |
--------------------------------------------------------------------------------