├── .gitignore ├── README.md ├── index.html ├── package.json ├── public ├── background.webp ├── background_bad.webp ├── badbell1.webp ├── badbell2.webp ├── bell.mp3 ├── bell.webp ├── bell2.webp ├── bgm.mp3 ├── chime.mp3 ├── goodbell.mp3 ├── goodbell1.webp ├── icon_small.png ├── kong.mp3 ├── koto.mp3 └── scream.mp3 ├── src ├── App.css ├── App.tsx ├── index.css ├── main.tsx └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Reference 2 | - [Youtube](https://www.youtube.com/shorts/FHn892sQzLQ) -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 迎春RTA〜誰よりも早く煩悩を打ち消せ 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "newyearsbell", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview", 10 | "format": "prettier --write src/*.{ts,tsx}" 11 | }, 12 | "dependencies": { 13 | "react": "^18.2.0", 14 | "react-dom": "^18.2.0" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.0.26", 18 | "@types/react-dom": "^18.0.9", 19 | "@vitejs/plugin-react": "^3.0.0", 20 | "typescript": "^4.9.3", 21 | "vite": "^4.0.0", 22 | "prettier": "^1.17.0" 23 | }, 24 | "prettierConfig": { 25 | "endOfLine": "lf", 26 | "semi": true, 27 | "singleQuote": false, 28 | "tabWidth": 2, 29 | "useTabs": false, 30 | "trailingComma": "es5" 31 | } 32 | } -------------------------------------------------------------------------------- /public/background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/background.webp -------------------------------------------------------------------------------- /public/background_bad.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/background_bad.webp -------------------------------------------------------------------------------- /public/badbell1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/badbell1.webp -------------------------------------------------------------------------------- /public/badbell2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/badbell2.webp -------------------------------------------------------------------------------- /public/bell.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/bell.mp3 -------------------------------------------------------------------------------- /public/bell.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/bell.webp -------------------------------------------------------------------------------- /public/bell2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/bell2.webp -------------------------------------------------------------------------------- /public/bgm.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/bgm.mp3 -------------------------------------------------------------------------------- /public/chime.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/chime.mp3 -------------------------------------------------------------------------------- /public/goodbell.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/goodbell.mp3 -------------------------------------------------------------------------------- /public/goodbell1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/goodbell1.webp -------------------------------------------------------------------------------- /public/icon_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/icon_small.png -------------------------------------------------------------------------------- /public/kong.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/kong.mp3 -------------------------------------------------------------------------------- /public/koto.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/koto.mp3 -------------------------------------------------------------------------------- /public/scream.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambda-tech-club/newyearsbell/8ae26349463bf6a3843172fa92e64531c0e18782/public/scream.mp3 -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | max-width: 1280px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | text-align: center; 6 | } 7 | 8 | .bg { 9 | pointer-events: none; 10 | transition: all .2s ease-out; 11 | -webkit-filter: blur(8px); 12 | -moz-filter: blur(8px); 13 | -ms-filter: blur(8px); 14 | filter: blur(8px); 15 | } 16 | 17 | .center { 18 | font-size: 6em; 19 | width: 100%; 20 | position: absolute; 21 | top: 50%; 22 | left: 50%; 23 | transform: translate(-50%, -50%); 24 | z-index: 10; 25 | color: #ffde3d; 26 | } 27 | 28 | .complete { 29 | z-index: -255; 30 | position: fixed; 31 | top: 0; 32 | left: 0; 33 | width: 100%; 34 | height: 100%; 35 | } 36 | 37 | .bell { 38 | width: 100%; 39 | will-change: filter; 40 | } 41 | .ring { 42 | filter: drop-shadow(0 0 6em #ffde3daa); 43 | } 44 | .door-ring { 45 | filter: drop-shadow(0 0 6em #3ddeffaa); 46 | } 47 | 48 | .bonus-bg { 49 | z-index: -255; 50 | position: fixed; 51 | top: 0; 52 | left: 0; 53 | width: 100%; 54 | height: 100%; 55 | background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet); 56 | } 57 | 58 | @keyframes logo-spin { 59 | from { 60 | transform: rotate(0deg); 61 | } 62 | to { 63 | transform: rotate(360deg); 64 | } 65 | } 66 | 67 | @media (prefers-reduced-motion: no-preference) { 68 | a:nth-of-type(2) .logo { 69 | animation: logo-spin infinite 20s linear; 70 | } 71 | } 72 | 73 | .card { 74 | padding: 2em; 75 | } 76 | 77 | .modal-close { 78 | display: none; 79 | } 80 | 81 | .modal-text { 82 | font-size: 1.3em; 83 | line-height: 1.5em; 84 | } 85 | 86 | .modal { 87 | color: #242424; 88 | border-radius: 8px; 89 | position: absolute; 90 | top: 50%; 91 | left: 50%; 92 | transform:translate(-50%,-50%); 93 | width: 70%; 94 | max-width: 500px; 95 | padding: 10px 30px; 96 | background-color: #fff; 97 | } 98 | .modal >p { 99 | text-align: left; 100 | padding-left: 1rem; 101 | } 102 | .japanese { 103 | font-weight: bold; 104 | font-size: 120%; 105 | } 106 | 107 | .counter { 108 | border-radius: 8px; 109 | border: 1px solid transparent; 110 | padding: 0.6em 1.2em; 111 | font-size: 2em; 112 | font-weight: 500; 113 | font-family: inherit; 114 | background-color: #1a1a1a; 115 | transition: border-color 0.25s; 116 | line-height: 1em; 117 | } 118 | 119 | .endroll-message { 120 | border-radius: 2em; 121 | border: 1px solid transparent; 122 | padding: 0.3em 0 0.2em 0; 123 | font-size: 4em; 124 | font-weight: 1000; 125 | font-family: inherit; 126 | background-color: #aa0000; 127 | transition: border-color 0.25s; 128 | line-height: 1em; 129 | } 130 | 131 | .timer { 132 | border-radius: 8px; 133 | border: 1px solid transparent; 134 | padding: 0.6em 1.2em; 135 | font-size: 2em; 136 | font-weight: 500; 137 | font-family: inherit; 138 | background-color: #1a1a1a; 139 | transition: border-color 0.25s; 140 | } 141 | 142 | .endroll-timer { 143 | border-radius: 8px; 144 | border: 1px solid transparent; 145 | padding: 0.6em 0; 146 | font-size: 3em; 147 | font-weight: 1000; 148 | font-family: inherit; 149 | background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%); 150 | transition: border-color 0.25s; 151 | color: #000; 152 | } 153 | 154 | .reset-button { 155 | border-radius: 2em; 156 | border: 1px solid transparent; 157 | margin: 0.6em 0.6em; 158 | padding: 0.5em 0.5em 0.2em 0.5em; 159 | font-size: 2em; 160 | font-weight: 500; 161 | font-family: inherit; 162 | background-color: #1a1a1a; 163 | transition: border-color 0.25s; 164 | } 165 | 166 | .button-box { 167 | display: flex; 168 | justify-content: center; 169 | } 170 | 171 | .read-the-docs { 172 | color: #888; 173 | } -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useState, useEffect, useRef } from "react"; 2 | import "./App.css"; 3 | 4 | type bellRefT = { 5 | bellSound: HTMLAudioElement; 6 | kotoSound: HTMLAudioElement; 7 | screamSound: HTMLAudioElement; 8 | doorSound: HTMLAudioElement; 9 | kongSound: HTMLAudioElement; 10 | bonusSound: HTMLAudioElement; 11 | }; 12 | 13 | enum BellType { 14 | Normal = "/bell2.webp", 15 | Bad = "/badbell1.webp", 16 | Door = "/badbell2.webp", 17 | Bonus = "/goodbell1.webp" 18 | } 19 | 20 | function App() { 21 | const effectTime = 1000; // ms 22 | const thousand = 1000; // よくわからん単位 23 | const significantDecimalPoint = 2; // タイマーの小数点以下の有効桁数 24 | const lustLimit = 108; // 人間がもってる煩悩の数 25 | const newYearText = "迎春"; 26 | const gameOverText1 = "顔を叩いてしまった"; 27 | const beforeTweetText = encodeURIComponent("【"); 28 | const afterTweetText = encodeURIComponent( 29 | "秒】で煩悩を打ち消しました🔔\r\n\r\n迎春RTA〜誰よりも早く煩悩を打ち消せ!\r\nhttps://newyearsbell.vercel.app\r\n\r\n#迎春RTA #ラムダ技術部" 30 | ); 31 | const [lustCnt, setLustCnt] = useState(0); 32 | // 煩悩のない人間を表す 33 | const [isPerfectHuman, setIsPerfectHuman] = useState(false); 34 | const [isRinging, setIsRinging] = useState(false); 35 | const [isModalOpen, setIsModalOpen] = useState(true); 36 | const [time, setTime] = useState(0); 37 | const [timerActive, setTimerActive] = useState(false); 38 | const [bellType, setBellType] = useState(BellType.Normal); 39 | const [isCriminal, setIsCriminal] = useState(false); 40 | const [ringingType, setRingingType] = useState("bell ring"); 41 | const [startTime, setStartTime] = useState(0); 42 | 43 | const bellRef = useRef(null!); 44 | 45 | const gong = () => { 46 | if (isPerfectHuman || isCriminal) return; 47 | 48 | switch (bellType) { 49 | // 一定の確率で画面が変わる 50 | case BellType.Normal: 51 | if (lustCnt < lustLimit - 1) { 52 | const randomNum = Math.random(); 53 | const jitter = randomNum * 1000; 54 | if (randomNum < 0.05) { 55 | setBellType(BellType.Bad); 56 | // 一定時間後にBellを正常に戻す 57 | setTimeout(() => { 58 | setBellType(BellType.Normal); 59 | }, 300 + jitter); 60 | } 61 | if (randomNum >= 0.05 && randomNum < 0.1) { 62 | setBellType(BellType.Door); 63 | setRingingType("bell door-ring"); 64 | // 一定時間後にBellを正常に戻す 65 | setTimeout(() => { 66 | setBellType(BellType.Normal); 67 | setRingingType("bell ring"); 68 | }, 600 + jitter); 69 | } 70 | if (randomNum >= 0.1 && randomNum < 0.2) { 71 | setBellType(BellType.Bonus); 72 | // 一定時間後にBellを正常に戻す 73 | setTimeout(() => { 74 | setBellType(BellType.Normal); 75 | }, 800 + jitter); 76 | } 77 | } 78 | setRingingStatuses(); 79 | playBellSound(); 80 | eliminateLust(1); 81 | break; 82 | case BellType.Door: 83 | setRingingStatuses(); 84 | playDoorSound(); 85 | increaseLust(); 86 | break; 87 | case BellType.Bonus: 88 | setRingingStatuses(); 89 | playBonusSound(); 90 | eliminateLust(2); 91 | break; 92 | case BellType.Bad: 93 | setIsCriminal(true); 94 | bellRef.current.screamSound.play(); 95 | break; 96 | } 97 | }; 98 | 99 | // 鐘の状態管理 100 | const setRingingStatuses = () => { 101 | setIsRinging(true); 102 | 103 | setTimeout(() => { 104 | setIsRinging(false); 105 | }, effectTime); 106 | }; 107 | 108 | // 鐘をゴーン 109 | const playBellSound = () => { 110 | bellRef.current.bellSound.pause(); 111 | // 連打対応のための頭出し 112 | bellRef.current.bellSound.currentTime = 1; 113 | bellRef.current.bellSound.play(); 114 | }; 115 | 116 | const playDoorSound = () => { 117 | bellRef.current.doorSound.pause(); 118 | // 連打対応のための頭出し 119 | bellRef.current.doorSound.currentTime = 1; 120 | bellRef.current.doorSound.play(); 121 | }; 122 | 123 | const playBonusSound = () => { 124 | bellRef.current.bonusSound.pause(); 125 | bellRef.current.bonusSound.currentTime = 0; 126 | bellRef.current.bonusSound.play(); 127 | }; 128 | 129 | // 琴の音の初期化 130 | const initKotoSound = () => { 131 | bellRef.current.kotoSound.volume = 0; 132 | bellRef.current.kotoSound.play(); 133 | bellRef.current.kotoSound.pause(); 134 | bellRef.current.kotoSound.currentTime = 0; 135 | bellRef.current.kotoSound.volume = 1; 136 | }; 137 | 138 | // 悲鳴の初期化 139 | const initScreamSound = () => { 140 | bellRef.current.screamSound.volume = 0; 141 | bellRef.current.screamSound.play(); 142 | bellRef.current.screamSound.pause(); 143 | bellRef.current.screamSound.currentTime = 0; 144 | bellRef.current.screamSound.volume = 1; 145 | }; 146 | 147 | // ドアベルの初期化 148 | const initDoorSound = () => { 149 | bellRef.current.doorSound.volume = 0; 150 | bellRef.current.doorSound.play(); 151 | bellRef.current.doorSound.pause(); 152 | bellRef.current.doorSound.currentTime = 0; 153 | bellRef.current.doorSound.volume = 1; 154 | }; 155 | 156 | const initBonusSound = () => { 157 | bellRef.current.bonusSound.volume = 0; 158 | bellRef.current.bonusSound.play(); 159 | bellRef.current.bonusSound.pause(); 160 | bellRef.current.bonusSound.currentTime = 0; 161 | bellRef.current.bonusSound.volume = 1; 162 | }; 163 | 164 | // 煩悩消す作業の状態管理 165 | const eliminateLust = (cnt: number) => { 166 | if (isPerfectHuman || isCriminal) return; 167 | 168 | if (lustCnt + cnt >= lustLimit) { 169 | setIsPerfectHuman(true); 170 | setTime(new Date().getTime() - startTime); 171 | setTimerActive(false); 172 | bellRef.current.kotoSound.play(); 173 | return; 174 | } 175 | 176 | setLustCnt(lustCnt => lustCnt + cnt); 177 | }; 178 | 179 | const increaseLust = () => { 180 | if (isPerfectHuman || isCriminal) return; 181 | 182 | if (lustCnt > 0) { 183 | setLustCnt(lustCnt => lustCnt - 1); 184 | } 185 | }; 186 | 187 | const handleStart = () => { 188 | setIsModalOpen(false); 189 | // iOSなどのデバイスで音を出すため、ユーザーに画面を最低一度タップしてもらう必要があり、 190 | // 始めるボタンを最初に鐘を叩いたと見なす 191 | setTimerActive(true); 192 | // gong(); 193 | initKotoSound(); 194 | initScreamSound(); 195 | initDoorSound(); 196 | initBonusSound(); 197 | setStartTime(new Date().getTime()); 198 | bellRef.current.kongSound.play(); 199 | }; 200 | 201 | const initBellRef = () => { 202 | bellRef.current = { 203 | bellSound: new Audio("/bell.mp3"), 204 | kotoSound: new Audio("/koto.mp3"), 205 | screamSound: new Audio("/scream.mp3"), 206 | doorSound: new Audio("/chime.mp3"), 207 | kongSound: new Audio("/kong.mp3"), 208 | bonusSound: new Audio("/goodbell.mp3") 209 | }; 210 | }; 211 | 212 | const handleReset = () => { 213 | setIsPerfectHuman(false); 214 | setIsModalOpen(true); 215 | setLustCnt(0); 216 | setTimerActive(false); 217 | setTime(0); 218 | }; 219 | 220 | const handleReload = () => { 221 | window.location.reload(); 222 | }; 223 | 224 | useEffect(() => { 225 | // 初期化のとき一度だけrefの値を設定する。 226 | initBellRef(); 227 | 228 | let timeout: number; 229 | 230 | if (timerActive) { 231 | const tick = () => { 232 | setTime(prevTime => prevTime + 37); 233 | timeout = setTimeout(tick, 37); 234 | }; 235 | 236 | tick(); 237 | } 238 | 239 | return () => clearTimeout(timeout); 240 | }, [timerActive]); 241 | 242 | return ( 243 |
244 |
245 | {isCriminal && ( 246 | ゲームオーバ 251 | )} 252 | {isPerfectHuman && ( 253 | 迎春 254 | )} 255 | {bellType === BellType.Bonus && ( 256 |
257 | )} 258 |
259 | {(!isPerfectHuman && !isCriminal ) && ( 260 |
261 | {bellType === BellType.Bonus && ( 262 |

ボーナスタイム❗❗

263 | )} 264 | {bellType === BellType.Bad && ( 265 |

叩かないでね🥺

266 | )} 267 | {bellType === BellType.Door && ( 268 |

ピンポン禁止❌

269 | )} 270 | {bellType === BellType.Normal && ( 271 |

鐘をタップして鳴らせ

272 | )} 273 |
274 | )} 275 |
276 | {isPerfectHuman 277 | ? newYearText 278 | : isCriminal 279 | ? gameOverText1 280 | : `${lustCnt}回`} 281 |
282 |
283 |
284 | 285 | 除夜の鐘 290 | 291 |
292 |
293 | {!isCriminal && ( 294 |
{`${( 295 | time / thousand 296 | ).toFixed(significantDecimalPoint)} 秒`}
297 | )} 298 |
299 | {isPerfectHuman && ( 300 | 320 | )} 321 | 340 |
341 |
342 |
343 |
344 |

迎春RTA

345 |

できる限り速く鐘をタップして108回鳴らそう

346 |

Ring the bell 108 times quickly to welcome the New Year

347 |

快速敲108次钟来迎新年

348 |

鐘以外のものを叩いてはいけません

349 |

Avoid tapping anything else

350 |

不要敲锺以外的东西

351 | 352 |
353 |
354 | ); 355 | } 356 | 357 | export default App; 358 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, Avenir, Helvetica, Arial, sans-serif; 3 | font-size: 16px; 4 | line-height: 24px; 5 | font-weight: 400; 6 | 7 | color-scheme: light dark; 8 | color: rgba(255, 255, 255, 0.87); 9 | background-color: #242424; 10 | 11 | font-synthesis: none; 12 | text-rendering: optimizeLegibility; 13 | -webkit-font-smoothing: antialiased; 14 | -moz-osx-font-smoothing: grayscale; 15 | -webkit-text-size-adjust: 100%; 16 | } 17 | 18 | a { 19 | font-weight: 500; 20 | color: #646cff; 21 | text-decoration: inherit; 22 | } 23 | a:hover { 24 | color: #535bf2; 25 | } 26 | 27 | body { 28 | margin: 0; 29 | display: flex; 30 | place-items: center; 31 | min-width: 320px; 32 | min-height: 100vh; 33 | user-select: none; 34 | } 35 | 36 | h1 { 37 | font-size: 3.2em; 38 | line-height: 1.1; 39 | } 40 | 41 | button { 42 | border-radius: 8px; 43 | border: 1px solid transparent; 44 | padding: 0.3em 0.6em; 45 | font-size: 2em; 46 | font-weight: 500; 47 | font-family: inherit; 48 | background-color: #1a1a1a; 49 | cursor: pointer; 50 | transition: border-color 0.25s; 51 | } 52 | button:hover { 53 | border-color: #646cff; 54 | } 55 | button:focus, 56 | button:focus-visible { 57 | outline: 4px auto -webkit-focus-ring-color; 58 | } 59 | 60 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import App from "./App"; 4 | import "./index.css"; 5 | 6 | ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( 7 | 8 | 9 | 10 | ); 11 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx" 18 | }, 19 | "include": ["src"], 20 | "references": [{ "path": "./tsconfig.node.json" }] 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.2.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" 8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.1.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.18.6": 14 | version "7.18.6" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 16 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/compat-data@^7.20.5": 21 | version "7.20.10" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" 23 | integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== 24 | 25 | "@babel/core@^7.20.5": 26 | version "7.20.7" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" 28 | integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.18.6" 32 | "@babel/generator" "^7.20.7" 33 | "@babel/helper-compilation-targets" "^7.20.7" 34 | "@babel/helper-module-transforms" "^7.20.7" 35 | "@babel/helpers" "^7.20.7" 36 | "@babel/parser" "^7.20.7" 37 | "@babel/template" "^7.20.7" 38 | "@babel/traverse" "^7.20.7" 39 | "@babel/types" "^7.20.7" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.1" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.20.7": 47 | version "7.20.7" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" 49 | integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== 50 | dependencies: 51 | "@babel/types" "^7.20.7" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-compilation-targets@^7.20.7": 56 | version "7.20.7" 57 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" 58 | integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== 59 | dependencies: 60 | "@babel/compat-data" "^7.20.5" 61 | "@babel/helper-validator-option" "^7.18.6" 62 | browserslist "^4.21.3" 63 | lru-cache "^5.1.1" 64 | semver "^6.3.0" 65 | 66 | "@babel/helper-environment-visitor@^7.18.9": 67 | version "7.18.9" 68 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 69 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 70 | 71 | "@babel/helper-function-name@^7.19.0": 72 | version "7.19.0" 73 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" 74 | integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== 75 | dependencies: 76 | "@babel/template" "^7.18.10" 77 | "@babel/types" "^7.19.0" 78 | 79 | "@babel/helper-hoist-variables@^7.18.6": 80 | version "7.18.6" 81 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 82 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 83 | dependencies: 84 | "@babel/types" "^7.18.6" 85 | 86 | "@babel/helper-module-imports@^7.18.6": 87 | version "7.18.6" 88 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" 89 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 90 | dependencies: 91 | "@babel/types" "^7.18.6" 92 | 93 | "@babel/helper-module-transforms@^7.20.7": 94 | version "7.20.11" 95 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" 96 | integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== 97 | dependencies: 98 | "@babel/helper-environment-visitor" "^7.18.9" 99 | "@babel/helper-module-imports" "^7.18.6" 100 | "@babel/helper-simple-access" "^7.20.2" 101 | "@babel/helper-split-export-declaration" "^7.18.6" 102 | "@babel/helper-validator-identifier" "^7.19.1" 103 | "@babel/template" "^7.20.7" 104 | "@babel/traverse" "^7.20.10" 105 | "@babel/types" "^7.20.7" 106 | 107 | "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0": 108 | version "7.20.2" 109 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" 110 | integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== 111 | 112 | "@babel/helper-simple-access@^7.20.2": 113 | version "7.20.2" 114 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" 115 | integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== 116 | dependencies: 117 | "@babel/types" "^7.20.2" 118 | 119 | "@babel/helper-split-export-declaration@^7.18.6": 120 | version "7.18.6" 121 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 122 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 123 | dependencies: 124 | "@babel/types" "^7.18.6" 125 | 126 | "@babel/helper-string-parser@^7.19.4": 127 | version "7.19.4" 128 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" 129 | integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== 130 | 131 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 132 | version "7.19.1" 133 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 134 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 135 | 136 | "@babel/helper-validator-option@^7.18.6": 137 | version "7.18.6" 138 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" 139 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 140 | 141 | "@babel/helpers@^7.20.7": 142 | version "7.20.7" 143 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" 144 | integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== 145 | dependencies: 146 | "@babel/template" "^7.20.7" 147 | "@babel/traverse" "^7.20.7" 148 | "@babel/types" "^7.20.7" 149 | 150 | "@babel/highlight@^7.18.6": 151 | version "7.18.6" 152 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 153 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 154 | dependencies: 155 | "@babel/helper-validator-identifier" "^7.18.6" 156 | chalk "^2.0.0" 157 | js-tokens "^4.0.0" 158 | 159 | "@babel/parser@^7.20.7": 160 | version "7.20.7" 161 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" 162 | integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== 163 | 164 | "@babel/plugin-transform-react-jsx-self@^7.18.6": 165 | version "7.18.6" 166 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7" 167 | integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig== 168 | dependencies: 169 | "@babel/helper-plugin-utils" "^7.18.6" 170 | 171 | "@babel/plugin-transform-react-jsx-source@^7.19.6": 172 | version "7.19.6" 173 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" 174 | integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== 175 | dependencies: 176 | "@babel/helper-plugin-utils" "^7.19.0" 177 | 178 | "@babel/template@^7.18.10", "@babel/template@^7.20.7": 179 | version "7.20.7" 180 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" 181 | integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== 182 | dependencies: 183 | "@babel/code-frame" "^7.18.6" 184 | "@babel/parser" "^7.20.7" 185 | "@babel/types" "^7.20.7" 186 | 187 | "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7": 188 | version "7.20.10" 189 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" 190 | integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== 191 | dependencies: 192 | "@babel/code-frame" "^7.18.6" 193 | "@babel/generator" "^7.20.7" 194 | "@babel/helper-environment-visitor" "^7.18.9" 195 | "@babel/helper-function-name" "^7.19.0" 196 | "@babel/helper-hoist-variables" "^7.18.6" 197 | "@babel/helper-split-export-declaration" "^7.18.6" 198 | "@babel/parser" "^7.20.7" 199 | "@babel/types" "^7.20.7" 200 | debug "^4.1.0" 201 | globals "^11.1.0" 202 | 203 | "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7": 204 | version "7.20.7" 205 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" 206 | integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== 207 | dependencies: 208 | "@babel/helper-string-parser" "^7.19.4" 209 | "@babel/helper-validator-identifier" "^7.19.1" 210 | to-fast-properties "^2.0.0" 211 | 212 | "@esbuild/android-arm64@0.16.12": 213 | version "0.16.12" 214 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.12.tgz#86c4fdd7c0d65fe9dcbe138fbe72720658ec3b88" 215 | integrity sha512-0LacmiIW+X0/LOLMZqYtZ7d4uY9fxYABAYhSSOu+OGQVBqH4N5eIYgkT7bBFnR4Nm3qo6qS3RpHKVrDASqj/uQ== 216 | 217 | "@esbuild/android-arm@0.16.12": 218 | version "0.16.12" 219 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.12.tgz#15e33bb1c8c2f560fbb27cda227c0fa22d83d0ef" 220 | integrity sha512-CTWgMJtpCyCltrvipZrrcjjRu+rzm6pf9V8muCsJqtKujR3kPmU4ffbckvugNNaRmhxAF1ZI3J+0FUIFLFg8KA== 221 | 222 | "@esbuild/android-x64@0.16.12": 223 | version "0.16.12" 224 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.12.tgz#3b0ddaf59fdf94e8e9fcb2aa6537cbab93d5fe22" 225 | integrity sha512-sS5CR3XBKQXYpSGMM28VuiUnbX83Z+aWPZzClW+OB2JquKqxoiwdqucJ5qvXS8pM6Up3RtJfDnRQZkz3en2z5g== 226 | 227 | "@esbuild/darwin-arm64@0.16.12": 228 | version "0.16.12" 229 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.12.tgz#ac6c5d85cabf20de5047b55eab7f3c252d9aae71" 230 | integrity sha512-Dpe5hOAQiQRH20YkFAg+wOpcd4PEuXud+aGgKBQa/VriPJA8zuVlgCOSTwna1CgYl05lf6o5els4dtuyk1qJxQ== 231 | 232 | "@esbuild/darwin-x64@0.16.12": 233 | version "0.16.12" 234 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.12.tgz#3433e6432dd474994302bcfe35c5420fae46a206" 235 | integrity sha512-ApGRA6X5txIcxV0095X4e4KKv87HAEXfuDRcGTniDWUUN+qPia8sl/BqG/0IomytQWajnUn4C7TOwHduk/FXBQ== 236 | 237 | "@esbuild/freebsd-arm64@0.16.12": 238 | version "0.16.12" 239 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.12.tgz#b150587dc54dc2369cb826e6ee9f94fc5ec14635" 240 | integrity sha512-AMdK2gA9EU83ccXCWS1B/KcWYZCj4P3vDofZZkl/F/sBv/fphi2oUqUTox/g5GMcIxk8CF1CVYTC82+iBSyiUg== 241 | 242 | "@esbuild/freebsd-x64@0.16.12": 243 | version "0.16.12" 244 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.12.tgz#e682a61cde8d6332aaeb4c2b28fce0d833928903" 245 | integrity sha512-KUKB9w8G/xaAbD39t6gnRBuhQ8vIYYlxGT2I+mT6UGRnCGRr1+ePFIGBQmf5V16nxylgUuuWVW1zU2ktKkf6WQ== 246 | 247 | "@esbuild/linux-arm64@0.16.12": 248 | version "0.16.12" 249 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.12.tgz#d0d75e10796d4f1414ecaf16a8071ce05446cb9f" 250 | integrity sha512-29HXMLpLklDfmw7T2buGqq3HImSUaZ1ArmrPOMaNiZZQptOSZs32SQtOHEl8xWX5vfdwZqrBfNf8Te4nArVzKQ== 251 | 252 | "@esbuild/linux-arm@0.16.12": 253 | version "0.16.12" 254 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.12.tgz#945ebcd99205fadea5ee22bff624189bd95c0484" 255 | integrity sha512-vhDdIv6z4eL0FJyNVfdr3C/vdd/Wc6h1683GJsFoJzfKb92dU/v88FhWdigg0i6+3TsbSDeWbsPUXb4dif2abg== 256 | 257 | "@esbuild/linux-ia32@0.16.12": 258 | version "0.16.12" 259 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.12.tgz#132e61b2124eee6033bf7f0d5b312c02524d39db" 260 | integrity sha512-JFDuNDTTfgD1LJg7wHA42o2uAO/9VzHYK0leAVnCQE/FdMB599YMH73ux+nS0xGr79pv/BK+hrmdRin3iLgQjg== 261 | 262 | "@esbuild/linux-loong64@0.16.12": 263 | version "0.16.12" 264 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.12.tgz#d27dc1e203c0d0516c1daadb7988f88b643f8ea2" 265 | integrity sha512-xTGzVPqm6WKfCC0iuj1fryIWr1NWEM8DMhAIo+4rFgUtwy/lfHl+Obvus4oddzRDbBetLLmojfVZGmt/g/g+Rw== 266 | 267 | "@esbuild/linux-mips64el@0.16.12": 268 | version "0.16.12" 269 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.12.tgz#9616c378ca76f12d06ffaf242da68a58be966a18" 270 | integrity sha512-zI1cNgHa3Gol+vPYjIYHzKhU6qMyOQrvZ82REr5Fv7rlh5PG6SkkuCoH7IryPqR+BK2c/7oISGsvPJPGnO2bHQ== 271 | 272 | "@esbuild/linux-ppc64@0.16.12": 273 | version "0.16.12" 274 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.12.tgz#b033a248212249c05c162b64124744345a041f92" 275 | integrity sha512-/C8OFXExoMmvTDIOAM54AhtmmuDHKoedUd0Otpfw3+AuuVGemA1nQK99oN909uZbLEU6Bi+7JheFMG3xGfZluQ== 276 | 277 | "@esbuild/linux-riscv64@0.16.12": 278 | version "0.16.12" 279 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.12.tgz#b6476abff413b5b472e6cf093086b9d5be4553a8" 280 | integrity sha512-qeouyyc8kAGV6Ni6Isz8hUsKMr00EHgVwUKWNp1r4l88fHEoNTDB8mmestvykW6MrstoGI7g2EAsgr0nxmuGYg== 281 | 282 | "@esbuild/linux-s390x@0.16.12": 283 | version "0.16.12" 284 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.12.tgz#981a639f8c2a2e0646f47eba0fae7c2c270b208b" 285 | integrity sha512-s9AyI/5vz1U4NNqnacEGFElqwnHusWa81pskAf8JNDM2eb6b2E6PpBmT8RzeZv6/TxE6/TADn2g9bb0jOUmXwQ== 286 | 287 | "@esbuild/linux-x64@0.16.12": 288 | version "0.16.12" 289 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.12.tgz#01b777229d8baf068eeeb7cd7c396aea4d1ebd36" 290 | integrity sha512-e8YA7GQGLWhvakBecLptUiKxOk4E/EPtSckS1i0MGYctW8ouvNUoh7xnU15PGO2jz7BYl8q1R6g0gE5HFtzpqQ== 291 | 292 | "@esbuild/netbsd-x64@0.16.12": 293 | version "0.16.12" 294 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.12.tgz#6d4b9de7dc3ac99bf04653fe640b3be63c57b1aa" 295 | integrity sha512-z2+kUxmOqBS+6SRVd57iOLIHE8oGOoEnGVAmwjm2aENSP35HPS+5cK+FL1l+rhrsJOFIPrNHqDUNechpuG96Sg== 296 | 297 | "@esbuild/openbsd-x64@0.16.12": 298 | version "0.16.12" 299 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.12.tgz#2a28010b1848466586d5e2189e9f1b8334b65708" 300 | integrity sha512-PAonw4LqIybwn2/vJujhbg1N9W2W8lw9RtXIvvZoyzoA/4rA4CpiuahVbASmQohiytRsixbNoIOUSjRygKXpyA== 301 | 302 | "@esbuild/sunos-x64@0.16.12": 303 | version "0.16.12" 304 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.12.tgz#3ee120008cc759d604825dd25501152071ef30f0" 305 | integrity sha512-+wr1tkt1RERi+Zi/iQtkzmMH4nS8+7UIRxjcyRz7lur84wCkAITT50Olq/HiT4JN2X2bjtlOV6vt7ptW5Gw60Q== 306 | 307 | "@esbuild/win32-arm64@0.16.12": 308 | version "0.16.12" 309 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.12.tgz#8c599a91f1c55b3df304c450ac0613855c10502e" 310 | integrity sha512-XEjeUSHmjsAOJk8+pXJu9pFY2O5KKQbHXZWQylJzQuIBeiGrpMeq9sTVrHefHxMOyxUgoKQTcaTS+VK/K5SviA== 311 | 312 | "@esbuild/win32-ia32@0.16.12": 313 | version "0.16.12" 314 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.12.tgz#102b5a44b514f8849a10cc4cc618c60c70a4c536" 315 | integrity sha512-eRKPM7e0IecUAUYr2alW7JGDejrFJXmpjt4MlfonmQ5Rz9HWpKFGCjuuIRgKO7W9C/CWVFXdJ2GjddsBXqQI4A== 316 | 317 | "@esbuild/win32-x64@0.16.12": 318 | version "0.16.12" 319 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.12.tgz#31197bb509049b63c059c4808ac58e66fdff7479" 320 | integrity sha512-iPYKN78t3op2+erv2frW568j1q0RpqX6JOLZ7oPPaAV1VaF7dDstOrNw37PVOYoTWE11pV4A1XUitpdEFNIsPg== 321 | 322 | "@jridgewell/gen-mapping@^0.1.0": 323 | version "0.1.1" 324 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 325 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 326 | dependencies: 327 | "@jridgewell/set-array" "^1.0.0" 328 | "@jridgewell/sourcemap-codec" "^1.4.10" 329 | 330 | "@jridgewell/gen-mapping@^0.3.2": 331 | version "0.3.2" 332 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 333 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 334 | dependencies: 335 | "@jridgewell/set-array" "^1.0.1" 336 | "@jridgewell/sourcemap-codec" "^1.4.10" 337 | "@jridgewell/trace-mapping" "^0.3.9" 338 | 339 | "@jridgewell/resolve-uri@3.1.0": 340 | version "3.1.0" 341 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 342 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 343 | 344 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 345 | version "1.1.2" 346 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 347 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 348 | 349 | "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": 350 | version "1.4.14" 351 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 352 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 353 | 354 | "@jridgewell/trace-mapping@^0.3.9": 355 | version "0.3.17" 356 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" 357 | integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== 358 | dependencies: 359 | "@jridgewell/resolve-uri" "3.1.0" 360 | "@jridgewell/sourcemap-codec" "1.4.14" 361 | 362 | "@types/prop-types@*": 363 | version "15.7.5" 364 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 365 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 366 | 367 | "@types/react-dom@^18.0.9": 368 | version "18.0.10" 369 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.10.tgz#3b66dec56aa0f16a6cc26da9e9ca96c35c0b4352" 370 | integrity sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg== 371 | dependencies: 372 | "@types/react" "*" 373 | 374 | "@types/react@*", "@types/react@^18.0.26": 375 | version "18.0.26" 376 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" 377 | integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== 378 | dependencies: 379 | "@types/prop-types" "*" 380 | "@types/scheduler" "*" 381 | csstype "^3.0.2" 382 | 383 | "@types/scheduler@*": 384 | version "0.16.2" 385 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 386 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 387 | 388 | "@vitejs/plugin-react@^3.0.0": 389 | version "3.0.0" 390 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz#f36ee1b2ce958dd11ac63fdf746a3b27b0d258ed" 391 | integrity sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ== 392 | dependencies: 393 | "@babel/core" "^7.20.5" 394 | "@babel/plugin-transform-react-jsx-self" "^7.18.6" 395 | "@babel/plugin-transform-react-jsx-source" "^7.19.6" 396 | magic-string "^0.27.0" 397 | react-refresh "^0.14.0" 398 | 399 | ansi-styles@^3.2.1: 400 | version "3.2.1" 401 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 402 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 403 | dependencies: 404 | color-convert "^1.9.0" 405 | 406 | browserslist@^4.21.3: 407 | version "4.21.4" 408 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" 409 | integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== 410 | dependencies: 411 | caniuse-lite "^1.0.30001400" 412 | electron-to-chromium "^1.4.251" 413 | node-releases "^2.0.6" 414 | update-browserslist-db "^1.0.9" 415 | 416 | caniuse-lite@^1.0.30001400: 417 | version "1.0.30001441" 418 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" 419 | integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== 420 | 421 | chalk@^2.0.0: 422 | version "2.4.2" 423 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 424 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 425 | dependencies: 426 | ansi-styles "^3.2.1" 427 | escape-string-regexp "^1.0.5" 428 | supports-color "^5.3.0" 429 | 430 | color-convert@^1.9.0: 431 | version "1.9.3" 432 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 433 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 434 | dependencies: 435 | color-name "1.1.3" 436 | 437 | color-name@1.1.3: 438 | version "1.1.3" 439 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 440 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 441 | 442 | convert-source-map@^1.7.0: 443 | version "1.9.0" 444 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" 445 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== 446 | 447 | csstype@^3.0.2: 448 | version "3.1.1" 449 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" 450 | integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== 451 | 452 | debug@^4.1.0: 453 | version "4.3.4" 454 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 455 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 456 | dependencies: 457 | ms "2.1.2" 458 | 459 | electron-to-chromium@^1.4.251: 460 | version "1.4.284" 461 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" 462 | integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== 463 | 464 | esbuild@^0.16.3: 465 | version "0.16.12" 466 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.12.tgz#60850b9ad2f103f1c4316be42c34d5023f27378d" 467 | integrity sha512-eq5KcuXajf2OmivCl4e89AD3j8fbV+UTE9vczEzq5haA07U9oOTzBWlh3+6ZdjJR7Rz2QfWZ2uxZyhZxBgJ4+g== 468 | optionalDependencies: 469 | "@esbuild/android-arm" "0.16.12" 470 | "@esbuild/android-arm64" "0.16.12" 471 | "@esbuild/android-x64" "0.16.12" 472 | "@esbuild/darwin-arm64" "0.16.12" 473 | "@esbuild/darwin-x64" "0.16.12" 474 | "@esbuild/freebsd-arm64" "0.16.12" 475 | "@esbuild/freebsd-x64" "0.16.12" 476 | "@esbuild/linux-arm" "0.16.12" 477 | "@esbuild/linux-arm64" "0.16.12" 478 | "@esbuild/linux-ia32" "0.16.12" 479 | "@esbuild/linux-loong64" "0.16.12" 480 | "@esbuild/linux-mips64el" "0.16.12" 481 | "@esbuild/linux-ppc64" "0.16.12" 482 | "@esbuild/linux-riscv64" "0.16.12" 483 | "@esbuild/linux-s390x" "0.16.12" 484 | "@esbuild/linux-x64" "0.16.12" 485 | "@esbuild/netbsd-x64" "0.16.12" 486 | "@esbuild/openbsd-x64" "0.16.12" 487 | "@esbuild/sunos-x64" "0.16.12" 488 | "@esbuild/win32-arm64" "0.16.12" 489 | "@esbuild/win32-ia32" "0.16.12" 490 | "@esbuild/win32-x64" "0.16.12" 491 | 492 | escalade@^3.1.1: 493 | version "3.1.1" 494 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 495 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 496 | 497 | escape-string-regexp@^1.0.5: 498 | version "1.0.5" 499 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 500 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 501 | 502 | fsevents@~2.3.2: 503 | version "2.3.2" 504 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 505 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 506 | 507 | function-bind@^1.1.1: 508 | version "1.1.1" 509 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 510 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 511 | 512 | gensync@^1.0.0-beta.2: 513 | version "1.0.0-beta.2" 514 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 515 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 516 | 517 | globals@^11.1.0: 518 | version "11.12.0" 519 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 520 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 521 | 522 | has-flag@^3.0.0: 523 | version "3.0.0" 524 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 525 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 526 | 527 | has@^1.0.3: 528 | version "1.0.3" 529 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 530 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 531 | dependencies: 532 | function-bind "^1.1.1" 533 | 534 | is-core-module@^2.9.0: 535 | version "2.11.0" 536 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" 537 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== 538 | dependencies: 539 | has "^1.0.3" 540 | 541 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 542 | version "4.0.0" 543 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 544 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 545 | 546 | jsesc@^2.5.1: 547 | version "2.5.2" 548 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 549 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 550 | 551 | json5@^2.2.1: 552 | version "2.2.2" 553 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.2.tgz#64471c5bdcc564c18f7c1d4df2e2297f2457c5ab" 554 | integrity sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ== 555 | 556 | loose-envify@^1.1.0: 557 | version "1.4.0" 558 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 559 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 560 | dependencies: 561 | js-tokens "^3.0.0 || ^4.0.0" 562 | 563 | lru-cache@^5.1.1: 564 | version "5.1.1" 565 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 566 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 567 | dependencies: 568 | yallist "^3.0.2" 569 | 570 | magic-string@^0.27.0: 571 | version "0.27.0" 572 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" 573 | integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== 574 | dependencies: 575 | "@jridgewell/sourcemap-codec" "^1.4.13" 576 | 577 | ms@2.1.2: 578 | version "2.1.2" 579 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 580 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 581 | 582 | nanoid@^3.3.4: 583 | version "3.3.4" 584 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 585 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 586 | 587 | node-releases@^2.0.6: 588 | version "2.0.8" 589 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" 590 | integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== 591 | 592 | path-parse@^1.0.7: 593 | version "1.0.7" 594 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 595 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 596 | 597 | picocolors@^1.0.0: 598 | version "1.0.0" 599 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 600 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 601 | 602 | postcss@^8.4.20: 603 | version "8.4.20" 604 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" 605 | integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== 606 | dependencies: 607 | nanoid "^3.3.4" 608 | picocolors "^1.0.0" 609 | source-map-js "^1.0.2" 610 | 611 | prettier@^1.17.0: 612 | version "1.19.1" 613 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" 614 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 615 | 616 | react-dom@^18.2.0: 617 | version "18.2.0" 618 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 619 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 620 | dependencies: 621 | loose-envify "^1.1.0" 622 | scheduler "^0.23.0" 623 | 624 | react-refresh@^0.14.0: 625 | version "0.14.0" 626 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" 627 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== 628 | 629 | react@^18.2.0: 630 | version "18.2.0" 631 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 632 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 633 | dependencies: 634 | loose-envify "^1.1.0" 635 | 636 | resolve@^1.22.1: 637 | version "1.22.1" 638 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 639 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 640 | dependencies: 641 | is-core-module "^2.9.0" 642 | path-parse "^1.0.7" 643 | supports-preserve-symlinks-flag "^1.0.0" 644 | 645 | rollup@^3.7.0: 646 | version "3.9.0" 647 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.9.0.tgz#0ff7ab7cd71ce3a6ab140c5cf661f2b35eb6aab8" 648 | integrity sha512-nGGylpmblyjTpF4lEUPgmOw6OVxRvnI6Iuuh6Lz4O/X66cVOX1XJSsqP1YamxQ+mPuFE7qJxLFDSCk8rNv5dDw== 649 | optionalDependencies: 650 | fsevents "~2.3.2" 651 | 652 | scheduler@^0.23.0: 653 | version "0.23.0" 654 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 655 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 656 | dependencies: 657 | loose-envify "^1.1.0" 658 | 659 | semver@^6.3.0: 660 | version "6.3.0" 661 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 662 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 663 | 664 | source-map-js@^1.0.2: 665 | version "1.0.2" 666 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 667 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 668 | 669 | supports-color@^5.3.0: 670 | version "5.5.0" 671 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 672 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 673 | dependencies: 674 | has-flag "^3.0.0" 675 | 676 | supports-preserve-symlinks-flag@^1.0.0: 677 | version "1.0.0" 678 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 679 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 680 | 681 | to-fast-properties@^2.0.0: 682 | version "2.0.0" 683 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 684 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 685 | 686 | typescript@^4.9.3: 687 | version "4.9.4" 688 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" 689 | integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== 690 | 691 | update-browserslist-db@^1.0.9: 692 | version "1.0.10" 693 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 694 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 695 | dependencies: 696 | escalade "^3.1.1" 697 | picocolors "^1.0.0" 698 | 699 | vite@^4.0.0: 700 | version "4.0.3" 701 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.3.tgz#de27ad3f263a03ae9419cdc8bc07721eadcba8b9" 702 | integrity sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA== 703 | dependencies: 704 | esbuild "^0.16.3" 705 | postcss "^8.4.20" 706 | resolve "^1.22.1" 707 | rollup "^3.7.0" 708 | optionalDependencies: 709 | fsevents "~2.3.2" 710 | 711 | yallist@^3.0.2: 712 | version "3.1.1" 713 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 714 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 715 | --------------------------------------------------------------------------------