├── .gitignore ├── README.md ├── db.json ├── index.html ├── package.json ├── postcss.config.cjs ├── public └── vite.svg ├── src ├── App.css ├── App.jsx ├── assets │ └── react.svg ├── component │ ├── withGlobalStore │ │ ├── cart.jsx │ │ ├── cartDrawer.jsx │ │ ├── info.jsx │ │ ├── product.jsx │ │ ├── store.js │ │ └── withGlobalStore.jsx │ └── withReactQuery │ │ ├── cart.jsx │ │ ├── cartDrawer.jsx │ │ ├── info.jsx │ │ ├── product.jsx │ │ ├── withReactQuery.jsx │ │ └── withUseEffect.jsx ├── fetchers │ └── products.js ├── index.css └── main.jsx ├── tailwind.config.cjs ├── vite.config.js └── 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 | # Why you should use React Query instead of useEffect for API Calls? 2 | 3 | This repo, gives great examples of why you should use react-query library for fetching and storing the state of your server-side data in React instead of gambling with useEffect and redux 4 | 5 | - use react-query for fetching 6 | - it has isLoading, error, isSuccess with a single hook 7 | - It's smart about when to refetch and sharing data between components 8 | - Uses cache cleverly giving you all the control 9 | - Easy to use and makes it easier for your team 10 | 11 | All the details are explained on CoderOne's youtube channel: https://youtu.be/Kjkx2BASAZA 12 | -------------------------------------------------------------------------------- /db.json: -------------------------------------------------------------------------------- 1 | { 2 | "cart": [ 3 | { 4 | "id": 3 5 | }, 6 | { 7 | "id": 1 8 | } 9 | ], 10 | "products": [ 11 | { 12 | "id": 1, 13 | "title": "iPhone 9", 14 | "description": "An apple mobile which is nothing like apple", 15 | "price": 549, 16 | "discountPercentage": 12.96, 17 | "rating": 4.69, 18 | "stock": 94, 19 | "brand": "Apple", 20 | "category": "smartphones", 21 | "thumbnail": "https://dummyjson.com/image/i/products/1/thumbnail.jpg", 22 | "images": [ 23 | "https://dummyjson.com/image/i/products/1/1.jpg", 24 | "https://dummyjson.com/image/i/products/1/2.jpg", 25 | "https://dummyjson.com/image/i/products/1/3.jpg", 26 | "https://dummyjson.com/image/i/products/1/4.jpg", 27 | "https://dummyjson.com/image/i/products/1/thumbnail.jpg" 28 | ] 29 | }, 30 | { 31 | "id": 2, 32 | "title": "iPhone X", 33 | "description": "SIM-Free, Model A19211 6.5-inch Super Retina HD display with OLED technology A12 Bionic chip with ...", 34 | "price": 899, 35 | "discountPercentage": 17.94, 36 | "rating": 4.44, 37 | "stock": 34, 38 | "brand": "Apple", 39 | "category": "smartphones", 40 | "thumbnail": "https://dummyjson.com/image/i/products/2/thumbnail.jpg", 41 | "images": [ 42 | "https://dummyjson.com/image/i/products/2/1.jpg", 43 | "https://dummyjson.com/image/i/products/2/2.jpg", 44 | "https://dummyjson.com/image/i/products/2/3.jpg", 45 | "https://dummyjson.com/image/i/products/2/thumbnail.jpg" 46 | ] 47 | }, 48 | { 49 | "id": 3, 50 | "title": "Samsung Universe 9", 51 | "description": "Samsung's new variant which goes beyond Galaxy to the Universe", 52 | "price": 1249, 53 | "discountPercentage": 15.46, 54 | "rating": 4.09, 55 | "stock": 36, 56 | "brand": "Samsung", 57 | "category": "smartphones", 58 | "thumbnail": "https://dummyjson.com/image/i/products/3/thumbnail.jpg", 59 | "images": ["https://dummyjson.com/image/i/products/3/1.jpg"] 60 | }, 61 | { 62 | "id": 4, 63 | "title": "OPPOF19", 64 | "description": "OPPO F19 is officially announced on April 2021.", 65 | "price": 280, 66 | "discountPercentage": 17.91, 67 | "rating": 4.3, 68 | "stock": 123, 69 | "brand": "OPPO", 70 | "category": "smartphones", 71 | "thumbnail": "https://dummyjson.com/image/i/products/4/thumbnail.jpg", 72 | "images": [ 73 | "https://dummyjson.com/image/i/products/4/1.jpg", 74 | "https://dummyjson.com/image/i/products/4/2.jpg", 75 | "https://dummyjson.com/image/i/products/4/3.jpg", 76 | "https://dummyjson.com/image/i/products/4/4.jpg", 77 | "https://dummyjson.com/image/i/products/4/thumbnail.jpg" 78 | ] 79 | }, 80 | { 81 | "id": 5, 82 | "title": "Huawei P30", 83 | "description": "Huawei’s re-badged P30 Pro New Edition was officially unveiled yesterday in Germany and now the device has made its way to the UK.", 84 | "price": 499, 85 | "discountPercentage": 10.58, 86 | "rating": 4.09, 87 | "stock": 32, 88 | "brand": "Huawei", 89 | "category": "smartphones", 90 | "thumbnail": "https://dummyjson.com/image/i/products/5/thumbnail.jpg", 91 | "images": [ 92 | "https://dummyjson.com/image/i/products/5/1.jpg", 93 | "https://dummyjson.com/image/i/products/5/2.jpg", 94 | "https://dummyjson.com/image/i/products/5/3.jpg" 95 | ] 96 | }, 97 | { 98 | "id": 6, 99 | "title": "MacBook Pro", 100 | "description": "MacBook Pro 2021 with mini-LED display may launch between September, November", 101 | "price": 1749, 102 | "discountPercentage": 11.02, 103 | "rating": 4.57, 104 | "stock": 83, 105 | "brand": "APPle", 106 | "category": "laptops", 107 | "thumbnail": "https://dummyjson.com/image/i/products/6/thumbnail.png", 108 | "images": [ 109 | "https://dummyjson.com/image/i/products/6/1.png", 110 | "https://dummyjson.com/image/i/products/6/2.jpg", 111 | "https://dummyjson.com/image/i/products/6/3.png", 112 | "https://dummyjson.com/image/i/products/6/4.jpg" 113 | ] 114 | }, 115 | { 116 | "id": 7, 117 | "title": "Samsung Galaxy Book", 118 | "description": "Samsung Galaxy Book S (2020) Laptop With Intel Lakefield Chip, 8GB of RAM Launched", 119 | "price": 1499, 120 | "discountPercentage": 4.15, 121 | "rating": 4.25, 122 | "stock": 50, 123 | "brand": "Samsung", 124 | "category": "laptops", 125 | "thumbnail": "https://dummyjson.com/image/i/products/7/thumbnail.jpg", 126 | "images": [ 127 | "https://dummyjson.com/image/i/products/7/1.jpg", 128 | "https://dummyjson.com/image/i/products/7/2.jpg", 129 | "https://dummyjson.com/image/i/products/7/3.jpg", 130 | "https://dummyjson.com/image/i/products/7/thumbnail.jpg" 131 | ] 132 | }, 133 | { 134 | "id": 8, 135 | "title": "Microsoft Surface Laptop 4", 136 | "description": "Style and speed. Stand out on HD video calls backed by Studio Mics. Capture ideas on the vibrant touchscreen.", 137 | "price": 1499, 138 | "discountPercentage": 10.23, 139 | "rating": 4.43, 140 | "stock": 68, 141 | "brand": "Microsoft Surface", 142 | "category": "laptops", 143 | "thumbnail": "https://dummyjson.com/image/i/products/8/thumbnail.jpg", 144 | "images": [ 145 | "https://dummyjson.com/image/i/products/8/1.jpg", 146 | "https://dummyjson.com/image/i/products/8/2.jpg", 147 | "https://dummyjson.com/image/i/products/8/3.jpg", 148 | "https://dummyjson.com/image/i/products/8/4.jpg", 149 | "https://dummyjson.com/image/i/products/8/thumbnail.jpg" 150 | ] 151 | }, 152 | { 153 | "id": 9, 154 | "title": "Infinix INBOOK", 155 | "description": "Infinix Inbook X1 Ci3 10th 8GB 256GB 14 Win10 Grey – 1 Year Warranty", 156 | "price": 1099, 157 | "discountPercentage": 11.83, 158 | "rating": 4.54, 159 | "stock": 96, 160 | "brand": "Infinix", 161 | "category": "laptops", 162 | "thumbnail": "https://dummyjson.com/image/i/products/9/thumbnail.jpg", 163 | "images": [ 164 | "https://dummyjson.com/image/i/products/9/1.jpg", 165 | "https://dummyjson.com/image/i/products/9/2.png", 166 | "https://dummyjson.com/image/i/products/9/3.png", 167 | "https://dummyjson.com/image/i/products/9/4.jpg", 168 | "https://dummyjson.com/image/i/products/9/thumbnail.jpg" 169 | ] 170 | }, 171 | { 172 | "id": 10, 173 | "title": "HP Pavilion 15-DK1056WM", 174 | "description": "HP Pavilion 15-DK1056WM Gaming Laptop 10th Gen Core i5, 8GB, 256GB SSD, GTX 1650 4GB, Windows 10", 175 | "price": 1099, 176 | "discountPercentage": 6.18, 177 | "rating": 4.43, 178 | "stock": 89, 179 | "brand": "HP Pavilion", 180 | "category": "laptops", 181 | "thumbnail": "https://dummyjson.com/image/i/products/10/thumbnail.jpeg", 182 | "images": [ 183 | "https://dummyjson.com/image/i/products/10/1.jpg", 184 | "https://dummyjson.com/image/i/products/10/2.jpg", 185 | "https://dummyjson.com/image/i/products/10/3.jpg", 186 | "https://dummyjson.com/image/i/products/10/thumbnail.jpeg" 187 | ] 188 | }, 189 | { 190 | "id": 11, 191 | "title": "perfume Oil", 192 | "description": "Mega Discount, Impression of Acqua Di Gio by GiorgioArmani concentrated attar perfume Oil", 193 | "price": 13, 194 | "discountPercentage": 8.4, 195 | "rating": 4.26, 196 | "stock": 65, 197 | "brand": "Impression of Acqua Di Gio", 198 | "category": "fragrances", 199 | "thumbnail": "https://dummyjson.com/image/i/products/11/thumbnail.jpg", 200 | "images": [ 201 | "https://dummyjson.com/image/i/products/11/1.jpg", 202 | "https://dummyjson.com/image/i/products/11/2.jpg", 203 | "https://dummyjson.com/image/i/products/11/3.jpg", 204 | "https://dummyjson.com/image/i/products/11/thumbnail.jpg" 205 | ] 206 | }, 207 | { 208 | "id": 12, 209 | "title": "Brown Perfume", 210 | "description": "Royal_Mirage Sport Brown Perfume for Men & Women - 120ml", 211 | "price": 40, 212 | "discountPercentage": 15.66, 213 | "rating": 4, 214 | "stock": 52, 215 | "brand": "Royal_Mirage", 216 | "category": "fragrances", 217 | "thumbnail": "https://dummyjson.com/image/i/products/12/thumbnail.jpg", 218 | "images": [ 219 | "https://dummyjson.com/image/i/products/12/1.jpg", 220 | "https://dummyjson.com/image/i/products/12/2.jpg", 221 | "https://dummyjson.com/image/i/products/12/3.png", 222 | "https://dummyjson.com/image/i/products/12/4.jpg", 223 | "https://dummyjson.com/image/i/products/12/thumbnail.jpg" 224 | ] 225 | }, 226 | { 227 | "id": 13, 228 | "title": "Fog Scent Xpressio Perfume", 229 | "description": "Product details of Best Fog Scent Xpressio Perfume 100ml For Men cool long lasting perfumes for Men", 230 | "price": 13, 231 | "discountPercentage": 8.14, 232 | "rating": 4.59, 233 | "stock": 61, 234 | "brand": "Fog Scent Xpressio", 235 | "category": "fragrances", 236 | "thumbnail": "https://dummyjson.com/image/i/products/13/thumbnail.webp", 237 | "images": [ 238 | "https://dummyjson.com/image/i/products/13/1.jpg", 239 | "https://dummyjson.com/image/i/products/13/2.png", 240 | "https://dummyjson.com/image/i/products/13/3.jpg", 241 | "https://dummyjson.com/image/i/products/13/4.jpg", 242 | "https://dummyjson.com/image/i/products/13/thumbnail.webp" 243 | ] 244 | }, 245 | { 246 | "id": 14, 247 | "title": "Non-Alcoholic Concentrated Perfume Oil", 248 | "description": "Original Al Munakh® by Mahal Al Musk | Our Impression of Climate | 6ml Non-Alcoholic Concentrated Perfume Oil", 249 | "price": 120, 250 | "discountPercentage": 15.6, 251 | "rating": 4.21, 252 | "stock": 114, 253 | "brand": "Al Munakh", 254 | "category": "fragrances", 255 | "thumbnail": "https://dummyjson.com/image/i/products/14/thumbnail.jpg", 256 | "images": [ 257 | "https://dummyjson.com/image/i/products/14/1.jpg", 258 | "https://dummyjson.com/image/i/products/14/2.jpg", 259 | "https://dummyjson.com/image/i/products/14/3.jpg", 260 | "https://dummyjson.com/image/i/products/14/thumbnail.jpg" 261 | ] 262 | }, 263 | { 264 | "id": 15, 265 | "title": "Eau De Perfume Spray", 266 | "description": "Genuine Al-Rehab spray perfume from UAE/Saudi Arabia/Yemen High Quality", 267 | "price": 30, 268 | "discountPercentage": 10.99, 269 | "rating": 4.7, 270 | "stock": 105, 271 | "brand": "Lord - Al-Rehab", 272 | "category": "fragrances", 273 | "thumbnail": "https://dummyjson.com/image/i/products/15/thumbnail.jpg", 274 | "images": [ 275 | "https://dummyjson.com/image/i/products/15/1.jpg", 276 | "https://dummyjson.com/image/i/products/15/2.jpg", 277 | "https://dummyjson.com/image/i/products/15/3.jpg", 278 | "https://dummyjson.com/image/i/products/15/4.jpg", 279 | "https://dummyjson.com/image/i/products/15/thumbnail.jpg" 280 | ] 281 | }, 282 | { 283 | "id": 16, 284 | "title": "Hyaluronic Acid Serum", 285 | "description": "L'Oréal Paris introduces Hyaluron Expert Replumping Serum formulated with 1.5% Hyaluronic Acid", 286 | "price": 19, 287 | "discountPercentage": 13.31, 288 | "rating": 4.83, 289 | "stock": 110, 290 | "brand": "L'Oreal Paris", 291 | "category": "skincare", 292 | "thumbnail": "https://dummyjson.com/image/i/products/16/thumbnail.jpg", 293 | "images": [ 294 | "https://dummyjson.com/image/i/products/16/1.png", 295 | "https://dummyjson.com/image/i/products/16/2.webp", 296 | "https://dummyjson.com/image/i/products/16/3.jpg", 297 | "https://dummyjson.com/image/i/products/16/4.jpg", 298 | "https://dummyjson.com/image/i/products/16/thumbnail.jpg" 299 | ] 300 | }, 301 | { 302 | "id": 17, 303 | "title": "Tree Oil 30ml", 304 | "description": "Tea tree oil contains a number of compounds, including terpinen-4-ol, that have been shown to kill certain bacteria,", 305 | "price": 12, 306 | "discountPercentage": 4.09, 307 | "rating": 4.52, 308 | "stock": 78, 309 | "brand": "Hemani Tea", 310 | "category": "skincare", 311 | "thumbnail": "https://dummyjson.com/image/i/products/17/thumbnail.jpg", 312 | "images": [ 313 | "https://dummyjson.com/image/i/products/17/1.jpg", 314 | "https://dummyjson.com/image/i/products/17/2.jpg", 315 | "https://dummyjson.com/image/i/products/17/3.jpg", 316 | "https://dummyjson.com/image/i/products/17/thumbnail.jpg" 317 | ] 318 | }, 319 | { 320 | "id": 18, 321 | "title": "Oil Free Moisturizer 100ml", 322 | "description": "Dermive Oil Free Moisturizer with SPF 20 is specifically formulated with ceramides, hyaluronic acid & sunscreen.", 323 | "price": 40, 324 | "discountPercentage": 13.1, 325 | "rating": 4.56, 326 | "stock": 88, 327 | "brand": "Dermive", 328 | "category": "skincare", 329 | "thumbnail": "https://dummyjson.com/image/i/products/18/thumbnail.jpg", 330 | "images": [ 331 | "https://dummyjson.com/image/i/products/18/1.jpg", 332 | "https://dummyjson.com/image/i/products/18/2.jpg", 333 | "https://dummyjson.com/image/i/products/18/3.jpg", 334 | "https://dummyjson.com/image/i/products/18/4.jpg", 335 | "https://dummyjson.com/image/i/products/18/thumbnail.jpg" 336 | ] 337 | }, 338 | { 339 | "id": 19, 340 | "title": "Skin Beauty Serum.", 341 | "description": "Product name: rorec collagen hyaluronic acid white face serum riceNet weight: 15 m", 342 | "price": 46, 343 | "discountPercentage": 10.68, 344 | "rating": 4.42, 345 | "stock": 54, 346 | "brand": "ROREC White Rice", 347 | "category": "skincare", 348 | "thumbnail": "https://dummyjson.com/image/i/products/19/thumbnail.jpg", 349 | "images": [ 350 | "https://dummyjson.com/image/i/products/19/1.jpg", 351 | "https://dummyjson.com/image/i/products/19/2.jpg", 352 | "https://dummyjson.com/image/i/products/19/3.png", 353 | "https://dummyjson.com/image/i/products/19/thumbnail.jpg" 354 | ] 355 | }, 356 | { 357 | "id": 20, 358 | "title": "Freckle Treatment Cream- 15gm", 359 | "description": "Fair & Clear is Pakistan's only pure Freckle cream which helpsfade Freckles, Darkspots and pigments. Mercury level is 0%, so there are no side effects.", 360 | "price": 70, 361 | "discountPercentage": 16.99, 362 | "rating": 4.06, 363 | "stock": 140, 364 | "brand": "Fair & Clear", 365 | "category": "skincare", 366 | "thumbnail": "https://dummyjson.com/image/i/products/20/thumbnail.jpg", 367 | "images": [ 368 | "https://dummyjson.com/image/i/products/20/1.jpg", 369 | "https://dummyjson.com/image/i/products/20/2.jpg", 370 | "https://dummyjson.com/image/i/products/20/3.jpg", 371 | "https://dummyjson.com/image/i/products/20/4.jpg", 372 | "https://dummyjson.com/image/i/products/20/thumbnail.jpg" 373 | ] 374 | }, 375 | { 376 | "id": 21, 377 | "title": "- Daal Masoor 500 grams", 378 | "description": "Fine quality Branded Product Keep in a cool and dry place", 379 | "price": 20, 380 | "discountPercentage": 4.81, 381 | "rating": 4.44, 382 | "stock": 133, 383 | "brand": "Saaf & Khaas", 384 | "category": "groceries", 385 | "thumbnail": "https://dummyjson.com/image/i/products/21/thumbnail.png", 386 | "images": [ 387 | "https://dummyjson.com/image/i/products/21/1.png", 388 | "https://dummyjson.com/image/i/products/21/2.jpg", 389 | "https://dummyjson.com/image/i/products/21/3.jpg" 390 | ] 391 | }, 392 | { 393 | "id": 22, 394 | "title": "Elbow Macaroni - 400 gm", 395 | "description": "Product details of Bake Parlor Big Elbow Macaroni - 400 gm", 396 | "price": 14, 397 | "discountPercentage": 15.58, 398 | "rating": 4.57, 399 | "stock": 146, 400 | "brand": "Bake Parlor Big", 401 | "category": "groceries", 402 | "thumbnail": "https://dummyjson.com/image/i/products/22/thumbnail.jpg", 403 | "images": [ 404 | "https://dummyjson.com/image/i/products/22/1.jpg", 405 | "https://dummyjson.com/image/i/products/22/2.jpg", 406 | "https://dummyjson.com/image/i/products/22/3.jpg" 407 | ] 408 | }, 409 | { 410 | "id": 23, 411 | "title": "Orange Essence Food Flavou", 412 | "description": "Specifications of Orange Essence Food Flavour For Cakes and Baking Food Item", 413 | "price": 14, 414 | "discountPercentage": 8.04, 415 | "rating": 4.85, 416 | "stock": 26, 417 | "brand": "Baking Food Items", 418 | "category": "groceries", 419 | "thumbnail": "https://dummyjson.com/image/i/products/23/thumbnail.jpg", 420 | "images": [ 421 | "https://dummyjson.com/image/i/products/23/1.jpg", 422 | "https://dummyjson.com/image/i/products/23/2.jpg", 423 | "https://dummyjson.com/image/i/products/23/3.jpg", 424 | "https://dummyjson.com/image/i/products/23/4.jpg", 425 | "https://dummyjson.com/image/i/products/23/thumbnail.jpg" 426 | ] 427 | }, 428 | { 429 | "id": 24, 430 | "title": "cereals muesli fruit nuts", 431 | "description": "original fauji cereal muesli 250gm box pack original fauji cereals muesli fruit nuts flakes breakfast cereal break fast faujicereals cerels cerel foji fouji", 432 | "price": 46, 433 | "discountPercentage": 16.8, 434 | "rating": 4.94, 435 | "stock": 113, 436 | "brand": "fauji", 437 | "category": "groceries", 438 | "thumbnail": "https://dummyjson.com/image/i/products/24/thumbnail.jpg", 439 | "images": [ 440 | "https://dummyjson.com/image/i/products/24/1.jpg", 441 | "https://dummyjson.com/image/i/products/24/2.jpg", 442 | "https://dummyjson.com/image/i/products/24/3.jpg", 443 | "https://dummyjson.com/image/i/products/24/4.jpg", 444 | "https://dummyjson.com/image/i/products/24/thumbnail.jpg" 445 | ] 446 | }, 447 | { 448 | "id": 25, 449 | "title": "Gulab Powder 50 Gram", 450 | "description": "Dry Rose Flower Powder Gulab Powder 50 Gram • Treats Wounds", 451 | "price": 70, 452 | "discountPercentage": 13.58, 453 | "rating": 4.87, 454 | "stock": 47, 455 | "brand": "Dry Rose", 456 | "category": "groceries", 457 | "thumbnail": "https://dummyjson.com/image/i/products/25/thumbnail.jpg", 458 | "images": [ 459 | "https://dummyjson.com/image/i/products/25/1.png", 460 | "https://dummyjson.com/image/i/products/25/2.jpg", 461 | "https://dummyjson.com/image/i/products/25/3.png", 462 | "https://dummyjson.com/image/i/products/25/4.jpg", 463 | "https://dummyjson.com/image/i/products/25/thumbnail.jpg" 464 | ] 465 | }, 466 | { 467 | "id": 26, 468 | "title": "Plant Hanger For Home", 469 | "description": "Boho Decor Plant Hanger For Home Wall Decoration Macrame Wall Hanging Shelf", 470 | "price": 41, 471 | "discountPercentage": 17.86, 472 | "rating": 4.08, 473 | "stock": 131, 474 | "brand": "Boho Decor", 475 | "category": "home-decoration", 476 | "thumbnail": "https://dummyjson.com/image/i/products/26/thumbnail.jpg", 477 | "images": [ 478 | "https://dummyjson.com/image/i/products/26/1.jpg", 479 | "https://dummyjson.com/image/i/products/26/2.jpg", 480 | "https://dummyjson.com/image/i/products/26/3.jpg", 481 | "https://dummyjson.com/image/i/products/26/4.jpg", 482 | "https://dummyjson.com/image/i/products/26/5.jpg", 483 | "https://dummyjson.com/image/i/products/26/thumbnail.jpg" 484 | ] 485 | }, 486 | { 487 | "id": 27, 488 | "title": "Flying Wooden Bird", 489 | "description": "Package Include 6 Birds with Adhesive Tape Shape: 3D Shaped Wooden Birds Material: Wooden MDF, Laminated 3.5mm", 490 | "price": 51, 491 | "discountPercentage": 15.58, 492 | "rating": 4.41, 493 | "stock": 17, 494 | "brand": "Flying Wooden", 495 | "category": "home-decoration", 496 | "thumbnail": "https://dummyjson.com/image/i/products/27/thumbnail.webp", 497 | "images": [ 498 | "https://dummyjson.com/image/i/products/27/1.jpg", 499 | "https://dummyjson.com/image/i/products/27/2.jpg", 500 | "https://dummyjson.com/image/i/products/27/3.jpg", 501 | "https://dummyjson.com/image/i/products/27/4.jpg", 502 | "https://dummyjson.com/image/i/products/27/thumbnail.webp" 503 | ] 504 | }, 505 | { 506 | "id": 28, 507 | "title": "3D Embellishment Art Lamp", 508 | "description": "3D led lamp sticker Wall sticker 3d wall art light on/off button cell operated (included)", 509 | "price": 20, 510 | "discountPercentage": 16.49, 511 | "rating": 4.82, 512 | "stock": 54, 513 | "brand": "LED Lights", 514 | "category": "home-decoration", 515 | "thumbnail": "https://dummyjson.com/image/i/products/28/thumbnail.jpg", 516 | "images": [ 517 | "https://dummyjson.com/image/i/products/28/1.jpg", 518 | "https://dummyjson.com/image/i/products/28/2.jpg", 519 | "https://dummyjson.com/image/i/products/28/3.png", 520 | "https://dummyjson.com/image/i/products/28/4.jpg", 521 | "https://dummyjson.com/image/i/products/28/thumbnail.jpg" 522 | ] 523 | }, 524 | { 525 | "id": 29, 526 | "title": "Handcraft Chinese style", 527 | "description": "Handcraft Chinese style art luxury palace hotel villa mansion home decor ceramic vase with brass fruit plate", 528 | "price": 60, 529 | "discountPercentage": 15.34, 530 | "rating": 4.44, 531 | "stock": 7, 532 | "brand": "luxury palace", 533 | "category": "home-decoration", 534 | "thumbnail": "https://dummyjson.com/image/i/products/29/thumbnail.webp", 535 | "images": [ 536 | "https://dummyjson.com/image/i/products/29/1.jpg", 537 | "https://dummyjson.com/image/i/products/29/2.jpg", 538 | "https://dummyjson.com/image/i/products/29/3.webp", 539 | "https://dummyjson.com/image/i/products/29/4.webp", 540 | "https://dummyjson.com/image/i/products/29/thumbnail.webp" 541 | ] 542 | }, 543 | { 544 | "id": 30, 545 | "title": "Key Holder", 546 | "description": "Attractive DesignMetallic materialFour key hooksReliable & DurablePremium Quality", 547 | "price": 30, 548 | "discountPercentage": 2.92, 549 | "rating": 4.92, 550 | "stock": 54, 551 | "brand": "Golden", 552 | "category": "home-decoration", 553 | "thumbnail": "https://dummyjson.com/image/i/products/30/thumbnail.jpg", 554 | "images": [ 555 | "https://dummyjson.com/image/i/products/30/1.jpg", 556 | "https://dummyjson.com/image/i/products/30/2.jpg", 557 | "https://dummyjson.com/image/i/products/30/3.jpg", 558 | "https://dummyjson.com/image/i/products/30/thumbnail.jpg" 559 | ] 560 | } 561 | ] 562 | } 563 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-api-query", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@tanstack/react-query": "^4.10.1", 13 | "@tanstack/react-query-devtools": "^4.10.1", 14 | "axios": "^1.1.2", 15 | "react": "^18.2.0", 16 | "react-dom": "^18.2.0", 17 | "styled-components": "^5.3.6" 18 | }, 19 | "devDependencies": { 20 | "@types/react": "^18.0.17", 21 | "@types/react-dom": "^18.0.6", 22 | "@vitejs/plugin-react": "^2.1.0", 23 | "autoprefixer": "^10.4.12", 24 | "postcss": "^8.4.17", 25 | "tailwindcss": "^3.1.8", 26 | "vite": "^3.1.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | margin: 0 auto; 3 | text-align: center; 4 | } 5 | 6 | .logo { 7 | height: 6em; 8 | padding: 1.5em; 9 | will-change: filter; 10 | } 11 | .logo:hover { 12 | filter: drop-shadow(0 0 2em #646cffaa); 13 | } 14 | .logo.react:hover { 15 | filter: drop-shadow(0 0 2em #61dafbaa); 16 | } 17 | 18 | @keyframes logo-spin { 19 | from { 20 | transform: rotate(0deg); 21 | } 22 | to { 23 | transform: rotate(360deg); 24 | } 25 | } 26 | 27 | @media (prefers-reduced-motion: no-preference) { 28 | a:nth-of-type(2) .logo { 29 | animation: logo-spin infinite 20s linear; 30 | } 31 | } 32 | 33 | .card { 34 | padding: 2em; 35 | } 36 | 37 | .read-the-docs { 38 | color: #888; 39 | } 40 | -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import reactLogo from "./assets/react.svg"; 3 | import "./App.css"; 4 | import { WithReactQuery } from "./component/withReactQuery/withReactQuery"; 5 | import { Info } from "./component/withReactQuery/info"; 6 | import { Cart } from "./component/withReactQuery/cart"; 7 | 8 | function App() { 9 | return ( 10 |
11 |
12 | 13 | 14 | 15 |
16 |
17 | ); 18 | } 19 | 20 | export default App; 21 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/component/withGlobalStore/cart.jsx: -------------------------------------------------------------------------------- 1 | import { useQuery } from "@tanstack/react-query"; 2 | import { useMemo, useState } from "react"; 3 | import { fetchCart, fetchProducts } from "../fetchers/products"; 4 | import { CartDrawer } from "./cartDrawer"; 5 | import { Product } from "./product"; 6 | import { WithReactQuery } from "./withReactQuery"; 7 | 8 | export function Cart() { 9 | const [isOpen, setOpen] = useState(false); 10 | 11 | const toggleDrawer = () => { 12 | setOpen(!isOpen); 13 | }; 14 | 15 | return ( 16 | <> 17 |
18 | 28 |
29 | 30 | {isOpen && } 31 | 32 | ); 33 | } 34 | -------------------------------------------------------------------------------- /src/component/withGlobalStore/cartDrawer.jsx: -------------------------------------------------------------------------------- 1 | import { useQuery } from "@tanstack/react-query"; 2 | import { useEffect, useMemo } from "react"; 3 | import { fetchCart } from "../../fetchers/products"; 4 | import { Product } from "./product"; 5 | 6 | export function CartDrawer(props) { 7 | const { onClose } = props; 8 | 9 | const dispatch = useDispatch(); 10 | 11 | const products = useAppSelector((state) => state.products); 12 | const cart = useAppSelector((state) => state.cart); 13 | 14 | const isRefetchCart = useAppSelector((state) => state.isRefetchCart); 15 | 16 | const fetchCartProducts = async () => { 17 | const cart = await fetchCart(); 18 | dispatch(setCart(cart)); 19 | }; 20 | 21 | useEffect(() => { 22 | fetchCartProducts(); 23 | }, []); 24 | 25 | useEffect(() => { 26 | if (isRefetchCart) fetchCartProducts(); 27 | }, [isRefetchCart]); 28 | 29 | const cartProducts = useMemo( 30 | () => 31 | products && 32 | products.filter((product) => cart?.some((c) => c.id === product.id)) 33 | ); 34 | 35 | if (cartQuery.isLoading) return
Loading...
; 36 | 37 | return ( 38 |
44 |
48 | 61 | Your Cart 62 |
63 | 85 |
86 |
87 | {/*

Expensive calculation - {n}

*/} 88 | {cartProducts && 89 | cartProducts.map((product) => ( 90 | 91 | ))} 92 |
93 |
94 |
95 | ); 96 | } 97 | -------------------------------------------------------------------------------- /src/component/withGlobalStore/info.jsx: -------------------------------------------------------------------------------- 1 | import { useQuery } from "@tanstack/react-query"; 2 | import { useMemo } from "react"; 3 | import { fetchProducts } from "../fetchers/products"; 4 | 5 | export function Info() { 6 | const products = useAppSelector((state) => state.products); 7 | 8 | const TotalNumberOfProducts = products?.length; 9 | const numberOfProductsOver300 = useMemo( 10 | () => products?.filter((p) => p.price >= 300).length 11 | ); 12 | 13 | if (isLoading) return
Loading...
; 14 | 15 | return ( 16 |
17 |

Products Info:

18 | 19 | Toltal Products: {TotalNumberOfProducts} 20 | 21 | 22 | Number of Products over 300$: {numberOfProductsOver300} 23 | 24 |
25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /src/component/withGlobalStore/product.jsx: -------------------------------------------------------------------------------- 1 | import { useMutation, useQueryClient } from "@tanstack/react-query"; 2 | import axios from "axios"; 3 | import styled from "styled-components"; 4 | 5 | export function Product(props) { 6 | const { product } = props; 7 | const { 8 | id, 9 | title, 10 | description, 11 | price, 12 | rating, 13 | stock, 14 | brand, 15 | category, 16 | thumbnail, 17 | images, 18 | } = product; 19 | 20 | const triggerRefreshCart = useAppState((state) => state.triggerRefreshCart); 21 | 22 | //This what the mutation would look like! 23 | const onAddToCart = (event) => { 24 | const newProduct = { id }; 25 | console.log("Run: ", newProduct); 26 | const response = axios.post(`http://localhost:3000/cart`, newProduct); 27 | 28 | //TRIGGER FETCHING NEW PRODUCTS FROM CART! 29 | //This will go and instruct the component to refetch and update global store! 30 | triggerRefreshCart(); 31 | }; 32 | 33 | if (cartMutation.isLoading) return
Loading...
; 34 | 35 | return ( 36 |
37 | 38 | product image 39 | 40 |
41 | 42 |
43 | {title} 44 |
45 |
46 |
47 | 57 | 67 | 77 | 87 | 97 | 98 | 5.0 99 | 100 |
101 |
102 | 103 | ${price} 104 | 105 | 110 | Add to cart 111 | 112 |
113 |
114 |
115 | ); 116 | } 117 | -------------------------------------------------------------------------------- /src/component/withGlobalStore/store.js: -------------------------------------------------------------------------------- 1 | const initialState = { products: [], cart: [] }; 2 | 3 | const productsSlice = createSlice({ 4 | name: "counter", 5 | initialState, 6 | reducers: { 7 | setProducts: (state, action) => { 8 | state.products = action.payload; 9 | }, 10 | setCart: (state, action) => { 11 | state.cart = action.payload; 12 | }, 13 | }, 14 | }); 15 | 16 | export const { setProducts, setCart } = productsSlice.actions; 17 | export default productsSlice.reducer; 18 | -------------------------------------------------------------------------------- /src/component/withGlobalStore/withGlobalStore.jsx: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | import { useEffect, useState } from "react"; 3 | import { Product } from "./product"; 4 | 5 | export function WithUseEffect() { 6 | const products = useAppState((state) => state.products); 7 | 8 | const fetchProducts = async () => { 9 | console.log("Started fetching"); 10 | const response = await axios.get("https://dummyjson.com/products"); 11 | const products = response.data.products; 12 | 13 | console.log("Products: ", products); 14 | if (products) dispatch(setProducts(products)); 15 | }; 16 | 17 | useEffect(() => { 18 | console.log("Component mounted"); 19 | fetchProducts(); 20 | }, []); 21 | 22 | return ( 23 |
24 | {products.map((product) => ( 25 | 26 | ))} 27 |
28 | ); 29 | } 30 | -------------------------------------------------------------------------------- /src/component/withReactQuery/cart.jsx: -------------------------------------------------------------------------------- 1 | import { useQuery } from "@tanstack/react-query"; 2 | import { useMemo, useState } from "react"; 3 | import { fetchCart, fetchProducts } from "../../fetchers/products"; 4 | import { CartDrawer } from "./cartDrawer"; 5 | import { Product } from "./product"; 6 | import { WithReactQuery } from "./withReactQuery"; 7 | 8 | export function Cart() { 9 | const [isOpen, setOpen] = useState(false); 10 | 11 | const toggleDrawer = () => { 12 | setOpen(!isOpen); 13 | }; 14 | 15 | return ( 16 | <> 17 |
18 | 28 |
29 | 30 | {isOpen && } 31 | 32 | ); 33 | } 34 | -------------------------------------------------------------------------------- /src/component/withReactQuery/cartDrawer.jsx: -------------------------------------------------------------------------------- 1 | import { useQuery } from "@tanstack/react-query"; 2 | import { useMemo } from "react"; 3 | import { fetchCart, fetchProducts } from "../../fetchers/products"; 4 | import { Product } from "./product"; 5 | 6 | export function CartDrawer(props) { 7 | const { onClose } = props; 8 | 9 | const cartQuery = useQuery(["cart"], fetchCart, { staleTime: 60000 }); 10 | 11 | const productsQuery = useQuery(["products"], fetchProducts, { 12 | staleTime: 3000, 13 | }); 14 | 15 | const cart = cartQuery.data; 16 | const products = productsQuery.data; 17 | 18 | const cartProducts = useMemo( 19 | () => 20 | products && 21 | products.filter((product) => cart?.some((c) => c.id === product.id)) 22 | ); 23 | 24 | if (cartQuery.isLoading) return
Loading...
; 25 | 26 | return ( 27 |
33 |
37 | 50 | Your Cart 51 |
52 | 74 |
75 |
76 | {/*

Expensive calculation - {n}

*/} 77 | {cartProducts && 78 | cartProducts.map((product) => ( 79 | 80 | ))} 81 |
82 |
83 |
84 | ); 85 | } 86 | -------------------------------------------------------------------------------- /src/component/withReactQuery/info.jsx: -------------------------------------------------------------------------------- 1 | import { useQuery } from "@tanstack/react-query"; 2 | import { useMemo } from "react"; 3 | import { fetchProducts } from "../../fetchers/products"; 4 | 5 | export function Info() { 6 | const { isError, isSuccess, isLoading, data, error } = useQuery( 7 | ["products"], 8 | fetchProducts, 9 | { staleTime: 3000 } 10 | ); 11 | const products = data; 12 | console.log("Products: ", products); 13 | 14 | const TotalNumberOfProducts = products?.length; 15 | const numberOfProductsOver300 = useMemo( 16 | () => products?.filter((p) => p.price >= 300).length 17 | ); 18 | 19 | if (isLoading) return
Loading...
; 20 | 21 | return ( 22 |
23 |

Products Info:

24 | 25 | Toltal Products: {TotalNumberOfProducts} 26 | 27 | 28 | Number of Products over 300$: {numberOfProductsOver300} 29 | 30 |
31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /src/component/withReactQuery/product.jsx: -------------------------------------------------------------------------------- 1 | import { useMutation, useQueryClient } from "@tanstack/react-query"; 2 | import axios from "axios"; 3 | import styled from "styled-components"; 4 | 5 | export function Product(props) { 6 | const { product } = props; 7 | const { 8 | id, 9 | title, 10 | description, 11 | price, 12 | rating, 13 | stock, 14 | brand, 15 | category, 16 | thumbnail, 17 | images, 18 | } = product; 19 | 20 | const queryClient = useQueryClient(); 21 | 22 | //MUTATION (Add Product to Cart through API-POST) 23 | const cartMutation = useMutation( 24 | (newProduct) => { 25 | console.log("Run: ", newProduct); 26 | return axios.post(`http://localhost:3000/cart`, newProduct); 27 | }, 28 | { 29 | onSuccess: () => { 30 | queryClient.invalidateQueries(["products"]); 31 | queryClient.refetchQueries("products", { force: true }); 32 | }, 33 | } 34 | ); 35 | 36 | const onAddToCart = (event) => { 37 | event.preventDefault(); 38 | cartMutation.mutate({ id }); 39 | }; 40 | 41 | if (cartMutation.isLoading) return
Loading...
; 42 | 43 | return ( 44 |
45 | 46 | product image 47 | 48 |
49 | 50 |
51 | {title} 52 |
53 |
54 |
55 | 65 | 75 | 85 | 95 | 105 | 106 | 5.0 107 | 108 |
109 |
110 | 111 | ${price} 112 | 113 | 118 | Add to cart 119 | 120 |
121 |
122 |
123 | ); 124 | } 125 | -------------------------------------------------------------------------------- /src/component/withReactQuery/withReactQuery.jsx: -------------------------------------------------------------------------------- 1 | import { QueryClient, useQuery } from "@tanstack/react-query"; 2 | import axios from "axios"; 3 | import { useEffect, useState } from "react"; 4 | import { fetchProducts } from "../../fetchers/products"; 5 | import { Product } from "./product"; 6 | 7 | export function WithReactQuery() { 8 | console.log("Render"); 9 | 10 | const { isError, isSuccess, isLoading, data, error } = useQuery( 11 | ["products"], 12 | fetchProducts, 13 | { staleTime: 3000 } 14 | ); 15 | 16 | if (isLoading) { 17 | console.log("Loading..."); 18 | return
Loading...
; 19 | } 20 | 21 | if (isError) { 22 | console.log("Error: ", error); 23 | return
Error...
; 24 | } 25 | 26 | return ( 27 |
28 | {data && 29 | data.map((product) => )} 30 |
31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /src/component/withReactQuery/withUseEffect.jsx: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | import { useEffect, useState } from "react"; 3 | import { Product } from "./product"; 4 | 5 | export function WithUseEffect() { 6 | const [products, setProducts] = useState([]); 7 | const [isLoading, setLoading] = useState(false); 8 | const [error, setError] = useState(null); 9 | 10 | const fetchProducts = async () => { 11 | try { 12 | setLoading(true); 13 | 14 | console.log("Started fetching"); 15 | const response = await axios.get("http://localhost:3000/products"); 16 | const products = response.data; 17 | 18 | console.log("Products: ", products); 19 | if (products) setProducts(products); 20 | } catch (err) { 21 | setError(err); 22 | } 23 | 24 | setLoading(false); 25 | }; 26 | 27 | useEffect(() => { 28 | console.log("Component mounted"); 29 | fetchProducts(); 30 | }, []); 31 | 32 | if (isLoading) return
Loading...
; 33 | 34 | return ( 35 |
36 | {products.map((product) => ( 37 | 38 | ))} 39 |
40 | ); 41 | } 42 | -------------------------------------------------------------------------------- /src/fetchers/products.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | 3 | export const fetchProducts = async () => { 4 | console.log("Fetching products"); 5 | const response = await axios.get("http://localhost:3000/products"); 6 | const products = response.data; 7 | 8 | console.log("Products: ", products); 9 | return products; 10 | }; 11 | 12 | export const fetchCart = async () => { 13 | console.log("Fetching Cart"); 14 | const response = await axios.get("http://localhost:3000/cart"); 15 | const cart = response.data; 16 | 17 | console.log("Cart: ", cart); 18 | return cart; 19 | }; 20 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | html, 6 | body, 7 | #root { 8 | width: 100%; 9 | height: 100%; 10 | } 11 | 12 | :root { 13 | font-family: Inter, Avenir, Helvetica, Arial, sans-serif; 14 | font-size: 16px; 15 | line-height: 24px; 16 | font-weight: 400; 17 | 18 | color-scheme: light dark; 19 | /* color: rgba(255, 255, 255, 0.87); */ 20 | /* background-color: #242424; */ 21 | 22 | font-synthesis: none; 23 | text-rendering: optimizeLegibility; 24 | -webkit-font-smoothing: antialiased; 25 | -moz-osx-font-smoothing: grayscale; 26 | -webkit-text-size-adjust: 100%; 27 | } 28 | 29 | a { 30 | font-weight: 500; 31 | color: #646cff; 32 | text-decoration: inherit; 33 | } 34 | a:hover { 35 | color: #535bf2; 36 | } 37 | 38 | body { 39 | margin: 0; 40 | display: flex; 41 | place-items: center; 42 | min-width: 320px; 43 | min-height: 100vh; 44 | } 45 | 46 | h1 { 47 | font-size: 3.2em; 48 | line-height: 1.1; 49 | } 50 | 51 | button { 52 | border-radius: 8px; 53 | border: 1px solid transparent; 54 | padding: 0.6em 1.2em; 55 | font-size: 1em; 56 | font-weight: 500; 57 | font-family: inherit; 58 | background-color: #1a1a1a; 59 | cursor: pointer; 60 | transition: border-color 0.25s; 61 | } 62 | button:hover { 63 | border-color: #646cff; 64 | } 65 | button:focus, 66 | button:focus-visible { 67 | outline: 4px auto -webkit-focus-ring-color; 68 | } 69 | 70 | @media (prefers-color-scheme: light) { 71 | :root { 72 | color: #213547; 73 | background-color: #ffffff; 74 | } 75 | a:hover { 76 | color: #747bff; 77 | } 78 | button { 79 | background-color: #f9f9f9; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; 2 | import React from "react"; 3 | import ReactDOM from "react-dom/client"; 4 | import App from "./App"; 5 | import "./index.css"; 6 | import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; 7 | 8 | const queryClient = new QueryClient({ 9 | defaultOptions: { queries: { staleTime: 60000 } }, 10 | }); 11 | 12 | ReactDOM.createRoot(document.getElementById("root")).render( 13 | // 14 | 15 | 16 | 17 | 18 | // 19 | ); 20 | -------------------------------------------------------------------------------- /tailwind.config.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | }; 9 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 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.19.3": 21 | version "7.19.3" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.3.tgz#707b939793f867f5a73b2666e6d9a3396eb03151" 23 | integrity sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw== 24 | 25 | "@babel/core@^7.18.13": 26 | version "7.19.3" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" 28 | integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.18.6" 32 | "@babel/generator" "^7.19.3" 33 | "@babel/helper-compilation-targets" "^7.19.3" 34 | "@babel/helper-module-transforms" "^7.19.0" 35 | "@babel/helpers" "^7.19.0" 36 | "@babel/parser" "^7.19.3" 37 | "@babel/template" "^7.18.10" 38 | "@babel/traverse" "^7.19.3" 39 | "@babel/types" "^7.19.3" 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.19.3": 47 | version "7.19.3" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" 49 | integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== 50 | dependencies: 51 | "@babel/types" "^7.19.3" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": 56 | version "7.18.6" 57 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" 58 | integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== 59 | dependencies: 60 | "@babel/types" "^7.18.6" 61 | 62 | "@babel/helper-compilation-targets@^7.19.3": 63 | version "7.19.3" 64 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" 65 | integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== 66 | dependencies: 67 | "@babel/compat-data" "^7.19.3" 68 | "@babel/helper-validator-option" "^7.18.6" 69 | browserslist "^4.21.3" 70 | semver "^6.3.0" 71 | 72 | "@babel/helper-environment-visitor@^7.18.9": 73 | version "7.18.9" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 75 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 76 | 77 | "@babel/helper-function-name@^7.19.0": 78 | version "7.19.0" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" 80 | integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== 81 | dependencies: 82 | "@babel/template" "^7.18.10" 83 | "@babel/types" "^7.19.0" 84 | 85 | "@babel/helper-hoist-variables@^7.18.6": 86 | version "7.18.6" 87 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 88 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 89 | dependencies: 90 | "@babel/types" "^7.18.6" 91 | 92 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.18.6": 93 | version "7.18.6" 94 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" 95 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 96 | dependencies: 97 | "@babel/types" "^7.18.6" 98 | 99 | "@babel/helper-module-transforms@^7.19.0": 100 | version "7.19.0" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" 102 | integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== 103 | dependencies: 104 | "@babel/helper-environment-visitor" "^7.18.9" 105 | "@babel/helper-module-imports" "^7.18.6" 106 | "@babel/helper-simple-access" "^7.18.6" 107 | "@babel/helper-split-export-declaration" "^7.18.6" 108 | "@babel/helper-validator-identifier" "^7.18.6" 109 | "@babel/template" "^7.18.10" 110 | "@babel/traverse" "^7.19.0" 111 | "@babel/types" "^7.19.0" 112 | 113 | "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0": 114 | version "7.19.0" 115 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" 116 | integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== 117 | 118 | "@babel/helper-simple-access@^7.18.6": 119 | version "7.18.6" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" 121 | integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== 122 | dependencies: 123 | "@babel/types" "^7.18.6" 124 | 125 | "@babel/helper-split-export-declaration@^7.18.6": 126 | version "7.18.6" 127 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 128 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 129 | dependencies: 130 | "@babel/types" "^7.18.6" 131 | 132 | "@babel/helper-string-parser@^7.18.10": 133 | version "7.18.10" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" 135 | integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== 136 | 137 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 138 | version "7.19.1" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 140 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 141 | 142 | "@babel/helper-validator-option@^7.18.6": 143 | version "7.18.6" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" 145 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 146 | 147 | "@babel/helpers@^7.19.0": 148 | version "7.19.0" 149 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" 150 | integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== 151 | dependencies: 152 | "@babel/template" "^7.18.10" 153 | "@babel/traverse" "^7.19.0" 154 | "@babel/types" "^7.19.0" 155 | 156 | "@babel/highlight@^7.18.6": 157 | version "7.18.6" 158 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 159 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 160 | dependencies: 161 | "@babel/helper-validator-identifier" "^7.18.6" 162 | chalk "^2.0.0" 163 | js-tokens "^4.0.0" 164 | 165 | "@babel/parser@^7.18.10", "@babel/parser@^7.19.3": 166 | version "7.19.3" 167 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" 168 | integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== 169 | 170 | "@babel/plugin-syntax-jsx@^7.18.6": 171 | version "7.18.6" 172 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" 173 | integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== 174 | dependencies: 175 | "@babel/helper-plugin-utils" "^7.18.6" 176 | 177 | "@babel/plugin-transform-react-jsx-development@^7.18.6": 178 | version "7.18.6" 179 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" 180 | integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== 181 | dependencies: 182 | "@babel/plugin-transform-react-jsx" "^7.18.6" 183 | 184 | "@babel/plugin-transform-react-jsx-self@^7.18.6": 185 | version "7.18.6" 186 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7" 187 | integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig== 188 | dependencies: 189 | "@babel/helper-plugin-utils" "^7.18.6" 190 | 191 | "@babel/plugin-transform-react-jsx-source@^7.18.6": 192 | version "7.18.6" 193 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz#06e9ae8a14d2bc19ce6e3c447d842032a50598fc" 194 | integrity sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw== 195 | dependencies: 196 | "@babel/helper-plugin-utils" "^7.18.6" 197 | 198 | "@babel/plugin-transform-react-jsx@^7.18.10", "@babel/plugin-transform-react-jsx@^7.18.6": 199 | version "7.19.0" 200 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" 201 | integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== 202 | dependencies: 203 | "@babel/helper-annotate-as-pure" "^7.18.6" 204 | "@babel/helper-module-imports" "^7.18.6" 205 | "@babel/helper-plugin-utils" "^7.19.0" 206 | "@babel/plugin-syntax-jsx" "^7.18.6" 207 | "@babel/types" "^7.19.0" 208 | 209 | "@babel/template@^7.18.10": 210 | version "7.18.10" 211 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" 212 | integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== 213 | dependencies: 214 | "@babel/code-frame" "^7.18.6" 215 | "@babel/parser" "^7.18.10" 216 | "@babel/types" "^7.18.10" 217 | 218 | "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.4.5": 219 | version "7.19.3" 220 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" 221 | integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== 222 | dependencies: 223 | "@babel/code-frame" "^7.18.6" 224 | "@babel/generator" "^7.19.3" 225 | "@babel/helper-environment-visitor" "^7.18.9" 226 | "@babel/helper-function-name" "^7.19.0" 227 | "@babel/helper-hoist-variables" "^7.18.6" 228 | "@babel/helper-split-export-declaration" "^7.18.6" 229 | "@babel/parser" "^7.19.3" 230 | "@babel/types" "^7.19.3" 231 | debug "^4.1.0" 232 | globals "^11.1.0" 233 | 234 | "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.3": 235 | version "7.19.3" 236 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" 237 | integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== 238 | dependencies: 239 | "@babel/helper-string-parser" "^7.18.10" 240 | "@babel/helper-validator-identifier" "^7.19.1" 241 | to-fast-properties "^2.0.0" 242 | 243 | "@emotion/is-prop-valid@^1.1.0": 244 | version "1.2.0" 245 | resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" 246 | integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== 247 | dependencies: 248 | "@emotion/memoize" "^0.8.0" 249 | 250 | "@emotion/memoize@^0.8.0": 251 | version "0.8.0" 252 | resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" 253 | integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== 254 | 255 | "@emotion/stylis@^0.8.4": 256 | version "0.8.5" 257 | resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" 258 | integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== 259 | 260 | "@emotion/unitless@^0.7.4": 261 | version "0.7.5" 262 | resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" 263 | integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== 264 | 265 | "@esbuild/android-arm@0.15.10": 266 | version "0.15.10" 267 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.10.tgz#a5f9432eb221afc243c321058ef25fe899886892" 268 | integrity sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg== 269 | 270 | "@esbuild/linux-loong64@0.15.10": 271 | version "0.15.10" 272 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz#78a42897c2cf8db9fd5f1811f7590393b77774c7" 273 | integrity sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg== 274 | 275 | "@jridgewell/gen-mapping@^0.1.0": 276 | version "0.1.1" 277 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 278 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 279 | dependencies: 280 | "@jridgewell/set-array" "^1.0.0" 281 | "@jridgewell/sourcemap-codec" "^1.4.10" 282 | 283 | "@jridgewell/gen-mapping@^0.3.2": 284 | version "0.3.2" 285 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 286 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 287 | dependencies: 288 | "@jridgewell/set-array" "^1.0.1" 289 | "@jridgewell/sourcemap-codec" "^1.4.10" 290 | "@jridgewell/trace-mapping" "^0.3.9" 291 | 292 | "@jridgewell/resolve-uri@^3.0.3": 293 | version "3.1.0" 294 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 295 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 296 | 297 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 298 | version "1.1.2" 299 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 300 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 301 | 302 | "@jridgewell/sourcemap-codec@^1.4.10": 303 | version "1.4.14" 304 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 305 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 306 | 307 | "@jridgewell/trace-mapping@^0.3.9": 308 | version "0.3.15" 309 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" 310 | integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== 311 | dependencies: 312 | "@jridgewell/resolve-uri" "^3.0.3" 313 | "@jridgewell/sourcemap-codec" "^1.4.10" 314 | 315 | "@nodelib/fs.scandir@2.1.5": 316 | version "2.1.5" 317 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 318 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 319 | dependencies: 320 | "@nodelib/fs.stat" "2.0.5" 321 | run-parallel "^1.1.9" 322 | 323 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 324 | version "2.0.5" 325 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 326 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 327 | 328 | "@nodelib/fs.walk@^1.2.3": 329 | version "1.2.8" 330 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 331 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 332 | dependencies: 333 | "@nodelib/fs.scandir" "2.1.5" 334 | fastq "^1.6.0" 335 | 336 | "@tanstack/match-sorter-utils@^8.1.1": 337 | version "8.5.14" 338 | resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.5.14.tgz#12efcd536abe491d09521e0242bc4d51442f8a8a" 339 | integrity sha512-lVNhzTcOJ2bZ4IU+PeCPQ36vowBHvviJb2ZfdRFX5uhy7G0jM8N34zAMbmS5ZmVH8D2B7oU82OWo0e/5ZFzQrw== 340 | dependencies: 341 | remove-accents "0.4.2" 342 | 343 | "@tanstack/query-core@4.10.1": 344 | version "4.10.1" 345 | resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.10.1.tgz#a587e39c28a905168bdf8a3906e36715c30ec083" 346 | integrity sha512-UZRYzjgQSfYhQ+cJX0CspAbzutf8p93gR1xFjQuH3OYcb/7t3WnHkdb/qC9mbqrfWXN/JAbBTJlTU/XQHc5HbA== 347 | 348 | "@tanstack/react-query-devtools@^4.10.1": 349 | version "4.10.1" 350 | resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-4.10.1.tgz#6b1d9d5e15cb44048f9ed9b4e64a4df4cac76ab2" 351 | integrity sha512-aPsFBr9zbylnQxQoCNzPF1teN+NVGdeU1xQO515FM3gq6uISUWbqirVj/mE6HHJJpH/zi0j6HD1StD5h1XdNmg== 352 | dependencies: 353 | "@tanstack/match-sorter-utils" "^8.1.1" 354 | superjson "^1.10.0" 355 | use-sync-external-store "^1.2.0" 356 | 357 | "@tanstack/react-query@^4.10.1": 358 | version "4.10.1" 359 | resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.10.1.tgz#baab36cf41362ed75a00ef0aa31e96e20a065124" 360 | integrity sha512-6GaLYAsAu/4aX6HR4krpOej9qbKWXe0X0eccikpv5hAw4CoAAPG29Pydql1nTl9cYF2zd21unVm4yApklFY0AA== 361 | dependencies: 362 | "@tanstack/query-core" "4.10.1" 363 | use-sync-external-store "^1.2.0" 364 | 365 | "@types/prop-types@*": 366 | version "15.7.5" 367 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 368 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 369 | 370 | "@types/react-dom@^18.0.6": 371 | version "18.0.6" 372 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" 373 | integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== 374 | dependencies: 375 | "@types/react" "*" 376 | 377 | "@types/react@*", "@types/react@^18.0.17": 378 | version "18.0.21" 379 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.21.tgz#b8209e9626bb00a34c76f55482697edd2b43cc67" 380 | integrity sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA== 381 | dependencies: 382 | "@types/prop-types" "*" 383 | "@types/scheduler" "*" 384 | csstype "^3.0.2" 385 | 386 | "@types/scheduler@*": 387 | version "0.16.2" 388 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 389 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 390 | 391 | "@vitejs/plugin-react@^2.1.0": 392 | version "2.1.0" 393 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-2.1.0.tgz#4c99df15e71d2630601bd3018093bdc787d40e55" 394 | integrity sha512-am6rPyyU3LzUYne3Gd9oj9c4Rzbq5hQnuGXSMT6Gujq45Il/+bunwq3lrB7wghLkiF45ygMwft37vgJ/NE8IAA== 395 | dependencies: 396 | "@babel/core" "^7.18.13" 397 | "@babel/plugin-transform-react-jsx" "^7.18.10" 398 | "@babel/plugin-transform-react-jsx-development" "^7.18.6" 399 | "@babel/plugin-transform-react-jsx-self" "^7.18.6" 400 | "@babel/plugin-transform-react-jsx-source" "^7.18.6" 401 | magic-string "^0.26.2" 402 | react-refresh "^0.14.0" 403 | 404 | acorn-node@^1.8.2: 405 | version "1.8.2" 406 | resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" 407 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== 408 | dependencies: 409 | acorn "^7.0.0" 410 | acorn-walk "^7.0.0" 411 | xtend "^4.0.2" 412 | 413 | acorn-walk@^7.0.0: 414 | version "7.2.0" 415 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" 416 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== 417 | 418 | acorn@^7.0.0: 419 | version "7.4.1" 420 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 421 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 422 | 423 | ansi-styles@^3.2.1: 424 | version "3.2.1" 425 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 426 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 427 | dependencies: 428 | color-convert "^1.9.0" 429 | 430 | anymatch@~3.1.2: 431 | version "3.1.2" 432 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 433 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 434 | dependencies: 435 | normalize-path "^3.0.0" 436 | picomatch "^2.0.4" 437 | 438 | arg@^5.0.2: 439 | version "5.0.2" 440 | resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" 441 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== 442 | 443 | asynckit@^0.4.0: 444 | version "0.4.0" 445 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 446 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 447 | 448 | autoprefixer@^10.4.12: 449 | version "10.4.12" 450 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.12.tgz#183f30bf0b0722af54ee5ef257f7d4320bb33129" 451 | integrity sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q== 452 | dependencies: 453 | browserslist "^4.21.4" 454 | caniuse-lite "^1.0.30001407" 455 | fraction.js "^4.2.0" 456 | normalize-range "^0.1.2" 457 | picocolors "^1.0.0" 458 | postcss-value-parser "^4.2.0" 459 | 460 | axios@^1.1.2: 461 | version "1.1.2" 462 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.2.tgz#8b6f6c540abf44ab98d9904e8daf55351ca4a331" 463 | integrity sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA== 464 | dependencies: 465 | follow-redirects "^1.15.0" 466 | form-data "^4.0.0" 467 | proxy-from-env "^1.1.0" 468 | 469 | "babel-plugin-styled-components@>= 1.12.0": 470 | version "2.0.7" 471 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz#c81ef34b713f9da2b7d3f5550df0d1e19e798086" 472 | integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== 473 | dependencies: 474 | "@babel/helper-annotate-as-pure" "^7.16.0" 475 | "@babel/helper-module-imports" "^7.16.0" 476 | babel-plugin-syntax-jsx "^6.18.0" 477 | lodash "^4.17.11" 478 | picomatch "^2.3.0" 479 | 480 | babel-plugin-syntax-jsx@^6.18.0: 481 | version "6.18.0" 482 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 483 | integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== 484 | 485 | binary-extensions@^2.0.0: 486 | version "2.2.0" 487 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 488 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 489 | 490 | braces@^3.0.2, braces@~3.0.2: 491 | version "3.0.2" 492 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 493 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 494 | dependencies: 495 | fill-range "^7.0.1" 496 | 497 | browserslist@^4.21.3, browserslist@^4.21.4: 498 | version "4.21.4" 499 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" 500 | integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== 501 | dependencies: 502 | caniuse-lite "^1.0.30001400" 503 | electron-to-chromium "^1.4.251" 504 | node-releases "^2.0.6" 505 | update-browserslist-db "^1.0.9" 506 | 507 | camelcase-css@^2.0.1: 508 | version "2.0.1" 509 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" 510 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== 511 | 512 | camelize@^1.0.0: 513 | version "1.0.0" 514 | resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" 515 | integrity sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg== 516 | 517 | caniuse-lite@^1.0.30001400: 518 | version "1.0.30001416" 519 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001416.tgz#29692af8a6a11412f2d3cf9a59d588fcdd21ce4c" 520 | integrity sha512-06wzzdAkCPZO+Qm4e/eNghZBDfVNDsCgw33T27OwBH9unE9S478OYw//Q2L7Npf/zBzs7rjZOszIFQkwQKAEqA== 521 | 522 | caniuse-lite@^1.0.30001407: 523 | version "1.0.30001418" 524 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz#5f459215192a024c99e3e3a53aac310fc7cf24e6" 525 | integrity sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg== 526 | 527 | chalk@^2.0.0: 528 | version "2.4.2" 529 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 530 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 531 | dependencies: 532 | ansi-styles "^3.2.1" 533 | escape-string-regexp "^1.0.5" 534 | supports-color "^5.3.0" 535 | 536 | chokidar@^3.5.3: 537 | version "3.5.3" 538 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 539 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 540 | dependencies: 541 | anymatch "~3.1.2" 542 | braces "~3.0.2" 543 | glob-parent "~5.1.2" 544 | is-binary-path "~2.1.0" 545 | is-glob "~4.0.1" 546 | normalize-path "~3.0.0" 547 | readdirp "~3.6.0" 548 | optionalDependencies: 549 | fsevents "~2.3.2" 550 | 551 | color-convert@^1.9.0: 552 | version "1.9.3" 553 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 554 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 555 | dependencies: 556 | color-name "1.1.3" 557 | 558 | color-name@1.1.3: 559 | version "1.1.3" 560 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 561 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 562 | 563 | color-name@^1.1.4: 564 | version "1.1.4" 565 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 566 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 567 | 568 | combined-stream@^1.0.8: 569 | version "1.0.8" 570 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 571 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 572 | dependencies: 573 | delayed-stream "~1.0.0" 574 | 575 | convert-source-map@^1.7.0: 576 | version "1.8.0" 577 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" 578 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 579 | dependencies: 580 | safe-buffer "~5.1.1" 581 | 582 | copy-anything@^3.0.2: 583 | version "3.0.2" 584 | resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.2.tgz#7189171ff5e1893b2287e8bf574b8cd448ed50b1" 585 | integrity sha512-CzATjGXzUQ0EvuvgOCI6A4BGOo2bcVx8B+eC2nF862iv9fopnPQwlrbACakNCHRIJbCSBj+J/9JeDf60k64MkA== 586 | dependencies: 587 | is-what "^4.1.6" 588 | 589 | css-color-keywords@^1.0.0: 590 | version "1.0.0" 591 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 592 | integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== 593 | 594 | css-to-react-native@^3.0.0: 595 | version "3.0.0" 596 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" 597 | integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== 598 | dependencies: 599 | camelize "^1.0.0" 600 | css-color-keywords "^1.0.0" 601 | postcss-value-parser "^4.0.2" 602 | 603 | cssesc@^3.0.0: 604 | version "3.0.0" 605 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 606 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 607 | 608 | csstype@^3.0.2: 609 | version "3.1.1" 610 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" 611 | integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== 612 | 613 | debug@^4.1.0: 614 | version "4.3.4" 615 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 616 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 617 | dependencies: 618 | ms "2.1.2" 619 | 620 | defined@^1.0.0: 621 | version "1.0.0" 622 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" 623 | integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== 624 | 625 | delayed-stream@~1.0.0: 626 | version "1.0.0" 627 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 628 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 629 | 630 | detective@^5.2.1: 631 | version "5.2.1" 632 | resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" 633 | integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== 634 | dependencies: 635 | acorn-node "^1.8.2" 636 | defined "^1.0.0" 637 | minimist "^1.2.6" 638 | 639 | didyoumean@^1.2.2: 640 | version "1.2.2" 641 | resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" 642 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== 643 | 644 | dlv@^1.1.3: 645 | version "1.1.3" 646 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" 647 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== 648 | 649 | electron-to-chromium@^1.4.251: 650 | version "1.4.275" 651 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.275.tgz#db25c8e39c9cc910a996d1ec9b73eee834cb0ac1" 652 | integrity sha512-aJeQQ+Hl9Jyyzv4chBqYJwmVRY46N5i2BEX5Cuyk/5gFCUZ5F3i7Hnba6snZftWla7Gglwc5pIgcd+E7cW+rPg== 653 | 654 | esbuild-android-64@0.15.10: 655 | version "0.15.10" 656 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz#8a59a84acbf2eca96996cadc35642cf055c494f0" 657 | integrity sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA== 658 | 659 | esbuild-android-arm64@0.15.10: 660 | version "0.15.10" 661 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz#f453851dc1d8c5409a38cf7613a33852faf4915d" 662 | integrity sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg== 663 | 664 | esbuild-darwin-64@0.15.10: 665 | version "0.15.10" 666 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz#778bd29c8186ff47b176c8af58c08cf0fb8e6b86" 667 | integrity sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA== 668 | 669 | esbuild-darwin-arm64@0.15.10: 670 | version "0.15.10" 671 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz#b30bbefb46dc3c5d4708b0435e52f6456578d6df" 672 | integrity sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ== 673 | 674 | esbuild-freebsd-64@0.15.10: 675 | version "0.15.10" 676 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz#ab301c5f6ded5110dbdd611140bef1a7c2e99236" 677 | integrity sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w== 678 | 679 | esbuild-freebsd-arm64@0.15.10: 680 | version "0.15.10" 681 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz#a5b09b867a6ff49110f52343b6f12265db63d43f" 682 | integrity sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg== 683 | 684 | esbuild-linux-32@0.15.10: 685 | version "0.15.10" 686 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz#5282fe9915641caf9c8070e4ba2c3e16d358f837" 687 | integrity sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w== 688 | 689 | esbuild-linux-64@0.15.10: 690 | version "0.15.10" 691 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz#f3726e85a00149580cb19f8abfabcbb96f5d52bb" 692 | integrity sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA== 693 | 694 | esbuild-linux-arm64@0.15.10: 695 | version "0.15.10" 696 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz#2f0056e9d5286edb0185b56655caa8c574d8dbe7" 697 | integrity sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A== 698 | 699 | esbuild-linux-arm@0.15.10: 700 | version "0.15.10" 701 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz#40a9270da3c8ffa32cf72e24a79883e323dff08d" 702 | integrity sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A== 703 | 704 | esbuild-linux-mips64le@0.15.10: 705 | version "0.15.10" 706 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz#90ce1c4ee0202edb4ac69807dea77f7e5804abc4" 707 | integrity sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q== 708 | 709 | esbuild-linux-ppc64le@0.15.10: 710 | version "0.15.10" 711 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz#782837ae7bd5b279178106c9dd801755a21fabdf" 712 | integrity sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ== 713 | 714 | esbuild-linux-riscv64@0.15.10: 715 | version "0.15.10" 716 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz#d7420d806ece5174f24f4634303146f915ab4207" 717 | integrity sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q== 718 | 719 | esbuild-linux-s390x@0.15.10: 720 | version "0.15.10" 721 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz#21fdf0cb3494a7fb520a71934e4dffce67fe47be" 722 | integrity sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA== 723 | 724 | esbuild-netbsd-64@0.15.10: 725 | version "0.15.10" 726 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz#6c06b3107e3df53de381e6299184d4597db0440f" 727 | integrity sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw== 728 | 729 | esbuild-openbsd-64@0.15.10: 730 | version "0.15.10" 731 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz#4daef5f5d8e74bbda53b65160029445d582570cf" 732 | integrity sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ== 733 | 734 | esbuild-sunos-64@0.15.10: 735 | version "0.15.10" 736 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz#5fe7bef267a02f322fd249a8214d0274937388a7" 737 | integrity sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg== 738 | 739 | esbuild-windows-32@0.15.10: 740 | version "0.15.10" 741 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz#48e3dde25ab0135579a288b30ab6ddef6d1f0b28" 742 | integrity sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg== 743 | 744 | esbuild-windows-64@0.15.10: 745 | version "0.15.10" 746 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz#387a9515bef3fee502d277a5d0a2db49a4ecda05" 747 | integrity sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA== 748 | 749 | esbuild-windows-arm64@0.15.10: 750 | version "0.15.10" 751 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz#5a6fcf2fa49e895949bf5495cf088ab1b43ae879" 752 | integrity sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw== 753 | 754 | esbuild@^0.15.9: 755 | version "0.15.10" 756 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.10.tgz#85c2f8446e9b1fe04fae68daceacba033eedbd42" 757 | integrity sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng== 758 | optionalDependencies: 759 | "@esbuild/android-arm" "0.15.10" 760 | "@esbuild/linux-loong64" "0.15.10" 761 | esbuild-android-64 "0.15.10" 762 | esbuild-android-arm64 "0.15.10" 763 | esbuild-darwin-64 "0.15.10" 764 | esbuild-darwin-arm64 "0.15.10" 765 | esbuild-freebsd-64 "0.15.10" 766 | esbuild-freebsd-arm64 "0.15.10" 767 | esbuild-linux-32 "0.15.10" 768 | esbuild-linux-64 "0.15.10" 769 | esbuild-linux-arm "0.15.10" 770 | esbuild-linux-arm64 "0.15.10" 771 | esbuild-linux-mips64le "0.15.10" 772 | esbuild-linux-ppc64le "0.15.10" 773 | esbuild-linux-riscv64 "0.15.10" 774 | esbuild-linux-s390x "0.15.10" 775 | esbuild-netbsd-64 "0.15.10" 776 | esbuild-openbsd-64 "0.15.10" 777 | esbuild-sunos-64 "0.15.10" 778 | esbuild-windows-32 "0.15.10" 779 | esbuild-windows-64 "0.15.10" 780 | esbuild-windows-arm64 "0.15.10" 781 | 782 | escalade@^3.1.1: 783 | version "3.1.1" 784 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 785 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 786 | 787 | escape-string-regexp@^1.0.5: 788 | version "1.0.5" 789 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 790 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 791 | 792 | fast-glob@^3.2.11: 793 | version "3.2.12" 794 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" 795 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== 796 | dependencies: 797 | "@nodelib/fs.stat" "^2.0.2" 798 | "@nodelib/fs.walk" "^1.2.3" 799 | glob-parent "^5.1.2" 800 | merge2 "^1.3.0" 801 | micromatch "^4.0.4" 802 | 803 | fastq@^1.6.0: 804 | version "1.13.0" 805 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 806 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 807 | dependencies: 808 | reusify "^1.0.4" 809 | 810 | fill-range@^7.0.1: 811 | version "7.0.1" 812 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 813 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 814 | dependencies: 815 | to-regex-range "^5.0.1" 816 | 817 | follow-redirects@^1.15.0: 818 | version "1.15.2" 819 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" 820 | integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== 821 | 822 | form-data@^4.0.0: 823 | version "4.0.0" 824 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 825 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 826 | dependencies: 827 | asynckit "^0.4.0" 828 | combined-stream "^1.0.8" 829 | mime-types "^2.1.12" 830 | 831 | fraction.js@^4.2.0: 832 | version "4.2.0" 833 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" 834 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== 835 | 836 | fsevents@~2.3.2: 837 | version "2.3.2" 838 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 839 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 840 | 841 | function-bind@^1.1.1: 842 | version "1.1.1" 843 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 844 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 845 | 846 | gensync@^1.0.0-beta.2: 847 | version "1.0.0-beta.2" 848 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 849 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 850 | 851 | glob-parent@^5.1.2, glob-parent@~5.1.2: 852 | version "5.1.2" 853 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 854 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 855 | dependencies: 856 | is-glob "^4.0.1" 857 | 858 | glob-parent@^6.0.2: 859 | version "6.0.2" 860 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 861 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 862 | dependencies: 863 | is-glob "^4.0.3" 864 | 865 | globals@^11.1.0: 866 | version "11.12.0" 867 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 868 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 869 | 870 | has-flag@^3.0.0: 871 | version "3.0.0" 872 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 873 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 874 | 875 | has@^1.0.3: 876 | version "1.0.3" 877 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 878 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 879 | dependencies: 880 | function-bind "^1.1.1" 881 | 882 | hoist-non-react-statics@^3.0.0: 883 | version "3.3.2" 884 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" 885 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== 886 | dependencies: 887 | react-is "^16.7.0" 888 | 889 | is-binary-path@~2.1.0: 890 | version "2.1.0" 891 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 892 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 893 | dependencies: 894 | binary-extensions "^2.0.0" 895 | 896 | is-core-module@^2.9.0: 897 | version "2.10.0" 898 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" 899 | integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== 900 | dependencies: 901 | has "^1.0.3" 902 | 903 | is-extglob@^2.1.1: 904 | version "2.1.1" 905 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 906 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 907 | 908 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 909 | version "4.0.3" 910 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 911 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 912 | dependencies: 913 | is-extglob "^2.1.1" 914 | 915 | is-number@^7.0.0: 916 | version "7.0.0" 917 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 918 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 919 | 920 | is-what@^4.1.6: 921 | version "4.1.7" 922 | resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.7.tgz#c41dc1d2d2d6a9285c624c2505f61849c8b1f9cc" 923 | integrity sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ== 924 | 925 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 926 | version "4.0.0" 927 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 928 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 929 | 930 | jsesc@^2.5.1: 931 | version "2.5.2" 932 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 933 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 934 | 935 | json5@^2.2.1: 936 | version "2.2.1" 937 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" 938 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 939 | 940 | lilconfig@^2.0.5, lilconfig@^2.0.6: 941 | version "2.0.6" 942 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" 943 | integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== 944 | 945 | lodash@^4.17.11: 946 | version "4.17.21" 947 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 948 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 949 | 950 | loose-envify@^1.1.0: 951 | version "1.4.0" 952 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 953 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 954 | dependencies: 955 | js-tokens "^3.0.0 || ^4.0.0" 956 | 957 | magic-string@^0.26.2: 958 | version "0.26.6" 959 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.6.tgz#b61e417c9f40b7b53bf7e73c0a803258e20d25ee" 960 | integrity sha512-6d+3bFybzyQFJYSoRsl9ZC0wheze8M1LrQC7tNMRqXR4izUTDOLMd9BtSuExK9iAukFh+s5K0WAhc/dlQ+HKYA== 961 | dependencies: 962 | sourcemap-codec "^1.4.8" 963 | 964 | merge2@^1.3.0: 965 | version "1.4.1" 966 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 967 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 968 | 969 | micromatch@^4.0.4: 970 | version "4.0.5" 971 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 972 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 973 | dependencies: 974 | braces "^3.0.2" 975 | picomatch "^2.3.1" 976 | 977 | mime-db@1.52.0: 978 | version "1.52.0" 979 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 980 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 981 | 982 | mime-types@^2.1.12: 983 | version "2.1.35" 984 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 985 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 986 | dependencies: 987 | mime-db "1.52.0" 988 | 989 | minimist@^1.2.6: 990 | version "1.2.6" 991 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" 992 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 993 | 994 | ms@2.1.2: 995 | version "2.1.2" 996 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 997 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 998 | 999 | nanoid@^3.3.4: 1000 | version "3.3.4" 1001 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 1002 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 1003 | 1004 | node-releases@^2.0.6: 1005 | version "2.0.6" 1006 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" 1007 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== 1008 | 1009 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1010 | version "3.0.0" 1011 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1012 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1013 | 1014 | normalize-range@^0.1.2: 1015 | version "0.1.2" 1016 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" 1017 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== 1018 | 1019 | object-hash@^3.0.0: 1020 | version "3.0.0" 1021 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" 1022 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== 1023 | 1024 | path-parse@^1.0.7: 1025 | version "1.0.7" 1026 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1027 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1028 | 1029 | picocolors@^1.0.0: 1030 | version "1.0.0" 1031 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1032 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1033 | 1034 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0, picomatch@^2.3.1: 1035 | version "2.3.1" 1036 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1037 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1038 | 1039 | pify@^2.3.0: 1040 | version "2.3.0" 1041 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1042 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 1043 | 1044 | postcss-import@^14.1.0: 1045 | version "14.1.0" 1046 | resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" 1047 | integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== 1048 | dependencies: 1049 | postcss-value-parser "^4.0.0" 1050 | read-cache "^1.0.0" 1051 | resolve "^1.1.7" 1052 | 1053 | postcss-js@^4.0.0: 1054 | version "4.0.0" 1055 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" 1056 | integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== 1057 | dependencies: 1058 | camelcase-css "^2.0.1" 1059 | 1060 | postcss-load-config@^3.1.4: 1061 | version "3.1.4" 1062 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" 1063 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== 1064 | dependencies: 1065 | lilconfig "^2.0.5" 1066 | yaml "^1.10.2" 1067 | 1068 | postcss-nested@5.0.6: 1069 | version "5.0.6" 1070 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" 1071 | integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== 1072 | dependencies: 1073 | postcss-selector-parser "^6.0.6" 1074 | 1075 | postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: 1076 | version "6.0.10" 1077 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" 1078 | integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== 1079 | dependencies: 1080 | cssesc "^3.0.0" 1081 | util-deprecate "^1.0.2" 1082 | 1083 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0: 1084 | version "4.2.0" 1085 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 1086 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 1087 | 1088 | postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.17: 1089 | version "8.4.17" 1090 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.17.tgz#f87863ec7cd353f81f7ab2dec5d67d861bbb1be5" 1091 | integrity sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q== 1092 | dependencies: 1093 | nanoid "^3.3.4" 1094 | picocolors "^1.0.0" 1095 | source-map-js "^1.0.2" 1096 | 1097 | proxy-from-env@^1.1.0: 1098 | version "1.1.0" 1099 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 1100 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 1101 | 1102 | queue-microtask@^1.2.2: 1103 | version "1.2.3" 1104 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1105 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1106 | 1107 | quick-lru@^5.1.1: 1108 | version "5.1.1" 1109 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 1110 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 1111 | 1112 | react-dom@^18.2.0: 1113 | version "18.2.0" 1114 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 1115 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 1116 | dependencies: 1117 | loose-envify "^1.1.0" 1118 | scheduler "^0.23.0" 1119 | 1120 | react-is@^16.7.0: 1121 | version "16.13.1" 1122 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1123 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1124 | 1125 | react-refresh@^0.14.0: 1126 | version "0.14.0" 1127 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" 1128 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== 1129 | 1130 | react@^18.2.0: 1131 | version "18.2.0" 1132 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 1133 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 1134 | dependencies: 1135 | loose-envify "^1.1.0" 1136 | 1137 | read-cache@^1.0.0: 1138 | version "1.0.0" 1139 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" 1140 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== 1141 | dependencies: 1142 | pify "^2.3.0" 1143 | 1144 | readdirp@~3.6.0: 1145 | version "3.6.0" 1146 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1147 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1148 | dependencies: 1149 | picomatch "^2.2.1" 1150 | 1151 | remove-accents@0.4.2: 1152 | version "0.4.2" 1153 | resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" 1154 | integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== 1155 | 1156 | resolve@^1.1.7, resolve@^1.22.1: 1157 | version "1.22.1" 1158 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 1159 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 1160 | dependencies: 1161 | is-core-module "^2.9.0" 1162 | path-parse "^1.0.7" 1163 | supports-preserve-symlinks-flag "^1.0.0" 1164 | 1165 | reusify@^1.0.4: 1166 | version "1.0.4" 1167 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1168 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1169 | 1170 | rollup@~2.78.0: 1171 | version "2.78.1" 1172 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" 1173 | integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== 1174 | optionalDependencies: 1175 | fsevents "~2.3.2" 1176 | 1177 | run-parallel@^1.1.9: 1178 | version "1.2.0" 1179 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1180 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1181 | dependencies: 1182 | queue-microtask "^1.2.2" 1183 | 1184 | safe-buffer@~5.1.1: 1185 | version "5.1.2" 1186 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1187 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1188 | 1189 | scheduler@^0.23.0: 1190 | version "0.23.0" 1191 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 1192 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 1193 | dependencies: 1194 | loose-envify "^1.1.0" 1195 | 1196 | semver@^6.3.0: 1197 | version "6.3.0" 1198 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1199 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1200 | 1201 | shallowequal@^1.1.0: 1202 | version "1.1.0" 1203 | resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" 1204 | integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== 1205 | 1206 | source-map-js@^1.0.2: 1207 | version "1.0.2" 1208 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1209 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1210 | 1211 | sourcemap-codec@^1.4.8: 1212 | version "1.4.8" 1213 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1214 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1215 | 1216 | styled-components@^5.3.6: 1217 | version "5.3.6" 1218 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.6.tgz#27753c8c27c650bee9358e343fc927966bfd00d1" 1219 | integrity sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg== 1220 | dependencies: 1221 | "@babel/helper-module-imports" "^7.0.0" 1222 | "@babel/traverse" "^7.4.5" 1223 | "@emotion/is-prop-valid" "^1.1.0" 1224 | "@emotion/stylis" "^0.8.4" 1225 | "@emotion/unitless" "^0.7.4" 1226 | babel-plugin-styled-components ">= 1.12.0" 1227 | css-to-react-native "^3.0.0" 1228 | hoist-non-react-statics "^3.0.0" 1229 | shallowequal "^1.1.0" 1230 | supports-color "^5.5.0" 1231 | 1232 | superjson@^1.10.0: 1233 | version "1.10.0" 1234 | resolved "https://registry.yarnpkg.com/superjson/-/superjson-1.10.0.tgz#279362e6c1789b0b6bdfa280e82ee43d0e0fa514" 1235 | integrity sha512-ks6I5fm5KXUbDqt4Epe1VwkKDaC9+kIj5HF7yhiHjChFne0EkFqsnTv1mdHE2IT6fq2CzLC3zeA/fw0BRIoNwA== 1236 | dependencies: 1237 | copy-anything "^3.0.2" 1238 | 1239 | supports-color@^5.3.0, supports-color@^5.5.0: 1240 | version "5.5.0" 1241 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1242 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1243 | dependencies: 1244 | has-flag "^3.0.0" 1245 | 1246 | supports-preserve-symlinks-flag@^1.0.0: 1247 | version "1.0.0" 1248 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1249 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1250 | 1251 | tailwindcss@^3.1.8: 1252 | version "3.1.8" 1253 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741" 1254 | integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g== 1255 | dependencies: 1256 | arg "^5.0.2" 1257 | chokidar "^3.5.3" 1258 | color-name "^1.1.4" 1259 | detective "^5.2.1" 1260 | didyoumean "^1.2.2" 1261 | dlv "^1.1.3" 1262 | fast-glob "^3.2.11" 1263 | glob-parent "^6.0.2" 1264 | is-glob "^4.0.3" 1265 | lilconfig "^2.0.6" 1266 | normalize-path "^3.0.0" 1267 | object-hash "^3.0.0" 1268 | picocolors "^1.0.0" 1269 | postcss "^8.4.14" 1270 | postcss-import "^14.1.0" 1271 | postcss-js "^4.0.0" 1272 | postcss-load-config "^3.1.4" 1273 | postcss-nested "5.0.6" 1274 | postcss-selector-parser "^6.0.10" 1275 | postcss-value-parser "^4.2.0" 1276 | quick-lru "^5.1.1" 1277 | resolve "^1.22.1" 1278 | 1279 | to-fast-properties@^2.0.0: 1280 | version "2.0.0" 1281 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1282 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1283 | 1284 | to-regex-range@^5.0.1: 1285 | version "5.0.1" 1286 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1287 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1288 | dependencies: 1289 | is-number "^7.0.0" 1290 | 1291 | update-browserslist-db@^1.0.9: 1292 | version "1.0.10" 1293 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 1294 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 1295 | dependencies: 1296 | escalade "^3.1.1" 1297 | picocolors "^1.0.0" 1298 | 1299 | use-sync-external-store@^1.2.0: 1300 | version "1.2.0" 1301 | resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" 1302 | integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== 1303 | 1304 | util-deprecate@^1.0.2: 1305 | version "1.0.2" 1306 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1307 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1308 | 1309 | vite@^3.1.0: 1310 | version "3.1.6" 1311 | resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.6.tgz#4c6db3000326342c918204a42a130fb3ffed2414" 1312 | integrity sha512-qMXIwnehvvcK5XfJiXQUiTxoYAEMKhM+jqCY6ZSTKFBKu1hJnAKEzP3AOcnTerI0cMZYAaJ4wpW1wiXLMDt4mA== 1313 | dependencies: 1314 | esbuild "^0.15.9" 1315 | postcss "^8.4.16" 1316 | resolve "^1.22.1" 1317 | rollup "~2.78.0" 1318 | optionalDependencies: 1319 | fsevents "~2.3.2" 1320 | 1321 | xtend@^4.0.2: 1322 | version "4.0.2" 1323 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1324 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1325 | 1326 | yaml@^1.10.2: 1327 | version "1.10.2" 1328 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 1329 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 1330 | --------------------------------------------------------------------------------