├── .env.local.example ├── .gitignore ├── LICENSE ├── README.md ├── components └── claps │ ├── api.ts │ ├── claps.tsx │ ├── icons.tsx │ ├── share.tsx │ ├── style.css │ ├── style.tsx │ └── utils.ts ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages ├── _app.tsx ├── api │ └── claps.ts └── index.tsx ├── postcss.config.js ├── public └── ss.jpeg ├── styles └── global.css ├── tailwind.config.js ├── tsconfig.base.json ├── tsconfig.json ├── tsconfig.module.json ├── tsup.config.ts └── yarn.lock /.env.local.example: -------------------------------------------------------------------------------- 1 | UPSTASH_REDIS_REST_URL= 2 | UPSTASH_REDIS_REST_TOKEN= 3 | -------------------------------------------------------------------------------- /.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 | .swc/ 14 | out/ 15 | 16 | # production 17 | build 18 | dist 19 | 20 | # misc 21 | .DS_Store 22 | *.pem 23 | .idea/ 24 | .vscode 25 | 26 | # debug 27 | npm-debug.log* 28 | yarn-debug.log* 29 | yarn-error.log* 30 | .pnpm-debug.log* 31 | 32 | # local env files 33 | .env.local 34 | 35 | # vercel 36 | .vercel 37 | -------------------------------------------------------------------------------- /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 | # @upstash/claps 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 | Add a claps button (like medium) to any page for your Next.js apps. 9 | 10 | Nothing to maintain, it is completely serverless 💯 11 | 12 | Check out [the demo](https://upstash-claps.vercel.app). 13 | 14 | 15 | 16 | 17 | 18 | ### 1. Create Database 19 | 20 | Create a free Redis database at [Upstash Console](https://console.upstash.com) 21 | 22 | > We will use [Upstash Redis](https://upstash.com) to keep the data as well as 23 | > messaging (Redis pub/sub). 24 | 25 | ### 2. Environment Variables 26 | 27 | Copy the `.env.local.example` file to `.env.local` (which will be ignored by 28 | Git): 29 | 30 | ```bash 31 | cp .env.local.example .env.local 32 | ``` 33 | 34 | > `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` can be found at the 35 | > database details page in Upstash Console. 36 | 37 | ### 3. Install Package 38 | 39 | ```bash 40 | yarn add @upstash/claps 41 | ``` 42 | 43 | ### 4. Import CSS 44 | 45 | ```jsx 46 | // pages/_app.js 47 | import "@upstash/claps/style.css"; 48 | 49 | export default function MyApp({ Component, pageProps }) { 50 | return ; 51 | } 52 | ``` 53 | 54 | ### 4. Import Components 55 | 56 | ```jsx 57 | // pages/example.js 58 | import Claps from "@upstash/claps"; 59 | 60 | export default function Example() { 61 | return ( 62 |
63 | 64 |
65 | ) 66 | } 67 | ``` 68 | 69 | The options can be passed as React props 70 | 71 | | key | type | default | 72 | | ------------- | --------------------------- | ------------ | 73 | | `key?` | `string` | | 74 | | `fixed?` | `"left", "center", "right"` | | 75 | | `replyUrl?` | `string` | | 76 | | `replyCount?` | `string` | | 77 | | `apiPath?` | `string` | `/api/claps` | 78 | | `iconClap?` | `null, React.ReactElement` | | 79 | | `iconReply?` | `null, React.ReactElement` | | 80 | 81 | > Url of the page is being used as the key/identity to keep the claps count. You 82 | > can override this giving the `key` attribute. 83 | 84 | ### 5. Create API 85 | 86 | ```js 87 | // pages/api/claps.js 88 | import createClapsAPI from "@upstash/claps/api"; 89 | 90 | const ClapsAPI = createClapsAPI({ 91 | // maxClaps: 10 92 | }); 93 | export default ClapsAPI; 94 | ``` 95 | 96 | ### Support 97 | 98 | Use [Upstash Discord](https://upstash.com/discord) channel to get support. 99 | -------------------------------------------------------------------------------- /components/claps/api.ts: -------------------------------------------------------------------------------- 1 | import { Redis } from "@upstash/redis"; 2 | import { NextApiRequest, NextApiResponse } from "next"; 3 | import { getData, generateKey, getIP, generateHash, MAX_CLAPS } from "./utils"; 4 | 5 | type OptionProps = { maxClaps?: number }; 6 | 7 | export default function createClapsAPI({ maxClaps = MAX_CLAPS }: OptionProps) { 8 | const redis = Redis.fromEnv(); 9 | 10 | return async function (req: NextApiRequest, res: NextApiResponse) { 11 | const method = req.method; 12 | const { score, key } = req.body; 13 | 14 | const RAW_IP = getIP(req); 15 | const KEY = generateKey(req, key); 16 | const HASH_IP = generateHash(RAW_IP); 17 | 18 | try { 19 | if (method === "GET") { 20 | const data = await getData(KEY, HASH_IP); 21 | return res.status(200).json({ ...data, maxClaps }); 22 | } 23 | 24 | if (method === "PATCH") { 25 | let addScore = Number(score) || 0; 26 | 27 | const { userScore } = await getData(KEY, HASH_IP); 28 | 29 | if (userScore >= maxClaps) { 30 | throw new Error("You have reached the maximum clap limit"); 31 | } 32 | 33 | // if the total value is higher than the max value, we need to remove some claps 34 | if (userScore + addScore > maxClaps) { 35 | addScore = addScore - (userScore + addScore - maxClaps); 36 | } 37 | 38 | await redis.zincrby(KEY, addScore, HASH_IP); 39 | 40 | const data = await getData(KEY, HASH_IP); 41 | return res.status(200).json({ ...data, maxClaps }); 42 | } 43 | 44 | return res.status(405).json({ message: "Method not allowed" }); 45 | } catch (err) { 46 | let message = err; 47 | 48 | if (err instanceof Error) { 49 | message = err.message; 50 | } 51 | 52 | return res.status(500).json({ message }); 53 | } 54 | }; 55 | } 56 | -------------------------------------------------------------------------------- /components/claps/claps.tsx: -------------------------------------------------------------------------------- 1 | import React, { useCallback, useEffect, useState } from "react"; 2 | import debounce from "lodash.debounce"; 3 | import cx from "clsx"; 4 | import Icons from "./icons"; 5 | import Share from "./share"; 6 | 7 | const REACTION_DURATION = 600; 8 | 9 | enum ReactionClass { 10 | default = "", 11 | no = "headShake animated", 12 | yes = "heartBeat animated", 13 | } 14 | 15 | type IClapsFixedProps = "left" | "center" | "right"; 16 | 17 | export type IClapsProps = { 18 | key?: string; 19 | fixed?: IClapsFixedProps; 20 | replyUrl?: string; 21 | replyCount?: number | string; 22 | apiPath?: string; 23 | iconClap?: React.ReactElement; 24 | iconReply?: React.ReactElement; 25 | shareButton?: boolean; 26 | }; 27 | 28 | export default function Claps({ 29 | key, 30 | fixed, 31 | replyUrl, 32 | replyCount, 33 | apiPath = `/api/claps`, 34 | iconClap, 35 | iconReply, 36 | shareButton = true, 37 | }: IClapsProps) { 38 | const [ready, setReady] = useState(false); 39 | const [showShare, setShowShare] = useState(false); 40 | const [reaction, setReaction] = useState( 41 | ReactionClass.default 42 | ); 43 | 44 | const [cacheCount, setCacheCount] = useState(0); 45 | const [data, setData] = useState<{ 46 | totalScore: number; 47 | userScore: number; 48 | totalUsers: number; 49 | maxClaps: number; 50 | }>({ 51 | totalScore: 0, 52 | userScore: 0, 53 | totalUsers: 0, 54 | maxClaps: 0, 55 | }); 56 | 57 | const setReactionAnim = (reaction: ReactionClass) => { 58 | setReaction(reaction); 59 | return setTimeout(() => { 60 | setReaction(ReactionClass.default); 61 | }, REACTION_DURATION); 62 | }; 63 | 64 | const onClapSaving = useCallback( 65 | debounce(async (score, data) => { 66 | try { 67 | if (data.userScore >= data.maxClaps) { 68 | return setReactionAnim(ReactionClass.no); 69 | } 70 | 71 | const response = await fetch(apiPath, { 72 | method: "PATCH", 73 | headers: { 74 | "Content-Type": "application/json", 75 | }, 76 | body: JSON.stringify({ score, key }), 77 | }); 78 | 79 | if (!response.ok) { 80 | return setReactionAnim(ReactionClass.no); 81 | } 82 | 83 | const newData = await response.json(); 84 | setData(newData); 85 | 86 | setReactionAnim(ReactionClass.yes); 87 | } catch (error) { 88 | console.error(error); 89 | } finally { 90 | setCacheCount(0); 91 | } 92 | }, 1000), 93 | [] 94 | ); 95 | 96 | const onClap = () => { 97 | const value = cacheCount === data.maxClaps ? cacheCount : cacheCount + 1; 98 | setCacheCount(value); 99 | 100 | return onClapSaving(value, data); 101 | }; 102 | 103 | const getData = async () => { 104 | try { 105 | const response = await fetch(apiPath, { 106 | method: "GET", 107 | }); 108 | 109 | if (!response.ok) return; 110 | 111 | const data = await response.json(); 112 | setData(data); 113 | } catch (error) { 114 | console.log(error); 115 | } finally { 116 | setReady(true); 117 | } 118 | }; 119 | 120 | useEffect(() => { 121 | getData(); 122 | }, []); 123 | 124 | return ( 125 |
134 | 135 | {showShare && setShowShare(false)} />} 136 | 137 |
138 | 169 | 170 | {replyUrl && ( 171 | <> 172 | 173 | 174 | 180 | {iconReply || ( 181 | 182 | 183 | 184 | )} 185 | {replyCount && ( 186 | {replyCount} 187 | )} 188 | 189 | 190 | )} 191 | 192 | {shareButton && ( 193 | <> 194 | 195 | 196 | 207 | 208 | )} 209 |
210 |
211 | ); 212 | } 213 | -------------------------------------------------------------------------------- /components/claps/icons.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export default function Icons() { 4 | return ( 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 21 | 26 | 27 | 28 | 37 | 38 | 39 | 40 | 49 | 50 | 51 | 52 | 53 | 54 | 63 | 64 | 65 | 66 | 67 | 76 | 77 | 78 | 79 | 88 | 89 | 90 | 91 | 92 | 101 | 102 | 103 | 104 | 105 | 106 | ); 107 | } 108 | -------------------------------------------------------------------------------- /components/claps/share.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export default function Share({ 4 | onClose = () => {}, 5 | }: { 6 | onClose?: () => void; 7 | }) { 8 | const onAction = (action: string) => { 9 | const url = window.location.href; 10 | 11 | if (action === "clipboard") { 12 | navigator.clipboard.writeText(url); 13 | } 14 | // 15 | else if (action === "tweet") { 16 | // `https://twitter.com/intent/tweet?url=URL&text=TEXT` 17 | window.open( 18 | `https://twitter.com/intent/tweet?url=${url}&text=${encodeURIComponent( 19 | document.title 20 | )}` 21 | ); 22 | } 23 | // 24 | else if (action === "email") { 25 | // mailto:?subject=SUBJECT&body=BODY 26 | window.open( 27 | `mailto:?subject=${encodeURIComponent( 28 | document.title 29 | )}&body=${encodeURIComponent(url)}` 30 | ); 31 | } 32 | }; 33 | 34 | return ( 35 |
36 |
37 |
38 |

Share this page

39 | 40 | 45 |
46 | 47 |
48 | 60 | 61 | 73 | 74 | 86 |
87 |
88 |
89 | ); 90 | } 91 | -------------------------------------------------------------------------------- /components/claps/style.css: -------------------------------------------------------------------------------- 1 | .claps-root { 2 | --animate-duration: 600ms; 3 | --transition: 120ms; 4 | 5 | -webkit-text-size-adjust: 100%; 6 | -webkit-font-smoothing: antialiased; 7 | text-rendering: optimizeLegibility; 8 | -moz-osx-font-smoothing: grayscale; 9 | 10 | display: flex; 11 | position: relative; 12 | z-index: 1; 13 | font-size: 15px; 14 | line-height: 1; 15 | user-select: none; 16 | font-family: sans-serif; 17 | } 18 | 19 | .claps-root * { 20 | box-sizing: border-box; 21 | transition: var(--transition); 22 | } 23 | 24 | .claps-fixed { 25 | position: fixed; 26 | bottom: 1rem; 27 | z-index: 10; 28 | } 29 | 30 | .claps-fixed-left { 31 | left: 1rem; 32 | } 33 | 34 | .claps-fixed-center { 35 | left: 50%; 36 | transform: translateX(-50%); 37 | } 38 | 39 | .claps-fixed-right { 40 | right: 1rem; 41 | } 42 | 43 | .claps-body { 44 | display: flex; 45 | align-items: center; 46 | gap: 1px; 47 | padding: 2px; 48 | color: #000; 49 | background-color: #fff; 50 | border-radius: 40px; 51 | filter: drop-shadow(0 1px 1px rgb(0 0 0 / 10%)); 52 | } 53 | 54 | .claps-fixed .claps-body { 55 | filter: drop-shadow(0 4px 8px rgb(0 0 0 / 14%)) drop-shadow(0 1px 2px rgb(0 0 0 / 6%)); 56 | } 57 | 58 | .claps-divider { 59 | display: block; 60 | width: 1px; 61 | height: 1.1em; 62 | background-color: rgb(0 0 0 / 10%); 63 | } 64 | 65 | .claps-button { 66 | cursor: pointer; 67 | border: 0; 68 | padding: 8px 12px; 69 | display: flex; 70 | align-items: center; 71 | gap: 0.3em; 72 | font: inherit; 73 | background-color: transparent; 74 | border-radius: 6px; 75 | text-decoration: none; 76 | color: inherit; 77 | } 78 | 79 | .claps-button:first-child { 80 | border-top-left-radius: inherit; 81 | border-bottom-left-radius: inherit; 82 | } 83 | 84 | .claps-button:last-child { 85 | border-top-right-radius: inherit; 86 | border-bottom-right-radius: inherit; 87 | } 88 | 89 | .claps-button:hover { 90 | background-color: rgb(0 0 0 / 5%); 91 | } 92 | 93 | .claps-button-suffix { 94 | opacity: 0.4; 95 | } 96 | 97 | .claps-body:hover .claps-divider { 98 | background-color: transparent; 99 | } 100 | 101 | .claps-button svg { 102 | color: rgb(0 0 0 / 80%); 103 | } 104 | 105 | .claps-button:hover svg { 106 | color: rgb(0 0 0 / 100%); 107 | } 108 | 109 | .claps-button-clap.clapped svg { 110 | color: rgb(0 0 0 / 100%); 111 | } 112 | 113 | .claps-share-modal { 114 | position: fixed; 115 | inset: 0; 116 | z-index: 999; 117 | background-color: rgb(0 0 0 / 60%); 118 | display: grid; 119 | place-items: center; 120 | } 121 | 122 | .claps-share-content { 123 | position: relative; 124 | padding: 2rem; 125 | background-color: white; 126 | filter: drop-shadow(0 4px 8px rgb(0 0 0 / 20%)); 127 | border-radius: 1rem; 128 | } 129 | 130 | .claps-share-header { 131 | display: flex; 132 | align-items: center; 133 | } 134 | 135 | .claps-share-header h3 { 136 | font-size: 1.4rem; 137 | font-weight: bold; 138 | } 139 | 140 | .claps-share-close { 141 | margin-left: auto; 142 | opacity: .5; 143 | } 144 | 145 | .claps-share-buttons { 146 | margin-top: 2rem; 147 | display: flex; 148 | align-items: center; 149 | gap: 2rem; 150 | } 151 | 152 | .claps-share-button { 153 | display: flex; 154 | flex-direction: column; 155 | align-items: center; 156 | gap: .6rem; 157 | } 158 | 159 | .claps-share-button-icon { 160 | padding: .6rem; 161 | background-color: rgb(0 0 0 / 6%); 162 | border-radius: 100%; 163 | } 164 | 165 | .claps-share-button:hover .claps-share-button-icon { 166 | background-color: rgb(0 0 0 / 10%); 167 | } 168 | 169 | /* https://github.com/animate-css/animate.css */ 170 | 171 | .animated { 172 | animation-duration: var(--animate-duration); 173 | animation-fill-mode: both; 174 | } 175 | 176 | @keyframes headShake { 177 | 0% { transform: translateX(0) } 178 | 6.5% { transform: translateX(-6px) rotateY(-9deg) } 179 | 18.5% { transform: translateX(5px) rotateY(7deg) } 180 | 31.5% { transform: translateX(-3px) rotateY(-5deg) } 181 | 43.5% { transform: translateX(2px) rotateY(3deg) } 182 | 50% { transform: translateX(0) } 183 | } 184 | 185 | .headShake { 186 | animation-timing-function: ease-in-out; 187 | animation-name: headShake; 188 | } 189 | 190 | @keyframes heartBeat { 191 | 0% { transform: scale(1) } 192 | 14% { transform: scale(1.1) } 193 | 28% { transform: scale(1) } 194 | 42% { transform: scale(1.1) } 195 | 70% { transform: scale(1) } 196 | } 197 | 198 | .heartBeat { 199 | animation-name: heartBeat; 200 | animation-duration: calc(var(--animate-duration) * 1.3); 201 | animation-timing-function: ease-in-out; 202 | } 203 | -------------------------------------------------------------------------------- /components/claps/style.tsx: -------------------------------------------------------------------------------- 1 | import "./style.css"; 2 | -------------------------------------------------------------------------------- /components/claps/utils.ts: -------------------------------------------------------------------------------- 1 | import { NextApiRequest } from "next"; 2 | import { Redis } from "@upstash/redis"; 3 | import { createHash } from "crypto"; 4 | 5 | const redis = Redis.fromEnv(); 6 | 7 | export const MAX_CLAPS = 30; 8 | 9 | export function generateHash(ip: string) { 10 | return createHash("sha256").update(ip).digest("base64"); 11 | } 12 | 13 | export function generateKey(req: NextApiRequest, key: string) { 14 | if (key) { 15 | return `CLAP:${key}`; 16 | } 17 | 18 | const referer = new URL(req.headers.referer as string); 19 | const url = referer.origin + referer.pathname; 20 | 21 | return `CLAP:${url}`; 22 | } 23 | 24 | export function getIP(req: Request | NextApiRequest) { 25 | const xff = 26 | req instanceof Request 27 | ? req.headers.get("x-forwarded-for") 28 | : req.headers["x-forwarded-for"]; 29 | 30 | return xff ? (Array.isArray(xff) ? xff[0] : xff.split(",")[0]) : "127.0.0.1"; 31 | } 32 | 33 | export async function getData( 34 | key: string, 35 | ip: string 36 | ): Promise<{ 37 | totalScore: number; 38 | userScore: number; 39 | totalUsers: number; 40 | }> { 41 | return new Promise(async (resolve) => { 42 | let totalScore = 0, 43 | userScore = 0; 44 | 45 | const sortedList: Array = await redis.zrange(key, 0, -1, { 46 | withScores: true, 47 | }); 48 | 49 | for (let i = 0; i < sortedList.length; i += 2) { 50 | const [key, value] = [sortedList[i], Number(sortedList[i + 1])]; 51 | if (key === ip) userScore = value; 52 | totalScore = totalScore + value; 53 | } 54 | 55 | resolve({ 56 | totalScore, 57 | userScore, 58 | totalUsers: sortedList.length / 2, 59 | }); 60 | }); 61 | } 62 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | 3 | const nextConfig = { 4 | reactStrictMode: true, 5 | }; 6 | 7 | module.exports = nextConfig; 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@upstash/claps", 3 | "version": "0.1.9", 4 | "license": "MIT", 5 | "main": "./claps.js", 6 | "module": "./claps.mjs", 7 | "types": "./claps.d.ts", 8 | "scripts": { 9 | "dev": "next dev", 10 | "build": "next build", 11 | "export": "tsup && cp package.json README.md ./dist/" 12 | }, 13 | "dependencies": { 14 | "@upstash/redis": "^1.7.0", 15 | "clsx": "^2.1.0", 16 | "lodash.debounce": "^4.0.8", 17 | "next": "^14.2.23", 18 | "react": "^18.2.0", 19 | "react-dom": "^18.2.0" 20 | }, 21 | "devDependencies": { 22 | "@types/lodash.debounce": "^4.0.9", 23 | "@types/node": "^18.0.1", 24 | "@types/react": "^18.0.14", 25 | "@types/react-dom": "^18.0.6", 26 | "autoprefixer": "^10.4.7", 27 | "postcss": "^8.4.14", 28 | "prettier": "^2.7.1", 29 | "prettier-plugin-tailwindcss": "^0.1.11", 30 | "tailwindcss": "^3.4.17", 31 | "tsup": "^8.3.5", 32 | "typescript": "^4.7.4" 33 | }, 34 | "homepage": "https://github.com/upstash/claps#readme", 35 | "repository": { 36 | "type": "git", 37 | "url": "git+https://ademilter@github.com/upstash/claps.git" 38 | }, 39 | "bugs": { 40 | "url": "https://github.com/upstash/claps/issues" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import { AppProps } from "next/app"; 2 | import Head from "next/head"; 3 | 4 | import "styles/global.css"; 5 | import "components/claps/style.css"; 6 | 7 | export default function App(props: AppProps) { 8 | const { Component, pageProps } = props; 9 | 10 | return ( 11 | <> 12 | 13 | 14 | Add a claps button (like medium) to any page for your Next.js apps 15 | 16 | 17 | 18 | 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /pages/api/claps.ts: -------------------------------------------------------------------------------- 1 | import createClapsAPI from "components/claps/api"; 2 | 3 | const ClapsAPI = createClapsAPI({}); 4 | 5 | export default ClapsAPI; 6 | -------------------------------------------------------------------------------- /pages/index.tsx: -------------------------------------------------------------------------------- 1 | import Claps from "components/claps/claps"; 2 | import { useEffect, useState } from "react"; 3 | 4 | export default function Home() { 5 | const [ready, setReady] = useState(false); 6 | const [fixed, setFixed] = useState<"default" | "left" | "center" | "right">( 7 | "default" 8 | ); 9 | const [replyUrl, setReplyUrl] = useState( 10 | "https://twitter.com/upstash/status/1552694742558937088" 11 | ); 12 | 13 | useEffect(() => { 14 | setReady(true); 15 | }, []); 16 | 17 | if (!ready) return null; 18 | 19 | return ( 20 |
21 |
22 |
23 |

24 | 25 | @upstash/claps 26 | 27 |

28 |

29 | Add a claps button (like medium) to any page for your Next.js apps. 30 |

31 |

32 | Nothing to maintain, it is completely serverless 💯 33 |

34 |
35 | 36 |
37 | 42 |
43 | 44 |
45 | Appearance 46 | 47 | 48 | 49 | 50 | 68 | 69 | 70 | 71 | 79 | 80 |
fixed: 51 |
52 | {["default", "left", "center", "right"].map((value) => ( 53 | 65 | ))} 66 |
67 |
replyUrl: 72 | setReplyUrl(target.value)} 77 | /> 78 |
81 |
82 | 83 |
84 | 85 |

