├── .gitignore ├── index.html ├── package.json ├── postcss.config.js ├── public └── vite.svg ├── src ├── App.css ├── App.tsx ├── assets │ └── react.svg ├── components │ ├── CartItem.tsx │ ├── CartItems.tsx │ ├── CheckoutButton.tsx │ ├── CheckoutPage.tsx │ ├── CheckoutSummary.tsx │ └── errors │ │ ├── ErrorBoundrayComponent.tsx │ │ └── ProductsFetchingError.tsx ├── errorHanlding │ ├── usingErrorBoundaries.tsx │ ├── usingState.tsx │ └── usingTheRightWay.tsx ├── fetchers │ └── products.ts ├── index.css ├── main.tsx └── vite-env.d.ts ├── tailwind.config.js ├── 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 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-errors", 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 | }, 11 | "dependencies": { 12 | "react": "^18.2.0", 13 | "react-dom": "^18.2.0", 14 | "react-error-boundary": "^4.0.3" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.0.28", 18 | "@types/react-dom": "^18.0.11", 19 | "@vitejs/plugin-react-swc": "^3.0.0", 20 | "autoprefixer": "^10.4.14", 21 | "postcss": "^8.4.21", 22 | "tailwindcss": "^3.3.1", 23 | "typescript": "^4.9.3", 24 | "vite": "^4.2.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | max-width: 1280px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | text-align: center; 6 | } 7 | 8 | .logo { 9 | height: 6em; 10 | padding: 1.5em; 11 | will-change: filter; 12 | transition: filter 300ms; 13 | } 14 | .logo:hover { 15 | filter: drop-shadow(0 0 2em #646cffaa); 16 | } 17 | .logo.react:hover { 18 | filter: drop-shadow(0 0 2em #61dafbaa); 19 | } 20 | 21 | @keyframes logo-spin { 22 | from { 23 | transform: rotate(0deg); 24 | } 25 | to { 26 | transform: rotate(360deg); 27 | } 28 | } 29 | 30 | @media (prefers-reduced-motion: no-preference) { 31 | a:nth-of-type(2) .logo { 32 | animation: logo-spin infinite 20s linear; 33 | } 34 | } 35 | 36 | .card { 37 | padding: 2em; 38 | } 39 | 40 | .read-the-docs { 41 | color: #888; 42 | } 43 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import "./App.css"; 2 | import { UsingState } from "./errorHanlding/usingState"; 3 | import { 4 | StandardErrorBoundary, 5 | UsingErrorBoundaries, 6 | } from "./errorHanlding/usingErrorBoundaries"; 7 | import { UsingTheRightWay } from "./errorHanlding/usingTheRightWay"; 8 | import { ErrorBoundary } from "react-error-boundary"; 9 | import { ProductsFetchingError } from "./components/errors/ErrorBoundrayComponent"; 10 | 11 | function App() { 12 | return ( 13 |
14 | {/* */} 15 | {/* 16 | 17 | */} 18 | 19 | console.log("Error happened!")} 22 | > 23 | 24 | 25 |
26 | ); 27 | } 28 | 29 | export default App; 30 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/CartItem.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const CartItem = ({ item }) => { 4 | return ( 5 |
6 | {item.name} 11 |
12 |

{item.name}

13 |

14 | ${item.price} x {item.quantity} 15 |

16 |
17 |
18 | ); 19 | }; 20 | 21 | export default CartItem; 22 | -------------------------------------------------------------------------------- /src/components/CartItems.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import CartItem from "./CartItem"; 3 | 4 | const CartItems = ({ items }) => { 5 | return ( 6 |
7 | {items.map((item) => ( 8 | 9 | ))} 10 |
11 | ); 12 | }; 13 | 14 | export default CartItems; 15 | -------------------------------------------------------------------------------- /src/components/CheckoutButton.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const CheckoutButton = ({ onClick }) => { 4 | return ( 5 | 11 | ); 12 | }; 13 | 14 | export default CheckoutButton; 15 | -------------------------------------------------------------------------------- /src/components/CheckoutPage.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from "react"; 2 | import CartItems from "./CartItems"; 3 | import CheckoutSummary from "./CheckoutSummary"; 4 | import CheckoutButton from "./CheckoutButton"; 5 | 6 | const fetchCartItems = async () => { 7 | const response = await fetch("https://fakestoreapi.com/products?limit=5"); 8 | const products = await response.json(); 9 | const cartItems = products.map((product) => ({ 10 | id: product.id, 11 | name: product.title, 12 | image: product.image, 13 | price: product.price, 14 | quantity: Math.floor(Math.random() * 5) + 1, // Generate a random quantity between 1 and 5 15 | })); 16 | return cartItems; 17 | }; 18 | 19 | export { fetchCartItems }; 20 | 21 | const CheckoutPage = () => { 22 | const [cartItems, setCartItems] = useState([ 23 | // Add your cart items here 24 | ]); 25 | 26 | const handlePayClick = () => { 27 | // Handle the payment process here 28 | }; 29 | 30 | const subtotal = cartItems.reduce( 31 | (sum, item: any) => sum + item.price * item.quantity, 32 | 0 33 | ); 34 | const discount = 0; // Calculate any discount here 35 | const total = subtotal - discount; 36 | 37 | useEffect(() => { 38 | const fetchItems = async () => { 39 | const items = await fetchCartItems(); 40 | setCartItems(items); 41 | }; 42 | fetchItems(); 43 | }, []); 44 | 45 | return ( 46 |
47 |
48 |

Checkout

49 | 50 | 55 |
56 | 57 |
58 |
59 |
60 | ); 61 | }; 62 | 63 | export default CheckoutPage; 64 | -------------------------------------------------------------------------------- /src/components/CheckoutSummary.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const CheckoutSummary = ({ subtotal, discount, total }) => { 4 | throw new Error("Unexpcted Render Error occured!"); 5 | 6 | return ( 7 |
8 |

Summary

9 |

Subtotal: ${subtotal}

10 |

Discount: ${discount}

11 |

Total: ${total}

12 |
13 | ); 14 | }; 15 | 16 | export default CheckoutSummary; 17 | -------------------------------------------------------------------------------- /src/components/errors/ErrorBoundrayComponent.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | ErrorBoundary, 3 | FallbackProps, 4 | useErrorBoundary, 5 | } from "react-error-boundary"; 6 | 7 | export function ProductsFetchingError(props: FallbackProps) { 8 | const { error, resetErrorBoundary } = props; 9 | 10 | return ( 11 |
12 |
13 |

Error!! 🌍

14 |

{error.message}

15 | 18 |
19 |
20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /src/components/errors/ProductsFetchingError.tsx: -------------------------------------------------------------------------------- 1 | interface ProductsFetchingErrorProps { 2 | error: string; 3 | } 4 | 5 | export function ProductsFetchingError(props: ProductsFetchingErrorProps) { 6 | const { error } = props; 7 | 8 | return ( 9 |
10 |
11 |

Error!! 🌍

12 |

{error}

13 |
14 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /src/errorHanlding/usingErrorBoundaries.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from "react"; 2 | import CartItems from "../components/CartItems"; 3 | import CheckoutSummary from "../components/CheckoutSummary"; 4 | import CheckoutButton from "../components/CheckoutButton"; 5 | import { ProductsFetchingError } from "../components/errors/ProductsFetchingError"; 6 | import { fetchCartItems } from "../fetchers/products"; 7 | 8 | export class StandardErrorBoundary extends React.Component { 9 | state: { 10 | hasError: boolean; 11 | error?: Error; 12 | }; 13 | 14 | constructor(props: any) { 15 | super(props); 16 | 17 | // to keep track of when an error occurs 18 | // and the error itself 19 | this.state = { 20 | hasError: false, 21 | error: undefined, 22 | }; 23 | } 24 | 25 | // update the component state when an error occurs 26 | static getDerivedStateFromError(error) { 27 | // specify that the error boundary has caught an error 28 | return { 29 | hasError: true, 30 | error: error, 31 | }; 32 | } 33 | 34 | // Log the error to some sort of a service logger 35 | componentDidCatch(error, errorInfo) { 36 | console.log("Error caught!"); 37 | console.error(error); 38 | console.error(errorInfo); 39 | } 40 | 41 | render() { 42 | // if an error occurred 43 | if (this.state.hasError) { 44 | return ; 45 | } else { 46 | // default behavior 47 | return this.props.children; 48 | } 49 | } 50 | } 51 | 52 | export const UsingErrorBoundaries = () => { 53 | const [cartItems, setCartItems] = useState([]); 54 | 55 | const handlePayClick = () => { 56 | // Handle the payment process here 57 | }; 58 | 59 | const subtotal = cartItems.reduce( 60 | (sum, item: any) => sum + item.price * item.quantity, 61 | 0 62 | ); 63 | const discount = 0; 64 | const total = subtotal - discount; 65 | 66 | useEffect(() => { 67 | const fetchItems = async () => { 68 | try { 69 | const items = await fetchCartItems(); 70 | setCartItems(items); 71 | } catch (err) {} 72 | }; 73 | fetchItems(); 74 | }, []); 75 | 76 | return ( 77 |
78 |
79 |

Checkout

80 | 81 | 86 |
87 | 88 |
89 |
90 |
91 | ); 92 | }; 93 | -------------------------------------------------------------------------------- /src/errorHanlding/usingState.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from "react"; 2 | import CartItems from "../components/CartItems"; 3 | import CheckoutSummary from "../components/CheckoutSummary"; 4 | import CheckoutButton from "../components/CheckoutButton"; 5 | import { ProductsFetchingError } from "../components/errors/ProductsFetchingError"; 6 | import { fetchCartItems } from "../fetchers/products"; 7 | 8 | export const UsingState = () => { 9 | const [cartItems, setCartItems] = useState([]); 10 | 11 | const [error, setError] = useState(null); 12 | 13 | const handlePayClick = () => { 14 | // Handle the payment process here 15 | }; 16 | 17 | const subtotal = cartItems.reduce( 18 | (sum, item: any) => sum + item.price * item.quantity, 19 | 0 20 | ); 21 | const discount = 0; // Calculate any discount here 22 | const total = subtotal - discount; 23 | 24 | useEffect(() => { 25 | const fetchItems = async () => { 26 | try { 27 | const items = await fetchCartItems(); 28 | setCartItems(items); 29 | } catch (err) { 30 | if (err) setError((err as Error).message); 31 | } 32 | }; 33 | fetchItems(); 34 | }, []); 35 | 36 | if (error) return ; 37 | 38 | return ( 39 |
40 |
41 |

Checkout

42 | 43 | 48 |
49 | 50 |
51 |
52 |
53 | ); 54 | }; 55 | -------------------------------------------------------------------------------- /src/errorHanlding/usingTheRightWay.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from "react"; 2 | import CartItems from "../components/CartItems"; 3 | import CheckoutSummary from "../components/CheckoutSummary"; 4 | import CheckoutButton from "../components/CheckoutButton"; 5 | import { fetchCartItems } from "../fetchers/products"; 6 | import { useErrorBoundary } from "react-error-boundary"; 7 | 8 | export const UsingTheRightWay = () => { 9 | const [cartItems, setCartItems] = useState([]); 10 | 11 | //✅ The Special hook you need 12 | const { showBoundary } = useErrorBoundary(); 13 | 14 | const handlePayClick = () => { 15 | // Handle the payment process here 16 | }; 17 | 18 | const subtotal = cartItems.reduce( 19 | (sum, item: any) => sum + item.price * item.quantity, 20 | 0 21 | ); 22 | const discount = 0; // Calculate any discount here 23 | const total = subtotal - discount; 24 | 25 | useEffect(() => { 26 | const fetchItems = async () => { 27 | try { 28 | const items = await fetchCartItems(); 29 | setCartItems(items); 30 | } catch (err) { 31 | showBoundary(err); 32 | } 33 | }; 34 | fetchItems(); 35 | }, []); 36 | 37 | return ( 38 |
39 |
40 |

Checkout

41 | 42 | 47 |
48 | 49 |
50 |
51 |
52 | ); 53 | }; 54 | -------------------------------------------------------------------------------- /src/fetchers/products.ts: -------------------------------------------------------------------------------- 1 | export const fetchCartItems = async () => { 2 | const response = await fetch("https://fakestoreapi.com/products?limit=5"); 3 | const products = await response.json(); 4 | const cartItems = products.map((product) => ({ 5 | id: product.id, 6 | name: product.title, 7 | image: product.image, 8 | price: product.price, 9 | quantity: Math.floor(Math.random() * 5) + 1, // Generate a random quantity between 1 and 5 10 | })); 11 | 12 | //Simulate error throwing... 13 | console.error("Cannot fetch products. Server is Down!"); 14 | throw new Error("Cannot fetch products. Server is Down!"); 15 | 16 | return cartItems; 17 | }; 18 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 7 | line-height: 1.5; 8 | font-weight: 400; 9 | 10 | color-scheme: light dark; 11 | color: rgba(255, 255, 255, 0.87); 12 | background-color: #242424; 13 | 14 | font-synthesis: none; 15 | text-rendering: optimizeLegibility; 16 | -webkit-font-smoothing: antialiased; 17 | -moz-osx-font-smoothing: grayscale; 18 | -webkit-text-size-adjust: 100%; 19 | } 20 | 21 | a { 22 | font-weight: 500; 23 | color: #646cff; 24 | text-decoration: inherit; 25 | } 26 | a:hover { 27 | color: #535bf2; 28 | } 29 | 30 | body { 31 | margin: 0; 32 | display: flex; 33 | place-items: center; 34 | min-width: 320px; 35 | min-height: 100vh; 36 | } 37 | 38 | h1 { 39 | font-size: 3.2em; 40 | line-height: 1.1; 41 | } 42 | 43 | button { 44 | border-radius: 8px; 45 | border: 1px solid transparent; 46 | padding: 0.6em 1.2em; 47 | font-size: 1em; 48 | font-weight: 500; 49 | font-family: inherit; 50 | background-color: #1a1a1a; 51 | cursor: pointer; 52 | transition: border-color 0.25s; 53 | } 54 | button:hover { 55 | border-color: #646cff; 56 | } 57 | button:focus, 58 | button:focus-visible { 59 | outline: 4px auto -webkit-focus-ring-color; 60 | } 61 | 62 | @media (prefers-color-scheme: light) { 63 | :root { 64 | color: #213547; 65 | background-color: #ffffff; 66 | } 67 | a:hover { 68 | color: #747bff; 69 | } 70 | button { 71 | background-color: #f9f9f9; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | }; 9 | -------------------------------------------------------------------------------- /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 | "noImplicitAny": false 19 | }, 20 | "include": ["src"], 21 | "references": [{ "path": "./tsconfig.node.json" }] 22 | } 23 | -------------------------------------------------------------------------------- /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-swc' 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 | "@babel/runtime@^7.12.5": 6 | version "7.21.0" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" 8 | integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== 9 | dependencies: 10 | regenerator-runtime "^0.13.11" 11 | 12 | "@esbuild/android-arm64@0.17.14": 13 | version "0.17.14" 14 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" 15 | integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== 16 | 17 | "@esbuild/android-arm@0.17.14": 18 | version "0.17.14" 19 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" 20 | integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== 21 | 22 | "@esbuild/android-x64@0.17.14": 23 | version "0.17.14" 24 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" 25 | integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== 26 | 27 | "@esbuild/darwin-arm64@0.17.14": 28 | version "0.17.14" 29 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" 30 | integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== 31 | 32 | "@esbuild/darwin-x64@0.17.14": 33 | version "0.17.14" 34 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" 35 | integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== 36 | 37 | "@esbuild/freebsd-arm64@0.17.14": 38 | version "0.17.14" 39 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" 40 | integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== 41 | 42 | "@esbuild/freebsd-x64@0.17.14": 43 | version "0.17.14" 44 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" 45 | integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== 46 | 47 | "@esbuild/linux-arm64@0.17.14": 48 | version "0.17.14" 49 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" 50 | integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== 51 | 52 | "@esbuild/linux-arm@0.17.14": 53 | version "0.17.14" 54 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" 55 | integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== 56 | 57 | "@esbuild/linux-ia32@0.17.14": 58 | version "0.17.14" 59 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" 60 | integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== 61 | 62 | "@esbuild/linux-loong64@0.17.14": 63 | version "0.17.14" 64 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" 65 | integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== 66 | 67 | "@esbuild/linux-mips64el@0.17.14": 68 | version "0.17.14" 69 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" 70 | integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== 71 | 72 | "@esbuild/linux-ppc64@0.17.14": 73 | version "0.17.14" 74 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" 75 | integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== 76 | 77 | "@esbuild/linux-riscv64@0.17.14": 78 | version "0.17.14" 79 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" 80 | integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== 81 | 82 | "@esbuild/linux-s390x@0.17.14": 83 | version "0.17.14" 84 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" 85 | integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== 86 | 87 | "@esbuild/linux-x64@0.17.14": 88 | version "0.17.14" 89 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" 90 | integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== 91 | 92 | "@esbuild/netbsd-x64@0.17.14": 93 | version "0.17.14" 94 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" 95 | integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== 96 | 97 | "@esbuild/openbsd-x64@0.17.14": 98 | version "0.17.14" 99 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" 100 | integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== 101 | 102 | "@esbuild/sunos-x64@0.17.14": 103 | version "0.17.14" 104 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" 105 | integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== 106 | 107 | "@esbuild/win32-arm64@0.17.14": 108 | version "0.17.14" 109 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" 110 | integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== 111 | 112 | "@esbuild/win32-ia32@0.17.14": 113 | version "0.17.14" 114 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" 115 | integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== 116 | 117 | "@esbuild/win32-x64@0.17.14": 118 | version "0.17.14" 119 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" 120 | integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA== 121 | 122 | "@nodelib/fs.scandir@2.1.5": 123 | version "2.1.5" 124 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 125 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 126 | dependencies: 127 | "@nodelib/fs.stat" "2.0.5" 128 | run-parallel "^1.1.9" 129 | 130 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 131 | version "2.0.5" 132 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 133 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 134 | 135 | "@nodelib/fs.walk@^1.2.3": 136 | version "1.2.8" 137 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 138 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 139 | dependencies: 140 | "@nodelib/fs.scandir" "2.1.5" 141 | fastq "^1.6.0" 142 | 143 | "@swc/core-darwin-arm64@1.3.44": 144 | version "1.3.44" 145 | resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.44.tgz#e0f5eb9d962c4e6192531c2e3b8c11f55faf1b89" 146 | integrity sha512-Y+oVsCjXUPvr3D9YLuB1gjP84TseM/CRkbPNrf+3JXQhsPEkgxdIdFP1cl/obeqMQrRgPpvSfK+TOvGuOuV22g== 147 | 148 | "@swc/core-darwin-x64@1.3.44": 149 | version "1.3.44" 150 | resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.44.tgz#a8de4c176a9b12f201fc754a56331113a53ec69c" 151 | integrity sha512-bM0IKBjlSD0yHJbd7bE3il5fTu3oUjUO2zjLkzfIx6tiqbmDyvOX8adaSqse9N+d8Ip9p26b5Vo7pMHq0POGkg== 152 | 153 | "@swc/core-linux-arm-gnueabihf@1.3.44": 154 | version "1.3.44" 155 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.44.tgz#300731367c88bf02b8ae20264d4d402362e444df" 156 | integrity sha512-D4lfVwCbkWscDTb6btb89+bN0kgvjGBPfOmcvih7nY5hxaorwvp+PefkYAhFw8vKmL92lrnWUFNiTemVFN4bxg== 157 | 158 | "@swc/core-linux-arm64-gnu@1.3.44": 159 | version "1.3.44" 160 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.44.tgz#8b52d1cd28f277d47bb45c6791f44da568a62bc4" 161 | integrity sha512-muExPTrN26MFmtO+5uffkH5v4lmd8GdmyWvlC2tL95h7o9genTIQyr7kcSepGZrDe4fM9G6++5YfENhUpXHo+g== 162 | 163 | "@swc/core-linux-arm64-musl@1.3.44": 164 | version "1.3.44" 165 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.44.tgz#7b0e62255ae13c397f09ca5da8bf2266482a28c2" 166 | integrity sha512-MY1wY3kSIosjJKKCfFGniJFFVkt3oPvJLN4Dlj+bMgAt3O7anm8lGbyLqUpJ1Ep4rTsJj7ObO06DQiSWp4Fhcw== 167 | 168 | "@swc/core-linux-x64-gnu@1.3.44": 169 | version "1.3.44" 170 | resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.44.tgz#0b8b2544c312f247aa5c5f31671a175ad6488309" 171 | integrity sha512-xV4pDxJM06g0yUDTA22ZHgonzGqf/poIlgADRmEkx9cWWm5qLRhmWrrkVX1xZVvdlcXj1ERnia/UkvrDux96lg== 172 | 173 | "@swc/core-linux-x64-musl@1.3.44": 174 | version "1.3.44" 175 | resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.44.tgz#5b1f76fc1dc75875df59d8c0ff37e99e030f9552" 176 | integrity sha512-NJnnlE8vCkKHoo/wIaoywNN/01vNsvhKUjBgUx865sUM/XWAIanpbV41yfdEkC+Iwd+/zB3ZZnOYql3b+Nn8aQ== 177 | 178 | "@swc/core-win32-arm64-msvc@1.3.44": 179 | version "1.3.44" 180 | resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.44.tgz#bd4aefcd7734229f780c9bec0502935884935f0f" 181 | integrity sha512-/xOtjZhX25GEOPLN55icjj9E061DDH7G0A9HfUAEilURgBbvm6bIlqK+t8mOKK0tOsDoHftdTBRkYhTAqUtakQ== 182 | 183 | "@swc/core-win32-ia32-msvc@1.3.44": 184 | version "1.3.44" 185 | resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.44.tgz#0c2ba768f33acb580422e17d4ae816ebfd3dcfe0" 186 | integrity sha512-uKTAWQuMEW1gJnl8F3eiz3kdk8CiaR5dMWWlGbHIq6dRbur2hoKaEnINR4UqkvvAhhY1YB0Xr5DV1H986Xu2EA== 187 | 188 | "@swc/core-win32-x64-msvc@1.3.44": 189 | version "1.3.44" 190 | resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.44.tgz#b137abefbeb3b73a47cc398bc5603ea6bf6a3a7b" 191 | integrity sha512-D9fBRhr44cK4YIKFikpktyUDLkZgVj0ISaSl8IjiTvjqTrE/9+E+dzTNHULn5tc3lHVLLxyVwMjJRr2G0D4O6w== 192 | 193 | "@swc/core@^1.3.35": 194 | version "1.3.44" 195 | resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.44.tgz#2886bdd647942f9670b65c02b6d5484ff3070ddd" 196 | integrity sha512-RC25C8nxOCdfGS//F9Q8aHKx4XoCsxvgO+sSUhvt7zDz1Y2ruVUTu2UOH0VeE0WkA8j6oEZH+xH2SUfDUkxXdA== 197 | optionalDependencies: 198 | "@swc/core-darwin-arm64" "1.3.44" 199 | "@swc/core-darwin-x64" "1.3.44" 200 | "@swc/core-linux-arm-gnueabihf" "1.3.44" 201 | "@swc/core-linux-arm64-gnu" "1.3.44" 202 | "@swc/core-linux-arm64-musl" "1.3.44" 203 | "@swc/core-linux-x64-gnu" "1.3.44" 204 | "@swc/core-linux-x64-musl" "1.3.44" 205 | "@swc/core-win32-arm64-msvc" "1.3.44" 206 | "@swc/core-win32-ia32-msvc" "1.3.44" 207 | "@swc/core-win32-x64-msvc" "1.3.44" 208 | 209 | "@types/prop-types@*": 210 | version "15.7.5" 211 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 212 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 213 | 214 | "@types/react-dom@^18.0.11": 215 | version "18.0.11" 216 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" 217 | integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== 218 | dependencies: 219 | "@types/react" "*" 220 | 221 | "@types/react@*", "@types/react@^18.0.28": 222 | version "18.0.31" 223 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.31.tgz#a69ef8dd7bfa849734d258c793a8fe343a338205" 224 | integrity sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww== 225 | dependencies: 226 | "@types/prop-types" "*" 227 | "@types/scheduler" "*" 228 | csstype "^3.0.2" 229 | 230 | "@types/scheduler@*": 231 | version "0.16.3" 232 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" 233 | integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== 234 | 235 | "@vitejs/plugin-react-swc@^3.0.0": 236 | version "3.2.0" 237 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.2.0.tgz#7c4f6e116a296c27f680d05750f9dbf798cf7709" 238 | integrity sha512-IcBoXL/mcH7JdQr/nfDlDwTdIaH8Rg7LpfQDF4nAht+juHWIuv6WhpKPCSfY4+zztAaB07qdBoFz1XCZsgo3pQ== 239 | dependencies: 240 | "@swc/core" "^1.3.35" 241 | 242 | any-promise@^1.0.0: 243 | version "1.3.0" 244 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 245 | integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== 246 | 247 | anymatch@~3.1.2: 248 | version "3.1.3" 249 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 250 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 251 | dependencies: 252 | normalize-path "^3.0.0" 253 | picomatch "^2.0.4" 254 | 255 | arg@^5.0.2: 256 | version "5.0.2" 257 | resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" 258 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== 259 | 260 | autoprefixer@^10.4.14: 261 | version "10.4.14" 262 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" 263 | integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== 264 | dependencies: 265 | browserslist "^4.21.5" 266 | caniuse-lite "^1.0.30001464" 267 | fraction.js "^4.2.0" 268 | normalize-range "^0.1.2" 269 | picocolors "^1.0.0" 270 | postcss-value-parser "^4.2.0" 271 | 272 | balanced-match@^1.0.0: 273 | version "1.0.2" 274 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 275 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 276 | 277 | binary-extensions@^2.0.0: 278 | version "2.2.0" 279 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 280 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 281 | 282 | brace-expansion@^1.1.7: 283 | version "1.1.11" 284 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 285 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 286 | dependencies: 287 | balanced-match "^1.0.0" 288 | concat-map "0.0.1" 289 | 290 | braces@^3.0.2, braces@~3.0.2: 291 | version "3.0.2" 292 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 293 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 294 | dependencies: 295 | fill-range "^7.0.1" 296 | 297 | browserslist@^4.21.5: 298 | version "4.21.5" 299 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" 300 | integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== 301 | dependencies: 302 | caniuse-lite "^1.0.30001449" 303 | electron-to-chromium "^1.4.284" 304 | node-releases "^2.0.8" 305 | update-browserslist-db "^1.0.10" 306 | 307 | camelcase-css@^2.0.1: 308 | version "2.0.1" 309 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" 310 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== 311 | 312 | caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: 313 | version "1.0.30001473" 314 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001473.tgz#3859898b3cab65fc8905bb923df36ad35058153c" 315 | integrity sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg== 316 | 317 | chokidar@^3.5.3: 318 | version "3.5.3" 319 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 320 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 321 | dependencies: 322 | anymatch "~3.1.2" 323 | braces "~3.0.2" 324 | glob-parent "~5.1.2" 325 | is-binary-path "~2.1.0" 326 | is-glob "~4.0.1" 327 | normalize-path "~3.0.0" 328 | readdirp "~3.6.0" 329 | optionalDependencies: 330 | fsevents "~2.3.2" 331 | 332 | color-name@^1.1.4: 333 | version "1.1.4" 334 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 335 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 336 | 337 | commander@^4.0.0: 338 | version "4.1.1" 339 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 340 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 341 | 342 | concat-map@0.0.1: 343 | version "0.0.1" 344 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 345 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 346 | 347 | cssesc@^3.0.0: 348 | version "3.0.0" 349 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 350 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 351 | 352 | csstype@^3.0.2: 353 | version "3.1.1" 354 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" 355 | integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== 356 | 357 | didyoumean@^1.2.2: 358 | version "1.2.2" 359 | resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" 360 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== 361 | 362 | dlv@^1.1.3: 363 | version "1.1.3" 364 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" 365 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== 366 | 367 | electron-to-chromium@^1.4.284: 368 | version "1.4.347" 369 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.347.tgz#4b72564912c3456c6704d4250918aa6a105d5dc3" 370 | integrity sha512-LNi3+/9nV0vT6Bz1OsSoZ/w7IgNuWdefZ7mjKNjZxyRlI/ag6uMXxsxAy5Etvuixq3Q26exw2fc4bNYvYQqXSw== 371 | 372 | esbuild@^0.17.5: 373 | version "0.17.14" 374 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" 375 | integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw== 376 | optionalDependencies: 377 | "@esbuild/android-arm" "0.17.14" 378 | "@esbuild/android-arm64" "0.17.14" 379 | "@esbuild/android-x64" "0.17.14" 380 | "@esbuild/darwin-arm64" "0.17.14" 381 | "@esbuild/darwin-x64" "0.17.14" 382 | "@esbuild/freebsd-arm64" "0.17.14" 383 | "@esbuild/freebsd-x64" "0.17.14" 384 | "@esbuild/linux-arm" "0.17.14" 385 | "@esbuild/linux-arm64" "0.17.14" 386 | "@esbuild/linux-ia32" "0.17.14" 387 | "@esbuild/linux-loong64" "0.17.14" 388 | "@esbuild/linux-mips64el" "0.17.14" 389 | "@esbuild/linux-ppc64" "0.17.14" 390 | "@esbuild/linux-riscv64" "0.17.14" 391 | "@esbuild/linux-s390x" "0.17.14" 392 | "@esbuild/linux-x64" "0.17.14" 393 | "@esbuild/netbsd-x64" "0.17.14" 394 | "@esbuild/openbsd-x64" "0.17.14" 395 | "@esbuild/sunos-x64" "0.17.14" 396 | "@esbuild/win32-arm64" "0.17.14" 397 | "@esbuild/win32-ia32" "0.17.14" 398 | "@esbuild/win32-x64" "0.17.14" 399 | 400 | escalade@^3.1.1: 401 | version "3.1.1" 402 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 403 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 404 | 405 | fast-glob@^3.2.12: 406 | version "3.2.12" 407 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" 408 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== 409 | dependencies: 410 | "@nodelib/fs.stat" "^2.0.2" 411 | "@nodelib/fs.walk" "^1.2.3" 412 | glob-parent "^5.1.2" 413 | merge2 "^1.3.0" 414 | micromatch "^4.0.4" 415 | 416 | fastq@^1.6.0: 417 | version "1.15.0" 418 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" 419 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 420 | dependencies: 421 | reusify "^1.0.4" 422 | 423 | fill-range@^7.0.1: 424 | version "7.0.1" 425 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 426 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 427 | dependencies: 428 | to-regex-range "^5.0.1" 429 | 430 | fraction.js@^4.2.0: 431 | version "4.2.0" 432 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" 433 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== 434 | 435 | fs.realpath@^1.0.0: 436 | version "1.0.0" 437 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 438 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 439 | 440 | fsevents@~2.3.2: 441 | version "2.3.2" 442 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 443 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 444 | 445 | function-bind@^1.1.1: 446 | version "1.1.1" 447 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 448 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 449 | 450 | glob-parent@^5.1.2, glob-parent@~5.1.2: 451 | version "5.1.2" 452 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 453 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 454 | dependencies: 455 | is-glob "^4.0.1" 456 | 457 | glob-parent@^6.0.2: 458 | version "6.0.2" 459 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 460 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 461 | dependencies: 462 | is-glob "^4.0.3" 463 | 464 | glob@7.1.6: 465 | version "7.1.6" 466 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 467 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 468 | dependencies: 469 | fs.realpath "^1.0.0" 470 | inflight "^1.0.4" 471 | inherits "2" 472 | minimatch "^3.0.4" 473 | once "^1.3.0" 474 | path-is-absolute "^1.0.0" 475 | 476 | has@^1.0.3: 477 | version "1.0.3" 478 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 479 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 480 | dependencies: 481 | function-bind "^1.1.1" 482 | 483 | inflight@^1.0.4: 484 | version "1.0.6" 485 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 486 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 487 | dependencies: 488 | once "^1.3.0" 489 | wrappy "1" 490 | 491 | inherits@2: 492 | version "2.0.4" 493 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 494 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 495 | 496 | is-binary-path@~2.1.0: 497 | version "2.1.0" 498 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 499 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 500 | dependencies: 501 | binary-extensions "^2.0.0" 502 | 503 | is-core-module@^2.9.0: 504 | version "2.11.0" 505 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" 506 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== 507 | dependencies: 508 | has "^1.0.3" 509 | 510 | is-extglob@^2.1.1: 511 | version "2.1.1" 512 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 513 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 514 | 515 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 516 | version "4.0.3" 517 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 518 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 519 | dependencies: 520 | is-extglob "^2.1.1" 521 | 522 | is-number@^7.0.0: 523 | version "7.0.0" 524 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 525 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 526 | 527 | jiti@^1.17.2: 528 | version "1.18.2" 529 | resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" 530 | integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== 531 | 532 | "js-tokens@^3.0.0 || ^4.0.0": 533 | version "4.0.0" 534 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 535 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 536 | 537 | lilconfig@^2.0.5, lilconfig@^2.0.6: 538 | version "2.1.0" 539 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" 540 | integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== 541 | 542 | lines-and-columns@^1.1.6: 543 | version "1.2.4" 544 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 545 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 546 | 547 | loose-envify@^1.1.0: 548 | version "1.4.0" 549 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 550 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 551 | dependencies: 552 | js-tokens "^3.0.0 || ^4.0.0" 553 | 554 | merge2@^1.3.0: 555 | version "1.4.1" 556 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 557 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 558 | 559 | micromatch@^4.0.4, micromatch@^4.0.5: 560 | version "4.0.5" 561 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 562 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 563 | dependencies: 564 | braces "^3.0.2" 565 | picomatch "^2.3.1" 566 | 567 | minimatch@^3.0.4: 568 | version "3.1.2" 569 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 570 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 571 | dependencies: 572 | brace-expansion "^1.1.7" 573 | 574 | mz@^2.7.0: 575 | version "2.7.0" 576 | resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" 577 | integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== 578 | dependencies: 579 | any-promise "^1.0.0" 580 | object-assign "^4.0.1" 581 | thenify-all "^1.0.0" 582 | 583 | nanoid@^3.3.4: 584 | version "3.3.6" 585 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" 586 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== 587 | 588 | node-releases@^2.0.8: 589 | version "2.0.10" 590 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" 591 | integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== 592 | 593 | normalize-path@^3.0.0, normalize-path@~3.0.0: 594 | version "3.0.0" 595 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 596 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 597 | 598 | normalize-range@^0.1.2: 599 | version "0.1.2" 600 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" 601 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== 602 | 603 | object-assign@^4.0.1: 604 | version "4.1.1" 605 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 606 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 607 | 608 | object-hash@^3.0.0: 609 | version "3.0.0" 610 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" 611 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== 612 | 613 | once@^1.3.0: 614 | version "1.4.0" 615 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 616 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 617 | dependencies: 618 | wrappy "1" 619 | 620 | path-is-absolute@^1.0.0: 621 | version "1.0.1" 622 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 623 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 624 | 625 | path-parse@^1.0.7: 626 | version "1.0.7" 627 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 628 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 629 | 630 | picocolors@^1.0.0: 631 | version "1.0.0" 632 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 633 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 634 | 635 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 636 | version "2.3.1" 637 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 638 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 639 | 640 | pify@^2.3.0: 641 | version "2.3.0" 642 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 643 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 644 | 645 | pirates@^4.0.1: 646 | version "4.0.5" 647 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" 648 | integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== 649 | 650 | postcss-import@^14.1.0: 651 | version "14.1.0" 652 | resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" 653 | integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== 654 | dependencies: 655 | postcss-value-parser "^4.0.0" 656 | read-cache "^1.0.0" 657 | resolve "^1.1.7" 658 | 659 | postcss-js@^4.0.0: 660 | version "4.0.1" 661 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" 662 | integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== 663 | dependencies: 664 | camelcase-css "^2.0.1" 665 | 666 | postcss-load-config@^3.1.4: 667 | version "3.1.4" 668 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" 669 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== 670 | dependencies: 671 | lilconfig "^2.0.5" 672 | yaml "^1.10.2" 673 | 674 | postcss-nested@6.0.0: 675 | version "6.0.0" 676 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" 677 | integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== 678 | dependencies: 679 | postcss-selector-parser "^6.0.10" 680 | 681 | postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11: 682 | version "6.0.11" 683 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" 684 | integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== 685 | dependencies: 686 | cssesc "^3.0.0" 687 | util-deprecate "^1.0.2" 688 | 689 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: 690 | version "4.2.0" 691 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 692 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 693 | 694 | postcss@^8.0.9, postcss@^8.4.21: 695 | version "8.4.21" 696 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" 697 | integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== 698 | dependencies: 699 | nanoid "^3.3.4" 700 | picocolors "^1.0.0" 701 | source-map-js "^1.0.2" 702 | 703 | queue-microtask@^1.2.2: 704 | version "1.2.3" 705 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 706 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 707 | 708 | quick-lru@^5.1.1: 709 | version "5.1.1" 710 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 711 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 712 | 713 | react-dom@^18.2.0: 714 | version "18.2.0" 715 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 716 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 717 | dependencies: 718 | loose-envify "^1.1.0" 719 | scheduler "^0.23.0" 720 | 721 | react-error-boundary@^4.0.3: 722 | version "4.0.3" 723 | resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.3.tgz#f811497c06d53ea1206817ee82c6e5c6a27becd9" 724 | integrity sha512-IzNKP/ViHWp2QRDgsDMirEcf0XLsLueN6Wgzm1TVwgbAH+paX8Z42VyKvZcFFRHgd+rPK2P4TLrOrHC/dommew== 725 | dependencies: 726 | "@babel/runtime" "^7.12.5" 727 | 728 | react@^18.2.0: 729 | version "18.2.0" 730 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 731 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 732 | dependencies: 733 | loose-envify "^1.1.0" 734 | 735 | read-cache@^1.0.0: 736 | version "1.0.0" 737 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" 738 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== 739 | dependencies: 740 | pify "^2.3.0" 741 | 742 | readdirp@~3.6.0: 743 | version "3.6.0" 744 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 745 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 746 | dependencies: 747 | picomatch "^2.2.1" 748 | 749 | regenerator-runtime@^0.13.11: 750 | version "0.13.11" 751 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" 752 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== 753 | 754 | resolve@^1.1.7, resolve@^1.22.1: 755 | version "1.22.1" 756 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 757 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 758 | dependencies: 759 | is-core-module "^2.9.0" 760 | path-parse "^1.0.7" 761 | supports-preserve-symlinks-flag "^1.0.0" 762 | 763 | reusify@^1.0.4: 764 | version "1.0.4" 765 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 766 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 767 | 768 | rollup@^3.18.0: 769 | version "3.20.2" 770 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.2.tgz#f798c600317f216de2e4ad9f4d9ab30a89b690ff" 771 | integrity sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg== 772 | optionalDependencies: 773 | fsevents "~2.3.2" 774 | 775 | run-parallel@^1.1.9: 776 | version "1.2.0" 777 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 778 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 779 | dependencies: 780 | queue-microtask "^1.2.2" 781 | 782 | scheduler@^0.23.0: 783 | version "0.23.0" 784 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 785 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 786 | dependencies: 787 | loose-envify "^1.1.0" 788 | 789 | source-map-js@^1.0.2: 790 | version "1.0.2" 791 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 792 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 793 | 794 | sucrase@^3.29.0: 795 | version "3.31.0" 796 | resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.31.0.tgz#daae4fd458167c5d4ba1cce6aef57b988b417b33" 797 | integrity sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ== 798 | dependencies: 799 | commander "^4.0.0" 800 | glob "7.1.6" 801 | lines-and-columns "^1.1.6" 802 | mz "^2.7.0" 803 | pirates "^4.0.1" 804 | ts-interface-checker "^0.1.9" 805 | 806 | supports-preserve-symlinks-flag@^1.0.0: 807 | version "1.0.0" 808 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 809 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 810 | 811 | tailwindcss@^3.3.1: 812 | version "3.3.1" 813 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.1.tgz#b6662fab6a9b704779e48d083a9fef5a81d2b81e" 814 | integrity sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g== 815 | dependencies: 816 | arg "^5.0.2" 817 | chokidar "^3.5.3" 818 | color-name "^1.1.4" 819 | didyoumean "^1.2.2" 820 | dlv "^1.1.3" 821 | fast-glob "^3.2.12" 822 | glob-parent "^6.0.2" 823 | is-glob "^4.0.3" 824 | jiti "^1.17.2" 825 | lilconfig "^2.0.6" 826 | micromatch "^4.0.5" 827 | normalize-path "^3.0.0" 828 | object-hash "^3.0.0" 829 | picocolors "^1.0.0" 830 | postcss "^8.0.9" 831 | postcss-import "^14.1.0" 832 | postcss-js "^4.0.0" 833 | postcss-load-config "^3.1.4" 834 | postcss-nested "6.0.0" 835 | postcss-selector-parser "^6.0.11" 836 | postcss-value-parser "^4.2.0" 837 | quick-lru "^5.1.1" 838 | resolve "^1.22.1" 839 | sucrase "^3.29.0" 840 | 841 | thenify-all@^1.0.0: 842 | version "1.6.0" 843 | resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" 844 | integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== 845 | dependencies: 846 | thenify ">= 3.1.0 < 4" 847 | 848 | "thenify@>= 3.1.0 < 4": 849 | version "3.3.1" 850 | resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" 851 | integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== 852 | dependencies: 853 | any-promise "^1.0.0" 854 | 855 | to-regex-range@^5.0.1: 856 | version "5.0.1" 857 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 858 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 859 | dependencies: 860 | is-number "^7.0.0" 861 | 862 | ts-interface-checker@^0.1.9: 863 | version "0.1.13" 864 | resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" 865 | integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== 866 | 867 | typescript@^4.9.3: 868 | version "4.9.5" 869 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" 870 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== 871 | 872 | update-browserslist-db@^1.0.10: 873 | version "1.0.10" 874 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 875 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 876 | dependencies: 877 | escalade "^3.1.1" 878 | picocolors "^1.0.0" 879 | 880 | util-deprecate@^1.0.2: 881 | version "1.0.2" 882 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 883 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 884 | 885 | vite@^4.2.0: 886 | version "4.2.1" 887 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.1.tgz#6c2eb337b0dfd80a9ded5922163b94949d7fc254" 888 | integrity sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg== 889 | dependencies: 890 | esbuild "^0.17.5" 891 | postcss "^8.4.21" 892 | resolve "^1.22.1" 893 | rollup "^3.18.0" 894 | optionalDependencies: 895 | fsevents "~2.3.2" 896 | 897 | wrappy@1: 898 | version "1.0.2" 899 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 900 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 901 | 902 | yaml@^1.10.2: 903 | version "1.10.2" 904 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 905 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 906 | --------------------------------------------------------------------------------