├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── chatbox
├── .env.local.example
├── components
│ ├── admin
│ │ ├── index.tsx
│ │ └── store.tsx
│ ├── api.ts
│ ├── shared
│ │ ├── chat.tsx
│ │ └── form.tsx
│ ├── style.tsx
│ └── widget
│ │ ├── components
│ │ ├── email.tsx
│ │ ├── header.tsx
│ │ ├── icon-close.tsx
│ │ ├── icon-default.tsx
│ │ ├── modal.tsx
│ │ └── trigger-button.tsx
│ │ ├── index.tsx
│ │ └── store.tsx
├── next-env.d.ts
├── package.json
├── pages
│ ├── _app.tsx
│ ├── api
│ │ └── chatbox
│ │ │ └── [...chatbox].ts
│ ├── chat
│ │ └── [id].tsx
│ └── index.tsx
├── postcss.config.js
├── styles
│ └── chatbox.css
├── tsconfig.json
├── tsconfig.module.json
├── tsup.config.ts
└── yarn.lock
└── example
├── .env.local.example
├── .gitignore
├── next-env.d.ts
├── next.config.js
├── package.json
├── pages
├── _app.tsx
├── api
│ └── chatbox
│ │ └── [...chatbox].ts
├── chat
│ └── [id].tsx
└── index.tsx
├── postcss.config.js
├── public
└── favicon.ico
├── styles
└── globals.css
├── tailwind.config.js
├── tsconfig.json
└── yarn.lock
/.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 | dist
18 |
19 | # misc
20 | .DS_Store
21 | *.pem
22 | .idea/
23 |
24 | # debug
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 | .pnpm-debug.log*
29 |
30 | # local env files
31 | .env.local
32 |
33 | # vercel
34 | .vercel
35 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | example/
3 | src/
4 | .idea/
5 | .prettierignore
6 | *-lock.yaml
7 | *-lock.json
8 | vite*
9 | tsconfig.json
10 | index.html
11 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 burak-upstash
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ChatBox Widget for Next.js Apps
2 |
3 | > [!NOTE]
4 | > **This project is a Community Project.**
5 | >
6 | > The project is maintained and supported by the community. Upstash may contribute but does not officially support or assume responsibility for it.
7 |
8 | Create a ChatBox Widget (like Intercom live chat) for your Next.js app. Nothing to maintain, it is completely serverless. When your website's visitor starts a session, the chat link is sent to your Slack channel.
9 |
10 | Check out the [the demo](https://upstash-chatbox.vercel.app).
11 |
12 |
13 | Here the steps:
14 |
15 | ### 1. Create Upstash Redis
16 |
17 | We will use [Upstash Redis](https://upstash.com) to keep the data as well as messaging (Redis pub/sub).
18 |
19 | Create a free Redis database at [Upstash Console](https://console.upstash.com)
20 |
21 | Copy the `.env.local.example` file to `.env.local` (which will be ignored by
22 | Git):
23 |
24 | ```bash
25 | cp .env.local.example .env.local
26 | ```
27 |
28 | - `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` can be found at the
29 | database details page in Upstash Console.
30 | - `SLACK_WEBHOOK_URL` can be found at the Slack integration page
31 | in https://api.slack.com/messaging/webhooks
32 |
33 | ### 2. Install Package
34 |
35 | ```bash
36 | yarn add @upstash/chatbox
37 | ```
38 |
39 | ### 3. Import CSS and Widget
40 |
41 | ```jsx
42 | // pages/_app.js
43 |
44 | import "@upstash/chatbox/style.css";
45 | import dynamic from "next/dynamic";
46 |
47 | const ChatBoxWidget = dynamic({
48 | loader: () => import("@upstash/chatbox/chatbox"),
49 | ssr: false,
50 | });
51 |
52 | export default function MyApp({ Component, pageProps }) {
53 | return (
54 | <>
55 |
56 |
57 | >
58 | );
59 | }
60 | ```
61 |
62 | The options can be passed as React props
63 |
64 | | key | type | default |
65 | | ---------------- | -------------------- | ---------------------------------------- |
66 | | `themeColor?` | `string` | #2d00c6 |
67 | | `textColor?` | `string` | #fff |
68 | | `title?` | `string` | Hi 👋 |
69 | | `description?` | `string` | Ask us anything, or share your feedback. |
70 | | `showOnInitial?` | `boolean` | false |
71 | | `customIcon?` | `React.ReactElement` | |
72 |
73 | ### 4. Admin Dashboard
74 |
75 | ```js
76 | // pages/chat/[id].js
77 |
78 | import dynamic from "next/dynamic";
79 |
80 | const ChatBoxAdmin = dynamic({
81 | loader: () => import("@upstash/chatbox/admin"),
82 | ssr: false,
83 | });
84 |
85 | export default function () {
86 | return ;
87 | }
88 | ```
89 |
90 | ### 5. Create API
91 |
92 | ```js
93 | // pages/api/chatbox/[...chatbox].js
94 |
95 | import createChatBoxAPI from "@upstash/chatbox/api";
96 |
97 | const ChatBoxAPI = createChatBoxAPI({
98 | webhooks: [process.env.SLACK_WEBHOOK_URL],
99 | });
100 |
101 | export default ChatBoxAPI;
102 | ```
103 |
104 | ### Support
105 | Use [Upstash Discord](https://discord.gg/w9SenAtbme) channel to get support.
106 |
107 |
--------------------------------------------------------------------------------
/chatbox/.env.local.example:
--------------------------------------------------------------------------------
1 | UPSTASH_REDIS_REST_URL=
2 | UPSTASH_REDIS_REST_TOKEN=
3 | SLACK_WEBHOOK_URL=
4 |
--------------------------------------------------------------------------------
/chatbox/components/admin/index.tsx:
--------------------------------------------------------------------------------
1 | import React, { useContext } from "react";
2 | import { useRouter } from "next/router";
3 | import FeedbackContext, { ChatBoxProvider } from "./store";
4 | import Chat from "../shared/chat";
5 | import Form from "../shared/form";
6 |
7 | function ChatBoxAdmin() {
8 | const { id, isChatTrigger, chat, message, setMessage, onSendMessage } =
9 | useContext(FeedbackContext);
10 |
11 | return (
12 |
13 |
14 |
15 |
16 | Hi, chat id: {id}:
17 |
18 |
19 |
24 |
25 |
26 |
27 | );
28 | }
29 |
30 | export interface IChatBoxAdmin {}
31 |
32 | export default function ChatBoxAdminRoot(props: IChatBoxAdmin) {
33 | const router = useRouter();
34 | const { id } = router.query;
35 |
36 | return (
37 |
38 |
39 |
40 | );
41 | }
42 |
--------------------------------------------------------------------------------
/chatbox/components/admin/store.tsx:
--------------------------------------------------------------------------------
1 | import React, { createContext, useEffect, useState } from "react";
2 |
3 | interface IChatBoxContext {
4 | id: string;
5 | isChatTrigger: number;
6 | chat: string[];
7 | message: string;
8 | setMessage: (message: string) => void;
9 | onSendMessage: () => void;
10 | }
11 |
12 | const defaultState = {} as IChatBoxContext;
13 |
14 | const ChatBoxContext = createContext(defaultState);
15 |
16 | export function ChatBoxProvider({
17 | children,
18 | id,
19 | }: {
20 | children: any;
21 | id: string;
22 | }) {
23 | const [isChatTrigger, setIsChatTrigger] = useState(performance.now());
24 | const [chat, setChat] = useState([]);
25 | const [message, setMessage] = useState("");
26 |
27 | async function fetchList() {
28 | const response = await fetch(`/api/chatbox/chat/${id}`, { method: "GET" });
29 | const data = await response.json();
30 | setChat(data.chatData);
31 | }
32 |
33 | const onSendMessage = async () => {
34 | let replyText = "o:" + message;
35 |
36 | await fetch(`/api/chatbox/chat/${id}`, {
37 | method: "POST",
38 | headers: {
39 | "Content-Type": "application/json",
40 | },
41 | body: JSON.stringify({ text: replyText }),
42 | });
43 |
44 | await fetchList();
45 | setIsChatTrigger(performance.now());
46 | setMessage("");
47 | };
48 |
49 | useEffect(() => {
50 | if (!id) return;
51 |
52 | fetchList();
53 | setTimeout(() => {
54 | setIsChatTrigger(performance.now());
55 | }, 100);
56 |
57 | const interval = setInterval(() => {
58 | fetchList();
59 | }, 3000);
60 |
61 | return () => clearInterval(interval);
62 | }, [id]);
63 |
64 | return (
65 |
75 | {children}
76 |
77 | );
78 | }
79 |
80 | export default ChatBoxContext;
81 |
--------------------------------------------------------------------------------
/chatbox/components/api.ts:
--------------------------------------------------------------------------------
1 | import { Redis } from "@upstash/redis";
2 | import { NextApiRequest, NextApiResponse } from "next";
3 |
4 | export default function createChatBoxAPI(options: { webhooks: string[] }) {
5 | const redis = Redis.fromEnv();
6 |
7 | return async function (req: NextApiRequest, res: NextApiResponse) {
8 | const method = req.method;
9 |
10 | const api = req.query.chatbox[0];
11 | const chatId = req.query.chatbox[1];
12 | const host = `http://${req.headers.host}`;
13 |
14 | try {
15 | if (!chatId) throw new Error("Missing chatId");
16 |
17 | switch (api) {
18 | case "chat":
19 | switch (method) {
20 | // GET: /chat/[id]
21 | case "GET":
22 | const chatData = await redis.lrange(chatId, 0, 2 ** 32 - 1);
23 | return res.status(200).json({ chatData });
24 |
25 | // POST: /chat/[id]
26 | case "POST":
27 | const chatText = req.body.text;
28 |
29 | const response = await redis.rpush(chatId, chatText);
30 | return res.status(200).json({ response });
31 |
32 | default:
33 | throw new Error("Method not allowed");
34 | }
35 |
36 | case "slack-email":
37 | // POST: /slack-email/[id]
38 | if (method !== "POST") throw new Error("Method not allowed");
39 |
40 | const slackEmail = req.body.email;
41 | if (!slackEmail) throw new Error("Missing email");
42 |
43 | const notifyEmailText = `A user left their email address ${slackEmail} with chat id: ${host}/chat/${chatId}`;
44 |
45 | const requestsEmail = options.webhooks.map(async (webhook) => {
46 | return fetch(webhook, {
47 | method: "POST",
48 | body: JSON.stringify({ text: notifyEmailText }),
49 | headers: {
50 | "Content-Type": "application/json",
51 | },
52 | });
53 | });
54 |
55 | await Promise.all(requestsEmail);
56 |
57 | return res.status(200).json({ response: "ok" });
58 |
59 | case "slack":
60 | // POST: /slack/[id]
61 | if (method !== "POST") throw new Error("Method not allowed");
62 |
63 | let notifyText = `New chat with id: ${host}/chat/${chatId}`;
64 |
65 | if (req.body) {
66 | notifyText = `Old chat with id: ${host}/chat/${chatId} has a new message!`;
67 | }
68 |
69 | const requestsNotify = options.webhooks.map(async (webhook) => {
70 | return fetch(webhook, {
71 | method: "POST",
72 | body: JSON.stringify({ text: notifyText }),
73 | headers: {
74 | "Content-Type": "application/json",
75 | },
76 | });
77 | });
78 |
79 | await Promise.all(requestsNotify);
80 |
81 | return res.status(200).json({ response: "ok" });
82 |
83 | default:
84 | throw new Error("Method not allowed");
85 | }
86 | } catch (err) {
87 | let message = err;
88 |
89 | console.log(err);
90 |
91 | if (err instanceof TypeError) {
92 | message = err.message;
93 | }
94 |
95 | return res.status(500).json({ message });
96 | }
97 | };
98 | }
99 |
--------------------------------------------------------------------------------
/chatbox/components/shared/chat.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useRef } from "react";
2 | import Email from "../widget/components/email";
3 |
4 | interface IChatBoxAdminChat {
5 | chat: string[];
6 | emailForm?: boolean;
7 | isChatTrigger: number;
8 | }
9 |
10 | export default function Chat({
11 | isChatTrigger,
12 | chat,
13 | emailForm = false,
14 | }: IChatBoxAdminChat) {
15 | const chatContainerRef = useRef(null);
16 |
17 | useEffect(() => {
18 | if (!chatContainerRef.current) return;
19 | chatContainerRef.current.scrollTo({
20 | behavior: "smooth",
21 | top: 99999,
22 | });
23 | }, [isChatTrigger]);
24 |
25 | function parseString(str: string) {
26 | let sender = str.substring(0, 1);
27 | let message = str.substring(2);
28 | return [sender, message];
29 | }
30 |
31 | const Messages = chat.map((item, index) => {
32 | const parsedStr = parseString(item);
33 | const isIn = parsedStr[0] === "i";
34 | const classNames = isIn
35 | ? "chatbox-chat-message-in"
36 | : "chatbox-chat-message-out";
37 |
38 | const Message = () => (
39 |
40 | {parsedStr[1]}
41 |
42 | );
43 |
44 | if (emailForm && index === 0) {
45 | return (
46 |
47 |
48 |
49 |
50 | );
51 | }
52 |
53 | return (
54 |
55 |
56 |
57 | );
58 | });
59 |
60 | return (
61 |
62 | {Messages}
63 |
64 | );
65 | }
66 |
--------------------------------------------------------------------------------
/chatbox/components/shared/form.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import TextareaAutosize from "react-textarea-autosize";
3 |
4 | interface IChatBoxAdminForm {
5 | message: string;
6 | setMessage: (message: string) => void;
7 | onSendMessage: () => void;
8 | }
9 |
10 | export default function Form({
11 | message,
12 | setMessage,
13 | onSendMessage,
14 | }: IChatBoxAdminForm) {
15 | return (
16 |
67 | );
68 | }
69 |
--------------------------------------------------------------------------------
/chatbox/components/style.tsx:
--------------------------------------------------------------------------------
1 | import "../styles/chatbox.css";
2 |
--------------------------------------------------------------------------------
/chatbox/components/widget/components/email.tsx:
--------------------------------------------------------------------------------
1 | import React, { useContext } from "react";
2 | import FeedbackContext from "../store";
3 |
4 | export default function Email() {
5 | const { isEmailSent, email, setEmail, onSendEmail } =
6 | useContext(FeedbackContext);
7 |
8 | if (isEmailSent)
9 | return (
10 |
11 | Thank you for your email. We'll be in touch as soon as possible.
12 |
13 | );
14 |
15 | return (
16 |
35 | );
36 | }
37 |
--------------------------------------------------------------------------------
/chatbox/components/widget/components/header.tsx:
--------------------------------------------------------------------------------
1 | import React, { useContext } from "react";
2 | import FeedbackContext from "../store";
3 |
4 | export default function Header() {
5 | const { title, description } = useContext(FeedbackContext);
6 |
7 | return (
8 |
9 |
{title ? title : "Hi 👋"}
10 |
11 | {description ? description : "Ask us anything, or share your feedback."}
12 |
13 |
14 | );
15 | }
16 |
--------------------------------------------------------------------------------
/chatbox/components/widget/components/icon-close.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function IconClose({ size = 30, ...props }) {
4 | return (
5 |
21 | );
22 | }
23 |
--------------------------------------------------------------------------------
/chatbox/components/widget/components/icon-default.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function IconDefault({ size = 30, ...props }) {
4 | return (
5 |
23 | );
24 | }
25 |
--------------------------------------------------------------------------------
/chatbox/components/widget/components/modal.tsx:
--------------------------------------------------------------------------------
1 | import React, { useContext } from "react";
2 | import FeedbackContext from "../store";
3 | import Form from "../../shared/form";
4 | import Chat from "../../shared/chat";
5 | import Header from "./header";
6 |
7 | export default function Modal() {
8 | const {
9 | isModalShow,
10 | isChatTrigger,
11 | chat,
12 | message,
13 | setMessage,
14 | onSendMessage,
15 | onSendEmail,
16 | } = useContext(FeedbackContext);
17 |
18 | if (!isModalShow) return null;
19 |
20 | return (
21 |
22 |
23 |
24 |
25 |
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/chatbox/components/widget/components/trigger-button.tsx:
--------------------------------------------------------------------------------
1 | import React, { useContext } from "react";
2 | import FeedbackContext from "../store";
3 | import IconDefault from "./icon-default";
4 | import IconClose from "./icon-close";
5 |
6 | export default function TriggerButton({
7 | children,
8 | }: {
9 | children?: React.ReactElement;
10 | }) {
11 | const { isModalShow, onModalShow } = useContext(FeedbackContext);
12 |
13 | return (
14 |
29 | );
30 | }
31 |
--------------------------------------------------------------------------------
/chatbox/components/widget/index.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Modal from "./components/modal";
3 | import TriggerButton from "./components/trigger-button";
4 | import { ChatBoxProvider } from "./store";
5 |
6 | // import "../styles.css";
7 |
8 | export interface IChatBoxWidget {
9 | themeColor?: string;
10 | textColor?: string;
11 | autoMessage?: string;
12 | title?: string;
13 | description?: string;
14 | showOnInitial?: boolean;
15 | customIcon?: React.ReactElement;
16 | }
17 |
18 | export default function ChatBox({
19 | themeColor = "#2d00c6",
20 | textColor = "#fff",
21 | autoMessage,
22 | title,
23 | description,
24 | showOnInitial = false,
25 | customIcon,
26 | }: IChatBoxWidget) {
27 | return (
28 |
36 |
44 |
45 | {customIcon}
46 |
47 |
48 |
49 |
50 | );
51 | }
52 |
--------------------------------------------------------------------------------
/chatbox/components/widget/store.tsx:
--------------------------------------------------------------------------------
1 | import React, { createContext, useEffect, useState } from "react";
2 | import { nanoid } from "nanoid";
3 |
4 | function getWithExpiry(key: string) {
5 | const itemStr = localStorage.getItem(key);
6 |
7 | if (!itemStr) return null;
8 |
9 | const item = JSON.parse(itemStr);
10 | const now = new Date();
11 |
12 | if (now.getTime() > item.expiry) {
13 | localStorage.removeItem(key);
14 | window.location.reload();
15 | return null;
16 | }
17 |
18 | return item.value;
19 | }
20 |
21 | // default is 24 hours
22 | function setWithExpiry(key: string, value: string, ttl = 24 * 60 * 60 * 1000) {
23 | const now = new Date();
24 |
25 | const item = {
26 | value: value,
27 | expiry: now.getTime() + ttl,
28 | };
29 |
30 | localStorage.setItem(key, JSON.stringify(item));
31 | }
32 |
33 | interface IChatBoxContext {
34 | themeColor?: string;
35 | textColor?: string;
36 |
37 | autoMessage?: string;
38 | title?: string;
39 | description?: string;
40 |
41 | showOnInitial: boolean;
42 |
43 | isModalShow: boolean;
44 | onModalShow: (state: boolean) => void;
45 |
46 | isChatTrigger: number;
47 | chat: string[];
48 | message: string;
49 | setMessage: (message: string) => void;
50 | onSendMessage: () => void;
51 |
52 | isEmailSent: boolean;
53 | email: string;
54 | setEmail: (email: string) => void;
55 | onSendEmail: () => void;
56 | }
57 |
58 | const defaultState = {
59 | showOnInitial: false,
60 | } as IChatBoxContext;
61 |
62 | const ChatBoxContext = createContext(defaultState);
63 |
64 | export function ChatBoxProvider({
65 | themeColor,
66 | textColor,
67 | autoMessage,
68 | title,
69 | description,
70 | showOnInitial,
71 | children,
72 | }: {
73 | themeColor?: string;
74 | textColor?: string;
75 | autoMessage?: string;
76 | title?: string;
77 | description?: string;
78 | showOnInitial: boolean;
79 | children: any;
80 | }) {
81 | let initialID = "visitor";
82 | const localID = getWithExpiry("chatbox_id");
83 |
84 | const [UID, setUID] = useState(localID ? localID : initialID);
85 | const [chatInitiated, setChatInitiated] = useState(localID ? true : false);
86 |
87 | const [isEmailSent, setIsEmailSent] = useState(getWithExpiry("emailSent"));
88 |
89 | const [hasBeen5Minutes, setHasBeen5Minutes] = useState(
90 | getWithExpiry("hasBeen5Minutes")
91 | );
92 |
93 | const [isChatTrigger, setIsChatTrigger] = useState(performance.now());
94 | const [chat, setChat] = useState([]);
95 | const [message, setMessage] = useState("");
96 | const [email, setEmail] = useState("");
97 |
98 | const [isModalShow, setIsModalShow] = useState(showOnInitial);
99 |
100 | async function fetchList(id = UID) {
101 | const response = await fetch(`/api/chatbox/chat/${id}`, { method: "GET" });
102 | const data = await response.json();
103 | setChat(data.chatData);
104 | }
105 |
106 | const onSendMessage = async () => {
107 | try {
108 | let id = UID;
109 | let chatInitiatedTemp = chatInitiated;
110 |
111 | if (!chatInitiated) {
112 | id = nanoid(10);
113 |
114 | const initResponse = await fetch(`/api/chatbox/slack/${id}`, {
115 | method: "POST",
116 | });
117 |
118 | setWithExpiry("chatbox_id", id);
119 |
120 | if (initResponse.status !== 200) {
121 | localStorage.removeItem("chatbox_id");
122 | localStorage.removeItem("hasBeen5Minutes");
123 | localStorage.removeItem("emailSent");
124 |
125 | throw new Error("Failed to init chat");
126 | }
127 |
128 | setChatInitiated(true);
129 | setUID(id);
130 | }
131 |
132 | // If it has been 5 minutes after the last message, resend notification to slack.
133 | const hasBeen5Minutes = getWithExpiry("hasBeen5Minutes");
134 |
135 | setWithExpiry("hasBeen5Minutes", "false", 5 * 60 * 1000);
136 |
137 | setHasBeen5Minutes(false);
138 |
139 | if (!hasBeen5Minutes && chatInitiatedTemp) {
140 | const initResponse = await fetch(`/api/chatbox/slack/${id}`, {
141 | method: "POST",
142 | headers: {
143 | "Content-Type": "application/json",
144 | },
145 | body: JSON.stringify({ reminder: "Reminder" }),
146 | });
147 |
148 | if (initResponse.status !== 200) {
149 | localStorage.removeItem("hasBeen5Minutes");
150 | setHasBeen5Minutes(true);
151 | throw new Error("Failed to post reminder.");
152 | }
153 | }
154 |
155 | let replyText = "i:" + message;
156 |
157 | const replyResponse = await fetch(`/api/chatbox/chat/${id}`, {
158 | method: "POST",
159 | headers: {
160 | "Content-Type": "application/json",
161 | },
162 | body: JSON.stringify({ text: replyText }),
163 | });
164 |
165 | if (replyResponse.status !== 200) {
166 | throw new Error("Failed to reply");
167 | }
168 |
169 | await fetchList(id);
170 | setIsChatTrigger(performance.now());
171 | setMessage("");
172 | } catch (err) {
173 | alert(err);
174 | }
175 | };
176 |
177 | const onSendEmail = async () => {
178 | try {
179 | if (isEmailSent) return;
180 |
181 | let id = UID;
182 |
183 | if (!chatInitiated) {
184 | id = nanoid(10);
185 |
186 | setWithExpiry("chatbox_id", id);
187 | setWithExpiry("hasBeen5Minutes", "false", 5 * 60 * 1000);
188 | setUID(id);
189 | }
190 |
191 | const response = await fetch(`/api/chatbox/slack-email/${id}`, {
192 | method: "POST",
193 | headers: {
194 | "Content-Type": "application/json",
195 | },
196 | body: JSON.stringify({ email }),
197 | });
198 |
199 | if (response.status !== 200) {
200 | throw new Error("Failed to send email address");
201 | }
202 |
203 | setWithExpiry("emailSent", "true");
204 | setIsEmailSent(true);
205 | } catch (err) {
206 | alert(err);
207 | }
208 | };
209 |
210 | const onModalShow = (status: boolean) => {
211 | setIsModalShow(status);
212 | if (status) setIsChatTrigger(performance.now());
213 | };
214 |
215 | useEffect(() => {
216 | if (!chatInitiated || !isModalShow) return;
217 |
218 | fetchList();
219 |
220 | const interval = setInterval(() => {
221 | fetchList();
222 | }, 3000);
223 |
224 | return () => clearInterval(interval);
225 | }, [chatInitiated, isModalShow, UID, hasBeen5Minutes]);
226 |
227 | return (
228 |
252 | {children}
253 |
254 | );
255 | }
256 |
257 | export default ChatBoxContext;
258 |
--------------------------------------------------------------------------------
/chatbox/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 |
--------------------------------------------------------------------------------
/chatbox/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@upstash/chatbox",
3 | "version": "1.3.1",
4 | "license": "MIT",
5 | "main": "./chatbox.js",
6 | "module": "./chatbox.mjs",
7 | "types": "./chatbox.d.ts",
8 | "scripts": {
9 | "build": "tsup && cp package.json ./dist/",
10 | "dev": "next dev"
11 | },
12 | "dependencies": {
13 | "@upstash/redis": "^1.2.0",
14 | "nanoid": "^3.3.3",
15 | "next": "^12.1.5",
16 | "react": "17.0.2",
17 | "react-dom": "17.0.2",
18 | "react-textarea-autosize": "^8.3.3"
19 | },
20 | "devDependencies": {
21 | "@types/node": "^17.0.25",
22 | "@types/react": "^17.0.44",
23 | "@types/react-dom": "^17.0.15",
24 | "autoprefixer": "^10.4.5",
25 | "postcss": "^8.4.12",
26 | "prettier": "^2.6.2",
27 | "tsup": "^5.12.6",
28 | "typescript": "^4.6.3"
29 | },
30 | "homepage": "https://github.com/upstash/chatbox#readme",
31 | "repository": {
32 | "type": "git",
33 | "url": "git+https://ademilter@github.com/upstash/chatbox.git"
34 | },
35 | "bugs": {
36 | "url": "https://github.com/upstash/chatbox/issues"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/chatbox/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import "../styles/chatbox.css";
2 |
3 | import { AppProps } from "next/app";
4 | import dynamic from "next/dynamic";
5 |
6 | const ChatBoxWidget = dynamic({
7 | loader: () => import("../components/widget/index"),
8 | ssr: false,
9 | });
10 |
11 | export default function App(props: AppProps) {
12 | const { Component, pageProps } = props;
13 |
14 | return (
15 | <>
16 |
17 |
18 | >
19 | );
20 | }
21 |
--------------------------------------------------------------------------------
/chatbox/pages/api/chatbox/[...chatbox].ts:
--------------------------------------------------------------------------------
1 | import createChatBoxAPI from "../../../components/api";
2 |
3 | const ChatBoxAPI = createChatBoxAPI({
4 | webhooks: [process.env.SLACK_WEBHOOK_URL!],
5 | });
6 |
7 | export default ChatBoxAPI;
8 |
--------------------------------------------------------------------------------
/chatbox/pages/chat/[id].tsx:
--------------------------------------------------------------------------------
1 | import dynamic from "next/dynamic";
2 |
3 | const ChatBoxAdmin = dynamic({
4 | loader: () => import("../../components/admin/index"),
5 | ssr: false,
6 | });
7 |
8 | export default function () {
9 | return ;
10 | }
11 |
--------------------------------------------------------------------------------
/chatbox/pages/index.tsx:
--------------------------------------------------------------------------------
1 | export default function Home() {
2 | return hi;
3 | }
4 |
--------------------------------------------------------------------------------
/chatbox/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/chatbox/styles/chatbox.css:
--------------------------------------------------------------------------------
1 | .chatbox {
2 | --color-primary: #000;
3 | --color-text: #fff;
4 |
5 | font-size: 15px;
6 | line-height: 1.4;
7 |
8 | -webkit-text-size-adjust: 100%;
9 | font-family: system-ui, sans-serif;
10 | -webkit-font-smoothing: antialiased;
11 | text-rendering: optimizeLegibility;
12 | -moz-osx-font-smoothing: grayscale;
13 | }
14 |
15 | .chatbox * {
16 | box-sizing: border-box;
17 | border: 0;
18 | margin: 0;
19 | padding: 0;
20 | font: inherit;
21 | background-color: transparent;
22 | }
23 |
24 | .chatbox-chat {
25 | display: flex;
26 | flex-direction: column;
27 | gap: 5px;
28 | padding: 1rem;
29 | height: 100%;
30 | overflow-y: scroll;
31 | }
32 |
33 | .chatbox-chat-message {
34 | position: relative;
35 | display: flex;
36 | }
37 |
38 | .chatbox-chat-message span {
39 | padding: 10px 15px;
40 | display: inline-flex;
41 | border-radius: 10px;
42 | }
43 |
44 | .chatbox-chat-message.chatbox-chat-message-out {
45 | margin-right: 3rem;
46 | }
47 |
48 | .chatbox-chat-message.chatbox-chat-message-out span {
49 | background-color: #eee;
50 | }
51 |
52 | .chatbox-chat-message.chatbox-chat-message-in {
53 | margin-left: 3rem;
54 | justify-content: flex-end;
55 | }
56 |
57 | .chatbox-chat-message.chatbox-chat-message-in span {
58 | color: var(--color-text);
59 | background-color: var(--color-primary);
60 | }
61 |
62 | .chatbox-form {
63 | position: relative;
64 | border-top: 1px solid #eee;
65 | }
66 |
67 | .chatbox-form-message {
68 | display: block;
69 | height: 50px;
70 | width: 100%;
71 | padding: 1rem;
72 | outline: 0;
73 | resize: none;
74 | }
75 |
76 | .chatbox-form-message::placeholder {
77 | color: #aaa;
78 | }
79 |
80 | .chatbox-form-submit {
81 | cursor: pointer;
82 | z-index: 2;
83 | position: absolute;
84 | right: 1rem;
85 | top: 10px;
86 | display: flex;
87 | align-items: center;
88 | justify-content: center;
89 | padding: 5px;
90 | }
91 |
92 |
93 | /* widget */
94 |
95 | .chatbox-widget-root {
96 | position: fixed;
97 | z-index: 99999;
98 | bottom: 20px;
99 | right: 20px;
100 | width: 100vw;
101 | height: 0;
102 | }
103 |
104 | .chatbox-widget-trigger-button {
105 | cursor: pointer;
106 | z-index: 1;
107 | position: absolute;
108 | right: 0;
109 | bottom: 0;
110 | width: 54px;
111 | height: 54px;
112 | background-color: var(--color-primary);
113 | display: flex;
114 | align-items: center;
115 | justify-content: center;
116 | border-radius: 60px;
117 | box-shadow: rgb(0 0 0 / 6%) 0 1px 6px 0, rgb(0 0 0 / 16%) 0 2px 32px 0;
118 | }
119 |
120 | .chatbox-widget-modal {
121 | display: grid;
122 | grid-template-rows: auto 1fr auto;
123 | overflow: hidden;
124 | z-index: 2;
125 | position: absolute;
126 | bottom: calc(100% + 60px + 20px);
127 | right: 0;
128 | height: 460px;
129 | width: 320px;
130 | max-width: 100%;
131 | background-color: #fff;
132 | border-radius: 10px;
133 | box-shadow: rgba(0, 0, 0, 0.16) 0 5px 40px;
134 | }
135 |
136 | .chatbox-widget-header {
137 | padding: 1rem;
138 | color: var(--color-text);
139 | background-color: var(--color-primary);
140 | }
141 |
142 | .chatbox-widget-header h2 {
143 | font-size: 1.2rem;
144 | font-weight: bold;
145 | }
146 |
147 | /* admin */
148 |
149 | .chatbox-admin-root {
150 | position: fixed;
151 | inset: 0;
152 | background-color: #eee;
153 | }
154 |
155 | .chatbox-admin-grid {
156 | display: grid;
157 | grid-template-rows: auto 1fr auto;
158 | height: 100vh;
159 | margin: 0 auto;
160 | width: 400px;
161 | background-color: #fff;
162 | }
163 |
164 | .chatbox-admin-header {
165 | padding: 1rem;
166 | color: var(--color-text);
167 | background-color: var(--color-primary);
168 | }
169 |
170 |
171 | .chatbox-widget-header p {
172 | font-size: 0.9rem;
173 | }
174 |
175 | .chatbox-widget-email-form {
176 | padding: 1rem;
177 | background-color: rgba(0, 0, 0, 0.06);
178 | border-radius: 10px;
179 | margin-top: 5px;
180 |
181 | }
182 |
183 | .chatbox-widget-email-form input {
184 | background-color: white;
185 | padding: 10px;
186 | width: 100%;
187 | border-radius: 10px;
188 | margin-top: 10px;
189 | }
190 |
--------------------------------------------------------------------------------
/chatbox/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | // Default
4 | "target": "es5",
5 | "esModuleInterop": true,
6 | "forceConsistentCasingInFileNames": true,
7 | "strict": true,
8 | "skipLibCheck": true,
9 | // Added
10 | "jsx": "preserve",
11 | "module": "ESNext",
12 | "declaration": true,
13 | "declarationDir": "types",
14 | "sourceMap": true,
15 | "moduleResolution": "node",
16 | "allowSyntheticDefaultImports": true,
17 | "emitDeclarationOnly": true,
18 | "outDir": "dist",
19 | // "lib": [
20 | // "dom",
21 | // "dom.iterable",
22 | // "esnext"
23 | // ],
24 | // "allowJs": true,
25 | // "noEmit": true,
26 | // "incremental": true,
27 | // "resolveJsonModule": true,
28 | // "isolatedModules": true
29 | },
30 | // "include": [
31 | // "next-env.d.ts",
32 | // "**/*.ts",
33 | // "**/*.tsx"
34 | // ],
35 | // "exclude": [
36 | // "node_modules"
37 | // ]
38 | }
39 |
--------------------------------------------------------------------------------
/chatbox/tsconfig.module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "files": ["src/index.ts"],
4 | "compilerOptions": {
5 | "outDir": "dist/module",
6 | "module": "ES2015"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/chatbox/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "tsup";
2 |
3 | export default defineConfig({
4 | entry: {
5 | chatbox: "./components/widget/index.tsx",
6 | admin: "./components/admin/index.tsx",
7 | api: "./components/api.ts",
8 | style: "./components/style.tsx",
9 | },
10 | format: ["cjs", "esm"],
11 | clean: true,
12 | bundle: true,
13 | dts: true,
14 | });
15 |
--------------------------------------------------------------------------------
/chatbox/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime@^7.10.2":
6 | version "7.18.3"
7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4"
8 | integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
9 | dependencies:
10 | regenerator-runtime "^0.13.4"
11 |
12 | "@next/env@12.1.6":
13 | version "12.1.6"
14 | resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.6.tgz#5f44823a78335355f00f1687cfc4f1dafa3eca08"
15 | integrity sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==
16 |
17 | "@next/swc-android-arm-eabi@12.1.6":
18 | version "12.1.6"
19 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz#79a35349b98f2f8c038ab6261aa9cd0d121c03f9"
20 | integrity sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==
21 |
22 | "@next/swc-android-arm64@12.1.6":
23 | version "12.1.6"
24 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz#ec08ea61794f8752c8ebcacbed0aafc5b9407456"
25 | integrity sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==
26 |
27 | "@next/swc-darwin-arm64@12.1.6":
28 | version "12.1.6"
29 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz#d1053805615fd0706e9b1667893a72271cd87119"
30 | integrity sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==
31 |
32 | "@next/swc-darwin-x64@12.1.6":
33 | version "12.1.6"
34 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz#2d1b926a22f4c5230d5b311f9c56cfdcc406afec"
35 | integrity sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==
36 |
37 | "@next/swc-linux-arm-gnueabihf@12.1.6":
38 | version "12.1.6"
39 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz#c021918d2a94a17f823106a5e069335b8a19724f"
40 | integrity sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==
41 |
42 | "@next/swc-linux-arm64-gnu@12.1.6":
43 | version "12.1.6"
44 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz#ac55c07bfabde378dfa0ce2b8fc1c3b2897e81ae"
45 | integrity sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==
46 |
47 | "@next/swc-linux-arm64-musl@12.1.6":
48 | version "12.1.6"
49 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz#e429f826279894be9096be6bec13e75e3d6bd671"
50 | integrity sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==
51 |
52 | "@next/swc-linux-x64-gnu@12.1.6":
53 | version "12.1.6"
54 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz#1f276c0784a5ca599bfa34b2fcc0b38f3a738e08"
55 | integrity sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==
56 |
57 | "@next/swc-linux-x64-musl@12.1.6":
58 | version "12.1.6"
59 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz#1d9933dd6ba303dcfd8a2acd6ac7c27ed41e2eea"
60 | integrity sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==
61 |
62 | "@next/swc-win32-arm64-msvc@12.1.6":
63 | version "12.1.6"
64 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz#2ef9837f12ca652b1783d72ecb86208906042f02"
65 | integrity sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==
66 |
67 | "@next/swc-win32-ia32-msvc@12.1.6":
68 | version "12.1.6"
69 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz#74003d0aa1c59dfa56cb15481a5c607cbc0027b9"
70 | integrity sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==
71 |
72 | "@next/swc-win32-x64-msvc@12.1.6":
73 | version "12.1.6"
74 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz#a350caf42975e7197b24b495b8d764eec7e6a36e"
75 | integrity sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==
76 |
77 | "@nodelib/fs.scandir@2.1.5":
78 | version "2.1.5"
79 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
80 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
81 | dependencies:
82 | "@nodelib/fs.stat" "2.0.5"
83 | run-parallel "^1.1.9"
84 |
85 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
86 | version "2.0.5"
87 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
88 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
89 |
90 | "@nodelib/fs.walk@^1.2.3":
91 | version "1.2.8"
92 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
93 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
94 | dependencies:
95 | "@nodelib/fs.scandir" "2.1.5"
96 | fastq "^1.6.0"
97 |
98 | "@types/node@^17.0.25":
99 | version "17.0.38"
100 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.38.tgz#f8bb07c371ccb1903f3752872c89f44006132947"
101 | integrity sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==
102 |
103 | "@types/prop-types@*":
104 | version "15.7.5"
105 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
106 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
107 |
108 | "@types/react-dom@^17.0.15":
109 | version "17.0.17"
110 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.17.tgz#2e3743277a793a96a99f1bf87614598289da68a1"
111 | integrity sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==
112 | dependencies:
113 | "@types/react" "^17"
114 |
115 | "@types/react@^17", "@types/react@^17.0.44":
116 | version "17.0.45"
117 | resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.45.tgz#9b3d5b661fd26365fefef0e766a1c6c30ccf7b3f"
118 | integrity sha512-YfhQ22Lah2e3CHPsb93tRwIGNiSwkuz1/blk4e6QrWS0jQzCSNbGLtOEYhPg02W0yGTTmpajp7dCTbBAMN3qsg==
119 | dependencies:
120 | "@types/prop-types" "*"
121 | "@types/scheduler" "*"
122 | csstype "^3.0.2"
123 |
124 | "@types/scheduler@*":
125 | version "0.16.2"
126 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
127 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
128 |
129 | "@upstash/redis@^1.2.0":
130 | version "1.6.1"
131 | resolved "https://registry.yarnpkg.com/@upstash/redis/-/redis-1.6.1.tgz#5ce62e44d92ce1494a9df5385d814b5006346c9c"
132 | integrity sha512-2SGkAzBewW8MoRT5YpypWxdxRdsX6ydCLktldDvGocCeSJcx00gj+sXi3WfRvVfXQS9EDR3cJVKoaBhbmn1IyA==
133 | dependencies:
134 | isomorphic-fetch "^3.0.0"
135 |
136 | any-promise@^1.0.0:
137 | version "1.3.0"
138 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
139 | integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
140 |
141 | anymatch@~3.1.2:
142 | version "3.1.2"
143 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
144 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
145 | dependencies:
146 | normalize-path "^3.0.0"
147 | picomatch "^2.0.4"
148 |
149 | array-union@^2.1.0:
150 | version "2.1.0"
151 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
152 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
153 |
154 | autoprefixer@^10.4.5:
155 | version "10.4.7"
156 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf"
157 | integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==
158 | dependencies:
159 | browserslist "^4.20.3"
160 | caniuse-lite "^1.0.30001335"
161 | fraction.js "^4.2.0"
162 | normalize-range "^0.1.2"
163 | picocolors "^1.0.0"
164 | postcss-value-parser "^4.2.0"
165 |
166 | balanced-match@^1.0.0:
167 | version "1.0.2"
168 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
169 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
170 |
171 | binary-extensions@^2.0.0:
172 | version "2.2.0"
173 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
174 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
175 |
176 | brace-expansion@^1.1.7:
177 | version "1.1.11"
178 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
179 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
180 | dependencies:
181 | balanced-match "^1.0.0"
182 | concat-map "0.0.1"
183 |
184 | braces@^3.0.2, braces@~3.0.2:
185 | version "3.0.2"
186 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
187 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
188 | dependencies:
189 | fill-range "^7.0.1"
190 |
191 | browserslist@^4.20.3:
192 | version "4.20.3"
193 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
194 | integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
195 | dependencies:
196 | caniuse-lite "^1.0.30001332"
197 | electron-to-chromium "^1.4.118"
198 | escalade "^3.1.1"
199 | node-releases "^2.0.3"
200 | picocolors "^1.0.0"
201 |
202 | bundle-require@^3.0.2:
203 | version "3.0.4"
204 | resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-3.0.4.tgz#2b52ba77d99c0a586b5854cd21d36954e63cc110"
205 | integrity sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==
206 | dependencies:
207 | load-tsconfig "^0.2.0"
208 |
209 | cac@^6.7.12:
210 | version "6.7.12"
211 | resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.12.tgz#6fb5ea2ff50bd01490dbda497f4ae75a99415193"
212 | integrity sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==
213 |
214 | caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335:
215 | version "1.0.30001344"
216 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz#8a1e7fdc4db9c2ec79a05e9fd68eb93a761888bb"
217 | integrity sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==
218 |
219 | chokidar@^3.5.1:
220 | version "3.5.3"
221 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
222 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
223 | dependencies:
224 | anymatch "~3.1.2"
225 | braces "~3.0.2"
226 | glob-parent "~5.1.2"
227 | is-binary-path "~2.1.0"
228 | is-glob "~4.0.1"
229 | normalize-path "~3.0.0"
230 | readdirp "~3.6.0"
231 | optionalDependencies:
232 | fsevents "~2.3.2"
233 |
234 | commander@^4.0.0:
235 | version "4.1.1"
236 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
237 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
238 |
239 | concat-map@0.0.1:
240 | version "0.0.1"
241 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
242 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
243 |
244 | cross-spawn@^7.0.3:
245 | version "7.0.3"
246 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
247 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
248 | dependencies:
249 | path-key "^3.1.0"
250 | shebang-command "^2.0.0"
251 | which "^2.0.1"
252 |
253 | csstype@^3.0.2:
254 | version "3.1.0"
255 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2"
256 | integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==
257 |
258 | debug@^4.3.1:
259 | version "4.3.4"
260 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
261 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
262 | dependencies:
263 | ms "2.1.2"
264 |
265 | dir-glob@^3.0.1:
266 | version "3.0.1"
267 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
268 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
269 | dependencies:
270 | path-type "^4.0.0"
271 |
272 | electron-to-chromium@^1.4.118:
273 | version "1.4.143"
274 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.143.tgz#10f1bb595ad6cd893c05097039c685dcf5c8e30c"
275 | integrity sha512-2hIgvu0+pDfXIqmVmV5X6iwMjQ2KxDsWKwM+oI1fABEOy/Dqmll0QJRmIQ3rm+XaoUa/qKrmy5h7LSTFQ6Ldzg==
276 |
277 | esbuild-android-64@0.14.42:
278 | version "0.14.42"
279 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.42.tgz#d7ab3d44d3671218d22bce52f65642b12908d954"
280 | integrity sha512-P4Y36VUtRhK/zivqGVMqhptSrFILAGlYp0Z8r9UQqHJ3iWztRCNWnlBzD9HRx0DbueXikzOiwyOri+ojAFfW6A==
281 |
282 | esbuild-android-arm64@0.14.42:
283 | version "0.14.42"
284 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.42.tgz#45336d8bec49abddb3a022996a23373f45a57c27"
285 | integrity sha512-0cOqCubq+RWScPqvtQdjXG3Czb3AWI2CaKw3HeXry2eoA2rrPr85HF7IpdU26UWdBXgPYtlTN1LUiuXbboROhg==
286 |
287 | esbuild-darwin-64@0.14.42:
288 | version "0.14.42"
289 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.42.tgz#6dff5e44cd70a88c33323e2f5fb598e40c68a9e0"
290 | integrity sha512-ipiBdCA3ZjYgRfRLdQwP82rTiv/YVMtW36hTvAN5ZKAIfxBOyPXY7Cejp3bMXWgzKD8B6O+zoMzh01GZsCuEIA==
291 |
292 | esbuild-darwin-arm64@0.14.42:
293 | version "0.14.42"
294 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.42.tgz#2c7313e1b12d2fa5b889c03213d682fb92ca8c4f"
295 | integrity sha512-bU2tHRqTPOaoH/4m0zYHbFWpiYDmaA0gt90/3BMEFaM0PqVK/a6MA2V/ypV5PO0v8QxN6gH5hBPY4YJ2lopXgA==
296 |
297 | esbuild-freebsd-64@0.14.42:
298 | version "0.14.42"
299 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.42.tgz#ad1c5a564a7e473b8ce95ee7f76618d05d6daffc"
300 | integrity sha512-75h1+22Ivy07+QvxHyhVqOdekupiTZVLN1PMwCDonAqyXd8TVNJfIRFrdL8QmSJrOJJ5h8H1I9ETyl2L8LQDaw==
301 |
302 | esbuild-freebsd-arm64@0.14.42:
303 | version "0.14.42"
304 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.42.tgz#4bdb480234144f944f1930829bace7561135ddc7"
305 | integrity sha512-W6Jebeu5TTDQMJUJVarEzRU9LlKpNkPBbjqSu+GUPTHDCly5zZEQq9uHkmHHl7OKm+mQ2zFySN83nmfCeZCyNA==
306 |
307 | esbuild-linux-32@0.14.42:
308 | version "0.14.42"
309 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.42.tgz#ef18fd19f067e9d2b5f677d6b82fa81519f5a8c2"
310 | integrity sha512-Ooy/Bj+mJ1z4jlWcK5Dl6SlPlCgQB9zg1UrTCeY8XagvuWZ4qGPyYEWGkT94HUsRi2hKsXvcs6ThTOjBaJSMfg==
311 |
312 | esbuild-linux-64@0.14.42:
313 | version "0.14.42"
314 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.42.tgz#d84e7333b1c1b22cf8b5b9dbb5dd9b2ecb34b79f"
315 | integrity sha512-2L0HbzQfbTuemUWfVqNIjOfaTRt9zsvjnme6lnr7/MO9toz/MJ5tZhjqrG6uDWDxhsaHI2/nsDgrv8uEEN2eoA==
316 |
317 | esbuild-linux-arm64@0.14.42:
318 | version "0.14.42"
319 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.42.tgz#dc19e282f8c4ffbaa470c02a4d171e4ae0180cca"
320 | integrity sha512-c3Ug3e9JpVr8jAcfbhirtpBauLxzYPpycjWulD71CF6ZSY26tvzmXMJYooQ2YKqDY4e/fPu5K8bm7MiXMnyxuA==
321 |
322 | esbuild-linux-arm@0.14.42:
323 | version "0.14.42"
324 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.42.tgz#d49870e63e2242b8156bf473f2ee5154226be328"
325 | integrity sha512-STq69yzCMhdRaWnh29UYrLSr/qaWMm/KqwaRF1pMEK7kDiagaXhSL1zQGXbYv94GuGY/zAwzK98+6idCMUOOCg==
326 |
327 | esbuild-linux-mips64le@0.14.42:
328 | version "0.14.42"
329 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.42.tgz#f4e6ff9bf8a6f175470498826f48d093b054fc22"
330 | integrity sha512-QuvpHGbYlkyXWf2cGm51LBCHx6eUakjaSrRpUqhPwjh/uvNUYvLmz2LgPTTPwCqaKt0iwL+OGVL0tXA5aDbAbg==
331 |
332 | esbuild-linux-ppc64le@0.14.42:
333 | version "0.14.42"
334 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.42.tgz#ac9c66fc80ba9f8fda15a4cc08f4e55f6c0aed63"
335 | integrity sha512-8ohIVIWDbDT+i7lCx44YCyIRrOW1MYlks9fxTo0ME2LS/fxxdoJBwHWzaDYhjvf8kNpA+MInZvyOEAGoVDrMHg==
336 |
337 | esbuild-linux-riscv64@0.14.42:
338 | version "0.14.42"
339 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.42.tgz#21e0ae492a3a9bf4eecbfc916339a66e204256d0"
340 | integrity sha512-DzDqK3TuoXktPyG1Lwx7vhaF49Onv3eR61KwQyxYo4y5UKTpL3NmuarHSIaSVlTFDDpcIajCDwz5/uwKLLgKiQ==
341 |
342 | esbuild-linux-s390x@0.14.42:
343 | version "0.14.42"
344 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.42.tgz#06d40b957250ffd9a2183bfdfc9a03d6fd21b3e8"
345 | integrity sha512-YFRhPCxl8nb//Wn6SiS5pmtplBi4z9yC2gLrYoYI/tvwuB1jldir9r7JwAGy1Ck4D7sE7wBN9GFtUUX/DLdcEQ==
346 |
347 | esbuild-netbsd-64@0.14.42:
348 | version "0.14.42"
349 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.42.tgz#185664f05f10914f14ed43bd9e22b7de584267f7"
350 | integrity sha512-QYSD2k+oT9dqB/4eEM9c+7KyNYsIPgzYOSrmfNGDIyJrbT1d+CFVKvnKahDKNJLfOYj8N4MgyFaU9/Ytc6w5Vw==
351 |
352 | esbuild-openbsd-64@0.14.42:
353 | version "0.14.42"
354 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.42.tgz#c29006f659eb4e55283044bbbd4eb4054fae8839"
355 | integrity sha512-M2meNVIKWsm2HMY7+TU9AxM7ZVwI9havdsw6m/6EzdXysyCFFSoaTQ/Jg03izjCsK17FsVRHqRe26Llj6x0MNA==
356 |
357 | esbuild-sunos-64@0.14.42:
358 | version "0.14.42"
359 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.42.tgz#aa9eec112cd1e7105e7bb37000eca7d460083f8f"
360 | integrity sha512-uXV8TAZEw36DkgW8Ak3MpSJs1ofBb3Smkc/6pZ29sCAN1KzCAQzsje4sUwugf+FVicrHvlamCOlFZIXgct+iqQ==
361 |
362 | esbuild-windows-32@0.14.42:
363 | version "0.14.42"
364 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.42.tgz#c3fc450853c61a74dacc5679de301db23b73e61e"
365 | integrity sha512-4iw/8qWmRICWi9ZOnJJf9sYt6wmtp3hsN4TdI5NqgjfOkBVMxNdM9Vt3626G1Rda9ya2Q0hjQRD9W1o+m6Lz6g==
366 |
367 | esbuild-windows-64@0.14.42:
368 | version "0.14.42"
369 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.42.tgz#b877aa37ff47d9fcf0ccb1ca6a24b31475a5e555"
370 | integrity sha512-j3cdK+Y3+a5H0wHKmLGTJcq0+/2mMBHPWkItR3vytp/aUGD/ua/t2BLdfBIzbNN9nLCRL9sywCRpOpFMx3CxzA==
371 |
372 | esbuild-windows-arm64@0.14.42:
373 | version "0.14.42"
374 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.42.tgz#79da8744626f24bc016dc40d016950b5a4a2bac5"
375 | integrity sha512-+lRAARnF+hf8J0mN27ujO+VbhPbDqJ8rCcJKye4y7YZLV6C4n3pTRThAb388k/zqF5uM0lS5O201u0OqoWSicw==
376 |
377 | esbuild@^0.14.25:
378 | version "0.14.42"
379 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.42.tgz#98587df0b024d5f6341b12a1d735a2bff55e1836"
380 | integrity sha512-V0uPZotCEHokJdNqyozH6qsaQXqmZEOiZWrXnds/zaH/0SyrIayRXWRB98CENO73MIZ9T3HBIOsmds5twWtmgw==
381 | optionalDependencies:
382 | esbuild-android-64 "0.14.42"
383 | esbuild-android-arm64 "0.14.42"
384 | esbuild-darwin-64 "0.14.42"
385 | esbuild-darwin-arm64 "0.14.42"
386 | esbuild-freebsd-64 "0.14.42"
387 | esbuild-freebsd-arm64 "0.14.42"
388 | esbuild-linux-32 "0.14.42"
389 | esbuild-linux-64 "0.14.42"
390 | esbuild-linux-arm "0.14.42"
391 | esbuild-linux-arm64 "0.14.42"
392 | esbuild-linux-mips64le "0.14.42"
393 | esbuild-linux-ppc64le "0.14.42"
394 | esbuild-linux-riscv64 "0.14.42"
395 | esbuild-linux-s390x "0.14.42"
396 | esbuild-netbsd-64 "0.14.42"
397 | esbuild-openbsd-64 "0.14.42"
398 | esbuild-sunos-64 "0.14.42"
399 | esbuild-windows-32 "0.14.42"
400 | esbuild-windows-64 "0.14.42"
401 | esbuild-windows-arm64 "0.14.42"
402 |
403 | escalade@^3.1.1:
404 | version "3.1.1"
405 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
406 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
407 |
408 | execa@^5.0.0:
409 | version "5.1.1"
410 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
411 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
412 | dependencies:
413 | cross-spawn "^7.0.3"
414 | get-stream "^6.0.0"
415 | human-signals "^2.1.0"
416 | is-stream "^2.0.0"
417 | merge-stream "^2.0.0"
418 | npm-run-path "^4.0.1"
419 | onetime "^5.1.2"
420 | signal-exit "^3.0.3"
421 | strip-final-newline "^2.0.0"
422 |
423 | fast-glob@^3.2.9:
424 | version "3.2.11"
425 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
426 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
427 | dependencies:
428 | "@nodelib/fs.stat" "^2.0.2"
429 | "@nodelib/fs.walk" "^1.2.3"
430 | glob-parent "^5.1.2"
431 | merge2 "^1.3.0"
432 | micromatch "^4.0.4"
433 |
434 | fastq@^1.6.0:
435 | version "1.13.0"
436 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
437 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
438 | dependencies:
439 | reusify "^1.0.4"
440 |
441 | fill-range@^7.0.1:
442 | version "7.0.1"
443 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
444 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
445 | dependencies:
446 | to-regex-range "^5.0.1"
447 |
448 | fraction.js@^4.2.0:
449 | version "4.2.0"
450 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
451 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
452 |
453 | fs.realpath@^1.0.0:
454 | version "1.0.0"
455 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
456 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
457 |
458 | fsevents@~2.3.2:
459 | version "2.3.2"
460 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
461 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
462 |
463 | get-stream@^6.0.0:
464 | version "6.0.1"
465 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
466 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
467 |
468 | glob-parent@^5.1.2, glob-parent@~5.1.2:
469 | version "5.1.2"
470 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
471 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
472 | dependencies:
473 | is-glob "^4.0.1"
474 |
475 | glob@7.1.6:
476 | version "7.1.6"
477 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
478 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
479 | dependencies:
480 | fs.realpath "^1.0.0"
481 | inflight "^1.0.4"
482 | inherits "2"
483 | minimatch "^3.0.4"
484 | once "^1.3.0"
485 | path-is-absolute "^1.0.0"
486 |
487 | globby@^11.0.3:
488 | version "11.1.0"
489 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
490 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
491 | dependencies:
492 | array-union "^2.1.0"
493 | dir-glob "^3.0.1"
494 | fast-glob "^3.2.9"
495 | ignore "^5.2.0"
496 | merge2 "^1.4.1"
497 | slash "^3.0.0"
498 |
499 | human-signals@^2.1.0:
500 | version "2.1.0"
501 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
502 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
503 |
504 | ignore@^5.2.0:
505 | version "5.2.0"
506 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
507 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
508 |
509 | inflight@^1.0.4:
510 | version "1.0.6"
511 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
512 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
513 | dependencies:
514 | once "^1.3.0"
515 | wrappy "1"
516 |
517 | inherits@2:
518 | version "2.0.4"
519 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
520 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
521 |
522 | is-binary-path@~2.1.0:
523 | version "2.1.0"
524 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
525 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
526 | dependencies:
527 | binary-extensions "^2.0.0"
528 |
529 | is-extglob@^2.1.1:
530 | version "2.1.1"
531 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
532 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
533 |
534 | is-glob@^4.0.1, is-glob@~4.0.1:
535 | version "4.0.3"
536 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
537 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
538 | dependencies:
539 | is-extglob "^2.1.1"
540 |
541 | is-number@^7.0.0:
542 | version "7.0.0"
543 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
544 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
545 |
546 | is-stream@^2.0.0:
547 | version "2.0.1"
548 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
549 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
550 |
551 | isexe@^2.0.0:
552 | version "2.0.0"
553 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
554 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
555 |
556 | isomorphic-fetch@^3.0.0:
557 | version "3.0.0"
558 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
559 | integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==
560 | dependencies:
561 | node-fetch "^2.6.1"
562 | whatwg-fetch "^3.4.1"
563 |
564 | joycon@^3.0.1:
565 | version "3.1.1"
566 | resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03"
567 | integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==
568 |
569 | "js-tokens@^3.0.0 || ^4.0.0":
570 | version "4.0.0"
571 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
572 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
573 |
574 | lilconfig@^2.0.5:
575 | version "2.0.5"
576 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25"
577 | integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==
578 |
579 | lines-and-columns@^1.1.6:
580 | version "1.2.4"
581 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
582 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
583 |
584 | load-tsconfig@^0.2.0:
585 | version "0.2.3"
586 | resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.3.tgz#08af3e7744943caab0c75f8af7f1703639c3ef1f"
587 | integrity sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==
588 |
589 | lodash.sortby@^4.7.0:
590 | version "4.7.0"
591 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
592 | integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
593 |
594 | loose-envify@^1.1.0:
595 | version "1.4.0"
596 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
597 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
598 | dependencies:
599 | js-tokens "^3.0.0 || ^4.0.0"
600 |
601 | merge-stream@^2.0.0:
602 | version "2.0.0"
603 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
604 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
605 |
606 | merge2@^1.3.0, merge2@^1.4.1:
607 | version "1.4.1"
608 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
609 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
610 |
611 | micromatch@^4.0.4:
612 | version "4.0.5"
613 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
614 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
615 | dependencies:
616 | braces "^3.0.2"
617 | picomatch "^2.3.1"
618 |
619 | mimic-fn@^2.1.0:
620 | version "2.1.0"
621 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
622 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
623 |
624 | minimatch@^3.0.4:
625 | version "3.1.2"
626 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
627 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
628 | dependencies:
629 | brace-expansion "^1.1.7"
630 |
631 | ms@2.1.2:
632 | version "2.1.2"
633 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
634 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
635 |
636 | mz@^2.7.0:
637 | version "2.7.0"
638 | resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
639 | integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
640 | dependencies:
641 | any-promise "^1.0.0"
642 | object-assign "^4.0.1"
643 | thenify-all "^1.0.0"
644 |
645 | nanoid@^3.1.30, nanoid@^3.3.3, nanoid@^3.3.4:
646 | version "3.3.4"
647 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
648 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
649 |
650 | next@^12.1.5:
651 | version "12.1.6"
652 | resolved "https://registry.yarnpkg.com/next/-/next-12.1.6.tgz#eb205e64af1998651f96f9df44556d47d8bbc533"
653 | integrity sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==
654 | dependencies:
655 | "@next/env" "12.1.6"
656 | caniuse-lite "^1.0.30001332"
657 | postcss "8.4.5"
658 | styled-jsx "5.0.2"
659 | optionalDependencies:
660 | "@next/swc-android-arm-eabi" "12.1.6"
661 | "@next/swc-android-arm64" "12.1.6"
662 | "@next/swc-darwin-arm64" "12.1.6"
663 | "@next/swc-darwin-x64" "12.1.6"
664 | "@next/swc-linux-arm-gnueabihf" "12.1.6"
665 | "@next/swc-linux-arm64-gnu" "12.1.6"
666 | "@next/swc-linux-arm64-musl" "12.1.6"
667 | "@next/swc-linux-x64-gnu" "12.1.6"
668 | "@next/swc-linux-x64-musl" "12.1.6"
669 | "@next/swc-win32-arm64-msvc" "12.1.6"
670 | "@next/swc-win32-ia32-msvc" "12.1.6"
671 | "@next/swc-win32-x64-msvc" "12.1.6"
672 |
673 | node-fetch@^2.6.1:
674 | version "2.6.7"
675 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
676 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
677 | dependencies:
678 | whatwg-url "^5.0.0"
679 |
680 | node-releases@^2.0.3:
681 | version "2.0.5"
682 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666"
683 | integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==
684 |
685 | normalize-path@^3.0.0, normalize-path@~3.0.0:
686 | version "3.0.0"
687 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
688 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
689 |
690 | normalize-range@^0.1.2:
691 | version "0.1.2"
692 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
693 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
694 |
695 | npm-run-path@^4.0.1:
696 | version "4.0.1"
697 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
698 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
699 | dependencies:
700 | path-key "^3.0.0"
701 |
702 | object-assign@^4.0.1, object-assign@^4.1.1:
703 | version "4.1.1"
704 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
705 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
706 |
707 | once@^1.3.0:
708 | version "1.4.0"
709 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
710 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
711 | dependencies:
712 | wrappy "1"
713 |
714 | onetime@^5.1.2:
715 | version "5.1.2"
716 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
717 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
718 | dependencies:
719 | mimic-fn "^2.1.0"
720 |
721 | path-is-absolute@^1.0.0:
722 | version "1.0.1"
723 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
724 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
725 |
726 | path-key@^3.0.0, path-key@^3.1.0:
727 | version "3.1.1"
728 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
729 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
730 |
731 | path-type@^4.0.0:
732 | version "4.0.0"
733 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
734 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
735 |
736 | picocolors@^1.0.0:
737 | version "1.0.0"
738 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
739 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
740 |
741 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
742 | version "2.3.1"
743 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
744 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
745 |
746 | pirates@^4.0.1:
747 | version "4.0.5"
748 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
749 | integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
750 |
751 | postcss-load-config@^3.0.1:
752 | version "3.1.4"
753 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
754 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
755 | dependencies:
756 | lilconfig "^2.0.5"
757 | yaml "^1.10.2"
758 |
759 | postcss-value-parser@^4.2.0:
760 | version "4.2.0"
761 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
762 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
763 |
764 | postcss@8.4.5:
765 | version "8.4.5"
766 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
767 | integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
768 | dependencies:
769 | nanoid "^3.1.30"
770 | picocolors "^1.0.0"
771 | source-map-js "^1.0.1"
772 |
773 | postcss@^8.4.12:
774 | version "8.4.14"
775 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
776 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
777 | dependencies:
778 | nanoid "^3.3.4"
779 | picocolors "^1.0.0"
780 | source-map-js "^1.0.2"
781 |
782 | prettier@^2.6.2:
783 | version "2.6.2"
784 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
785 | integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
786 |
787 | punycode@^2.1.0:
788 | version "2.1.1"
789 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
790 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
791 |
792 | queue-microtask@^1.2.2:
793 | version "1.2.3"
794 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
795 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
796 |
797 | react-dom@17.0.2:
798 | version "17.0.2"
799 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
800 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
801 | dependencies:
802 | loose-envify "^1.1.0"
803 | object-assign "^4.1.1"
804 | scheduler "^0.20.2"
805 |
806 | react-textarea-autosize@^8.3.3:
807 | version "8.3.4"
808 | resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz#270a343de7ad350534141b02c9cb78903e553524"
809 | integrity sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==
810 | dependencies:
811 | "@babel/runtime" "^7.10.2"
812 | use-composed-ref "^1.3.0"
813 | use-latest "^1.2.1"
814 |
815 | react@17.0.2:
816 | version "17.0.2"
817 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
818 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
819 | dependencies:
820 | loose-envify "^1.1.0"
821 | object-assign "^4.1.1"
822 |
823 | readdirp@~3.6.0:
824 | version "3.6.0"
825 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
826 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
827 | dependencies:
828 | picomatch "^2.2.1"
829 |
830 | regenerator-runtime@^0.13.4:
831 | version "0.13.9"
832 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
833 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
834 |
835 | resolve-from@^5.0.0:
836 | version "5.0.0"
837 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
838 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
839 |
840 | reusify@^1.0.4:
841 | version "1.0.4"
842 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
843 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
844 |
845 | rollup@^2.74.1:
846 | version "2.75.4"
847 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.4.tgz#c3518c326c98e508b628a93015a03a276c331f22"
848 | integrity sha512-JgZiJMJkKImMZJ8ZY1zU80Z2bA/TvrL/7D9qcBCrfl2bP+HUaIw0QHUroB4E3gBpFl6CRFM1YxGbuYGtdAswbQ==
849 | optionalDependencies:
850 | fsevents "~2.3.2"
851 |
852 | run-parallel@^1.1.9:
853 | version "1.2.0"
854 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
855 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
856 | dependencies:
857 | queue-microtask "^1.2.2"
858 |
859 | scheduler@^0.20.2:
860 | version "0.20.2"
861 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
862 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
863 | dependencies:
864 | loose-envify "^1.1.0"
865 | object-assign "^4.1.1"
866 |
867 | shebang-command@^2.0.0:
868 | version "2.0.0"
869 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
870 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
871 | dependencies:
872 | shebang-regex "^3.0.0"
873 |
874 | shebang-regex@^3.0.0:
875 | version "3.0.0"
876 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
877 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
878 |
879 | signal-exit@^3.0.3:
880 | version "3.0.7"
881 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
882 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
883 |
884 | slash@^3.0.0:
885 | version "3.0.0"
886 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
887 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
888 |
889 | source-map-js@^1.0.1, source-map-js@^1.0.2:
890 | version "1.0.2"
891 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
892 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
893 |
894 | source-map@0.8.0-beta.0:
895 | version "0.8.0-beta.0"
896 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
897 | integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
898 | dependencies:
899 | whatwg-url "^7.0.0"
900 |
901 | strip-final-newline@^2.0.0:
902 | version "2.0.0"
903 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
904 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
905 |
906 | styled-jsx@5.0.2:
907 | version "5.0.2"
908 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.2.tgz#ff230fd593b737e9e68b630a694d460425478729"
909 | integrity sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==
910 |
911 | sucrase@^3.20.3:
912 | version "3.21.0"
913 | resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.21.0.tgz#6a5affdbe716b22e4dc99c57d366ad0d216444b9"
914 | integrity sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==
915 | dependencies:
916 | commander "^4.0.0"
917 | glob "7.1.6"
918 | lines-and-columns "^1.1.6"
919 | mz "^2.7.0"
920 | pirates "^4.0.1"
921 | ts-interface-checker "^0.1.9"
922 |
923 | thenify-all@^1.0.0:
924 | version "1.6.0"
925 | resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
926 | integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=
927 | dependencies:
928 | thenify ">= 3.1.0 < 4"
929 |
930 | "thenify@>= 3.1.0 < 4":
931 | version "3.3.1"
932 | resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
933 | integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
934 | dependencies:
935 | any-promise "^1.0.0"
936 |
937 | to-regex-range@^5.0.1:
938 | version "5.0.1"
939 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
940 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
941 | dependencies:
942 | is-number "^7.0.0"
943 |
944 | tr46@^1.0.1:
945 | version "1.0.1"
946 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
947 | integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
948 | dependencies:
949 | punycode "^2.1.0"
950 |
951 | tr46@~0.0.3:
952 | version "0.0.3"
953 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
954 | integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
955 |
956 | tree-kill@^1.2.2:
957 | version "1.2.2"
958 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
959 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
960 |
961 | ts-interface-checker@^0.1.9:
962 | version "0.1.13"
963 | resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
964 | integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
965 |
966 | tsup@^5.12.6:
967 | version "5.12.9"
968 | resolved "https://registry.yarnpkg.com/tsup/-/tsup-5.12.9.tgz#8cdd9b4bc6493317cb92edf5f3476920dddcdb18"
969 | integrity sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==
970 | dependencies:
971 | bundle-require "^3.0.2"
972 | cac "^6.7.12"
973 | chokidar "^3.5.1"
974 | debug "^4.3.1"
975 | esbuild "^0.14.25"
976 | execa "^5.0.0"
977 | globby "^11.0.3"
978 | joycon "^3.0.1"
979 | postcss-load-config "^3.0.1"
980 | resolve-from "^5.0.0"
981 | rollup "^2.74.1"
982 | source-map "0.8.0-beta.0"
983 | sucrase "^3.20.3"
984 | tree-kill "^1.2.2"
985 |
986 | typescript@^4.6.3:
987 | version "4.7.2"
988 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4"
989 | integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==
990 |
991 | use-composed-ref@^1.3.0:
992 | version "1.3.0"
993 | resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda"
994 | integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==
995 |
996 | use-isomorphic-layout-effect@^1.1.1:
997 | version "1.1.2"
998 | resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb"
999 | integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==
1000 |
1001 | use-latest@^1.2.1:
1002 | version "1.2.1"
1003 | resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2"
1004 | integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==
1005 | dependencies:
1006 | use-isomorphic-layout-effect "^1.1.1"
1007 |
1008 | webidl-conversions@^3.0.0:
1009 | version "3.0.1"
1010 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
1011 | integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
1012 |
1013 | webidl-conversions@^4.0.2:
1014 | version "4.0.2"
1015 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
1016 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
1017 |
1018 | whatwg-fetch@^3.4.1:
1019 | version "3.6.2"
1020 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
1021 | integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
1022 |
1023 | whatwg-url@^5.0.0:
1024 | version "5.0.0"
1025 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
1026 | integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
1027 | dependencies:
1028 | tr46 "~0.0.3"
1029 | webidl-conversions "^3.0.0"
1030 |
1031 | whatwg-url@^7.0.0:
1032 | version "7.1.0"
1033 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
1034 | integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
1035 | dependencies:
1036 | lodash.sortby "^4.7.0"
1037 | tr46 "^1.0.1"
1038 | webidl-conversions "^4.0.2"
1039 |
1040 | which@^2.0.1:
1041 | version "2.0.2"
1042 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1043 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1044 | dependencies:
1045 | isexe "^2.0.0"
1046 |
1047 | wrappy@1:
1048 | version "1.0.2"
1049 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1050 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1051 |
1052 | yaml@^1.10.2:
1053 | version "1.10.2"
1054 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
1055 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
1056 |
--------------------------------------------------------------------------------
/example/.env.local.example:
--------------------------------------------------------------------------------
1 | UPSTASH_REDIS_REST_URL=
2 | UPSTASH_REDIS_REST_TOKEN=
3 | SLACK_WEBHOOK_URL=
4 |
--------------------------------------------------------------------------------
/example/.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 | /dist
18 |
19 | # misc
20 | .DS_Store
21 | *.pem
22 | .idea/
23 |
24 | # debug
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 | .pnpm-debug.log*
29 |
30 | # local env files
31 | example/.env.local
32 |
33 | # vercel
34 | .vercel
35 |
--------------------------------------------------------------------------------
/example/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 |
--------------------------------------------------------------------------------
/example/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 |
3 | const nextConfig = {
4 | reactStrictMode: true,
5 | };
6 |
7 | module.exports = nextConfig;
8 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chatbox-design-template",
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 | "reconfigure": "rm -rf node_modules/ .next/ && yarn && next dev"
11 | },
12 | "dependencies": {
13 | "@upstash/chatbox": "../chatbox/dist",
14 | "next": "12.1.6",
15 | "react": "^17.0.2",
16 | "react-dom": "^17.0.2",
17 | "react-textarea-autosize": "^8.3.4"
18 | },
19 | "devDependencies": {
20 | "@types/node": "^17.0.36",
21 | "@types/react": "^17.0.45",
22 | "autoprefixer": "^10.4.7",
23 | "postcss": "^8.4.14",
24 | "prettier": "^2.6.2",
25 | "prettier-plugin-tailwindcss": "^0.1.11",
26 | "tailwindcss": "^3.0.24",
27 | "typescript": "^4.7.2"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/example/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import "styles/globals.css";
2 | import "@upstash/chatbox/style.css";
3 |
4 | import { AppProps } from "next/app";
5 | import Head from "next/head";
6 |
7 | export default function App(props: AppProps) {
8 | const { Component, pageProps } = props;
9 |
10 | return (
11 | <>
12 |
13 | ChatBox Widget for Next.js Apps
14 |
15 |
16 |
17 |
18 | >
19 | );
20 | }
21 |
--------------------------------------------------------------------------------
/example/pages/api/chatbox/[...chatbox].ts:
--------------------------------------------------------------------------------
1 | import createChatBoxAPI from "@upstash/chatbox/api";
2 |
3 | const ChatBoxAPI = createChatBoxAPI({
4 | webhooks: [process.env.SLACK_WEBHOOK_URL!],
5 | });
6 |
7 | export default ChatBoxAPI;
8 |
--------------------------------------------------------------------------------
/example/pages/chat/[id].tsx:
--------------------------------------------------------------------------------
1 | import dynamic from "next/dynamic";
2 |
3 | const ChatBoxAdmin = dynamic({
4 | loader: () => import("@upstash/chatbox/admin"),
5 | ssr: false,
6 | });
7 |
8 | export default function () {
9 | return ;
10 | }
11 |
--------------------------------------------------------------------------------
/example/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from "react";
2 | import dynamic from "next/dynamic";
3 |
4 | const colors = require("tailwindcss/colors");
5 |
6 | const ChatBoxWidget = dynamic({
7 | loader: () => import("@upstash/chatbox/chatbox"),
8 | ssr: false,
9 | });
10 |
11 | export default function Home() {
12 | const [chatID, setChatID] = useState(null);
13 |
14 | const [title, setTitle] = useState("");
15 | const [description, setDescription] = useState("");
16 | const [themeColor, setThemeColor] = useState(colors.emerald[500]);
17 | const [textColor, setTextColor] = useState("#ffffff");
18 |
19 | useEffect(() => {
20 | getID();
21 | }, [chatID]);
22 |
23 | function getID() {
24 | const storageFetched = localStorage.getItem("chatbox_id");
25 |
26 | if (!storageFetched) {
27 | setChatID(null);
28 | return null;
29 | }
30 |
31 | let id = JSON.parse(storageFetched!).value;
32 | setChatID(id);
33 | return id;
34 | }
35 |
36 | return (
37 |
38 |
54 |
55 |
56 |
57 |
153 |
154 |
155 |
156 |
157 |
Setup
158 |
159 |
160 | You can refer to the{" "}
161 |
166 | GitHub README
167 | {" "}
168 | file for installation.
169 |
170 |
171 |
172 |
178 |
179 |
180 |
181 | );
182 | }
183 |
--------------------------------------------------------------------------------
/example/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/example/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/upstash/chatbox/7e36613ea5f5b1e28cc0b1223836b8f91bcb1859/example/public/favicon.ico
--------------------------------------------------------------------------------
/example/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @layer base {
6 | body {
7 | @apply antialiased text-gray-900 overflow-y-scroll;
8 | }
9 |
10 | svg {
11 | @apply fill-transparent;
12 | }
13 |
14 | a {
15 | @apply transition;
16 | }
17 |
18 | pre {
19 | @apply bg-zinc-800 text-zinc-50 p-6 rounded-lg text-sm
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/example/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: [
3 | "./pages/**/*.{js,ts,jsx,tsx}",
4 | "./components/**/*.{js,ts,jsx,tsx}",
5 | ],
6 | };
7 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "strict": true,
12 | "forceConsistentCasingInFileNames": true,
13 | "noEmit": true,
14 | "esModuleInterop": true,
15 | "module": "esnext",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "jsx": "preserve",
20 | "incremental": true,
21 | "baseUrl": "."
22 | },
23 | "include": [
24 | "next-env.d.ts",
25 | "**/*.ts",
26 | "**/*.tsx"
27 | ],
28 | "exclude": [
29 | "node_modules"
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/example/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime@^7.10.2":
6 | version "7.18.3"
7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4"
8 | integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
9 | dependencies:
10 | regenerator-runtime "^0.13.4"
11 |
12 | "@next/env@12.1.6":
13 | version "12.1.6"
14 | resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.6.tgz#5f44823a78335355f00f1687cfc4f1dafa3eca08"
15 | integrity sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==
16 |
17 | "@next/swc-android-arm-eabi@12.1.6":
18 | version "12.1.6"
19 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz#79a35349b98f2f8c038ab6261aa9cd0d121c03f9"
20 | integrity sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==
21 |
22 | "@next/swc-android-arm64@12.1.6":
23 | version "12.1.6"
24 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz#ec08ea61794f8752c8ebcacbed0aafc5b9407456"
25 | integrity sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==
26 |
27 | "@next/swc-darwin-arm64@12.1.6":
28 | version "12.1.6"
29 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz#d1053805615fd0706e9b1667893a72271cd87119"
30 | integrity sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==
31 |
32 | "@next/swc-darwin-x64@12.1.6":
33 | version "12.1.6"
34 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz#2d1b926a22f4c5230d5b311f9c56cfdcc406afec"
35 | integrity sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==
36 |
37 | "@next/swc-linux-arm-gnueabihf@12.1.6":
38 | version "12.1.6"
39 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz#c021918d2a94a17f823106a5e069335b8a19724f"
40 | integrity sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==
41 |
42 | "@next/swc-linux-arm64-gnu@12.1.6":
43 | version "12.1.6"
44 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz#ac55c07bfabde378dfa0ce2b8fc1c3b2897e81ae"
45 | integrity sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==
46 |
47 | "@next/swc-linux-arm64-musl@12.1.6":
48 | version "12.1.6"
49 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz#e429f826279894be9096be6bec13e75e3d6bd671"
50 | integrity sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==
51 |
52 | "@next/swc-linux-x64-gnu@12.1.6":
53 | version "12.1.6"
54 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz#1f276c0784a5ca599bfa34b2fcc0b38f3a738e08"
55 | integrity sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==
56 |
57 | "@next/swc-linux-x64-musl@12.1.6":
58 | version "12.1.6"
59 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz#1d9933dd6ba303dcfd8a2acd6ac7c27ed41e2eea"
60 | integrity sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==
61 |
62 | "@next/swc-win32-arm64-msvc@12.1.6":
63 | version "12.1.6"
64 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz#2ef9837f12ca652b1783d72ecb86208906042f02"
65 | integrity sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==
66 |
67 | "@next/swc-win32-ia32-msvc@12.1.6":
68 | version "12.1.6"
69 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz#74003d0aa1c59dfa56cb15481a5c607cbc0027b9"
70 | integrity sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==
71 |
72 | "@next/swc-win32-x64-msvc@12.1.6":
73 | version "12.1.6"
74 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz#a350caf42975e7197b24b495b8d764eec7e6a36e"
75 | integrity sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==
76 |
77 | "@nodelib/fs.scandir@2.1.5":
78 | version "2.1.5"
79 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
80 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
81 | dependencies:
82 | "@nodelib/fs.stat" "2.0.5"
83 | run-parallel "^1.1.9"
84 |
85 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
86 | version "2.0.5"
87 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
88 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
89 |
90 | "@nodelib/fs.walk@^1.2.3":
91 | version "1.2.8"
92 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
93 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
94 | dependencies:
95 | "@nodelib/fs.scandir" "2.1.5"
96 | fastq "^1.6.0"
97 |
98 | "@types/node@^17.0.36":
99 | version "17.0.42"
100 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.42.tgz#d7e8f22700efc94d125103075c074396b5f41f9b"
101 | integrity sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==
102 |
103 | "@types/prop-types@*":
104 | version "15.7.5"
105 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
106 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
107 |
108 | "@types/react@^17.0.45":
109 | version "17.0.45"
110 | resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.45.tgz#9b3d5b661fd26365fefef0e766a1c6c30ccf7b3f"
111 | integrity sha512-YfhQ22Lah2e3CHPsb93tRwIGNiSwkuz1/blk4e6QrWS0jQzCSNbGLtOEYhPg02W0yGTTmpajp7dCTbBAMN3qsg==
112 | dependencies:
113 | "@types/prop-types" "*"
114 | "@types/scheduler" "*"
115 | csstype "^3.0.2"
116 |
117 | "@types/scheduler@*":
118 | version "0.16.2"
119 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
120 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
121 |
122 | "@upstash/chatbox@../chatbox/dist":
123 | version "1.3.0"
124 | dependencies:
125 | "@upstash/redis" "^1.2.0"
126 | nanoid "^3.3.3"
127 | next "^12.1.5"
128 | react "17.0.2"
129 | react-dom "17.0.2"
130 | react-textarea-autosize "^8.3.3"
131 |
132 | "@upstash/redis@^1.2.0":
133 | version "1.6.1"
134 | resolved "https://registry.yarnpkg.com/@upstash/redis/-/redis-1.6.1.tgz#5ce62e44d92ce1494a9df5385d814b5006346c9c"
135 | integrity sha512-2SGkAzBewW8MoRT5YpypWxdxRdsX6ydCLktldDvGocCeSJcx00gj+sXi3WfRvVfXQS9EDR3cJVKoaBhbmn1IyA==
136 | dependencies:
137 | isomorphic-fetch "^3.0.0"
138 |
139 | acorn-node@^1.8.2:
140 | version "1.8.2"
141 | resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
142 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
143 | dependencies:
144 | acorn "^7.0.0"
145 | acorn-walk "^7.0.0"
146 | xtend "^4.0.2"
147 |
148 | acorn-walk@^7.0.0:
149 | version "7.2.0"
150 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
151 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
152 |
153 | acorn@^7.0.0:
154 | version "7.4.1"
155 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
156 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
157 |
158 | anymatch@~3.1.2:
159 | version "3.1.2"
160 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
161 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
162 | dependencies:
163 | normalize-path "^3.0.0"
164 | picomatch "^2.0.4"
165 |
166 | arg@^5.0.1:
167 | version "5.0.2"
168 | resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
169 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
170 |
171 | autoprefixer@^10.4.7:
172 | version "10.4.7"
173 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf"
174 | integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==
175 | dependencies:
176 | browserslist "^4.20.3"
177 | caniuse-lite "^1.0.30001335"
178 | fraction.js "^4.2.0"
179 | normalize-range "^0.1.2"
180 | picocolors "^1.0.0"
181 | postcss-value-parser "^4.2.0"
182 |
183 | binary-extensions@^2.0.0:
184 | version "2.2.0"
185 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
186 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
187 |
188 | braces@^3.0.2, braces@~3.0.2:
189 | version "3.0.2"
190 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
191 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
192 | dependencies:
193 | fill-range "^7.0.1"
194 |
195 | browserslist@^4.20.3:
196 | version "4.20.4"
197 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477"
198 | integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==
199 | dependencies:
200 | caniuse-lite "^1.0.30001349"
201 | electron-to-chromium "^1.4.147"
202 | escalade "^3.1.1"
203 | node-releases "^2.0.5"
204 | picocolors "^1.0.0"
205 |
206 | camelcase-css@^2.0.1:
207 | version "2.0.1"
208 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
209 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
210 |
211 | caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001349:
212 | version "1.0.30001352"
213 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz#cc6f5da3f983979ad1e2cdbae0505dccaa7c6a12"
214 | integrity sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==
215 |
216 | chokidar@^3.5.3:
217 | version "3.5.3"
218 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
219 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
220 | dependencies:
221 | anymatch "~3.1.2"
222 | braces "~3.0.2"
223 | glob-parent "~5.1.2"
224 | is-binary-path "~2.1.0"
225 | is-glob "~4.0.1"
226 | normalize-path "~3.0.0"
227 | readdirp "~3.6.0"
228 | optionalDependencies:
229 | fsevents "~2.3.2"
230 |
231 | color-name@^1.1.4:
232 | version "1.1.4"
233 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
234 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
235 |
236 | cssesc@^3.0.0:
237 | version "3.0.0"
238 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
239 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
240 |
241 | csstype@^3.0.2:
242 | version "3.1.0"
243 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2"
244 | integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==
245 |
246 | defined@^1.0.0:
247 | version "1.0.0"
248 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
249 | integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==
250 |
251 | detective@^5.2.1:
252 | version "5.2.1"
253 | resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034"
254 | integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
255 | dependencies:
256 | acorn-node "^1.8.2"
257 | defined "^1.0.0"
258 | minimist "^1.2.6"
259 |
260 | didyoumean@^1.2.2:
261 | version "1.2.2"
262 | resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
263 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
264 |
265 | dlv@^1.1.3:
266 | version "1.1.3"
267 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
268 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
269 |
270 | electron-to-chromium@^1.4.147:
271 | version "1.4.152"
272 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.152.tgz#7dedbe8f3dc1c597088982a203f392e60f7ee90a"
273 | integrity sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg==
274 |
275 | escalade@^3.1.1:
276 | version "3.1.1"
277 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
278 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
279 |
280 | fast-glob@^3.2.11:
281 | version "3.2.11"
282 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
283 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
284 | dependencies:
285 | "@nodelib/fs.stat" "^2.0.2"
286 | "@nodelib/fs.walk" "^1.2.3"
287 | glob-parent "^5.1.2"
288 | merge2 "^1.3.0"
289 | micromatch "^4.0.4"
290 |
291 | fastq@^1.6.0:
292 | version "1.13.0"
293 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
294 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
295 | dependencies:
296 | reusify "^1.0.4"
297 |
298 | fill-range@^7.0.1:
299 | version "7.0.1"
300 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
301 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
302 | dependencies:
303 | to-regex-range "^5.0.1"
304 |
305 | fraction.js@^4.2.0:
306 | version "4.2.0"
307 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
308 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
309 |
310 | fsevents@~2.3.2:
311 | version "2.3.2"
312 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
313 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
314 |
315 | function-bind@^1.1.1:
316 | version "1.1.1"
317 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
318 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
319 |
320 | glob-parent@^5.1.2, glob-parent@~5.1.2:
321 | version "5.1.2"
322 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
323 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
324 | dependencies:
325 | is-glob "^4.0.1"
326 |
327 | glob-parent@^6.0.2:
328 | version "6.0.2"
329 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
330 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
331 | dependencies:
332 | is-glob "^4.0.3"
333 |
334 | has@^1.0.3:
335 | version "1.0.3"
336 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
337 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
338 | dependencies:
339 | function-bind "^1.1.1"
340 |
341 | is-binary-path@~2.1.0:
342 | version "2.1.0"
343 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
344 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
345 | dependencies:
346 | binary-extensions "^2.0.0"
347 |
348 | is-core-module@^2.8.1:
349 | version "2.9.0"
350 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
351 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
352 | dependencies:
353 | has "^1.0.3"
354 |
355 | is-extglob@^2.1.1:
356 | version "2.1.1"
357 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
358 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
359 |
360 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
361 | version "4.0.3"
362 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
363 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
364 | dependencies:
365 | is-extglob "^2.1.1"
366 |
367 | is-number@^7.0.0:
368 | version "7.0.0"
369 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
370 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
371 |
372 | isomorphic-fetch@^3.0.0:
373 | version "3.0.0"
374 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
375 | integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==
376 | dependencies:
377 | node-fetch "^2.6.1"
378 | whatwg-fetch "^3.4.1"
379 |
380 | "js-tokens@^3.0.0 || ^4.0.0":
381 | version "4.0.0"
382 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
383 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
384 |
385 | lilconfig@^2.0.5:
386 | version "2.0.5"
387 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25"
388 | integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==
389 |
390 | loose-envify@^1.1.0:
391 | version "1.4.0"
392 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
393 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
394 | dependencies:
395 | js-tokens "^3.0.0 || ^4.0.0"
396 |
397 | merge2@^1.3.0:
398 | version "1.4.1"
399 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
400 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
401 |
402 | micromatch@^4.0.4:
403 | version "4.0.5"
404 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
405 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
406 | dependencies:
407 | braces "^3.0.2"
408 | picomatch "^2.3.1"
409 |
410 | minimist@^1.2.6:
411 | version "1.2.6"
412 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
413 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
414 |
415 | nanoid@^3.1.30, nanoid@^3.3.3, nanoid@^3.3.4:
416 | version "3.3.4"
417 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
418 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
419 |
420 | next@12.1.6, next@^12.1.5:
421 | version "12.1.6"
422 | resolved "https://registry.yarnpkg.com/next/-/next-12.1.6.tgz#eb205e64af1998651f96f9df44556d47d8bbc533"
423 | integrity sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==
424 | dependencies:
425 | "@next/env" "12.1.6"
426 | caniuse-lite "^1.0.30001332"
427 | postcss "8.4.5"
428 | styled-jsx "5.0.2"
429 | optionalDependencies:
430 | "@next/swc-android-arm-eabi" "12.1.6"
431 | "@next/swc-android-arm64" "12.1.6"
432 | "@next/swc-darwin-arm64" "12.1.6"
433 | "@next/swc-darwin-x64" "12.1.6"
434 | "@next/swc-linux-arm-gnueabihf" "12.1.6"
435 | "@next/swc-linux-arm64-gnu" "12.1.6"
436 | "@next/swc-linux-arm64-musl" "12.1.6"
437 | "@next/swc-linux-x64-gnu" "12.1.6"
438 | "@next/swc-linux-x64-musl" "12.1.6"
439 | "@next/swc-win32-arm64-msvc" "12.1.6"
440 | "@next/swc-win32-ia32-msvc" "12.1.6"
441 | "@next/swc-win32-x64-msvc" "12.1.6"
442 |
443 | node-fetch@^2.6.1:
444 | version "2.6.7"
445 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
446 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
447 | dependencies:
448 | whatwg-url "^5.0.0"
449 |
450 | node-releases@^2.0.5:
451 | version "2.0.5"
452 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666"
453 | integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==
454 |
455 | normalize-path@^3.0.0, normalize-path@~3.0.0:
456 | version "3.0.0"
457 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
458 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
459 |
460 | normalize-range@^0.1.2:
461 | version "0.1.2"
462 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
463 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
464 |
465 | object-assign@^4.1.1:
466 | version "4.1.1"
467 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
468 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
469 |
470 | object-hash@^3.0.0:
471 | version "3.0.0"
472 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
473 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
474 |
475 | path-parse@^1.0.7:
476 | version "1.0.7"
477 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
478 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
479 |
480 | picocolors@^1.0.0:
481 | version "1.0.0"
482 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
483 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
484 |
485 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
486 | version "2.3.1"
487 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
488 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
489 |
490 | pify@^2.3.0:
491 | version "2.3.0"
492 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
493 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
494 |
495 | postcss-import@^14.1.0:
496 | version "14.1.0"
497 | resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0"
498 | integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
499 | dependencies:
500 | postcss-value-parser "^4.0.0"
501 | read-cache "^1.0.0"
502 | resolve "^1.1.7"
503 |
504 | postcss-js@^4.0.0:
505 | version "4.0.0"
506 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
507 | integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
508 | dependencies:
509 | camelcase-css "^2.0.1"
510 |
511 | postcss-load-config@^3.1.4:
512 | version "3.1.4"
513 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
514 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
515 | dependencies:
516 | lilconfig "^2.0.5"
517 | yaml "^1.10.2"
518 |
519 | postcss-nested@5.0.6:
520 | version "5.0.6"
521 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc"
522 | integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
523 | dependencies:
524 | postcss-selector-parser "^6.0.6"
525 |
526 | postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
527 | version "6.0.10"
528 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
529 | integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
530 | dependencies:
531 | cssesc "^3.0.0"
532 | util-deprecate "^1.0.2"
533 |
534 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
535 | version "4.2.0"
536 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
537 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
538 |
539 | postcss@8.4.5:
540 | version "8.4.5"
541 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
542 | integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
543 | dependencies:
544 | nanoid "^3.1.30"
545 | picocolors "^1.0.0"
546 | source-map-js "^1.0.1"
547 |
548 | postcss@^8.4.14:
549 | version "8.4.14"
550 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
551 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
552 | dependencies:
553 | nanoid "^3.3.4"
554 | picocolors "^1.0.0"
555 | source-map-js "^1.0.2"
556 |
557 | prettier-plugin-tailwindcss@^0.1.11:
558 | version "0.1.11"
559 | resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.11.tgz#6112da68d9d022b7f896d35c070464931c99c35f"
560 | integrity sha512-a28+1jvpIZQdZ/W97wOXb6VqI762MKE/TxMMuibMEHhyYsSxQA8Ek30KObd5kJI2HF1ldtSYprFayXJXi3pz8Q==
561 |
562 | prettier@^2.6.2:
563 | version "2.6.2"
564 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
565 | integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
566 |
567 | queue-microtask@^1.2.2:
568 | version "1.2.3"
569 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
570 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
571 |
572 | quick-lru@^5.1.1:
573 | version "5.1.1"
574 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
575 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
576 |
577 | react-dom@17.0.2, react-dom@^17.0.2:
578 | version "17.0.2"
579 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
580 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
581 | dependencies:
582 | loose-envify "^1.1.0"
583 | object-assign "^4.1.1"
584 | scheduler "^0.20.2"
585 |
586 | react-textarea-autosize@^8.3.3, react-textarea-autosize@^8.3.4:
587 | version "8.3.4"
588 | resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz#270a343de7ad350534141b02c9cb78903e553524"
589 | integrity sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==
590 | dependencies:
591 | "@babel/runtime" "^7.10.2"
592 | use-composed-ref "^1.3.0"
593 | use-latest "^1.2.1"
594 |
595 | react@17.0.2, react@^17.0.2:
596 | version "17.0.2"
597 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
598 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
599 | dependencies:
600 | loose-envify "^1.1.0"
601 | object-assign "^4.1.1"
602 |
603 | read-cache@^1.0.0:
604 | version "1.0.0"
605 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
606 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
607 | dependencies:
608 | pify "^2.3.0"
609 |
610 | readdirp@~3.6.0:
611 | version "3.6.0"
612 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
613 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
614 | dependencies:
615 | picomatch "^2.2.1"
616 |
617 | regenerator-runtime@^0.13.4:
618 | version "0.13.9"
619 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
620 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
621 |
622 | resolve@^1.1.7, resolve@^1.22.0:
623 | version "1.22.0"
624 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
625 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
626 | dependencies:
627 | is-core-module "^2.8.1"
628 | path-parse "^1.0.7"
629 | supports-preserve-symlinks-flag "^1.0.0"
630 |
631 | reusify@^1.0.4:
632 | version "1.0.4"
633 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
634 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
635 |
636 | run-parallel@^1.1.9:
637 | version "1.2.0"
638 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
639 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
640 | dependencies:
641 | queue-microtask "^1.2.2"
642 |
643 | scheduler@^0.20.2:
644 | version "0.20.2"
645 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
646 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
647 | dependencies:
648 | loose-envify "^1.1.0"
649 | object-assign "^4.1.1"
650 |
651 | source-map-js@^1.0.1, source-map-js@^1.0.2:
652 | version "1.0.2"
653 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
654 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
655 |
656 | styled-jsx@5.0.2:
657 | version "5.0.2"
658 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.2.tgz#ff230fd593b737e9e68b630a694d460425478729"
659 | integrity sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==
660 |
661 | supports-preserve-symlinks-flag@^1.0.0:
662 | version "1.0.0"
663 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
664 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
665 |
666 | tailwindcss@^3.0.24:
667 | version "3.1.2"
668 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.2.tgz#b5607d17adb6cbb11a13738cc5fdf3e5527dcd7a"
669 | integrity sha512-yJ6L5s1U5AeS5g7HHy212zdQfjwD426FBfm59pet/JsyneuZuD4C2W7PpJEg4ppisiB21uLqtNagv8KXury3+Q==
670 | dependencies:
671 | arg "^5.0.1"
672 | chokidar "^3.5.3"
673 | color-name "^1.1.4"
674 | detective "^5.2.1"
675 | didyoumean "^1.2.2"
676 | dlv "^1.1.3"
677 | fast-glob "^3.2.11"
678 | glob-parent "^6.0.2"
679 | is-glob "^4.0.3"
680 | lilconfig "^2.0.5"
681 | normalize-path "^3.0.0"
682 | object-hash "^3.0.0"
683 | picocolors "^1.0.0"
684 | postcss "^8.4.14"
685 | postcss-import "^14.1.0"
686 | postcss-js "^4.0.0"
687 | postcss-load-config "^3.1.4"
688 | postcss-nested "5.0.6"
689 | postcss-selector-parser "^6.0.10"
690 | postcss-value-parser "^4.2.0"
691 | quick-lru "^5.1.1"
692 | resolve "^1.22.0"
693 |
694 | to-regex-range@^5.0.1:
695 | version "5.0.1"
696 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
697 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
698 | dependencies:
699 | is-number "^7.0.0"
700 |
701 | tr46@~0.0.3:
702 | version "0.0.3"
703 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
704 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
705 |
706 | typescript@^4.7.2:
707 | version "4.7.3"
708 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.3.tgz#8364b502d5257b540f9de4c40be84c98e23a129d"
709 | integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==
710 |
711 | use-composed-ref@^1.3.0:
712 | version "1.3.0"
713 | resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda"
714 | integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==
715 |
716 | use-isomorphic-layout-effect@^1.1.1:
717 | version "1.1.2"
718 | resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb"
719 | integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==
720 |
721 | use-latest@^1.2.1:
722 | version "1.2.1"
723 | resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2"
724 | integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==
725 | dependencies:
726 | use-isomorphic-layout-effect "^1.1.1"
727 |
728 | util-deprecate@^1.0.2:
729 | version "1.0.2"
730 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
731 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
732 |
733 | webidl-conversions@^3.0.0:
734 | version "3.0.1"
735 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
736 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
737 |
738 | whatwg-fetch@^3.4.1:
739 | version "3.6.2"
740 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
741 | integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
742 |
743 | whatwg-url@^5.0.0:
744 | version "5.0.0"
745 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
746 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
747 | dependencies:
748 | tr46 "~0.0.3"
749 | webidl-conversions "^3.0.0"
750 |
751 | xtend@^4.0.2:
752 | version "4.0.2"
753 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
754 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
755 |
756 | yaml@^1.10.2:
757 | version "1.10.2"
758 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
759 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
760 |
--------------------------------------------------------------------------------