Setup

86 | 87 |

88 | You can refer to the{" "} 89 | 94 | GitHub README 95 | {" "} 96 | for the installation. 97 |

98 | 99 |
100 | 101 |
102 |

103 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error et 104 | iste numquam placeat, quasi quisquam sit? Blanditiis commodi 105 | delectus deleniti dolores eaque fuga id magni nemo pariatur 106 | quibusdam quidem, tenetur! 107 |

108 | 109 |

110 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error et 111 | iste numquam placeat, quasi quisquam sit? Blanditiis commodi 112 | delectus deleniti dolores eaque fuga id magni nemo pariatur 113 | quibusdam quidem, tenetur! 114 |

115 | 116 |

117 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error et 118 | iste numquam placeat, quasi quisquam sit? Blanditiis commodi 119 | delectus deleniti dolores eaque fuga id magni nemo pariatur 120 | quibusdam quidem, tenetur! 121 |

122 | 123 |

124 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error et 125 | iste numquam placeat, quasi quisquam sit? Blanditiis commodi 126 | delectus deleniti dolores eaque fuga id magni nemo pariatur 127 | quibusdam quidem, tenetur! 128 |

129 | 130 |

131 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error et 132 | iste numquam placeat, quasi quisquam sit? Blanditiis commodi 133 | delectus deleniti dolores eaque fuga id magni nemo pariatur 134 | quibusdam quidem, tenetur! 135 |

136 | 137 |

138 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error et 139 | iste numquam placeat, quasi quisquam sit? Blanditiis commodi 140 | delectus deleniti dolores eaque fuga id magni nemo pariatur 141 | quibusdam quidem, tenetur! 142 |

143 | 144 |

145 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error et 146 | iste numquam placeat, quasi quisquam sit? Blanditiis commodi 147 | delectus deleniti dolores eaque fuga id magni nemo pariatur 148 | quibusdam quidem, tenetur! 149 |

150 |
151 |
152 |
153 | ); 154 | } 155 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /public/ss.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/claps/bf2d424e5418b3eae4bf835763b9daca9f64fba0/public/ss.jpeg -------------------------------------------------------------------------------- /styles/global.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | body { 7 | @apply antialiased text-zinc-900; 8 | } 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | content: [ 3 | "./pages/**/*.{js,ts,jsx,tsx}", 4 | "./components/**/*.{js,ts,jsx,tsx}", 5 | ], 6 | }; 7 | -------------------------------------------------------------------------------- /tsconfig.base.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 | "incremental": false 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "baseUrl": ".", 5 | "lib": [ 6 | "dom", 7 | "dom.iterable", 8 | "esnext" 9 | ], 10 | "allowJs": true, 11 | "noEmit": true, 12 | "incremental": true, 13 | "resolveJsonModule": true, 14 | "isolatedModules": true 15 | }, 16 | "include": [ 17 | "next-env.d.ts", 18 | "**/*.ts", 19 | "**/*.tsx" 20 | ], 21 | "exclude": [ 22 | "node_modules" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "files": [ 4 | "src/index.ts" 5 | ], 6 | "compilerOptions": { 7 | "outDir": "dist/module", 8 | "module": "ES2015" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | export default defineConfig({ 4 | entry: { 5 | claps: "./components/claps/claps.tsx", 6 | api: "./components/claps/api.ts", 7 | style: "./components/claps/style.tsx", 8 | }, 9 | format: ["cjs", "esm"], 10 | clean: true, 11 | bundle: true, 12 | dts: true, 13 | tsconfig: "tsconfig.base.json", 14 | }); 15 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@alloc/quick-lru@^5.2.0": 6 | version "5.2.0" 7 | resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" 8 | integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== 9 | 10 | "@esbuild/aix-ppc64@0.24.2": 11 | version "0.24.2" 12 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461" 13 | integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA== 14 | 15 | "@esbuild/android-arm64@0.24.2": 16 | version "0.24.2" 17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894" 18 | integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg== 19 | 20 | "@esbuild/android-arm@0.24.2": 21 | version "0.24.2" 22 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3" 23 | integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q== 24 | 25 | "@esbuild/android-x64@0.24.2": 26 | version "0.24.2" 27 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb" 28 | integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw== 29 | 30 | "@esbuild/darwin-arm64@0.24.2": 31 | version "0.24.2" 32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936" 33 | integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA== 34 | 35 | "@esbuild/darwin-x64@0.24.2": 36 | version "0.24.2" 37 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9" 38 | integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA== 39 | 40 | "@esbuild/freebsd-arm64@0.24.2": 41 | version "0.24.2" 42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00" 43 | integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg== 44 | 45 | "@esbuild/freebsd-x64@0.24.2": 46 | version "0.24.2" 47 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f" 48 | integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q== 49 | 50 | "@esbuild/linux-arm64@0.24.2": 51 | version "0.24.2" 52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43" 53 | integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg== 54 | 55 | "@esbuild/linux-arm@0.24.2": 56 | version "0.24.2" 57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736" 58 | integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA== 59 | 60 | "@esbuild/linux-ia32@0.24.2": 61 | version "0.24.2" 62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5" 63 | integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw== 64 | 65 | "@esbuild/linux-loong64@0.24.2": 66 | version "0.24.2" 67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc" 68 | integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ== 69 | 70 | "@esbuild/linux-mips64el@0.24.2": 71 | version "0.24.2" 72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb" 73 | integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw== 74 | 75 | "@esbuild/linux-ppc64@0.24.2": 76 | version "0.24.2" 77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412" 78 | integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw== 79 | 80 | "@esbuild/linux-riscv64@0.24.2": 81 | version "0.24.2" 82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694" 83 | integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q== 84 | 85 | "@esbuild/linux-s390x@0.24.2": 86 | version "0.24.2" 87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577" 88 | integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw== 89 | 90 | "@esbuild/linux-x64@0.24.2": 91 | version "0.24.2" 92 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz#8140c9b40da634d380b0b29c837a0b4267aff38f" 93 | integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q== 94 | 95 | "@esbuild/netbsd-arm64@0.24.2": 96 | version "0.24.2" 97 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6" 98 | integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw== 99 | 100 | "@esbuild/netbsd-x64@0.24.2": 101 | version "0.24.2" 102 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz#7a3a97d77abfd11765a72f1c6f9b18f5396bcc40" 103 | integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw== 104 | 105 | "@esbuild/openbsd-arm64@0.24.2": 106 | version "0.24.2" 107 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f" 108 | integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A== 109 | 110 | "@esbuild/openbsd-x64@0.24.2": 111 | version "0.24.2" 112 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205" 113 | integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA== 114 | 115 | "@esbuild/sunos-x64@0.24.2": 116 | version "0.24.2" 117 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6" 118 | integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig== 119 | 120 | "@esbuild/win32-arm64@0.24.2": 121 | version "0.24.2" 122 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85" 123 | integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ== 124 | 125 | "@esbuild/win32-ia32@0.24.2": 126 | version "0.24.2" 127 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2" 128 | integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA== 129 | 130 | "@esbuild/win32-x64@0.24.2": 131 | version "0.24.2" 132 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz#34aa0b52d0fbb1a654b596acfa595f0c7b77a77b" 133 | integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg== 134 | 135 | "@isaacs/cliui@^8.0.2": 136 | version "8.0.2" 137 | resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" 138 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 139 | dependencies: 140 | string-width "^5.1.2" 141 | string-width-cjs "npm:string-width@^4.2.0" 142 | strip-ansi "^7.0.1" 143 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 144 | wrap-ansi "^8.1.0" 145 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 146 | 147 | "@jridgewell/gen-mapping@^0.3.2": 148 | version "0.3.8" 149 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" 150 | integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== 151 | dependencies: 152 | "@jridgewell/set-array" "^1.2.1" 153 | "@jridgewell/sourcemap-codec" "^1.4.10" 154 | "@jridgewell/trace-mapping" "^0.3.24" 155 | 156 | "@jridgewell/resolve-uri@^3.1.0": 157 | version "3.1.2" 158 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 159 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 160 | 161 | "@jridgewell/set-array@^1.2.1": 162 | version "1.2.1" 163 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" 164 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 165 | 166 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": 167 | version "1.5.0" 168 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" 169 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 170 | 171 | "@jridgewell/trace-mapping@^0.3.24": 172 | version "0.3.25" 173 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" 174 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 175 | dependencies: 176 | "@jridgewell/resolve-uri" "^3.1.0" 177 | "@jridgewell/sourcemap-codec" "^1.4.14" 178 | 179 | "@next/env@14.2.23": 180 | version "14.2.23" 181 | resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.23.tgz#3003b53693cbc476710b856f83e623c8231a6be9" 182 | integrity sha512-CysUC9IO+2Bh0omJ3qrb47S8DtsTKbFidGm6ow4gXIG6reZybqxbkH2nhdEm1tC8SmgzDdpq3BIML0PWsmyUYA== 183 | 184 | "@next/swc-darwin-arm64@14.2.23": 185 | version "14.2.23" 186 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.23.tgz#6d83f03e35e163e8bbeaf5aeaa6bf55eed23d7a1" 187 | integrity sha512-WhtEntt6NcbABA8ypEoFd3uzq5iAnrl9AnZt9dXdO+PZLACE32z3a3qA5OoV20JrbJfSJ6Sd6EqGZTrlRnGxQQ== 188 | 189 | "@next/swc-darwin-x64@14.2.23": 190 | version "14.2.23" 191 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.23.tgz#e02abc35d5e36ce1550f674f8676999f293ba54f" 192 | integrity sha512-vwLw0HN2gVclT/ikO6EcE+LcIN+0mddJ53yG4eZd0rXkuEr/RnOaMH8wg/sYl5iz5AYYRo/l6XX7FIo6kwbw1Q== 193 | 194 | "@next/swc-linux-arm64-gnu@14.2.23": 195 | version "14.2.23" 196 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.23.tgz#f13516ad2d665950951b59e7c239574bb8504d63" 197 | integrity sha512-uuAYwD3At2fu5CH1wD7FpP87mnjAv4+DNvLaR9kiIi8DLStWSW304kF09p1EQfhcbUI1Py2vZlBO2VaVqMRtpg== 198 | 199 | "@next/swc-linux-arm64-musl@14.2.23": 200 | version "14.2.23" 201 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.23.tgz#10d05a1c161dc8426d54ccf6d9bbed6953a3252a" 202 | integrity sha512-Mm5KHd7nGgeJ4EETvVgFuqKOyDh+UMXHXxye6wRRFDr4FdVRI6YTxajoV2aHE8jqC14xeAMVZvLqYqS7isHL+g== 203 | 204 | "@next/swc-linux-x64-gnu@14.2.23": 205 | version "14.2.23" 206 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.23.tgz#7f5856df080f58ba058268b30429a2ab52500536" 207 | integrity sha512-Ybfqlyzm4sMSEQO6lDksggAIxnvWSG2cDWnG2jgd+MLbHYn2pvFA8DQ4pT2Vjk3Cwrv+HIg7vXJ8lCiLz79qoQ== 208 | 209 | "@next/swc-linux-x64-musl@14.2.23": 210 | version "14.2.23" 211 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.23.tgz#d494ebdf26421c91be65f9b1d095df0191c956d8" 212 | integrity sha512-OSQX94sxd1gOUz3jhhdocnKsy4/peG8zV1HVaW6DLEbEmRRtUCUQZcKxUD9atLYa3RZA+YJx+WZdOnTkDuNDNA== 213 | 214 | "@next/swc-win32-arm64-msvc@14.2.23": 215 | version "14.2.23" 216 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.23.tgz#62786e7ba4822a20b6666e3e03e5a389b0e7eb3b" 217 | integrity sha512-ezmbgZy++XpIMTcTNd0L4k7+cNI4ET5vMv/oqNfTuSXkZtSA9BURElPFyarjjGtRgZ9/zuKDHoMdZwDZIY3ehQ== 218 | 219 | "@next/swc-win32-ia32-msvc@14.2.23": 220 | version "14.2.23" 221 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.23.tgz#ef028af91e1c40a4ebba0d2c47b23c1eeb299594" 222 | integrity sha512-zfHZOGguFCqAJ7zldTKg4tJHPJyJCOFhpoJcVxKL9BSUHScVDnMdDuOU1zPPGdOzr/GWxbhYTjyiEgLEpAoFPA== 223 | 224 | "@next/swc-win32-x64-msvc@14.2.23": 225 | version "14.2.23" 226 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.23.tgz#c81838f02f2f16a321b7533890fb63c1edec68e1" 227 | integrity sha512-xCtq5BD553SzOgSZ7UH5LH+OATQihydObTrCTvVzOro8QiWYKdBVwcB2Mn2MLMo6DGW9yH1LSPw7jS7HhgJgjw== 228 | 229 | "@nodelib/fs.scandir@2.1.5": 230 | version "2.1.5" 231 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 232 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 233 | dependencies: 234 | "@nodelib/fs.stat" "2.0.5" 235 | run-parallel "^1.1.9" 236 | 237 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 238 | version "2.0.5" 239 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 240 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 241 | 242 | "@nodelib/fs.walk@^1.2.3": 243 | version "1.2.8" 244 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 245 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 246 | dependencies: 247 | "@nodelib/fs.scandir" "2.1.5" 248 | fastq "^1.6.0" 249 | 250 | "@pkgjs/parseargs@^0.11.0": 251 | version "0.11.0" 252 | resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" 253 | integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== 254 | 255 | "@rollup/rollup-android-arm-eabi@4.32.0": 256 | version "4.32.0" 257 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.0.tgz#42a8e897c7b656adb4edebda3a8b83a57526452f" 258 | integrity sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg== 259 | 260 | "@rollup/rollup-android-arm64@4.32.0": 261 | version "4.32.0" 262 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.0.tgz#846a73eef25b18ff94bac1e52acab6a7c7ac22fa" 263 | integrity sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A== 264 | 265 | "@rollup/rollup-darwin-arm64@4.32.0": 266 | version "4.32.0" 267 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.0.tgz#014ed37f1f7809fdf3442a6b689d3a074a844058" 268 | integrity sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ== 269 | 270 | "@rollup/rollup-darwin-x64@4.32.0": 271 | version "4.32.0" 272 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.0.tgz#dde6ed3e56d0b34477fa56c4a199abe5d4b9846b" 273 | integrity sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ== 274 | 275 | "@rollup/rollup-freebsd-arm64@4.32.0": 276 | version "4.32.0" 277 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.0.tgz#8ad634f462a6b7e338257cf64c7baff99618a08e" 278 | integrity sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA== 279 | 280 | "@rollup/rollup-freebsd-x64@4.32.0": 281 | version "4.32.0" 282 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.0.tgz#9d4d1dbbafcb0354d52ba6515a43c7511dba8052" 283 | integrity sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ== 284 | 285 | "@rollup/rollup-linux-arm-gnueabihf@4.32.0": 286 | version "4.32.0" 287 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.0.tgz#3bd5fcbab92a66e032faef1078915d1dbf27de7a" 288 | integrity sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A== 289 | 290 | "@rollup/rollup-linux-arm-musleabihf@4.32.0": 291 | version "4.32.0" 292 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.0.tgz#a77838b9779931ce4fa01326b585eee130f51e60" 293 | integrity sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ== 294 | 295 | "@rollup/rollup-linux-arm64-gnu@4.32.0": 296 | version "4.32.0" 297 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.0.tgz#ec1b1901b82d57a20184adb61c725dd8991a0bf0" 298 | integrity sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w== 299 | 300 | "@rollup/rollup-linux-arm64-musl@4.32.0": 301 | version "4.32.0" 302 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.0.tgz#7aa23b45bf489b7204b5a542e857e134742141de" 303 | integrity sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw== 304 | 305 | "@rollup/rollup-linux-loongarch64-gnu@4.32.0": 306 | version "4.32.0" 307 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.0.tgz#7bf0ebd8c5ad08719c3b4786be561d67f95654a7" 308 | integrity sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw== 309 | 310 | "@rollup/rollup-linux-powerpc64le-gnu@4.32.0": 311 | version "4.32.0" 312 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.0.tgz#e687dfcaf08124aafaaebecef0cc3986675cb9b6" 313 | integrity sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ== 314 | 315 | "@rollup/rollup-linux-riscv64-gnu@4.32.0": 316 | version "4.32.0" 317 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.0.tgz#19fce2594f9ce73d1cb0748baf8cd90a7bedc237" 318 | integrity sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw== 319 | 320 | "@rollup/rollup-linux-s390x-gnu@4.32.0": 321 | version "4.32.0" 322 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.0.tgz#fd99b335bb65c59beb7d15ae82be0aafa9883c19" 323 | integrity sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw== 324 | 325 | "@rollup/rollup-linux-x64-gnu@4.32.0": 326 | version "4.32.0" 327 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.0.tgz#4e8c697bbaa2e2d7212bd42086746c8275721166" 328 | integrity sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A== 329 | 330 | "@rollup/rollup-linux-x64-musl@4.32.0": 331 | version "4.32.0" 332 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.0.tgz#0d2f74bd9cfe0553f20f056760a95b293e849ab2" 333 | integrity sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg== 334 | 335 | "@rollup/rollup-win32-arm64-msvc@4.32.0": 336 | version "4.32.0" 337 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.0.tgz#6534a09fcdd43103645155cedb5bfa65fbf2c23f" 338 | integrity sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg== 339 | 340 | "@rollup/rollup-win32-ia32-msvc@4.32.0": 341 | version "4.32.0" 342 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.0.tgz#8222ccfecffd63a6b0ddbe417d8d959e4f2b11b3" 343 | integrity sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw== 344 | 345 | "@rollup/rollup-win32-x64-msvc@4.32.0": 346 | version "4.32.0" 347 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.0.tgz#1a40b4792c08094b6479c48c90fe7f4b10ec2f54" 348 | integrity sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA== 349 | 350 | "@swc/counter@^0.1.3": 351 | version "0.1.3" 352 | resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" 353 | integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== 354 | 355 | "@swc/helpers@0.5.5": 356 | version "0.5.5" 357 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0" 358 | integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A== 359 | dependencies: 360 | "@swc/counter" "^0.1.3" 361 | tslib "^2.4.0" 362 | 363 | "@types/estree@1.0.6": 364 | version "1.0.6" 365 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" 366 | integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== 367 | 368 | "@types/lodash.debounce@^4.0.9": 369 | version "4.0.9" 370 | resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz#0f5f21c507bce7521b5e30e7a24440975ac860a5" 371 | integrity sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ== 372 | dependencies: 373 | "@types/lodash" "*" 374 | 375 | "@types/lodash@*": 376 | version "4.17.14" 377 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.14.tgz#bafc053533f4cdc5fcc9635af46a963c1f3deaff" 378 | integrity sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A== 379 | 380 | "@types/node@^18.0.1": 381 | version "18.19.74" 382 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.74.tgz#4d093acd2a558ebbc5f0efa4e20ce63791b0cc58" 383 | integrity sha512-HMwEkkifei3L605gFdV+/UwtpxP6JSzM+xFk2Ia6DNFSwSVBRh9qp5Tgf4lNFOMfPVuU0WnkcWpXZpgn5ufO4A== 384 | dependencies: 385 | undici-types "~5.26.4" 386 | 387 | "@types/prop-types@*": 388 | version "15.7.14" 389 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.14.tgz#1433419d73b2a7ebfc6918dcefd2ec0d5cd698f2" 390 | integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ== 391 | 392 | "@types/react-dom@^18.0.6": 393 | version "18.3.5" 394 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.5.tgz#45f9f87398c5dcea085b715c58ddcf1faf65f716" 395 | integrity sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q== 396 | 397 | "@types/react@^18.0.14": 398 | version "18.3.18" 399 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.18.tgz#9b382c4cd32e13e463f97df07c2ee3bbcd26904b" 400 | integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ== 401 | dependencies: 402 | "@types/prop-types" "*" 403 | csstype "^3.0.2" 404 | 405 | "@upstash/redis@^1.7.0": 406 | version "1.34.3" 407 | resolved "https://registry.yarnpkg.com/@upstash/redis/-/redis-1.34.3.tgz#df0338f4983bba5141878e851be4fced494b44a0" 408 | integrity sha512-VT25TyODGy/8ljl7GADnJoMmtmJ1F8d84UXfGonRRF8fWYJz7+2J6GzW+a6ETGtk4OyuRTt7FRSvFG5GvrfSdQ== 409 | dependencies: 410 | crypto-js "^4.2.0" 411 | 412 | ansi-regex@^5.0.1: 413 | version "5.0.1" 414 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 415 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 416 | 417 | ansi-regex@^6.0.1: 418 | version "6.1.0" 419 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" 420 | integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== 421 | 422 | ansi-styles@^4.0.0: 423 | version "4.3.0" 424 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 425 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 426 | dependencies: 427 | color-convert "^2.0.1" 428 | 429 | ansi-styles@^6.1.0: 430 | version "6.2.1" 431 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" 432 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 433 | 434 | any-promise@^1.0.0: 435 | version "1.3.0" 436 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 437 | integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== 438 | 439 | anymatch@~3.1.2: 440 | version "3.1.3" 441 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 442 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 443 | dependencies: 444 | normalize-path "^3.0.0" 445 | picomatch "^2.0.4" 446 | 447 | arg@^5.0.2: 448 | version "5.0.2" 449 | resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" 450 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== 451 | 452 | autoprefixer@^10.4.7: 453 | version "10.4.20" 454 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" 455 | integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== 456 | dependencies: 457 | browserslist "^4.23.3" 458 | caniuse-lite "^1.0.30001646" 459 | fraction.js "^4.3.7" 460 | normalize-range "^0.1.2" 461 | picocolors "^1.0.1" 462 | postcss-value-parser "^4.2.0" 463 | 464 | balanced-match@^1.0.0: 465 | version "1.0.2" 466 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 467 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 468 | 469 | binary-extensions@^2.0.0: 470 | version "2.3.0" 471 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" 472 | integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== 473 | 474 | brace-expansion@^2.0.1: 475 | version "2.0.1" 476 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 477 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 478 | dependencies: 479 | balanced-match "^1.0.0" 480 | 481 | braces@^3.0.3, braces@~3.0.2: 482 | version "3.0.3" 483 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" 484 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 485 | dependencies: 486 | fill-range "^7.1.1" 487 | 488 | browserslist@^4.23.3: 489 | version "4.24.4" 490 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" 491 | integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== 492 | dependencies: 493 | caniuse-lite "^1.0.30001688" 494 | electron-to-chromium "^1.5.73" 495 | node-releases "^2.0.19" 496 | update-browserslist-db "^1.1.1" 497 | 498 | bundle-require@^5.0.0: 499 | version "5.1.0" 500 | resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-5.1.0.tgz#8db66f41950da3d77af1ef3322f4c3e04009faee" 501 | integrity sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA== 502 | dependencies: 503 | load-tsconfig "^0.2.3" 504 | 505 | busboy@1.6.0: 506 | version "1.6.0" 507 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" 508 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== 509 | dependencies: 510 | streamsearch "^1.1.0" 511 | 512 | cac@^6.7.14: 513 | version "6.7.14" 514 | resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" 515 | integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== 516 | 517 | camelcase-css@^2.0.1: 518 | version "2.0.1" 519 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" 520 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== 521 | 522 | caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: 523 | version "1.0.30001695" 524 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz#39dfedd8f94851132795fdf9b79d29659ad9c4d4" 525 | integrity sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw== 526 | 527 | chokidar@^3.6.0: 528 | version "3.6.0" 529 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" 530 | integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== 531 | dependencies: 532 | anymatch "~3.1.2" 533 | braces "~3.0.2" 534 | glob-parent "~5.1.2" 535 | is-binary-path "~2.1.0" 536 | is-glob "~4.0.1" 537 | normalize-path "~3.0.0" 538 | readdirp "~3.6.0" 539 | optionalDependencies: 540 | fsevents "~2.3.2" 541 | 542 | chokidar@^4.0.1: 543 | version "4.0.3" 544 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" 545 | integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== 546 | dependencies: 547 | readdirp "^4.0.1" 548 | 549 | client-only@0.0.1: 550 | version "0.0.1" 551 | resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" 552 | integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== 553 | 554 | clsx@^2.1.0: 555 | version "2.1.1" 556 | resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" 557 | integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== 558 | 559 | color-convert@^2.0.1: 560 | version "2.0.1" 561 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 562 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 563 | dependencies: 564 | color-name "~1.1.4" 565 | 566 | color-name@~1.1.4: 567 | version "1.1.4" 568 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 569 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 570 | 571 | commander@^4.0.0: 572 | version "4.1.1" 573 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 574 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 575 | 576 | consola@^3.2.3: 577 | version "3.4.0" 578 | resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.0.tgz#4cfc9348fd85ed16a17940b3032765e31061ab88" 579 | integrity sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA== 580 | 581 | cross-spawn@^7.0.0: 582 | version "7.0.6" 583 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" 584 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== 585 | dependencies: 586 | path-key "^3.1.0" 587 | shebang-command "^2.0.0" 588 | which "^2.0.1" 589 | 590 | crypto-js@^4.2.0: 591 | version "4.2.0" 592 | resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" 593 | integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== 594 | 595 | cssesc@^3.0.0: 596 | version "3.0.0" 597 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 598 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 599 | 600 | csstype@^3.0.2: 601 | version "3.1.3" 602 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" 603 | integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== 604 | 605 | debug@^4.3.7: 606 | version "4.4.0" 607 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" 608 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== 609 | dependencies: 610 | ms "^2.1.3" 611 | 612 | didyoumean@^1.2.2: 613 | version "1.2.2" 614 | resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" 615 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== 616 | 617 | dlv@^1.1.3: 618 | version "1.1.3" 619 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" 620 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== 621 | 622 | eastasianwidth@^0.2.0: 623 | version "0.2.0" 624 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" 625 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 626 | 627 | electron-to-chromium@^1.5.73: 628 | version "1.5.88" 629 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz#cdb6e2dda85e6521e8d7d3035ba391c8848e073a" 630 | integrity sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw== 631 | 632 | emoji-regex@^8.0.0: 633 | version "8.0.0" 634 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 635 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 636 | 637 | emoji-regex@^9.2.2: 638 | version "9.2.2" 639 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 640 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 641 | 642 | esbuild@^0.24.0: 643 | version "0.24.2" 644 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d" 645 | integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA== 646 | optionalDependencies: 647 | "@esbuild/aix-ppc64" "0.24.2" 648 | "@esbuild/android-arm" "0.24.2" 649 | "@esbuild/android-arm64" "0.24.2" 650 | "@esbuild/android-x64" "0.24.2" 651 | "@esbuild/darwin-arm64" "0.24.2" 652 | "@esbuild/darwin-x64" "0.24.2" 653 | "@esbuild/freebsd-arm64" "0.24.2" 654 | "@esbuild/freebsd-x64" "0.24.2" 655 | "@esbuild/linux-arm" "0.24.2" 656 | "@esbuild/linux-arm64" "0.24.2" 657 | "@esbuild/linux-ia32" "0.24.2" 658 | "@esbuild/linux-loong64" "0.24.2" 659 | "@esbuild/linux-mips64el" "0.24.2" 660 | "@esbuild/linux-ppc64" "0.24.2" 661 | "@esbuild/linux-riscv64" "0.24.2" 662 | "@esbuild/linux-s390x" "0.24.2" 663 | "@esbuild/linux-x64" "0.24.2" 664 | "@esbuild/netbsd-arm64" "0.24.2" 665 | "@esbuild/netbsd-x64" "0.24.2" 666 | "@esbuild/openbsd-arm64" "0.24.2" 667 | "@esbuild/openbsd-x64" "0.24.2" 668 | "@esbuild/sunos-x64" "0.24.2" 669 | "@esbuild/win32-arm64" "0.24.2" 670 | "@esbuild/win32-ia32" "0.24.2" 671 | "@esbuild/win32-x64" "0.24.2" 672 | 673 | escalade@^3.2.0: 674 | version "3.2.0" 675 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" 676 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== 677 | 678 | fast-glob@^3.3.2: 679 | version "3.3.3" 680 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" 681 | integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== 682 | dependencies: 683 | "@nodelib/fs.stat" "^2.0.2" 684 | "@nodelib/fs.walk" "^1.2.3" 685 | glob-parent "^5.1.2" 686 | merge2 "^1.3.0" 687 | micromatch "^4.0.8" 688 | 689 | fastq@^1.6.0: 690 | version "1.18.0" 691 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.18.0.tgz#d631d7e25faffea81887fe5ea8c9010e1b36fee0" 692 | integrity sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== 693 | dependencies: 694 | reusify "^1.0.4" 695 | 696 | fdir@^6.4.2: 697 | version "6.4.3" 698 | resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" 699 | integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== 700 | 701 | fill-range@^7.1.1: 702 | version "7.1.1" 703 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" 704 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 705 | dependencies: 706 | to-regex-range "^5.0.1" 707 | 708 | foreground-child@^3.1.0: 709 | version "3.3.0" 710 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" 711 | integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== 712 | dependencies: 713 | cross-spawn "^7.0.0" 714 | signal-exit "^4.0.1" 715 | 716 | fraction.js@^4.3.7: 717 | version "4.3.7" 718 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" 719 | integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== 720 | 721 | fsevents@~2.3.2: 722 | version "2.3.3" 723 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 724 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 725 | 726 | function-bind@^1.1.2: 727 | version "1.1.2" 728 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 729 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 730 | 731 | glob-parent@^5.1.2, glob-parent@~5.1.2: 732 | version "5.1.2" 733 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 734 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 735 | dependencies: 736 | is-glob "^4.0.1" 737 | 738 | glob-parent@^6.0.2: 739 | version "6.0.2" 740 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 741 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 742 | dependencies: 743 | is-glob "^4.0.3" 744 | 745 | glob@^10.3.10: 746 | version "10.4.5" 747 | resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" 748 | integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== 749 | dependencies: 750 | foreground-child "^3.1.0" 751 | jackspeak "^3.1.2" 752 | minimatch "^9.0.4" 753 | minipass "^7.1.2" 754 | package-json-from-dist "^1.0.0" 755 | path-scurry "^1.11.1" 756 | 757 | graceful-fs@^4.2.11: 758 | version "4.2.11" 759 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 760 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 761 | 762 | hasown@^2.0.2: 763 | version "2.0.2" 764 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 765 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 766 | dependencies: 767 | function-bind "^1.1.2" 768 | 769 | is-binary-path@~2.1.0: 770 | version "2.1.0" 771 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 772 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 773 | dependencies: 774 | binary-extensions "^2.0.0" 775 | 776 | is-core-module@^2.16.0: 777 | version "2.16.1" 778 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" 779 | integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== 780 | dependencies: 781 | hasown "^2.0.2" 782 | 783 | is-extglob@^2.1.1: 784 | version "2.1.1" 785 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 786 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 787 | 788 | is-fullwidth-code-point@^3.0.0: 789 | version "3.0.0" 790 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 791 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 792 | 793 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 794 | version "4.0.3" 795 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 796 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 797 | dependencies: 798 | is-extglob "^2.1.1" 799 | 800 | is-number@^7.0.0: 801 | version "7.0.0" 802 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 803 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 804 | 805 | isexe@^2.0.0: 806 | version "2.0.0" 807 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 808 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 809 | 810 | jackspeak@^3.1.2: 811 | version "3.4.3" 812 | resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" 813 | integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== 814 | dependencies: 815 | "@isaacs/cliui" "^8.0.2" 816 | optionalDependencies: 817 | "@pkgjs/parseargs" "^0.11.0" 818 | 819 | jiti@^1.21.6: 820 | version "1.21.7" 821 | resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" 822 | integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== 823 | 824 | joycon@^3.1.1: 825 | version "3.1.1" 826 | resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" 827 | integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== 828 | 829 | "js-tokens@^3.0.0 || ^4.0.0": 830 | version "4.0.0" 831 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 832 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 833 | 834 | lilconfig@^3.0.0, lilconfig@^3.1.1, lilconfig@^3.1.3: 835 | version "3.1.3" 836 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" 837 | integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== 838 | 839 | lines-and-columns@^1.1.6: 840 | version "1.2.4" 841 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 842 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 843 | 844 | load-tsconfig@^0.2.3: 845 | version "0.2.5" 846 | resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1" 847 | integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== 848 | 849 | lodash.debounce@^4.0.8: 850 | version "4.0.8" 851 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 852 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 853 | 854 | lodash.sortby@^4.7.0: 855 | version "4.7.0" 856 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 857 | integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== 858 | 859 | loose-envify@^1.1.0: 860 | version "1.4.0" 861 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 862 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 863 | dependencies: 864 | js-tokens "^3.0.0 || ^4.0.0" 865 | 866 | lru-cache@^10.2.0: 867 | version "10.4.3" 868 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" 869 | integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== 870 | 871 | merge2@^1.3.0: 872 | version "1.4.1" 873 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 874 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 875 | 876 | micromatch@^4.0.8: 877 | version "4.0.8" 878 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" 879 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== 880 | dependencies: 881 | braces "^3.0.3" 882 | picomatch "^2.3.1" 883 | 884 | minimatch@^9.0.4: 885 | version "9.0.5" 886 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" 887 | integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== 888 | dependencies: 889 | brace-expansion "^2.0.1" 890 | 891 | "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: 892 | version "7.1.2" 893 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" 894 | integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== 895 | 896 | ms@^2.1.3: 897 | version "2.1.3" 898 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 899 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 900 | 901 | mz@^2.7.0: 902 | version "2.7.0" 903 | resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" 904 | integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== 905 | dependencies: 906 | any-promise "^1.0.0" 907 | object-assign "^4.0.1" 908 | thenify-all "^1.0.0" 909 | 910 | nanoid@^3.3.6, nanoid@^3.3.8: 911 | version "3.3.8" 912 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" 913 | integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== 914 | 915 | next@^14.2.23: 916 | version "14.2.23" 917 | resolved "https://registry.yarnpkg.com/next/-/next-14.2.23.tgz#37edc9a4d42c135fd97a4092f829e291e2e7c943" 918 | integrity sha512-mjN3fE6u/tynneLiEg56XnthzuYw+kD7mCujgVqioxyPqbmiotUCGJpIZGS/VaPg3ZDT1tvWxiVyRzeqJFm/kw== 919 | dependencies: 920 | "@next/env" "14.2.23" 921 | "@swc/helpers" "0.5.5" 922 | busboy "1.6.0" 923 | caniuse-lite "^1.0.30001579" 924 | graceful-fs "^4.2.11" 925 | postcss "8.4.31" 926 | styled-jsx "5.1.1" 927 | optionalDependencies: 928 | "@next/swc-darwin-arm64" "14.2.23" 929 | "@next/swc-darwin-x64" "14.2.23" 930 | "@next/swc-linux-arm64-gnu" "14.2.23" 931 | "@next/swc-linux-arm64-musl" "14.2.23" 932 | "@next/swc-linux-x64-gnu" "14.2.23" 933 | "@next/swc-linux-x64-musl" "14.2.23" 934 | "@next/swc-win32-arm64-msvc" "14.2.23" 935 | "@next/swc-win32-ia32-msvc" "14.2.23" 936 | "@next/swc-win32-x64-msvc" "14.2.23" 937 | 938 | node-releases@^2.0.19: 939 | version "2.0.19" 940 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" 941 | integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== 942 | 943 | normalize-path@^3.0.0, normalize-path@~3.0.0: 944 | version "3.0.0" 945 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 946 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 947 | 948 | normalize-range@^0.1.2: 949 | version "0.1.2" 950 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" 951 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== 952 | 953 | object-assign@^4.0.1: 954 | version "4.1.1" 955 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 956 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 957 | 958 | object-hash@^3.0.0: 959 | version "3.0.0" 960 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" 961 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== 962 | 963 | package-json-from-dist@^1.0.0: 964 | version "1.0.1" 965 | resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" 966 | integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== 967 | 968 | path-key@^3.1.0: 969 | version "3.1.1" 970 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 971 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 972 | 973 | path-parse@^1.0.7: 974 | version "1.0.7" 975 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 976 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 977 | 978 | path-scurry@^1.11.1: 979 | version "1.11.1" 980 | resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" 981 | integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== 982 | dependencies: 983 | lru-cache "^10.2.0" 984 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0" 985 | 986 | picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: 987 | version "1.1.1" 988 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" 989 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== 990 | 991 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 992 | version "2.3.1" 993 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 994 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 995 | 996 | picomatch@^4.0.2: 997 | version "4.0.2" 998 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" 999 | integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== 1000 | 1001 | pify@^2.3.0: 1002 | version "2.3.0" 1003 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1004 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 1005 | 1006 | pirates@^4.0.1: 1007 | version "4.0.6" 1008 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" 1009 | integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== 1010 | 1011 | postcss-import@^15.1.0: 1012 | version "15.1.0" 1013 | resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" 1014 | integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== 1015 | dependencies: 1016 | postcss-value-parser "^4.0.0" 1017 | read-cache "^1.0.0" 1018 | resolve "^1.1.7" 1019 | 1020 | postcss-js@^4.0.1: 1021 | version "4.0.1" 1022 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" 1023 | integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== 1024 | dependencies: 1025 | camelcase-css "^2.0.1" 1026 | 1027 | postcss-load-config@^4.0.2: 1028 | version "4.0.2" 1029 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" 1030 | integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== 1031 | dependencies: 1032 | lilconfig "^3.0.0" 1033 | yaml "^2.3.4" 1034 | 1035 | postcss-load-config@^6.0.1: 1036 | version "6.0.1" 1037 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz#6fd7dcd8ae89badcf1b2d644489cbabf83aa8096" 1038 | integrity sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g== 1039 | dependencies: 1040 | lilconfig "^3.1.1" 1041 | 1042 | postcss-nested@^6.2.0: 1043 | version "6.2.0" 1044 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" 1045 | integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== 1046 | dependencies: 1047 | postcss-selector-parser "^6.1.1" 1048 | 1049 | postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: 1050 | version "6.1.2" 1051 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" 1052 | integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== 1053 | dependencies: 1054 | cssesc "^3.0.0" 1055 | util-deprecate "^1.0.2" 1056 | 1057 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: 1058 | version "4.2.0" 1059 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 1060 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 1061 | 1062 | postcss@8.4.31: 1063 | version "8.4.31" 1064 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" 1065 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== 1066 | dependencies: 1067 | nanoid "^3.3.6" 1068 | picocolors "^1.0.0" 1069 | source-map-js "^1.0.2" 1070 | 1071 | postcss@^8.4.14, postcss@^8.4.47: 1072 | version "8.5.1" 1073 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214" 1074 | integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== 1075 | dependencies: 1076 | nanoid "^3.3.8" 1077 | picocolors "^1.1.1" 1078 | source-map-js "^1.2.1" 1079 | 1080 | prettier-plugin-tailwindcss@^0.1.11: 1081 | version "0.1.13" 1082 | resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.13.tgz#ca1071361dc7e2ed5d95a2ee36825ce45f814942" 1083 | integrity sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw== 1084 | 1085 | prettier@^2.7.1: 1086 | version "2.8.8" 1087 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" 1088 | integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== 1089 | 1090 | punycode@^2.1.0: 1091 | version "2.3.1" 1092 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" 1093 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== 1094 | 1095 | queue-microtask@^1.2.2: 1096 | version "1.2.3" 1097 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1098 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1099 | 1100 | react-dom@^18.2.0: 1101 | version "18.3.1" 1102 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" 1103 | integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== 1104 | dependencies: 1105 | loose-envify "^1.1.0" 1106 | scheduler "^0.23.2" 1107 | 1108 | react@^18.2.0: 1109 | version "18.3.1" 1110 | resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" 1111 | integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== 1112 | dependencies: 1113 | loose-envify "^1.1.0" 1114 | 1115 | read-cache@^1.0.0: 1116 | version "1.0.0" 1117 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" 1118 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== 1119 | dependencies: 1120 | pify "^2.3.0" 1121 | 1122 | readdirp@^4.0.1: 1123 | version "4.1.1" 1124 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.1.tgz#bd115327129672dc47f87408f05df9bd9ca3ef55" 1125 | integrity sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw== 1126 | 1127 | readdirp@~3.6.0: 1128 | version "3.6.0" 1129 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1130 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1131 | dependencies: 1132 | picomatch "^2.2.1" 1133 | 1134 | resolve-from@^5.0.0: 1135 | version "5.0.0" 1136 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1137 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1138 | 1139 | resolve@^1.1.7, resolve@^1.22.8: 1140 | version "1.22.10" 1141 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" 1142 | integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== 1143 | dependencies: 1144 | is-core-module "^2.16.0" 1145 | path-parse "^1.0.7" 1146 | supports-preserve-symlinks-flag "^1.0.0" 1147 | 1148 | reusify@^1.0.4: 1149 | version "1.0.4" 1150 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1151 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1152 | 1153 | rollup@^4.24.0: 1154 | version "4.32.0" 1155 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.32.0.tgz#c405bf6fca494d1999d9088f7736d7f03e5cac5a" 1156 | integrity sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg== 1157 | dependencies: 1158 | "@types/estree" "1.0.6" 1159 | optionalDependencies: 1160 | "@rollup/rollup-android-arm-eabi" "4.32.0" 1161 | "@rollup/rollup-android-arm64" "4.32.0" 1162 | "@rollup/rollup-darwin-arm64" "4.32.0" 1163 | "@rollup/rollup-darwin-x64" "4.32.0" 1164 | "@rollup/rollup-freebsd-arm64" "4.32.0" 1165 | "@rollup/rollup-freebsd-x64" "4.32.0" 1166 | "@rollup/rollup-linux-arm-gnueabihf" "4.32.0" 1167 | "@rollup/rollup-linux-arm-musleabihf" "4.32.0" 1168 | "@rollup/rollup-linux-arm64-gnu" "4.32.0" 1169 | "@rollup/rollup-linux-arm64-musl" "4.32.0" 1170 | "@rollup/rollup-linux-loongarch64-gnu" "4.32.0" 1171 | "@rollup/rollup-linux-powerpc64le-gnu" "4.32.0" 1172 | "@rollup/rollup-linux-riscv64-gnu" "4.32.0" 1173 | "@rollup/rollup-linux-s390x-gnu" "4.32.0" 1174 | "@rollup/rollup-linux-x64-gnu" "4.32.0" 1175 | "@rollup/rollup-linux-x64-musl" "4.32.0" 1176 | "@rollup/rollup-win32-arm64-msvc" "4.32.0" 1177 | "@rollup/rollup-win32-ia32-msvc" "4.32.0" 1178 | "@rollup/rollup-win32-x64-msvc" "4.32.0" 1179 | fsevents "~2.3.2" 1180 | 1181 | run-parallel@^1.1.9: 1182 | version "1.2.0" 1183 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1184 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1185 | dependencies: 1186 | queue-microtask "^1.2.2" 1187 | 1188 | scheduler@^0.23.2: 1189 | version "0.23.2" 1190 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" 1191 | integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== 1192 | dependencies: 1193 | loose-envify "^1.1.0" 1194 | 1195 | shebang-command@^2.0.0: 1196 | version "2.0.0" 1197 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1198 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1199 | dependencies: 1200 | shebang-regex "^3.0.0" 1201 | 1202 | shebang-regex@^3.0.0: 1203 | version "3.0.0" 1204 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1205 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1206 | 1207 | signal-exit@^4.0.1: 1208 | version "4.1.0" 1209 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" 1210 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 1211 | 1212 | source-map-js@^1.0.2, source-map-js@^1.2.1: 1213 | version "1.2.1" 1214 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" 1215 | integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== 1216 | 1217 | source-map@0.8.0-beta.0: 1218 | version "0.8.0-beta.0" 1219 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" 1220 | integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== 1221 | dependencies: 1222 | whatwg-url "^7.0.0" 1223 | 1224 | streamsearch@^1.1.0: 1225 | version "1.1.0" 1226 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" 1227 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== 1228 | 1229 | "string-width-cjs@npm:string-width@^4.2.0": 1230 | version "4.2.3" 1231 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1232 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1233 | dependencies: 1234 | emoji-regex "^8.0.0" 1235 | is-fullwidth-code-point "^3.0.0" 1236 | strip-ansi "^6.0.1" 1237 | 1238 | string-width@^4.1.0: 1239 | version "4.2.3" 1240 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1241 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1242 | dependencies: 1243 | emoji-regex "^8.0.0" 1244 | is-fullwidth-code-point "^3.0.0" 1245 | strip-ansi "^6.0.1" 1246 | 1247 | string-width@^5.0.1, string-width@^5.1.2: 1248 | version "5.1.2" 1249 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" 1250 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 1251 | dependencies: 1252 | eastasianwidth "^0.2.0" 1253 | emoji-regex "^9.2.2" 1254 | strip-ansi "^7.0.1" 1255 | 1256 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1": 1257 | version "6.0.1" 1258 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1259 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1260 | dependencies: 1261 | ansi-regex "^5.0.1" 1262 | 1263 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1264 | version "6.0.1" 1265 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1266 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1267 | dependencies: 1268 | ansi-regex "^5.0.1" 1269 | 1270 | strip-ansi@^7.0.1: 1271 | version "7.1.0" 1272 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" 1273 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 1274 | dependencies: 1275 | ansi-regex "^6.0.1" 1276 | 1277 | styled-jsx@5.1.1: 1278 | version "5.1.1" 1279 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" 1280 | integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== 1281 | dependencies: 1282 | client-only "0.0.1" 1283 | 1284 | sucrase@^3.35.0: 1285 | version "3.35.0" 1286 | resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" 1287 | integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== 1288 | dependencies: 1289 | "@jridgewell/gen-mapping" "^0.3.2" 1290 | commander "^4.0.0" 1291 | glob "^10.3.10" 1292 | lines-and-columns "^1.1.6" 1293 | mz "^2.7.0" 1294 | pirates "^4.0.1" 1295 | ts-interface-checker "^0.1.9" 1296 | 1297 | supports-preserve-symlinks-flag@^1.0.0: 1298 | version "1.0.0" 1299 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1300 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1301 | 1302 | tailwindcss@^3.4.17: 1303 | version "3.4.17" 1304 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.17.tgz#ae8406c0f96696a631c790768ff319d46d5e5a63" 1305 | integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== 1306 | dependencies: 1307 | "@alloc/quick-lru" "^5.2.0" 1308 | arg "^5.0.2" 1309 | chokidar "^3.6.0" 1310 | didyoumean "^1.2.2" 1311 | dlv "^1.1.3" 1312 | fast-glob "^3.3.2" 1313 | glob-parent "^6.0.2" 1314 | is-glob "^4.0.3" 1315 | jiti "^1.21.6" 1316 | lilconfig "^3.1.3" 1317 | micromatch "^4.0.8" 1318 | normalize-path "^3.0.0" 1319 | object-hash "^3.0.0" 1320 | picocolors "^1.1.1" 1321 | postcss "^8.4.47" 1322 | postcss-import "^15.1.0" 1323 | postcss-js "^4.0.1" 1324 | postcss-load-config "^4.0.2" 1325 | postcss-nested "^6.2.0" 1326 | postcss-selector-parser "^6.1.2" 1327 | resolve "^1.22.8" 1328 | sucrase "^3.35.0" 1329 | 1330 | thenify-all@^1.0.0: 1331 | version "1.6.0" 1332 | resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" 1333 | integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== 1334 | dependencies: 1335 | thenify ">= 3.1.0 < 4" 1336 | 1337 | "thenify@>= 3.1.0 < 4": 1338 | version "3.3.1" 1339 | resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" 1340 | integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== 1341 | dependencies: 1342 | any-promise "^1.0.0" 1343 | 1344 | tinyexec@^0.3.1: 1345 | version "0.3.2" 1346 | resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" 1347 | integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== 1348 | 1349 | tinyglobby@^0.2.9: 1350 | version "0.2.10" 1351 | resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.10.tgz#e712cf2dc9b95a1f5c5bbd159720e15833977a0f" 1352 | integrity sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew== 1353 | dependencies: 1354 | fdir "^6.4.2" 1355 | picomatch "^4.0.2" 1356 | 1357 | to-regex-range@^5.0.1: 1358 | version "5.0.1" 1359 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1360 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1361 | dependencies: 1362 | is-number "^7.0.0" 1363 | 1364 | tr46@^1.0.1: 1365 | version "1.0.1" 1366 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 1367 | integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== 1368 | dependencies: 1369 | punycode "^2.1.0" 1370 | 1371 | tree-kill@^1.2.2: 1372 | version "1.2.2" 1373 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1374 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1375 | 1376 | ts-interface-checker@^0.1.9: 1377 | version "0.1.13" 1378 | resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" 1379 | integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== 1380 | 1381 | tslib@^2.4.0: 1382 | version "2.8.1" 1383 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" 1384 | integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== 1385 | 1386 | tsup@^8.3.5: 1387 | version "8.3.6" 1388 | resolved "https://registry.yarnpkg.com/tsup/-/tsup-8.3.6.tgz#a10eb2dc27f84b510a0f00341ab75cad03d13a88" 1389 | integrity sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g== 1390 | dependencies: 1391 | bundle-require "^5.0.0" 1392 | cac "^6.7.14" 1393 | chokidar "^4.0.1" 1394 | consola "^3.2.3" 1395 | debug "^4.3.7" 1396 | esbuild "^0.24.0" 1397 | joycon "^3.1.1" 1398 | picocolors "^1.1.1" 1399 | postcss-load-config "^6.0.1" 1400 | resolve-from "^5.0.0" 1401 | rollup "^4.24.0" 1402 | source-map "0.8.0-beta.0" 1403 | sucrase "^3.35.0" 1404 | tinyexec "^0.3.1" 1405 | tinyglobby "^0.2.9" 1406 | tree-kill "^1.2.2" 1407 | 1408 | typescript@^4.7.4: 1409 | version "4.9.5" 1410 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" 1411 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== 1412 | 1413 | undici-types@~5.26.4: 1414 | version "5.26.5" 1415 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 1416 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1417 | 1418 | update-browserslist-db@^1.1.1: 1419 | version "1.1.2" 1420 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580" 1421 | integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== 1422 | dependencies: 1423 | escalade "^3.2.0" 1424 | picocolors "^1.1.1" 1425 | 1426 | util-deprecate@^1.0.2: 1427 | version "1.0.2" 1428 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1429 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1430 | 1431 | webidl-conversions@^4.0.2: 1432 | version "4.0.2" 1433 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 1434 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== 1435 | 1436 | whatwg-url@^7.0.0: 1437 | version "7.1.0" 1438 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" 1439 | integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== 1440 | dependencies: 1441 | lodash.sortby "^4.7.0" 1442 | tr46 "^1.0.1" 1443 | webidl-conversions "^4.0.2" 1444 | 1445 | which@^2.0.1: 1446 | version "2.0.2" 1447 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1448 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1449 | dependencies: 1450 | isexe "^2.0.0" 1451 | 1452 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 1453 | version "7.0.0" 1454 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1455 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1456 | dependencies: 1457 | ansi-styles "^4.0.0" 1458 | string-width "^4.1.0" 1459 | strip-ansi "^6.0.0" 1460 | 1461 | wrap-ansi@^8.1.0: 1462 | version "8.1.0" 1463 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" 1464 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 1465 | dependencies: 1466 | ansi-styles "^6.1.0" 1467 | string-width "^5.0.1" 1468 | strip-ansi "^7.0.1" 1469 | 1470 | yaml@^2.3.4: 1471 | version "2.7.0" 1472 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98" 1473 | integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== 1474 | --------------------------------------------------------------------------------