├── .gitignore ├── README.md ├── db.json ├── index.html ├── package.json ├── postcss.config.cjs ├── public └── vite.svg ├── src ├── App.css ├── App.tsx ├── assets │ ├── react.svg │ └── typescript-mistakes.png ├── components │ └── user.tsx ├── essentials │ ├── enums.ts │ ├── is.ts │ ├── satisfies.ts │ ├── unknown.ts │ └── utilityTypes.ts ├── examples │ └── unknown │ │ └── index.tsx ├── index.css ├── main.tsx └── vite-env.d.ts ├── tailwind.config.cjs ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Typescript Junior Mistakes 2 | 3 | ![Typescript Dos and Don'ts](/src/assets/typescript-mistakes.png) 4 | 5 | All the principles are explained on CoderOne's youtube channel: https://youtu.be/MSq_DCRxOxw 6 | 7 | ## Code 8 | 9 | This Repo has examples for all best Typescript practices and junior mistakes 10 | All practices are inside othe `src/essentials` folder. 11 | 12 | You can run the dev server using: 13 | 14 | ```bash 15 | yarn install 16 | yarn dev 17 | ``` 18 | -------------------------------------------------------------------------------- /db.json: -------------------------------------------------------------------------------- 1 | { 2 | "users": [ 3 | { 4 | "id": 1, 5 | "firstName": "Terry", 6 | "lastName": "Medhurst", 7 | "maidenName": "Smitham", 8 | "token": "44-33-5553f", 9 | "age": 50, 10 | "gender": "male", 11 | "email": "atuny0@sohu.com", 12 | "phone": "+63 791 675 8914", 13 | "username": "atuny0", 14 | "password": "9uQFF1Lh", 15 | "birthDate": "2000-12-25", 16 | "image": "https://robohash.org/hicveldicta.png", 17 | "bloodGroup": "A−", 18 | "height": 189, 19 | "weight": 75.4, 20 | "eyeColor": "Green", 21 | "hair": { 22 | "color": "Black", 23 | "type": "Strands" 24 | }, 25 | "domain": "slashdot.org", 26 | "ip": "117.29.86.254", 27 | "address": { 28 | "address": "1745 T Street Southeast", 29 | "city": "Washington", 30 | "coordinates": { 31 | "lat": 38.867033, 32 | "lng": -76.979235 33 | }, 34 | "postalCode": "20020", 35 | "state": "DC" 36 | }, 37 | "macAddress": "13:69:BA:56:A3:74", 38 | "university": "Capitol University", 39 | "bank": { 40 | "cardExpire": "06/22", 41 | "cardNumber": "50380955204220685", 42 | "cardType": "maestro", 43 | "currency": "Peso", 44 | "iban": "NO17 0695 2754 967" 45 | }, 46 | "company": { 47 | "address": { 48 | "address": "629 Debbie Drive", 49 | "city": "Nashville", 50 | "coordinates": { 51 | "lat": 36.208114, 52 | "lng": -86.58621199999999 53 | }, 54 | "postalCode": "37076", 55 | "state": "TN" 56 | }, 57 | "department": "Marketing", 58 | "name": "Blanda-O'Keefe", 59 | "title": "Help Desk Operator" 60 | }, 61 | "ein": "20-9487066", 62 | "ssn": "661-64-2976", 63 | "userAgent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/12.0.702.0 Safari/534.24" 64 | }, 65 | { 66 | "id": 2, 67 | "firstName": "Sheldon", 68 | "lastName": "Quigley", 69 | "maidenName": "Cole", 70 | "age": 28, 71 | "gender": "male", 72 | "email": "hbingley1@plala.or.jp", 73 | "phone": "+7 813 117 7139", 74 | "username": "hbingley1", 75 | "password": "CQutx25i8r", 76 | "birthDate": "2003-08-02", 77 | "image": "https://robohash.org/doloremquesintcorrupti.png", 78 | "bloodGroup": "O+", 79 | "height": 187, 80 | "weight": 74, 81 | "eyeColor": "Brown", 82 | "hair": { 83 | "color": "Blond", 84 | "type": "Curly" 85 | }, 86 | "domain": "51.la", 87 | "ip": "253.240.20.181", 88 | "address": { 89 | "address": "6007 Applegate Lane", 90 | "city": "Louisville", 91 | "coordinates": { 92 | "lat": 38.1343013, 93 | "lng": -85.6498512 94 | }, 95 | "postalCode": "40219", 96 | "state": "KY" 97 | }, 98 | "macAddress": "13:F1:00:DA:A4:12", 99 | "university": "Stavropol State Technical University", 100 | "bank": { 101 | "cardExpire": "10/23", 102 | "cardNumber": "5355920631952404", 103 | "cardType": "mastercard", 104 | "currency": "Ruble", 105 | "iban": "MD63 L6YC 8YH4 QVQB XHIK MTML" 106 | }, 107 | "company": { 108 | "address": { 109 | "address": "8821 West Myrtle Avenue", 110 | "city": "Glendale", 111 | "coordinates": { 112 | "lat": 33.5404296, 113 | "lng": -112.2488391 114 | }, 115 | "postalCode": "85305", 116 | "state": "AZ" 117 | }, 118 | "department": "Services", 119 | "name": "Aufderhar-Cronin", 120 | "title": "Senior Cost Accountant" 121 | }, 122 | "ein": "52-5262907", 123 | "ssn": "447-08-9217", 124 | "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30" 125 | }, 126 | { 127 | "id": 3, 128 | "firstName": "Terrill", 129 | "lastName": "Hills", 130 | "maidenName": "Hoeger", 131 | "age": 38, 132 | "gender": "male", 133 | "email": "rshawe2@51.la", 134 | "phone": "+63 739 292 7942", 135 | "username": "rshawe2", 136 | "password": "OWsTbMUgFc", 137 | "birthDate": "1992-12-30", 138 | "image": "https://robohash.org/consequunturautconsequatur.png", 139 | "bloodGroup": "A−", 140 | "height": 200, 141 | "weight": 105.3, 142 | "eyeColor": "Gray", 143 | "hair": { 144 | "color": "Blond", 145 | "type": "Very curly" 146 | }, 147 | "domain": "earthlink.net", 148 | "ip": "205.226.160.3", 149 | "address": { 150 | "address": "560 Penstock Drive", 151 | "city": "Grass Valley", 152 | "coordinates": { 153 | "lat": 39.213076, 154 | "lng": -121.077583 155 | }, 156 | "postalCode": "95945", 157 | "state": "CA" 158 | }, 159 | "macAddress": "F2:88:58:64:F7:76", 160 | "university": "University of Cagayan Valley", 161 | "bank": { 162 | "cardExpire": "10/23", 163 | "cardNumber": "3586082982526703", 164 | "cardType": "jcb", 165 | "currency": "Peso", 166 | "iban": "AT24 1095 9625 1434 9703" 167 | }, 168 | "company": { 169 | "address": { 170 | "address": "18 Densmore Drive", 171 | "city": "Essex", 172 | "coordinates": { 173 | "lat": 44.492953, 174 | "lng": -73.101883 175 | }, 176 | "postalCode": "05452", 177 | "state": "VT" 178 | }, 179 | "department": "Marketing", 180 | "name": "Lindgren LLC", 181 | "title": "Mechanical Systems Engineer" 182 | }, 183 | "ein": "48-3951994", 184 | "ssn": "633-89-1926", 185 | "userAgent": "Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:21.0.0) Gecko/20121011 Firefox/21.0.0" 186 | }, 187 | { 188 | "id": 4, 189 | "firstName": "Miles", 190 | "lastName": "Cummerata", 191 | "maidenName": "Maggio", 192 | "age": 49, 193 | "gender": "male", 194 | "email": "yraigatt3@nature.com", 195 | "phone": "+86 461 145 4186", 196 | "username": "yraigatt3", 197 | "password": "sRQxjPfdS", 198 | "birthDate": "1969-01-16", 199 | "image": "https://robohash.org/facilisdignissimosdolore.png", 200 | "bloodGroup": "B+", 201 | "height": 157, 202 | "weight": 95.9, 203 | "eyeColor": "Gray", 204 | "hair": { 205 | "color": "Blond", 206 | "type": "Very curly" 207 | }, 208 | "domain": "homestead.com", 209 | "ip": "243.20.78.113", 210 | "address": { 211 | "address": "150 Carter Street", 212 | "city": "Manchester", 213 | "coordinates": { 214 | "lat": 41.76556000000001, 215 | "lng": -72.473091 216 | }, 217 | "postalCode": "06040", 218 | "state": "CT" 219 | }, 220 | "macAddress": "03:45:58:59:5A:7B", 221 | "university": "Shenyang Pharmaceutical University", 222 | "bank": { 223 | "cardExpire": "07/24", 224 | "cardNumber": "3580047879369323", 225 | "cardType": "jcb", 226 | "currency": "Yuan Renminbi", 227 | "iban": "KZ43 658B M6VS TZOU OXSO" 228 | }, 229 | "company": { 230 | "address": { 231 | "address": "210 Green Road", 232 | "city": "Manchester", 233 | "coordinates": { 234 | "lat": 41.7909099, 235 | "lng": -72.51195129999999 236 | }, 237 | "postalCode": "06042", 238 | "state": "CT" 239 | }, 240 | "department": "Business Development", 241 | "name": "Wolff and Sons", 242 | "title": "Paralegal" 243 | }, 244 | "ein": "71-3644334", 245 | "ssn": "487-28-6642", 246 | "userAgent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.17 Safari/537.11" 247 | }, 248 | { 249 | "id": 5, 250 | "firstName": "Mavis", 251 | "lastName": "Schultz", 252 | "maidenName": "Yundt", 253 | "age": 38, 254 | "gender": "male", 255 | "email": "kmeus4@upenn.edu", 256 | "phone": "+372 285 771 1911", 257 | "username": "kmeus4", 258 | "password": "aUTdmmmbH", 259 | "birthDate": "1968-11-03", 260 | "image": "https://robohash.org/adverovelit.png", 261 | "bloodGroup": "O+", 262 | "height": 188, 263 | "weight": 106.3, 264 | "eyeColor": "Brown", 265 | "hair": { 266 | "color": "Brown", 267 | "type": "Curly" 268 | }, 269 | "domain": "columbia.edu", 270 | "ip": "103.72.86.183", 271 | "address": { 272 | "address": "2721 Lindsay Avenue", 273 | "city": "Louisville", 274 | "coordinates": { 275 | "lat": 38.263793, 276 | "lng": -85.700243 277 | }, 278 | "postalCode": "40206", 279 | "state": "KY" 280 | }, 281 | "macAddress": "F8:04:9E:ED:C0:68", 282 | "university": "Estonian University of Life Sciences", 283 | "bank": { 284 | "cardExpire": "01/24", 285 | "cardNumber": "4917245076693618", 286 | "cardType": "visa-electron", 287 | "currency": "Euro", 288 | "iban": "IT41 T114 5127 716J RGYB ZRUX DSJ" 289 | }, 290 | "company": { 291 | "address": { 292 | "address": "8398 West Denton Lane", 293 | "city": "Glendale", 294 | "coordinates": { 295 | "lat": 33.515353, 296 | "lng": -112.240812 297 | }, 298 | "postalCode": "85305", 299 | "state": "AZ" 300 | }, 301 | "department": "Support", 302 | "name": "Adams Inc", 303 | "title": "Web Developer I" 304 | }, 305 | "ein": "18-7178563", 306 | "ssn": "667-98-5357", 307 | "userAgent": "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.1 Safari/535.1" 308 | }, 309 | { 310 | "id": 6, 311 | "firstName": "Alison", 312 | "lastName": "Reichert", 313 | "maidenName": "Franecki", 314 | "age": 21, 315 | "gender": "female", 316 | "email": "jtreleven5@nhs.uk", 317 | "phone": "+351 527 735 3642", 318 | "username": "jtreleven5", 319 | "password": "zY1nE46Zm", 320 | "birthDate": "1969-07-21", 321 | "image": "https://robohash.org/laboriosamfacilisrem.png", 322 | "bloodGroup": "A+", 323 | "height": 149, 324 | "weight": 105.7, 325 | "eyeColor": "Amber", 326 | "hair": { 327 | "color": "Blond", 328 | "type": "Straight" 329 | }, 330 | "domain": "bandcamp.com", 331 | "ip": "49.201.206.36", 332 | "address": { 333 | "address": "18 Densmore Drive", 334 | "city": "Essex", 335 | "coordinates": { 336 | "lat": 44.492953, 337 | "lng": -73.101883 338 | }, 339 | "postalCode": "05452", 340 | "state": "VT" 341 | }, 342 | "macAddress": "6C:34:D0:4B:4E:81", 343 | "university": "Universidade da Beira Interior", 344 | "bank": { 345 | "cardExpire": "03/22", 346 | "cardNumber": "345675888286047", 347 | "cardType": "americanexpress", 348 | "currency": "Euro", 349 | "iban": "LB69 1062 QCY5 XS5T VOKU KJFG XP4S" 350 | }, 351 | "company": { 352 | "address": { 353 | "address": "6231 North 67th Avenue", 354 | "city": "Glendale", 355 | "coordinates": { 356 | "lat": 33.5279666, 357 | "lng": -112.2022551 358 | }, 359 | "postalCode": "85301", 360 | "state": "AZ" 361 | }, 362 | "department": "Accounting", 363 | "name": "D'Amore and Sons", 364 | "title": "Civil Engineer" 365 | }, 366 | "ein": "78-3192791", 367 | "ssn": "158-68-0184", 368 | "userAgent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; nb-NO) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 369 | }, 370 | { 371 | "id": 7, 372 | "firstName": "Oleta", 373 | "lastName": "Abbott", 374 | "maidenName": "Wyman", 375 | "age": 31, 376 | "gender": "female", 377 | "email": "dpettegre6@columbia.edu", 378 | "phone": "+62 640 802 7111", 379 | "username": "dpettegre6", 380 | "password": "YVmhktgYVS", 381 | "birthDate": "1982-02-21", 382 | "image": "https://robohash.org/cupiditatererumquos.png", 383 | "bloodGroup": "B−", 384 | "height": 172, 385 | "weight": 78.1, 386 | "eyeColor": "Blue", 387 | "hair": { 388 | "color": "Chestnut", 389 | "type": "Wavy" 390 | }, 391 | "domain": "ovh.net", 392 | "ip": "25.207.107.146", 393 | "address": { 394 | "address": "637 Britannia Drive", 395 | "city": "Vallejo", 396 | "coordinates": { 397 | "lat": 38.10476999999999, 398 | "lng": -122.193849 399 | }, 400 | "postalCode": "94591", 401 | "state": "CA" 402 | }, 403 | "macAddress": "48:2D:A0:67:19:E0", 404 | "university": "Institut Sains dan Teknologi Al Kamal", 405 | "bank": { 406 | "cardExpire": "10/23", 407 | "cardNumber": "3589640949470047", 408 | "cardType": "jcb", 409 | "currency": "Rupiah", 410 | "iban": "GI97 IKPF 9DUO X25M FG8D UXY" 411 | }, 412 | "company": { 413 | "address": { 414 | "address": "1407 Walden Court", 415 | "city": "Crofton", 416 | "coordinates": { 417 | "lat": 39.019306, 418 | "lng": -76.660653 419 | }, 420 | "postalCode": "21114", 421 | "state": "MD" 422 | }, 423 | "department": "Product Management", 424 | "name": "Schimmel, Wilderman and Orn", 425 | "title": "Sales Associate" 426 | }, 427 | "ein": "29-1568401", 428 | "ssn": "478-11-2206", 429 | "userAgent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 430 | }, 431 | { 432 | "id": 8, 433 | "firstName": "Ewell", 434 | "lastName": "Mueller", 435 | "maidenName": "Durgan", 436 | "age": 29, 437 | "gender": "male", 438 | "email": "ggude7@chron.com", 439 | "phone": "+86 946 297 2275", 440 | "username": "ggude7", 441 | "password": "MWwlaeWcOoF6", 442 | "birthDate": "1964-08-24", 443 | "image": "https://robohash.org/quiaharumsapiente.png", 444 | "bloodGroup": "A−", 445 | "height": 146, 446 | "weight": 52.1, 447 | "eyeColor": "Blue", 448 | "hair": { 449 | "color": "Chestnut", 450 | "type": "Wavy" 451 | }, 452 | "domain": "homestead.com", 453 | "ip": "91.200.56.127", 454 | "address": { 455 | "address": "5601 West Crocus Drive", 456 | "city": "Glendale", 457 | "coordinates": { 458 | "lat": 33.6152469, 459 | "lng": -112.179737 460 | }, 461 | "postalCode": "85306", 462 | "state": "AZ" 463 | }, 464 | "macAddress": "72:DA:1B:D7:30:E9", 465 | "university": "Wenzhou Medical College", 466 | "bank": { 467 | "cardExpire": "09/23", 468 | "cardNumber": "30549925358905", 469 | "cardType": "diners-club-carte-blanche", 470 | "currency": "Yuan Renminbi", 471 | "iban": "CY02 9914 5346 0PMT G6XW TP0R AWRZ" 472 | }, 473 | "company": { 474 | "address": { 475 | "address": "81 Seaton Place Northwest", 476 | "city": "Washington", 477 | "coordinates": { 478 | "lat": 38.9149499, 479 | "lng": -77.01170259999999 480 | }, 481 | "postalCode": "20001", 482 | "state": "DC" 483 | }, 484 | "department": "Services", 485 | "name": "Corkery, Reichert and Hodkiewicz", 486 | "title": "Clinical Specialist" 487 | }, 488 | "ein": "88-4396827", 489 | "ssn": "238-41-5528", 490 | "userAgent": "Mozilla/5.0 (X11; Linux amd64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36" 491 | }, 492 | { 493 | "id": 9, 494 | "firstName": "Demetrius", 495 | "lastName": "Corkery", 496 | "maidenName": "Gleason", 497 | "age": 22, 498 | "gender": "male", 499 | "email": "nloiterton8@aol.com", 500 | "phone": "+86 356 590 9727", 501 | "username": "nloiterton8", 502 | "password": "HTQxxXV9Bq4", 503 | "birthDate": "1971-03-11", 504 | "image": "https://robohash.org/excepturiiuremolestiae.png", 505 | "bloodGroup": "A+", 506 | "height": 170, 507 | "weight": 97.1, 508 | "eyeColor": "Green", 509 | "hair": { 510 | "color": "Brown", 511 | "type": "Strands" 512 | }, 513 | "domain": "goodreads.com", 514 | "ip": "78.170.185.120", 515 | "address": { 516 | "address": "5403 Illinois Avenue", 517 | "city": "Nashville", 518 | "coordinates": { 519 | "lat": 36.157077, 520 | "lng": -86.853827 521 | }, 522 | "postalCode": "37209", 523 | "state": "TN" 524 | }, 525 | "macAddress": "98:EE:94:A2:91:C4", 526 | "university": "Nanjing University of Economics", 527 | "bank": { 528 | "cardExpire": "02/24", 529 | "cardNumber": "5372664789004621", 530 | "cardType": "mastercard", 531 | "currency": "Yuan Renminbi", 532 | "iban": "BR68 9829 0581 3669 5088 5533 025N V" 533 | }, 534 | "company": { 535 | "address": { 536 | "address": "12245 West 71st Place", 537 | "city": "Arvada", 538 | "coordinates": { 539 | "lat": 39.8267078, 540 | "lng": -105.1366798 541 | }, 542 | "postalCode": "80004", 543 | "state": "CO" 544 | }, 545 | "department": "Human Resources", 546 | "name": "Gorczany Group", 547 | "title": "Community Outreach Specialist" 548 | }, 549 | "ein": "14-1066382", 550 | "ssn": "717-26-3759", 551 | "userAgent": "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; de) AppleWebKit/528.4+ (KHTML, like Gecko) Version/4.0dp1 Safari/526.11.2" 552 | }, 553 | { 554 | "id": 10, 555 | "firstName": "Eleanora", 556 | "lastName": "Price", 557 | "maidenName": "Cummings", 558 | "age": 37, 559 | "gender": "female", 560 | "email": "umcgourty9@jalbum.net", 561 | "phone": "+60 184 408 0824", 562 | "username": "umcgourty9", 563 | "password": "i0xzpX", 564 | "birthDate": "1958-08-11", 565 | "image": "https://robohash.org/aliquamcumqueiure.png", 566 | "bloodGroup": "O+", 567 | "height": 198, 568 | "weight": 48, 569 | "eyeColor": "Blue", 570 | "hair": { 571 | "color": "Chestnut", 572 | "type": "Wavy" 573 | }, 574 | "domain": "alibaba.com", 575 | "ip": "73.15.179.178", 576 | "address": { 577 | "address": "8821 West Myrtle Avenue", 578 | "city": "Glendale", 579 | "coordinates": { 580 | "lat": 33.5404296, 581 | "lng": -112.2488391 582 | }, 583 | "postalCode": "85305", 584 | "state": "AZ" 585 | }, 586 | "macAddress": "BC:A9:D8:98:CB:0B", 587 | "university": "Melaka City Polytechnic", 588 | "bank": { 589 | "cardExpire": "01/24", 590 | "cardNumber": "3557806620295254", 591 | "cardType": "jcb", 592 | "currency": "Ringgit", 593 | "iban": "GT40 DWAD 9UHA VEOZ ZF4J 2Y0F OOFD" 594 | }, 595 | "company": { 596 | "address": { 597 | "address": "1649 Timberridge Court", 598 | "city": "Fayetteville", 599 | "coordinates": { 600 | "lat": 36.084563, 601 | "lng": -94.206082 602 | }, 603 | "postalCode": "72704", 604 | "state": "AR" 605 | }, 606 | "department": "Marketing", 607 | "name": "Bins Group", 608 | "title": "Senior Sales Associate" 609 | }, 610 | "ein": "21-5278484", 611 | "ssn": "544-66-0745", 612 | "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11" 613 | }, 614 | { 615 | "id": 11, 616 | "firstName": "Marcel", 617 | "lastName": "Jones", 618 | "maidenName": "Smith", 619 | "age": 39, 620 | "gender": "male", 621 | "email": "acharlota@liveinternet.ru", 622 | "phone": "+967 253 210 0344", 623 | "username": "acharlota", 624 | "password": "M9lbMdydMN", 625 | "birthDate": "1961-09-12", 626 | "image": "https://robohash.org/impeditautest.png", 627 | "bloodGroup": "B−", 628 | "height": 203, 629 | "weight": 63.7, 630 | "eyeColor": "Amber", 631 | "hair": { 632 | "color": "Black", 633 | "type": "Straight" 634 | }, 635 | "domain": "feedburner.com", 636 | "ip": "137.235.164.173", 637 | "address": { 638 | "address": "2203 7th Street Road", 639 | "city": "Louisville", 640 | "coordinates": { 641 | "lat": 38.218107, 642 | "lng": -85.779006 643 | }, 644 | "postalCode": "40208", 645 | "state": "KY" 646 | }, 647 | "macAddress": "59:E8:70:5A:E5:D6", 648 | "university": "Hodeidah University", 649 | "bank": { 650 | "cardExpire": "05/24", 651 | "cardNumber": "5893925889459720", 652 | "cardType": "maestro", 653 | "currency": "Rial", 654 | "iban": "NL97 UWMY 2503 2999 43" 655 | }, 656 | "company": { 657 | "address": { 658 | "address": "308 Woodleaf Court", 659 | "city": "Glen Burnie", 660 | "coordinates": { 661 | "lat": 39.1425931, 662 | "lng": -76.6238441 663 | }, 664 | "postalCode": "21061", 665 | "state": "MD" 666 | }, 667 | "department": "Business Development", 668 | "name": "Kuhn-Harber", 669 | "title": "Account Executive" 670 | }, 671 | "ein": "09-3791007", 672 | "ssn": "342-54-8422", 673 | "userAgent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1" 674 | }, 675 | { 676 | "id": 12, 677 | "firstName": "Assunta", 678 | "lastName": "Rath", 679 | "maidenName": "Heller", 680 | "age": 42, 681 | "gender": "female", 682 | "email": "rhallawellb@dropbox.com", 683 | "phone": "+380 962 542 6549", 684 | "username": "rhallawellb", 685 | "password": "esTkitT1r", 686 | "birthDate": "1990-12-14", 687 | "image": "https://robohash.org/namquaerataut.png", 688 | "bloodGroup": "O−", 689 | "height": 168, 690 | "weight": 96.8, 691 | "eyeColor": "Gray", 692 | "hair": { 693 | "color": "Black", 694 | "type": "Very curly" 695 | }, 696 | "domain": "123-reg.co.uk", 697 | "ip": "74.80.53.208", 698 | "address": { 699 | "address": "6463 Vrain Street", 700 | "city": "Arvada", 701 | "coordinates": { 702 | "lat": 39.814056, 703 | "lng": -105.046913 704 | }, 705 | "postalCode": "80003", 706 | "state": "CO" 707 | }, 708 | "macAddress": "9B:DC:21:C2:30:A3", 709 | "university": "Kiev Slavonic University", 710 | "bank": { 711 | "cardExpire": "09/22", 712 | "cardNumber": "5602230671060360", 713 | "cardType": "bankcard", 714 | "currency": "Hryvnia", 715 | "iban": "KW76 VNLA LX0Y DMDE PFS8 FVKP VMDF AV" 716 | }, 717 | "company": { 718 | "address": { 719 | "address": "388 East Main Street", 720 | "coordinates": { 721 | "lat": 43.9727945, 722 | "lng": -73.1023187 723 | }, 724 | "postalCode": "05753", 725 | "state": "VT" 726 | }, 727 | "department": "Product Management", 728 | "name": "Goodwin-Skiles", 729 | "title": "Developer II" 730 | }, 731 | "ein": "14-1242349", 732 | "ssn": "116-51-6131", 733 | "userAgent": "Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36" 734 | }, 735 | { 736 | "id": 13, 737 | "firstName": "Trace", 738 | "lastName": "Douglas", 739 | "maidenName": "Lemke", 740 | "age": 26, 741 | "gender": "male", 742 | "email": "lgribbinc@posterous.com", 743 | "phone": "+1 609 937 3468", 744 | "username": "lgribbinc", 745 | "password": "ftGj8LZTtv9g", 746 | "birthDate": "1967-07-23", 747 | "image": "https://robohash.org/voluptatemsintnulla.png", 748 | "bloodGroup": "O+", 749 | "height": 181, 750 | "weight": 56.5, 751 | "eyeColor": "Amber", 752 | "hair": { 753 | "color": "Auburn", 754 | "type": "Straight" 755 | }, 756 | "domain": "histats.com", 757 | "ip": "163.245.232.27", 758 | "address": { 759 | "address": "87 Horseshoe Drive", 760 | "city": "West Windsor", 761 | "coordinates": { 762 | "lat": 43.4731793, 763 | "lng": -72.4967532 764 | }, 765 | "postalCode": "05037", 766 | "state": "VT" 767 | }, 768 | "macAddress": "B9:21:ED:9F:B8:9E", 769 | "university": "Dallas Christian College", 770 | "bank": { 771 | "cardExpire": "01/23", 772 | "cardNumber": "3556299106119514", 773 | "cardType": "jcb", 774 | "currency": "Dollar", 775 | "iban": "AE47 4194 4544 3401 3419 286" 776 | }, 777 | "company": { 778 | "address": { 779 | "address": "310 Timrod Road", 780 | "city": "Manchester", 781 | "coordinates": { 782 | "lat": 41.756758, 783 | "lng": -72.493501 784 | }, 785 | "postalCode": "06040", 786 | "state": "CT" 787 | }, 788 | "department": "Research and Development", 789 | "name": "Casper Inc", 790 | "title": "Sales Associate" 791 | }, 792 | "ein": "94-0648182", 793 | "ssn": "217-05-3082", 794 | "userAgent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4" 795 | }, 796 | { 797 | "id": 14, 798 | "firstName": "Enoch", 799 | "lastName": "Lynch", 800 | "maidenName": "Heidenreich", 801 | "age": 21, 802 | "gender": "male", 803 | "email": "mturleyd@tumblr.com", 804 | "phone": "+94 912 100 5118", 805 | "username": "mturleyd", 806 | "password": "GyLnCB8gNIp", 807 | "birthDate": "1979-08-25", 808 | "image": "https://robohash.org/quisequienim.png", 809 | "bloodGroup": "O+", 810 | "height": 150, 811 | "weight": 100.3, 812 | "eyeColor": "Green", 813 | "hair": { 814 | "color": "Auburn", 815 | "type": "Strands" 816 | }, 817 | "domain": "icio.us", 818 | "ip": "174.238.43.126", 819 | "address": { 820 | "address": "60 Desousa Drive", 821 | "city": "Manchester", 822 | "coordinates": { 823 | "lat": 41.7409259, 824 | "lng": -72.5619104 825 | }, 826 | "postalCode": "06040", 827 | "state": "CT" 828 | }, 829 | "macAddress": "52:11:E1:31:35:C1", 830 | "university": "University of Sri Jayawardenapura", 831 | "bank": { 832 | "cardExpire": "11/23", 833 | "cardNumber": "5339467937996728", 834 | "cardType": "mastercard", 835 | "currency": "Rupee", 836 | "iban": "SI28 0812 7967 0952 944" 837 | }, 838 | "company": { 839 | "address": { 840 | "address": "21950 Arnold Center Road", 841 | "city": "Carson", 842 | "coordinates": { 843 | "lat": 33.8272706, 844 | "lng": -118.2302826 845 | }, 846 | "postalCode": "90810", 847 | "state": "CA" 848 | }, 849 | "department": "Sales", 850 | "name": "Schoen Inc", 851 | "title": "Professor" 852 | }, 853 | "ein": "61-8316825", 854 | "ssn": "742-81-1714", 855 | "userAgent": "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-en) AppleWebKit/533.16 (KHTML, like Gecko) Version/4.1 Safari/533.16" 856 | }, 857 | { 858 | "id": 15, 859 | "firstName": "Jeanne", 860 | "lastName": "Halvorson", 861 | "maidenName": "Cummerata", 862 | "age": 26, 863 | "gender": "female", 864 | "email": "kminchelle@qq.com", 865 | "phone": "+86 581 108 7855", 866 | "username": "kminchelle", 867 | "password": "0lelplR", 868 | "birthDate": "1996-02-02", 869 | "image": "https://robohash.org/autquiaut.png", 870 | "bloodGroup": "A+", 871 | "height": 176, 872 | "weight": 45.7, 873 | "eyeColor": "Amber", 874 | "hair": { 875 | "color": "Blond", 876 | "type": "Straight" 877 | }, 878 | "domain": "google.co.uk", 879 | "ip": "78.43.74.226", 880 | "address": { 881 | "address": "4 Old Colony Way", 882 | "city": "Yarmouth", 883 | "coordinates": { 884 | "lat": 41.697168, 885 | "lng": -70.189992 886 | }, 887 | "postalCode": "02664", 888 | "state": "MA" 889 | }, 890 | "macAddress": "D9:DB:D9:5A:01:09", 891 | "university": "Donghua University, Shanghai", 892 | "bank": { 893 | "cardExpire": "10/23", 894 | "cardNumber": "3588859507772914", 895 | "cardType": "jcb", 896 | "currency": "Yuan Renminbi", 897 | "iban": "FO12 1440 0396 8902 56" 898 | }, 899 | "company": { 900 | "address": { 901 | "address": "22572 Toreador Drive", 902 | "city": "Salinas", 903 | "coordinates": { 904 | "lat": 36.602449, 905 | "lng": -121.699071 906 | }, 907 | "postalCode": "93908", 908 | "state": "CA" 909 | }, 910 | "department": "Marketing", 911 | "name": "Hahn-MacGyver", 912 | "title": "Software Test Engineer IV" 913 | }, 914 | "ein": "62-0561095", 915 | "ssn": "855-43-8639", 916 | "userAgent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.14 Safari/534.24" 917 | }, 918 | { 919 | "id": 16, 920 | "firstName": "Trycia", 921 | "lastName": "Fadel", 922 | "maidenName": "Rosenbaum", 923 | "age": 41, 924 | "gender": "female", 925 | "email": "dpierrof@vimeo.com", 926 | "phone": "+420 833 708 0340", 927 | "username": "dpierrof", 928 | "password": "Vru55Y4tufI4", 929 | "birthDate": "1963-07-03", 930 | "image": "https://robohash.org/porronumquamid.png", 931 | "bloodGroup": "B+", 932 | "height": 166, 933 | "weight": 87.2, 934 | "eyeColor": "Gray", 935 | "hair": { 936 | "color": "Black", 937 | "type": "Very curly" 938 | }, 939 | "domain": "tamu.edu", 940 | "ip": "82.170.69.15", 941 | "address": { 942 | "address": "314 South 17th Street", 943 | "city": "Nashville", 944 | "coordinates": { 945 | "lat": 36.1719075, 946 | "lng": -86.740228 947 | }, 948 | "postalCode": "37206", 949 | "state": "TN" 950 | }, 951 | "macAddress": "3D:21:5B:9F:76:FF", 952 | "university": "Technical University of Mining and Metallurgy Ostrava", 953 | "bank": { 954 | "cardExpire": "07/23", 955 | "cardNumber": "6378941710246212", 956 | "cardType": "instapayment", 957 | "currency": "Koruna", 958 | "iban": "CH94 4961 5QY1 VPV1 NGIP P" 959 | }, 960 | "company": { 961 | "address": { 962 | "address": "1407 Walden Court", 963 | "city": "Crofton", 964 | "coordinates": { 965 | "lat": 39.019306, 966 | "lng": -76.660653 967 | }, 968 | "postalCode": "21114", 969 | "state": "MD" 970 | }, 971 | "department": "Research and Development", 972 | "name": "Steuber, Considine and Padberg", 973 | "title": "Geological Engineer" 974 | }, 975 | "ein": "75-1816504", 976 | "ssn": "677-73-1525", 977 | "userAgent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.872.0 Safari/535.2" 978 | }, 979 | { 980 | "id": 17, 981 | "firstName": "Bradford", 982 | "lastName": "Prohaska", 983 | "maidenName": "Bins", 984 | "age": 43, 985 | "gender": "male", 986 | "email": "vcholdcroftg@ucoz.com", 987 | "phone": "+420 874 628 3710", 988 | "username": "vcholdcroftg", 989 | "password": "mSPzYZfR", 990 | "birthDate": "1975-10-20", 991 | "image": "https://robohash.org/accusantiumvoluptateseos.png", 992 | "bloodGroup": "O−", 993 | "height": 199, 994 | "weight": 94.3, 995 | "eyeColor": "Brown", 996 | "hair": { 997 | "color": "Black", 998 | "type": "Curly" 999 | }, 1000 | "domain": "wix.com", 1001 | "ip": "75.75.234.243", 1002 | "address": { 1003 | "address": "1649 Timberridge Court", 1004 | "city": "Fayetteville", 1005 | "coordinates": { 1006 | "lat": 36.084563, 1007 | "lng": -94.206082 1008 | }, 1009 | "postalCode": "72704", 1010 | "state": "AR" 1011 | }, 1012 | "macAddress": "47:FA:F7:94:7B:5D", 1013 | "university": "Technical University of Mining and Metallurgy Ostrava", 1014 | "bank": { 1015 | "cardExpire": "05/24", 1016 | "cardNumber": "3574627048005672", 1017 | "cardType": "jcb", 1018 | "currency": "Koruna", 1019 | "iban": "SI81 7221 0344 9088 864" 1020 | }, 1021 | "company": { 1022 | "address": { 1023 | "address": "20930 Todd Valley Road", 1024 | "city": "Foresthill", 1025 | "coordinates": { 1026 | "lat": 38.989466, 1027 | "lng": -120.883108 1028 | }, 1029 | "postalCode": "95631", 1030 | "state": "CA" 1031 | }, 1032 | "department": "Sales", 1033 | "name": "Bogisich and Sons", 1034 | "title": "Operator" 1035 | }, 1036 | "ein": "92-8837697", 1037 | "ssn": "795-36-7752", 1038 | "userAgent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1" 1039 | }, 1040 | { 1041 | "id": 18, 1042 | "firstName": "Arely", 1043 | "lastName": "Skiles", 1044 | "maidenName": "Monahan", 1045 | "age": 42, 1046 | "gender": "male", 1047 | "email": "sberminghamh@chron.com", 1048 | "phone": "+55 886 766 8617", 1049 | "username": "sberminghamh", 1050 | "password": "cAjfb8vg", 1051 | "birthDate": "1958-02-05", 1052 | "image": "https://robohash.org/nihilharumqui.png", 1053 | "bloodGroup": "AB−", 1054 | "height": 192, 1055 | "weight": 97, 1056 | "eyeColor": "Amber", 1057 | "hair": { 1058 | "color": "Brown", 1059 | "type": "Straight" 1060 | }, 1061 | "domain": "seesaa.net", 1062 | "ip": "29.82.54.30", 1063 | "address": { 1064 | "address": "5461 West Shades Valley Drive", 1065 | "city": "Montgomery", 1066 | "coordinates": { 1067 | "lat": 32.296422, 1068 | "lng": -86.34280299999999 1069 | }, 1070 | "postalCode": "36108", 1071 | "state": "AL" 1072 | }, 1073 | "macAddress": "61:0C:8F:92:48:D5", 1074 | "university": "Universidade Estadual do Ceará", 1075 | "bank": { 1076 | "cardExpire": "09/24", 1077 | "cardNumber": "3578078357052002", 1078 | "cardType": "jcb", 1079 | "currency": "Real", 1080 | "iban": "FR79 7925 2903 77HF 2ZY6 TU4M T84" 1081 | }, 1082 | "company": { 1083 | "address": { 1084 | "address": "3162 Martin Luther King Junior Boulevard", 1085 | "city": "Fayetteville", 1086 | "coordinates": { 1087 | "lat": 36.05233310000001, 1088 | "lng": -94.2056987 1089 | }, 1090 | "postalCode": "72704", 1091 | "state": "AR" 1092 | }, 1093 | "department": "Support", 1094 | "name": "Metz Group", 1095 | "title": "VP Accounting" 1096 | }, 1097 | "ein": "55-4062919", 1098 | "ssn": "551-74-1349", 1099 | "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0" 1100 | }, 1101 | { 1102 | "id": 19, 1103 | "firstName": "Gust", 1104 | "lastName": "Purdy", 1105 | "maidenName": "Abshire", 1106 | "age": 46, 1107 | "gender": "male", 1108 | "email": "bleveragei@so-net.ne.jp", 1109 | "phone": "+86 886 889 0258", 1110 | "username": "bleveragei", 1111 | "password": "UZGAiqPqWQHQ", 1112 | "birthDate": "1989-10-15", 1113 | "image": "https://robohash.org/delenitipraesentiumvoluptatum.png", 1114 | "bloodGroup": "A−", 1115 | "height": 167, 1116 | "weight": 65.3, 1117 | "eyeColor": "Amber", 1118 | "hair": { 1119 | "color": "Black", 1120 | "type": "Straight" 1121 | }, 1122 | "domain": "homestead.com", 1123 | "ip": "90.202.216.39", 1124 | "address": { 1125 | "address": "629 Debbie Drive", 1126 | "city": "Nashville", 1127 | "coordinates": { 1128 | "lat": 36.208114, 1129 | "lng": -86.58621199999999 1130 | }, 1131 | "postalCode": "37076", 1132 | "state": "TN" 1133 | }, 1134 | "macAddress": "22:98:8D:97:2D:AE", 1135 | "university": "Xinjiang University", 1136 | "bank": { 1137 | "cardExpire": "05/22", 1138 | "cardNumber": "5602214306858976", 1139 | "cardType": "bankcard", 1140 | "currency": "Yuan Renminbi", 1141 | "iban": "GB94 MOIU 1274 8449 9733 05" 1142 | }, 1143 | "company": { 1144 | "address": { 1145 | "address": "6463 Vrain Street", 1146 | "city": "Arvada", 1147 | "coordinates": { 1148 | "lat": 39.814056, 1149 | "lng": -105.046913 1150 | }, 1151 | "postalCode": "80003", 1152 | "state": "CO" 1153 | }, 1154 | "department": "Sales", 1155 | "name": "Bahringer, Auer and Wehner", 1156 | "title": "Financial Analyst" 1157 | }, 1158 | "ein": "53-7190545", 1159 | "ssn": "809-93-2422", 1160 | "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24" 1161 | }, 1162 | { 1163 | "id": 20, 1164 | "firstName": "Lenna", 1165 | "lastName": "Renner", 1166 | "maidenName": "Schumm", 1167 | "age": 41, 1168 | "gender": "female", 1169 | "email": "aeatockj@psu.edu", 1170 | "phone": "+1 904 601 7177", 1171 | "username": "aeatockj", 1172 | "password": "szWAG6hc", 1173 | "birthDate": "1980-01-19", 1174 | "image": "https://robohash.org/ipsumutofficiis.png", 1175 | "bloodGroup": "O−", 1176 | "height": 175, 1177 | "weight": 68, 1178 | "eyeColor": "Green", 1179 | "hair": { 1180 | "color": "Black", 1181 | "type": "Strands" 1182 | }, 1183 | "domain": "sourceforge.net", 1184 | "ip": "59.43.194.22", 1185 | "address": { 1186 | "address": "22572 Toreador Drive", 1187 | "city": "Salinas", 1188 | "coordinates": { 1189 | "lat": 36.602449, 1190 | "lng": -121.699071 1191 | }, 1192 | "postalCode": "93908", 1193 | "state": "CA" 1194 | }, 1195 | "macAddress": "ED:64:AE:91:49:C9", 1196 | "university": "Moraine Valley Community College", 1197 | "bank": { 1198 | "cardExpire": "07/22", 1199 | "cardNumber": "3565173055875732", 1200 | "cardType": "jcb", 1201 | "currency": "Dollar", 1202 | "iban": "GT39 KL9Z CZYV XF26 UPYW SFPT H74U" 1203 | }, 1204 | "company": { 1205 | "address": { 1206 | "address": "491 Arabian Way", 1207 | "city": "Grand Junction", 1208 | "coordinates": { 1209 | "lat": 39.07548999999999, 1210 | "lng": -108.474785 1211 | }, 1212 | "postalCode": "81504", 1213 | "state": "CO" 1214 | }, 1215 | "department": "Support", 1216 | "name": "Hoppe Group", 1217 | "title": "Geologist III" 1218 | }, 1219 | "ein": "88-6715551", 1220 | "ssn": "389-03-0381", 1221 | "userAgent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.702.0 Chrome/12.0.702.0 Safari/534.24" 1222 | }, 1223 | { 1224 | "id": 21, 1225 | "firstName": "Doyle", 1226 | "lastName": "Ernser", 1227 | "maidenName": "Feeney", 1228 | "age": 23, 1229 | "gender": "male", 1230 | "email": "ckensleyk@pen.io", 1231 | "phone": "+86 634 419 6839", 1232 | "username": "ckensleyk", 1233 | "password": "tq7kPXyf", 1234 | "birthDate": "1983-01-22", 1235 | "image": "https://robohash.org/providenttemporadelectus.png", 1236 | "bloodGroup": "A−", 1237 | "height": 173, 1238 | "weight": 69.9, 1239 | "eyeColor": "Brown", 1240 | "hair": { 1241 | "color": "Black", 1242 | "type": "Curly" 1243 | }, 1244 | "domain": "free.fr", 1245 | "ip": "87.213.156.73", 1246 | "address": { 1247 | "address": "3034 Mica Street", 1248 | "city": "Fayetteville", 1249 | "coordinates": { 1250 | "lat": 36.0807929, 1251 | "lng": -94.2066449 1252 | }, 1253 | "postalCode": "72704", 1254 | "state": "AR" 1255 | }, 1256 | "macAddress": "E2:5A:A5:85:9B:6D", 1257 | "university": "Nanjing University of Traditional Chinese Medicine", 1258 | "bank": { 1259 | "cardExpire": "06/24", 1260 | "cardNumber": "30464640811198", 1261 | "cardType": "diners-club-carte-blanche", 1262 | "currency": "Yuan Renminbi", 1263 | "iban": "BE41 7150 0766 2980" 1264 | }, 1265 | "company": { 1266 | "address": { 1267 | "address": "5906 Milton Avenue", 1268 | "city": "Deale", 1269 | "coordinates": { 1270 | "lat": 38.784451, 1271 | "lng": -76.54125499999999 1272 | }, 1273 | "postalCode": "20751", 1274 | "state": "MD" 1275 | }, 1276 | "department": "Product Management", 1277 | "name": "Brekke Group", 1278 | "title": "Programmer Analyst I" 1279 | }, 1280 | "ein": "23-4116115", 1281 | "ssn": "562-46-9709", 1282 | "userAgent": "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3" 1283 | }, 1284 | { 1285 | "id": 22, 1286 | "firstName": "Tressa", 1287 | "lastName": "Weber", 1288 | "maidenName": "Williamson", 1289 | "age": 41, 1290 | "gender": "female", 1291 | "email": "froachel@howstuffworks.com", 1292 | "phone": "+34 517 104 6248", 1293 | "username": "froachel", 1294 | "password": "rfVSKImC", 1295 | "birthDate": "1987-11-11", 1296 | "image": "https://robohash.org/temporarecusandaeest.png", 1297 | "bloodGroup": "B−", 1298 | "height": 164, 1299 | "weight": 87.1, 1300 | "eyeColor": "Green", 1301 | "hair": { 1302 | "color": "Black", 1303 | "type": "Strands" 1304 | }, 1305 | "domain": "indiatimes.com", 1306 | "ip": "71.57.235.192", 1307 | "address": { 1308 | "address": "3729 East Mission Boulevard", 1309 | "city": "Fayetteville", 1310 | "coordinates": { 1311 | "lat": 36.0919353, 1312 | "lng": -94.10654219999999 1313 | }, 1314 | "postalCode": "72703", 1315 | "state": "AR" 1316 | }, 1317 | "macAddress": "A4:8B:56:BC:ED:98", 1318 | "university": "Universitat Rámon Llull", 1319 | "bank": { 1320 | "cardExpire": "12/21", 1321 | "cardNumber": "342220243660686", 1322 | "cardType": "americanexpress", 1323 | "currency": "Euro", 1324 | "iban": "CY09 2675 2653 QNEJ JNSA 0E2V ONMM" 1325 | }, 1326 | "company": { 1327 | "address": { 1328 | "address": "8800 Cordell Circle", 1329 | "city": "Anchorage", 1330 | "coordinates": { 1331 | "lat": 61.1409305, 1332 | "lng": -149.9437822 1333 | }, 1334 | "postalCode": "99502", 1335 | "state": "AK" 1336 | }, 1337 | "department": "Research and Development", 1338 | "name": "Durgan Group", 1339 | "title": "VP Quality Control" 1340 | }, 1341 | "ein": "78-2846180", 1342 | "ssn": "155-87-0243", 1343 | "userAgent": "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; de-de) AppleWebKit/533.16 (KHTML, like Gecko) Version/4.1 Safari/533.16" 1344 | }, 1345 | { 1346 | "id": 23, 1347 | "firstName": "Felicity", 1348 | "lastName": "O'Reilly", 1349 | "maidenName": "Rosenbaum", 1350 | "age": 46, 1351 | "gender": "female", 1352 | "email": "beykelhofm@wikispaces.com", 1353 | "phone": "+63 919 564 1690", 1354 | "username": "beykelhofm", 1355 | "password": "zQwaHTHbuZyr", 1356 | "birthDate": "1967-10-05", 1357 | "image": "https://robohash.org/odioquivero.png", 1358 | "bloodGroup": "O−", 1359 | "height": 151, 1360 | "weight": 96.7, 1361 | "eyeColor": "Brown", 1362 | "hair": { 1363 | "color": "Brown", 1364 | "type": "Curly" 1365 | }, 1366 | "domain": "tamu.edu", 1367 | "ip": "141.14.53.176", 1368 | "address": { 1369 | "address": "5114 Greentree Drive", 1370 | "city": "Nashville", 1371 | "coordinates": { 1372 | "lat": 36.0618539, 1373 | "lng": -86.738508 1374 | }, 1375 | "postalCode": "37211", 1376 | "state": "TN" 1377 | }, 1378 | "macAddress": "4D:AB:8D:9A:E5:02", 1379 | "university": "University of lloilo", 1380 | "bank": { 1381 | "cardExpire": "06/22", 1382 | "cardNumber": "6333837222395642", 1383 | "cardType": "switch", 1384 | "currency": "Peso", 1385 | "iban": "FR40 3929 7903 26S5 QL9A HUSV Z09" 1386 | }, 1387 | "company": { 1388 | "address": { 1389 | "address": "1770 Colony Way", 1390 | "city": "Fayetteville", 1391 | "coordinates": { 1392 | "lat": 36.0867, 1393 | "lng": -94.229754 1394 | }, 1395 | "postalCode": "72704", 1396 | "state": "AR" 1397 | }, 1398 | "department": "Legal", 1399 | "name": "Romaguera, Williamson and Kessler", 1400 | "title": "Assistant Manager" 1401 | }, 1402 | "ein": "92-4814248", 1403 | "ssn": "441-72-1229", 1404 | "userAgent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.872.0 Safari/535.2" 1405 | }, 1406 | { 1407 | "id": 24, 1408 | "firstName": "Jocelyn", 1409 | "lastName": "Schuster", 1410 | "maidenName": "Dooley", 1411 | "age": 19, 1412 | "gender": "male", 1413 | "email": "brickeardn@fema.gov", 1414 | "phone": "+7 968 462 1292", 1415 | "username": "brickeardn", 1416 | "password": "bMQnPttV", 1417 | "birthDate": "1966-06-02", 1418 | "image": "https://robohash.org/odiomolestiaealias.png", 1419 | "bloodGroup": "O+", 1420 | "height": 166, 1421 | "weight": 93.3, 1422 | "eyeColor": "Brown", 1423 | "hair": { 1424 | "color": "Brown", 1425 | "type": "Curly" 1426 | }, 1427 | "domain": "pen.io", 1428 | "ip": "116.92.198.102", 1429 | "address": { 1430 | "address": "3466 Southview Avenue", 1431 | "city": "Montgomery", 1432 | "coordinates": { 1433 | "lat": 32.341227, 1434 | "lng": -86.2846859 1435 | }, 1436 | "postalCode": "36111", 1437 | "state": "AL" 1438 | }, 1439 | "macAddress": "AF:AA:20:8E:CA:CD", 1440 | "university": "Bashkir State Medical University", 1441 | "bank": { 1442 | "cardExpire": "11/21", 1443 | "cardNumber": "5007666357943463", 1444 | "cardType": "mastercard", 1445 | "currency": "Ruble", 1446 | "iban": "NL22 YBPM 0101 6695 08" 1447 | }, 1448 | "company": { 1449 | "address": { 1450 | "address": "80 North East Street", 1451 | "city": "Holyoke", 1452 | "coordinates": { 1453 | "lat": 42.2041219, 1454 | "lng": -72.5977704 1455 | }, 1456 | "postalCode": "01040", 1457 | "state": "MA" 1458 | }, 1459 | "department": "Product Management", 1460 | "name": "Wintheiser-Boehm", 1461 | "title": "Research Nurse" 1462 | }, 1463 | "ein": "77-6259466", 1464 | "ssn": "291-72-5526", 1465 | "userAgent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; ja-jp) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27" 1466 | }, 1467 | { 1468 | "id": 25, 1469 | "firstName": "Edwina", 1470 | "lastName": "Ernser", 1471 | "maidenName": "Kiehn", 1472 | "age": 21, 1473 | "gender": "female", 1474 | "email": "dfundello@amazon.co.jp", 1475 | "phone": "+86 376 986 8945", 1476 | "username": "dfundello", 1477 | "password": "k9zgV68UKw8m", 1478 | "birthDate": "2000-09-28", 1479 | "image": "https://robohash.org/doloremautdolores.png", 1480 | "bloodGroup": "O+", 1481 | "height": 180, 1482 | "weight": 102.1, 1483 | "eyeColor": "Blue", 1484 | "hair": { 1485 | "color": "Brown", 1486 | "type": "Wavy" 1487 | }, 1488 | "domain": "apple.com", 1489 | "ip": "48.30.193.203", 1490 | "address": { 1491 | "address": "1513 Cathy Street", 1492 | "city": "Savannah", 1493 | "coordinates": { 1494 | "lat": 32.067416, 1495 | "lng": -81.125331 1496 | }, 1497 | "postalCode": "31415", 1498 | "state": "GA" 1499 | }, 1500 | "macAddress": "EC:59:D3:FC:65:92", 1501 | "university": "Wuhan University of Technology", 1502 | "bank": { 1503 | "cardExpire": "10/23", 1504 | "cardNumber": "3558628665594956", 1505 | "cardType": "jcb", 1506 | "currency": "Yuan Renminbi", 1507 | "iban": "RS85 6347 5884 2820 5764 23" 1508 | }, 1509 | "company": { 1510 | "address": { 1511 | "address": "125 John Street", 1512 | "city": "Santa Cruz", 1513 | "coordinates": { 1514 | "lat": 36.950901, 1515 | "lng": -122.046881 1516 | }, 1517 | "postalCode": "95060", 1518 | "state": "CA" 1519 | }, 1520 | "department": "Marketing", 1521 | "name": "Volkman Group", 1522 | "title": "Cost Accountant" 1523 | }, 1524 | "ein": "14-6307509", 1525 | "ssn": "266-43-5297", 1526 | "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3" 1527 | }, 1528 | { 1529 | "id": 26, 1530 | "firstName": "Griffin", 1531 | "lastName": "Braun", 1532 | "maidenName": "Deckow", 1533 | "age": 35, 1534 | "gender": "male", 1535 | "email": "lgronaverp@cornell.edu", 1536 | "phone": "+62 511 790 0161", 1537 | "username": "lgronaverp", 1538 | "password": "4a1dAKDv9KB9", 1539 | "birthDate": "1965-09-06", 1540 | "image": "https://robohash.org/laboriosammollitiaut.png", 1541 | "bloodGroup": "O−", 1542 | "height": 146, 1543 | "weight": 65.5, 1544 | "eyeColor": "Blue", 1545 | "hair": { 1546 | "color": "Blond", 1547 | "type": "Wavy" 1548 | }, 1549 | "domain": "foxnews.com", 1550 | "ip": "93.246.47.59", 1551 | "address": { 1552 | "address": "600 West 19th Avenue", 1553 | "city": "Anchorage", 1554 | "coordinates": { 1555 | "lat": 61.203115, 1556 | "lng": -149.894107 1557 | }, 1558 | "postalCode": "99503", 1559 | "state": "AK" 1560 | }, 1561 | "macAddress": "34:06:26:95:37:D6", 1562 | "university": "Universitas Bojonegoro", 1563 | "bank": { 1564 | "cardExpire": "07/24", 1565 | "cardNumber": "3587188969123346", 1566 | "cardType": "jcb", 1567 | "currency": "Rupiah", 1568 | "iban": "AD24 9240 6903 OD2X OW1Y WD1K" 1569 | }, 1570 | "company": { 1571 | "address": { 1572 | "address": "1508 Massachusetts Avenue Southeast", 1573 | "city": "Washington", 1574 | "coordinates": { 1575 | "lat": 38.887255, 1576 | "lng": -76.98318499999999 1577 | }, 1578 | "postalCode": "20003", 1579 | "state": "DC" 1580 | }, 1581 | "department": "Engineering", 1582 | "name": "Boyle, Boyer and Lang", 1583 | "title": "Senior Cost Accountant" 1584 | }, 1585 | "ein": "38-0997138", 1586 | "ssn": "407-02-8915", 1587 | "userAgent": "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25" 1588 | }, 1589 | { 1590 | "id": 27, 1591 | "firstName": "Piper", 1592 | "lastName": "Schowalter", 1593 | "maidenName": "Wuckert", 1594 | "age": 47, 1595 | "gender": "female", 1596 | "email": "fokillq@amazon.co.jp", 1597 | "phone": "+60 785 960 7918", 1598 | "username": "fokillq", 1599 | "password": "xZnWSWnqH", 1600 | "birthDate": "1983-06-07", 1601 | "image": "https://robohash.org/nequeodiosapiente.png", 1602 | "bloodGroup": "A−", 1603 | "height": 197, 1604 | "weight": 71.5, 1605 | "eyeColor": "Brown", 1606 | "hair": { 1607 | "color": "Black", 1608 | "type": "Curly" 1609 | }, 1610 | "domain": "toplist.cz", 1611 | "ip": "100.159.51.104", 1612 | "address": { 1613 | "address": "1208 Elkader Court North", 1614 | "city": "Nashville", 1615 | "coordinates": { 1616 | "lat": 36.080049, 1617 | "lng": -86.60116099999999 1618 | }, 1619 | "postalCode": "37013", 1620 | "state": "TN" 1621 | }, 1622 | "macAddress": "1F:42:5D:8C:66:3D", 1623 | "university": "Sultanah Bahiyah Polytechnic", 1624 | "bank": { 1625 | "cardExpire": "09/22", 1626 | "cardNumber": "6762169351744592", 1627 | "cardType": "maestro", 1628 | "currency": "Ringgit", 1629 | "iban": "BH05 STDW HECU HD4S L8U1 C6" 1630 | }, 1631 | "company": { 1632 | "address": { 1633 | "address": "600 West 19th Avenue", 1634 | "city": "Anchorage", 1635 | "coordinates": { 1636 | "lat": 61.203115, 1637 | "lng": -149.894107 1638 | }, 1639 | "postalCode": "99503", 1640 | "state": "AK" 1641 | }, 1642 | "department": "Human Resources", 1643 | "name": "O'Hara and Sons", 1644 | "title": "Sales Representative" 1645 | }, 1646 | "ein": "11-3129153", 1647 | "ssn": "408-90-5986", 1648 | "userAgent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36" 1649 | }, 1650 | { 1651 | "id": 28, 1652 | "firstName": "Kody", 1653 | "lastName": "Terry", 1654 | "maidenName": "Larkin", 1655 | "age": 28, 1656 | "gender": "male", 1657 | "email": "xisherwoodr@ask.com", 1658 | "phone": "+81 859 545 8951", 1659 | "username": "xisherwoodr", 1660 | "password": "HLDqN5vCF", 1661 | "birthDate": "1979-01-09", 1662 | "image": "https://robohash.org/consequunturabnon.png", 1663 | "bloodGroup": "B−", 1664 | "height": 172, 1665 | "weight": 90.2, 1666 | "eyeColor": "Blue", 1667 | "hair": { 1668 | "color": "Brown", 1669 | "type": "Wavy" 1670 | }, 1671 | "domain": "elpais.com", 1672 | "ip": "51.102.180.216", 1673 | "address": { 1674 | "address": "210 Green Road", 1675 | "city": "Manchester", 1676 | "coordinates": { 1677 | "lat": 41.7909099, 1678 | "lng": -72.51195129999999 1679 | }, 1680 | "postalCode": "06042", 1681 | "state": "CT" 1682 | }, 1683 | "macAddress": "B4:B6:17:3C:41:E5", 1684 | "university": "Science University of Tokyo", 1685 | "bank": { 1686 | "cardExpire": "05/23", 1687 | "cardNumber": "201443655632569", 1688 | "cardType": "diners-club-enroute", 1689 | "currency": "Yen", 1690 | "iban": "GT70 4NNE RDSR 0AJV 6AQI 4XH1 RWOC" 1691 | }, 1692 | "company": { 1693 | "address": { 1694 | "address": "109 Summit Street", 1695 | "city": "Burlington", 1696 | "coordinates": { 1697 | "lat": 44.4729749, 1698 | "lng": -73.2026566 1699 | }, 1700 | "postalCode": "05401", 1701 | "state": "VT" 1702 | }, 1703 | "department": "Support", 1704 | "name": "Leffler, Beatty and Kilback", 1705 | "title": "Recruiting Manager" 1706 | }, 1707 | "ein": "09-1129306", 1708 | "ssn": "389-74-9456", 1709 | "userAgent": "Mozilla/6.0 (Macintosh; I; Intel Mac OS X 11_7_9; de-LI; rv:1.9b4) Gecko/2012010317 Firefox/10.0a4" 1710 | }, 1711 | { 1712 | "id": 29, 1713 | "firstName": "Macy", 1714 | "lastName": "Greenfelder", 1715 | "maidenName": "Koepp", 1716 | "age": 45, 1717 | "gender": "female", 1718 | "email": "jissetts@hostgator.com", 1719 | "phone": "+81 915 649 2384", 1720 | "username": "jissetts", 1721 | "password": "ePawWgrnZR8L", 1722 | "birthDate": "1976-09-07", 1723 | "image": "https://robohash.org/amettemporeea.png", 1724 | "bloodGroup": "A−", 1725 | "height": 166, 1726 | "weight": 93.7, 1727 | "eyeColor": "Amber", 1728 | "hair": { 1729 | "color": "Black", 1730 | "type": "Straight" 1731 | }, 1732 | "domain": "ibm.com", 1733 | "ip": "197.37.13.163", 1734 | "address": { 1735 | "address": "49548 Road 200", 1736 | "city": "O'Neals", 1737 | "coordinates": { 1738 | "lat": 37.153463, 1739 | "lng": -119.648192 1740 | }, 1741 | "postalCode": "93645", 1742 | "state": "CA" 1743 | }, 1744 | "macAddress": "D7:14:C5:45:69:C1", 1745 | "university": "Fuji Women's College", 1746 | "bank": { 1747 | "cardExpire": "04/24", 1748 | "cardNumber": "633413352570887921", 1749 | "cardType": "solo", 1750 | "currency": "Yen", 1751 | "iban": "IS23 8410 4605 1294 9479 5900 11" 1752 | }, 1753 | "company": { 1754 | "address": { 1755 | "address": "5403 Illinois Avenue", 1756 | "city": "Nashville", 1757 | "coordinates": { 1758 | "lat": 36.157077, 1759 | "lng": -86.853827 1760 | }, 1761 | "postalCode": "37209", 1762 | "state": "TN" 1763 | }, 1764 | "department": "Product Management", 1765 | "name": "Bruen and Sons", 1766 | "title": "Structural Analysis Engineer" 1767 | }, 1768 | "ein": "31-6688179", 1769 | "ssn": "391-33-1550", 1770 | "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19" 1771 | }, 1772 | { 1773 | "id": 30, 1774 | "firstName": "Maurine", 1775 | "lastName": "Stracke", 1776 | "maidenName": "Abshire", 1777 | "age": 31, 1778 | "gender": "female", 1779 | "email": "kdulyt@umich.edu", 1780 | "phone": "+48 143 590 6847", 1781 | "username": "kdulyt", 1782 | "password": "5t6q4KC7O", 1783 | "birthDate": "1964-12-18", 1784 | "image": "https://robohash.org/perferendisideveniet.png", 1785 | "bloodGroup": "O−", 1786 | "height": 170, 1787 | "weight": 107.2, 1788 | "eyeColor": "Blue", 1789 | "hair": { 1790 | "color": "Blond", 1791 | "type": "Wavy" 1792 | }, 1793 | "domain": "ow.ly", 1794 | "ip": "97.11.116.84", 1795 | "address": { 1796 | "address": "81 Seaton Place Northwest", 1797 | "city": "Washington", 1798 | "coordinates": { 1799 | "lat": 38.9149499, 1800 | "lng": -77.01170259999999 1801 | }, 1802 | "postalCode": "20001", 1803 | "state": "DC" 1804 | }, 1805 | "macAddress": "42:87:72:A1:4D:9A", 1806 | "university": "Poznan School of Banking", 1807 | "bank": { 1808 | "cardExpire": "02/24", 1809 | "cardNumber": "6331108070510590026", 1810 | "cardType": "switch", 1811 | "currency": "Zloty", 1812 | "iban": "MT70 MKRC 8244 59Z4 9UG1 1HY7 TKM6 1YX" 1813 | }, 1814 | "company": { 1815 | "address": { 1816 | "address": "816 West 19th Avenue", 1817 | "city": "Anchorage", 1818 | "coordinates": { 1819 | "lat": 61.203221, 1820 | "lng": -149.898655 1821 | }, 1822 | "postalCode": "99503", 1823 | "state": "AK" 1824 | }, 1825 | "department": "Support", 1826 | "name": "Balistreri-Kshlerin", 1827 | "title": "Quality Engineer" 1828 | }, 1829 | "ein": "51-7727524", 1830 | "ssn": "534-76-0952", 1831 | "userAgent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11" 1832 | } 1833 | ] 1834 | } 1835 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "clean-typescript", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "autoprefixer": "^10.4.13", 13 | "postcss": "^8.4.20", 14 | "react": "^18.2.0", 15 | "react-dom": "^18.2.0", 16 | "tailwindcss": "^3.2.4" 17 | }, 18 | "devDependencies": { 19 | "@types/react": "^18.0.26", 20 | "@types/react-dom": "^18.0.9", 21 | "@vitejs/plugin-react": "^3.0.0", 22 | "typescript": "^4.9.3", 23 | "vite": "^4.0.0" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /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 | max-width: 1280px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | text-align: center; 6 | } 7 | 8 | .logo { 9 | height: 6em; 10 | padding: 1.5em; 11 | will-change: filter; 12 | } 13 | .logo:hover { 14 | filter: drop-shadow(0 0 2em #646cffaa); 15 | } 16 | .logo.react:hover { 17 | filter: drop-shadow(0 0 2em #61dafbaa); 18 | } 19 | 20 | @keyframes logo-spin { 21 | from { 22 | transform: rotate(0deg); 23 | } 24 | to { 25 | transform: rotate(360deg); 26 | } 27 | } 28 | 29 | @media (prefers-reduced-motion: no-preference) { 30 | a:nth-of-type(2) .logo { 31 | animation: logo-spin infinite 20s linear; 32 | } 33 | } 34 | 35 | .card { 36 | padding: 2em; 37 | } 38 | 39 | .read-the-docs { 40 | color: #888; 41 | } 42 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import reactLogo from "./assets/react.svg"; 3 | import "./App.css"; 4 | 5 | import "./essentials/unknown"; 6 | import { Unknown } from "./examples/unknown"; 7 | 8 | function App() { 9 | const [count, setCount] = useState(0); 10 | 11 | return ( 12 |
13 | 14 |
15 | ); 16 | } 17 | 18 | export default App; 19 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/typescript-mistakes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipenywis/typescript-mistakes/9a18ef5730022f7b39e76417976d70643593a119/src/assets/typescript-mistakes.png -------------------------------------------------------------------------------- /src/components/user.tsx: -------------------------------------------------------------------------------- 1 | interface IUserProps { 2 | id: number; 3 | firstName: string; 4 | lastName: string; 5 | image: string; 6 | } 7 | 8 | export function User(props: IUserProps) { 9 | const { id, image, firstName, lastName } = props; 10 | 11 | return ( 12 |
13 | 14 | 15 | ({id}) {firstName} {lastName} 16 | 17 |
18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /src/essentials/enums.ts: -------------------------------------------------------------------------------- 1 | //Bad ❌ 2 | enum BadState { 3 | InProgress, 4 | Success, 5 | Fail, 6 | } 7 | 8 | BadState.InProgress; // (enum member) State.InProgress = 0 9 | BadState.Success; // (enum member) State.Success = 1 10 | BadState.Fail; // (enum member) State.Fail = 2 11 | 12 | const badCheckState = (state: BadState) => { 13 | // 14 | }; 15 | badCheckState(100); 16 | 17 | //Good ✅ 18 | type GoodState = "InProgress" | "Success" | "Fail"; 19 | enum GoodState2 { 20 | InProgress = "InProgress", 21 | Success = "Success", 22 | Fail = "Fail", 23 | } 24 | 25 | const goodCheckState = (state: GoodState2) => {}; 26 | 27 | goodCheckState("fsdgfsgf"); 28 | 29 | export {}; 30 | -------------------------------------------------------------------------------- /src/essentials/is.ts: -------------------------------------------------------------------------------- 1 | type Species = "cat" | "dog"; 2 | 3 | interface Pet { 4 | species: Species; 5 | } 6 | 7 | class Cat implements Pet { 8 | public species: Species = "cat"; 9 | public meow(): void { 10 | console.log("Meow"); 11 | } 12 | 13 | public jump(): void { 14 | console.log("Jumping..."); 15 | } 16 | 17 | public walk(): void { 18 | console.log("Walking..."); 19 | } 20 | } 21 | 22 | function petIsCat(pet: Pet): pet is Cat { 23 | return pet.species === "cat"; 24 | } 25 | 26 | function petIsCatBoolean(pet: Pet): boolean { 27 | return pet.species === "cat"; 28 | } 29 | 30 | const p: Pet = new Cat(); 31 | 32 | //Bad ❌ 33 | // p.meow(); // ERROR: Property 'meow' does not exist on type 'Pet'. 34 | 35 | if (petIsCatBoolean(p)) { 36 | // p.meow(); // ERROR: Property 'meow' does not exist on type 'Pet'. 37 | 38 | (p as Cat).meow(); 39 | 40 | //What if we have many properties? Do you wanna repeat the same casting 41 | //Over and over again... 42 | } 43 | 44 | //Good ✅ 45 | if (petIsCat(p)) { 46 | p.meow(); // now compiler knows for sure that the variable is of type Cat and it has meow method 47 | } 48 | 49 | export {}; 50 | -------------------------------------------------------------------------------- /src/essentials/satisfies.ts: -------------------------------------------------------------------------------- 1 | //Custom interface for rendering images 2 | interface ICustomImage { 3 | data: string; 4 | width: number; 5 | height: number; 6 | } 7 | 8 | //Sample of a Custom Image 9 | const myCustomImage: ICustomImage = { 10 | data: "base64", 11 | width: 200, 12 | height: 150, 13 | }; 14 | 15 | //Image type for the user 16 | type UserImage = string | ICustomImage; 17 | 18 | //User interface 19 | interface IUser { 20 | id: number; 21 | firstName: string; 22 | lastName: string; 23 | image: UserImage; 24 | } 25 | 26 | //Bad ❌ 27 | const badUser: IUser = { 28 | id: 1, 29 | firstName: "Alex", 30 | lastName: "Brooks", 31 | image: "image-url", 32 | }; 33 | 34 | //Good ✅ 35 | const goodUser = { 36 | id: 1, 37 | firstName: "Alex", 38 | lastName: "Brooks", 39 | image: myCustomImage, 40 | } satisfies IUser; 41 | 42 | export {}; 43 | -------------------------------------------------------------------------------- /src/essentials/unknown.ts: -------------------------------------------------------------------------------- 1 | let userAny: any; ///< ❌ Simply means turn of the Typescript "type-checks" 2 | let userUnkown: unknown; ///< ✅ The right one to use 3 | 4 | // userAny.myThing(); 5 | // userUnkown.myThing(); ///< Error: we can't access undeclared methods in unknown 6 | 7 | interface IUser { 8 | id: number; 9 | firstName: string; 10 | lastName: string; 11 | gender: string; 12 | image: string; 13 | age: number; 14 | } 15 | 16 | interface IAdminUser extends IUser { 17 | token: string; 18 | addNewUser: () => void; 19 | } 20 | 21 | function isAdminUser(object: unknown): object is IAdminUser { 22 | if (object !== null && typeof object === "object") { 23 | return "token" in object; 24 | } 25 | 26 | return false; 27 | } 28 | 29 | function isRegularUser(object: unknown): object is IUser { 30 | if (object !== null && typeof object === "object") { 31 | return "token"! in object; 32 | } 33 | 34 | return false; 35 | } 36 | 37 | async function fetchUser() { 38 | const response = await fetch("https://dummyjson.com/users/1"); 39 | 40 | //Bad ❌ 41 | const badUser: IUser = await response.json(); 42 | // badUser. 43 | 44 | //Good ✅ 45 | const goodUser: unknown = await response.json(); 46 | 47 | // if (isAdminUser(goodUser)) { 48 | // // goodUser. 49 | // } 50 | 51 | // if(isRegularUser(goodUser)) { 52 | // goodUser. 53 | // } 54 | } 55 | 56 | export {}; 57 | -------------------------------------------------------------------------------- /src/essentials/utilityTypes.ts: -------------------------------------------------------------------------------- 1 | /* 2 | - Partial 3 | - Record 4 | ... 5 | */ 6 | 7 | //Product ✅ 8 | 9 | interface IProduct { 10 | id: number; 11 | title: string; 12 | description: string; 13 | thumbnail: string; 14 | price: number; 15 | rating: number; 16 | } 17 | 18 | // interface IUpdateProduct { 19 | // title?: string; 20 | // description?: string; 21 | // thumbnail?: string; 22 | // price?: number; 23 | // rating?: number; 24 | // } 25 | 26 | function updateProduct( 27 | productId: IProduct["id"], 28 | updatedProduct: Partial> 29 | ) { 30 | // updatedProduct. 31 | } 32 | 33 | //Record ✅ 34 | 35 | type Properties = "red" | "green" | "blue"; 36 | type RGB = [red: number, green: number, blue: number]; 37 | 38 | const color: Record = { 39 | red: [255, 0, 0], 40 | green: "green", 41 | blue: "blue", 42 | }; 43 | 44 | export {}; 45 | -------------------------------------------------------------------------------- /src/examples/unknown/index.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import { User } from "../../components/user"; 3 | 4 | interface IUser { 5 | id: number; 6 | firstName: string; 7 | lastName: string; 8 | gender: string; 9 | image: string; 10 | age: number; 11 | } 12 | 13 | interface IAdminUser extends IUser { 14 | token: string; 15 | addNewUser: () => void; 16 | } 17 | 18 | function isAdminUser(object: unknown): object is IAdminUser { 19 | if (object !== null && typeof object === "object") { 20 | return "token" in object; 21 | } 22 | 23 | return false; 24 | } 25 | 26 | export function Unknown() { 27 | const [users, setUsers] = useState([]); 28 | 29 | async function fetchUser() { 30 | const response = await fetch("http://localhost:9000/users"); 31 | const users: unknown[] = await response.json(); 32 | 33 | console.log("Users: ", users); 34 | 35 | users.forEach((user: unknown) => { 36 | if (isAdminUser(user)) { 37 | console.log("Admin: ", user.firstName, user.lastName, user.token); 38 | } 39 | }); 40 | 41 | setUsers(users as IUser[]); 42 | 43 | // if (isAdminUser(user)) { 44 | // // user 45 | // } 46 | } 47 | 48 | useEffect(() => { 49 | fetchUser(); 50 | }, []); 51 | 52 | return ( 53 |
54 |

Users

55 |
56 | {users.map((user) => ( 57 | 58 | ))} 59 |
60 |
61 | ); 62 | } 63 | -------------------------------------------------------------------------------- /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.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tailwind.config.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 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx" 18 | }, 19 | "include": ["src"], 20 | "references": [{ "path": "./tsconfig.node.json" }] 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.2.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" 8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.1.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.18.6": 14 | version "7.18.6" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 16 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/compat-data@^7.20.5": 21 | version "7.20.10" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" 23 | integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== 24 | 25 | "@babel/core@^7.20.5": 26 | version "7.20.7" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" 28 | integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.18.6" 32 | "@babel/generator" "^7.20.7" 33 | "@babel/helper-compilation-targets" "^7.20.7" 34 | "@babel/helper-module-transforms" "^7.20.7" 35 | "@babel/helpers" "^7.20.7" 36 | "@babel/parser" "^7.20.7" 37 | "@babel/template" "^7.20.7" 38 | "@babel/traverse" "^7.20.7" 39 | "@babel/types" "^7.20.7" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.1" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.20.7": 47 | version "7.20.7" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" 49 | integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== 50 | dependencies: 51 | "@babel/types" "^7.20.7" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-compilation-targets@^7.20.7": 56 | version "7.20.7" 57 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" 58 | integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== 59 | dependencies: 60 | "@babel/compat-data" "^7.20.5" 61 | "@babel/helper-validator-option" "^7.18.6" 62 | browserslist "^4.21.3" 63 | lru-cache "^5.1.1" 64 | semver "^6.3.0" 65 | 66 | "@babel/helper-environment-visitor@^7.18.9": 67 | version "7.18.9" 68 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 69 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 70 | 71 | "@babel/helper-function-name@^7.19.0": 72 | version "7.19.0" 73 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" 74 | integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== 75 | dependencies: 76 | "@babel/template" "^7.18.10" 77 | "@babel/types" "^7.19.0" 78 | 79 | "@babel/helper-hoist-variables@^7.18.6": 80 | version "7.18.6" 81 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 82 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 83 | dependencies: 84 | "@babel/types" "^7.18.6" 85 | 86 | "@babel/helper-module-imports@^7.18.6": 87 | version "7.18.6" 88 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" 89 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 90 | dependencies: 91 | "@babel/types" "^7.18.6" 92 | 93 | "@babel/helper-module-transforms@^7.20.7": 94 | version "7.20.7" 95 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.7.tgz#7a6c9a1155bef55e914af574153069c9d9470c43" 96 | integrity sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA== 97 | dependencies: 98 | "@babel/helper-environment-visitor" "^7.18.9" 99 | "@babel/helper-module-imports" "^7.18.6" 100 | "@babel/helper-simple-access" "^7.20.2" 101 | "@babel/helper-split-export-declaration" "^7.18.6" 102 | "@babel/helper-validator-identifier" "^7.19.1" 103 | "@babel/template" "^7.20.7" 104 | "@babel/traverse" "^7.20.7" 105 | "@babel/types" "^7.20.7" 106 | 107 | "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0": 108 | version "7.20.2" 109 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" 110 | integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== 111 | 112 | "@babel/helper-simple-access@^7.20.2": 113 | version "7.20.2" 114 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" 115 | integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== 116 | dependencies: 117 | "@babel/types" "^7.20.2" 118 | 119 | "@babel/helper-split-export-declaration@^7.18.6": 120 | version "7.18.6" 121 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 122 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 123 | dependencies: 124 | "@babel/types" "^7.18.6" 125 | 126 | "@babel/helper-string-parser@^7.19.4": 127 | version "7.19.4" 128 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" 129 | integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== 130 | 131 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 132 | version "7.19.1" 133 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 134 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 135 | 136 | "@babel/helper-validator-option@^7.18.6": 137 | version "7.18.6" 138 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" 139 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 140 | 141 | "@babel/helpers@^7.20.7": 142 | version "7.20.7" 143 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" 144 | integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== 145 | dependencies: 146 | "@babel/template" "^7.20.7" 147 | "@babel/traverse" "^7.20.7" 148 | "@babel/types" "^7.20.7" 149 | 150 | "@babel/highlight@^7.18.6": 151 | version "7.18.6" 152 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 153 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 154 | dependencies: 155 | "@babel/helper-validator-identifier" "^7.18.6" 156 | chalk "^2.0.0" 157 | js-tokens "^4.0.0" 158 | 159 | "@babel/parser@^7.20.7": 160 | version "7.20.7" 161 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" 162 | integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== 163 | 164 | "@babel/plugin-transform-react-jsx-self@^7.18.6": 165 | version "7.18.6" 166 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7" 167 | integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig== 168 | dependencies: 169 | "@babel/helper-plugin-utils" "^7.18.6" 170 | 171 | "@babel/plugin-transform-react-jsx-source@^7.19.6": 172 | version "7.19.6" 173 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" 174 | integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== 175 | dependencies: 176 | "@babel/helper-plugin-utils" "^7.19.0" 177 | 178 | "@babel/template@^7.18.10", "@babel/template@^7.20.7": 179 | version "7.20.7" 180 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" 181 | integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== 182 | dependencies: 183 | "@babel/code-frame" "^7.18.6" 184 | "@babel/parser" "^7.20.7" 185 | "@babel/types" "^7.20.7" 186 | 187 | "@babel/traverse@^7.20.7": 188 | version "7.20.10" 189 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" 190 | integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== 191 | dependencies: 192 | "@babel/code-frame" "^7.18.6" 193 | "@babel/generator" "^7.20.7" 194 | "@babel/helper-environment-visitor" "^7.18.9" 195 | "@babel/helper-function-name" "^7.19.0" 196 | "@babel/helper-hoist-variables" "^7.18.6" 197 | "@babel/helper-split-export-declaration" "^7.18.6" 198 | "@babel/parser" "^7.20.7" 199 | "@babel/types" "^7.20.7" 200 | debug "^4.1.0" 201 | globals "^11.1.0" 202 | 203 | "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7": 204 | version "7.20.7" 205 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" 206 | integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== 207 | dependencies: 208 | "@babel/helper-string-parser" "^7.19.4" 209 | "@babel/helper-validator-identifier" "^7.19.1" 210 | to-fast-properties "^2.0.0" 211 | 212 | "@esbuild/android-arm64@0.16.10": 213 | version "0.16.10" 214 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.10.tgz#d784d8f13dbef50492ea55456fb50651e4036fbf" 215 | integrity sha512-47Y+NwVKTldTlDhSgJHZ/RpvBQMUDG7eKihqaF/u6g7s0ZPz4J1vy8A3rwnnUOF2CuDn7w7Gj/QcMoWz3U3SJw== 216 | 217 | "@esbuild/android-arm@0.16.10": 218 | version "0.16.10" 219 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.10.tgz#becf6b5647c091b039121db8c17300a7dfd1ab4a" 220 | integrity sha512-RmJjQTRrO6VwUWDrzTBLmV4OJZTarYsiepLGlF2rYTVB701hSorPywPGvP6d8HCuuRibyXa5JX4s3jN2kHEtjQ== 221 | 222 | "@esbuild/android-x64@0.16.10": 223 | version "0.16.10" 224 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.10.tgz#648cacbb13a5047380a038e5d6d895015e31b525" 225 | integrity sha512-C4PfnrBMcuAcOurQzpF1tTtZz94IXO5JmICJJ3NFJRHbXXsQUg9RFG45KvydKqtFfBaFLCHpduUkUfXwIvGnRg== 226 | 227 | "@esbuild/darwin-arm64@0.16.10": 228 | version "0.16.10" 229 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.10.tgz#3ca7fd9a456d11752df77df6c030f2d08f27bda9" 230 | integrity sha512-bH/bpFwldyOKdi9HSLCLhhKeVgRYr9KblchwXgY2NeUHBB/BzTUHtUSBgGBmpydB1/4E37m+ggXXfSrnD7/E7g== 231 | 232 | "@esbuild/darwin-x64@0.16.10": 233 | version "0.16.10" 234 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.10.tgz#7eb71b8da4106627f01553def517d3c5e5942592" 235 | integrity sha512-OXt7ijoLuy+AjDSKQWu+KdDFMBbdeaL6wtgMKtDUXKWHiAMKHan5+R1QAG6HD4+K0nnOvEJXKHeA9QhXNAjOTQ== 236 | 237 | "@esbuild/freebsd-arm64@0.16.10": 238 | version "0.16.10" 239 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.10.tgz#c69c78ee1d17d35ad2cf76a1bb67788000a84b43" 240 | integrity sha512-shSQX/3GHuspE3Uxtq5kcFG/zqC+VuMnJkqV7LczO41cIe6CQaXHD3QdMLA4ziRq/m0vZo7JdterlgbmgNIAlQ== 241 | 242 | "@esbuild/freebsd-x64@0.16.10": 243 | version "0.16.10" 244 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.10.tgz#a9804ab1b9366f915812af24ad5cfc1c0db01441" 245 | integrity sha512-5YVc1zdeaJGASijZmTzSO4h6uKzsQGG3pkjI6fuXvolhm3hVRhZwnHJkforaZLmzvNv5Tb7a3QL2FAVmrgySIA== 246 | 247 | "@esbuild/linux-arm64@0.16.10": 248 | version "0.16.10" 249 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.10.tgz#d9a9ddfcb28ed8cced688bc112ef66283d6fa77f" 250 | integrity sha512-2aqeNVxIaRfPcIaMZIFoblLh588sWyCbmj1HHCCs9WmeNWm+EIN0SmvsmPvTa/TsNZFKnxTcvkX2eszTcCqIrA== 251 | 252 | "@esbuild/linux-arm@0.16.10": 253 | version "0.16.10" 254 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.10.tgz#f32cdac1d3319c83ae7f9f31238dd1284ee6bba2" 255 | integrity sha512-c360287ZWI2miBnvIj23bPyVctgzeMT2kQKR+x94pVqIN44h3GF8VMEs1SFPH1UgyDr3yBbx3vowDS1SVhyVhA== 256 | 257 | "@esbuild/linux-ia32@0.16.10": 258 | version "0.16.10" 259 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.10.tgz#1e023478e42f3a01cad48f4af50120d4b639af03" 260 | integrity sha512-sqMIEWeyrLGU7J5RB5fTkLRIFwsgsQ7ieWXlDLEmC2HblPYGb3AucD7inw2OrKFpRPKsec1l+lssiM3+NV5aOw== 261 | 262 | "@esbuild/linux-loong64@0.16.10": 263 | version "0.16.10" 264 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.10.tgz#f9098865a69d1d6e2f8bda51c7f9d4240f20b771" 265 | integrity sha512-O7Pd5hLEtTg37NC73pfhUOGTjx/+aXu5YoSq3ahCxcN7Bcr2F47mv+kG5t840thnsEzrv0oB70+LJu3gUgchvg== 266 | 267 | "@esbuild/linux-mips64el@0.16.10": 268 | version "0.16.10" 269 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.10.tgz#574725ad2ea81b7783b7ba7d1ab3475f8fdd8d32" 270 | integrity sha512-FN8mZOH7531iPHM0kaFhAOqqNHoAb6r/YHW2ZIxNi0a85UBi2DO4Vuyn7t1p4UN8a4LoAnLOT1PqNgHkgBJgbA== 271 | 272 | "@esbuild/linux-ppc64@0.16.10": 273 | version "0.16.10" 274 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.10.tgz#11da658c54514a693813af56bb28951d563a90c3" 275 | integrity sha512-Dg9RiqdvHOAWnOKIOTsIx8dFX9EDlY2IbPEY7YFzchrCiTZmMkD7jWA9UdZbNUygPjdmQBVPRCrLydReFlX9yg== 276 | 277 | "@esbuild/linux-riscv64@0.16.10": 278 | version "0.16.10" 279 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.10.tgz#3af4600adbd6c5a4a6f1da05771f4aa6774baab2" 280 | integrity sha512-XMqtpjwzbmlar0BJIxmzu/RZ7EWlfVfH68Vadrva0Wj5UKOdKvqskuev2jY2oPV3aoQUyXwnMbMrFmloO2GfAw== 281 | 282 | "@esbuild/linux-s390x@0.16.10": 283 | version "0.16.10" 284 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.10.tgz#9e3377aaf0191a9d6628e806a279085ec4391f3e" 285 | integrity sha512-fu7XtnoeRNFMx8DjK3gPWpFBDM2u5ba+FYwg27SjMJwKvJr4bDyKz5c+FLXLUSSAkMAt/UL+cUbEbra+rYtUgw== 286 | 287 | "@esbuild/linux-x64@0.16.10": 288 | version "0.16.10" 289 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.10.tgz#7c41d4d697ce674e0083e7baa6231468f4650d85" 290 | integrity sha512-61lcjVC/RldNNMUzQQdyCWjCxp9YLEQgIxErxU9XluX7juBdGKb0pvddS0vPNuCvotRbzijZ1pzII+26haWzbA== 291 | 292 | "@esbuild/netbsd-x64@0.16.10": 293 | version "0.16.10" 294 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.10.tgz#ebac59e3986834af04bbafcee7b0c1f31cd477c6" 295 | integrity sha512-JeZXCX3viSA9j4HqSoygjssdqYdfHd6yCFWyfSekLbz4Ef+D2EjvsN02ZQPwYl5a5gg/ehdHgegHhlfOFP0HCA== 296 | 297 | "@esbuild/openbsd-x64@0.16.10": 298 | version "0.16.10" 299 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.10.tgz#9eaa6cac3b80db45090c0946e62de5b5689c61d1" 300 | integrity sha512-3qpxQKuEVIIg8SebpXsp82OBrqjPV/OwNWmG+TnZDr3VGyChNnGMHccC1xkbxCHDQNnnXjxhMQNyHmdFJbmbRA== 301 | 302 | "@esbuild/sunos-x64@0.16.10": 303 | version "0.16.10" 304 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.10.tgz#31e5e4b814ef43d300e26511e486a4716a390d5f" 305 | integrity sha512-z+q0xZ+et/7etz7WoMyXTHZ1rB8PMSNp/FOqURLJLOPb3GWJ2aj4oCqFCjPwEbW1rsT7JPpxeH/DwGAWk/I1Bg== 306 | 307 | "@esbuild/win32-arm64@0.16.10": 308 | version "0.16.10" 309 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.10.tgz#ca58472dc03ca79e6d03f8a31113979ff253d94f" 310 | integrity sha512-+YYu5sbQ9npkNT9Dec+tn1F/kjg6SMgr6bfi/6FpXYZvCRfu2YFPZGb+3x8K30s8eRxFpoG4sGhiSUkr1xbHEw== 311 | 312 | "@esbuild/win32-ia32@0.16.10": 313 | version "0.16.10" 314 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.10.tgz#c572df2c65ab118feed0a5da5a4a193846d74e43" 315 | integrity sha512-Aw7Fupk7XNehR1ftHGYwUteyJ2q+em/aE+fVU3YMTBN2V5A7Z4aVCSV+SvCp9HIIHZavPFBpbdP3VfjQpdf6Xg== 316 | 317 | "@esbuild/win32-x64@0.16.10": 318 | version "0.16.10" 319 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.10.tgz#0e9c6a5e69c10d96aff2386b7ee9646138c2a831" 320 | integrity sha512-qddWullt3sC1EIpfHvCRBq3H4g3L86DZpD6n8k2XFjFVyp01D++uNbN1hT/JRsHxTbyyemZcpwL5aRlJwc/zFw== 321 | 322 | "@jridgewell/gen-mapping@^0.1.0": 323 | version "0.1.1" 324 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 325 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 326 | dependencies: 327 | "@jridgewell/set-array" "^1.0.0" 328 | "@jridgewell/sourcemap-codec" "^1.4.10" 329 | 330 | "@jridgewell/gen-mapping@^0.3.2": 331 | version "0.3.2" 332 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 333 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 334 | dependencies: 335 | "@jridgewell/set-array" "^1.0.1" 336 | "@jridgewell/sourcemap-codec" "^1.4.10" 337 | "@jridgewell/trace-mapping" "^0.3.9" 338 | 339 | "@jridgewell/resolve-uri@3.1.0": 340 | version "3.1.0" 341 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 342 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 343 | 344 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 345 | version "1.1.2" 346 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 347 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 348 | 349 | "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": 350 | version "1.4.14" 351 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 352 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 353 | 354 | "@jridgewell/trace-mapping@^0.3.9": 355 | version "0.3.17" 356 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" 357 | integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== 358 | dependencies: 359 | "@jridgewell/resolve-uri" "3.1.0" 360 | "@jridgewell/sourcemap-codec" "1.4.14" 361 | 362 | "@nodelib/fs.scandir@2.1.5": 363 | version "2.1.5" 364 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 365 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 366 | dependencies: 367 | "@nodelib/fs.stat" "2.0.5" 368 | run-parallel "^1.1.9" 369 | 370 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 371 | version "2.0.5" 372 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 373 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 374 | 375 | "@nodelib/fs.walk@^1.2.3": 376 | version "1.2.8" 377 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 378 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 379 | dependencies: 380 | "@nodelib/fs.scandir" "2.1.5" 381 | fastq "^1.6.0" 382 | 383 | "@types/prop-types@*": 384 | version "15.7.5" 385 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 386 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 387 | 388 | "@types/react-dom@^18.0.9": 389 | version "18.0.9" 390 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.9.tgz#ffee5e4bfc2a2f8774b15496474f8e7fe8d0b504" 391 | integrity sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg== 392 | dependencies: 393 | "@types/react" "*" 394 | 395 | "@types/react@*", "@types/react@^18.0.26": 396 | version "18.0.26" 397 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" 398 | integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== 399 | dependencies: 400 | "@types/prop-types" "*" 401 | "@types/scheduler" "*" 402 | csstype "^3.0.2" 403 | 404 | "@types/scheduler@*": 405 | version "0.16.2" 406 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 407 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 408 | 409 | "@vitejs/plugin-react@^3.0.0": 410 | version "3.0.0" 411 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz#f36ee1b2ce958dd11ac63fdf746a3b27b0d258ed" 412 | integrity sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ== 413 | dependencies: 414 | "@babel/core" "^7.20.5" 415 | "@babel/plugin-transform-react-jsx-self" "^7.18.6" 416 | "@babel/plugin-transform-react-jsx-source" "^7.19.6" 417 | magic-string "^0.27.0" 418 | react-refresh "^0.14.0" 419 | 420 | acorn-node@^1.8.2: 421 | version "1.8.2" 422 | resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" 423 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== 424 | dependencies: 425 | acorn "^7.0.0" 426 | acorn-walk "^7.0.0" 427 | xtend "^4.0.2" 428 | 429 | acorn-walk@^7.0.0: 430 | version "7.2.0" 431 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" 432 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== 433 | 434 | acorn@^7.0.0: 435 | version "7.4.1" 436 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 437 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 438 | 439 | ansi-styles@^3.2.1: 440 | version "3.2.1" 441 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 442 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 443 | dependencies: 444 | color-convert "^1.9.0" 445 | 446 | anymatch@~3.1.2: 447 | version "3.1.3" 448 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 449 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 450 | dependencies: 451 | normalize-path "^3.0.0" 452 | picomatch "^2.0.4" 453 | 454 | arg@^5.0.2: 455 | version "5.0.2" 456 | resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" 457 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== 458 | 459 | autoprefixer@^10.4.13: 460 | version "10.4.13" 461 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" 462 | integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== 463 | dependencies: 464 | browserslist "^4.21.4" 465 | caniuse-lite "^1.0.30001426" 466 | fraction.js "^4.2.0" 467 | normalize-range "^0.1.2" 468 | picocolors "^1.0.0" 469 | postcss-value-parser "^4.2.0" 470 | 471 | binary-extensions@^2.0.0: 472 | version "2.2.0" 473 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 474 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 475 | 476 | braces@^3.0.2, braces@~3.0.2: 477 | version "3.0.2" 478 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 479 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 480 | dependencies: 481 | fill-range "^7.0.1" 482 | 483 | browserslist@^4.21.3, browserslist@^4.21.4: 484 | version "4.21.4" 485 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" 486 | integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== 487 | dependencies: 488 | caniuse-lite "^1.0.30001400" 489 | electron-to-chromium "^1.4.251" 490 | node-releases "^2.0.6" 491 | update-browserslist-db "^1.0.9" 492 | 493 | camelcase-css@^2.0.1: 494 | version "2.0.1" 495 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" 496 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== 497 | 498 | caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: 499 | version "1.0.30001441" 500 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" 501 | integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== 502 | 503 | chalk@^2.0.0: 504 | version "2.4.2" 505 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 506 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 507 | dependencies: 508 | ansi-styles "^3.2.1" 509 | escape-string-regexp "^1.0.5" 510 | supports-color "^5.3.0" 511 | 512 | chokidar@^3.5.3: 513 | version "3.5.3" 514 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 515 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 516 | dependencies: 517 | anymatch "~3.1.2" 518 | braces "~3.0.2" 519 | glob-parent "~5.1.2" 520 | is-binary-path "~2.1.0" 521 | is-glob "~4.0.1" 522 | normalize-path "~3.0.0" 523 | readdirp "~3.6.0" 524 | optionalDependencies: 525 | fsevents "~2.3.2" 526 | 527 | color-convert@^1.9.0: 528 | version "1.9.3" 529 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 530 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 531 | dependencies: 532 | color-name "1.1.3" 533 | 534 | color-name@1.1.3: 535 | version "1.1.3" 536 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 537 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 538 | 539 | color-name@^1.1.4: 540 | version "1.1.4" 541 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 542 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 543 | 544 | convert-source-map@^1.7.0: 545 | version "1.9.0" 546 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" 547 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== 548 | 549 | cssesc@^3.0.0: 550 | version "3.0.0" 551 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 552 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 553 | 554 | csstype@^3.0.2: 555 | version "3.1.1" 556 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" 557 | integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== 558 | 559 | debug@^4.1.0: 560 | version "4.3.4" 561 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 562 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 563 | dependencies: 564 | ms "2.1.2" 565 | 566 | defined@^1.0.0: 567 | version "1.0.1" 568 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" 569 | integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== 570 | 571 | detective@^5.2.1: 572 | version "5.2.1" 573 | resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" 574 | integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== 575 | dependencies: 576 | acorn-node "^1.8.2" 577 | defined "^1.0.0" 578 | minimist "^1.2.6" 579 | 580 | didyoumean@^1.2.2: 581 | version "1.2.2" 582 | resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" 583 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== 584 | 585 | dlv@^1.1.3: 586 | version "1.1.3" 587 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" 588 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== 589 | 590 | electron-to-chromium@^1.4.251: 591 | version "1.4.284" 592 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" 593 | integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== 594 | 595 | esbuild@^0.16.3: 596 | version "0.16.10" 597 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.10.tgz#d485c28f1626a3f9c1796c952e4cd0561f0031bb" 598 | integrity sha512-z5dIViHoVnw2l+NCJ3zj5behdXjYvXne9gL18OOivCadXDUhyDkeSvEtLcGVAJW2fNmh33TDUpsi704XYlDodw== 599 | optionalDependencies: 600 | "@esbuild/android-arm" "0.16.10" 601 | "@esbuild/android-arm64" "0.16.10" 602 | "@esbuild/android-x64" "0.16.10" 603 | "@esbuild/darwin-arm64" "0.16.10" 604 | "@esbuild/darwin-x64" "0.16.10" 605 | "@esbuild/freebsd-arm64" "0.16.10" 606 | "@esbuild/freebsd-x64" "0.16.10" 607 | "@esbuild/linux-arm" "0.16.10" 608 | "@esbuild/linux-arm64" "0.16.10" 609 | "@esbuild/linux-ia32" "0.16.10" 610 | "@esbuild/linux-loong64" "0.16.10" 611 | "@esbuild/linux-mips64el" "0.16.10" 612 | "@esbuild/linux-ppc64" "0.16.10" 613 | "@esbuild/linux-riscv64" "0.16.10" 614 | "@esbuild/linux-s390x" "0.16.10" 615 | "@esbuild/linux-x64" "0.16.10" 616 | "@esbuild/netbsd-x64" "0.16.10" 617 | "@esbuild/openbsd-x64" "0.16.10" 618 | "@esbuild/sunos-x64" "0.16.10" 619 | "@esbuild/win32-arm64" "0.16.10" 620 | "@esbuild/win32-ia32" "0.16.10" 621 | "@esbuild/win32-x64" "0.16.10" 622 | 623 | escalade@^3.1.1: 624 | version "3.1.1" 625 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 626 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 627 | 628 | escape-string-regexp@^1.0.5: 629 | version "1.0.5" 630 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 631 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 632 | 633 | fast-glob@^3.2.12: 634 | version "3.2.12" 635 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" 636 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== 637 | dependencies: 638 | "@nodelib/fs.stat" "^2.0.2" 639 | "@nodelib/fs.walk" "^1.2.3" 640 | glob-parent "^5.1.2" 641 | merge2 "^1.3.0" 642 | micromatch "^4.0.4" 643 | 644 | fastq@^1.6.0: 645 | version "1.14.0" 646 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" 647 | integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== 648 | dependencies: 649 | reusify "^1.0.4" 650 | 651 | fill-range@^7.0.1: 652 | version "7.0.1" 653 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 654 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 655 | dependencies: 656 | to-regex-range "^5.0.1" 657 | 658 | fraction.js@^4.2.0: 659 | version "4.2.0" 660 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" 661 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== 662 | 663 | fsevents@~2.3.2: 664 | version "2.3.2" 665 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 666 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 667 | 668 | function-bind@^1.1.1: 669 | version "1.1.1" 670 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 671 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 672 | 673 | gensync@^1.0.0-beta.2: 674 | version "1.0.0-beta.2" 675 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 676 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 677 | 678 | glob-parent@^5.1.2, glob-parent@~5.1.2: 679 | version "5.1.2" 680 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 681 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 682 | dependencies: 683 | is-glob "^4.0.1" 684 | 685 | glob-parent@^6.0.2: 686 | version "6.0.2" 687 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 688 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 689 | dependencies: 690 | is-glob "^4.0.3" 691 | 692 | globals@^11.1.0: 693 | version "11.12.0" 694 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 695 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 696 | 697 | has-flag@^3.0.0: 698 | version "3.0.0" 699 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 700 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 701 | 702 | has@^1.0.3: 703 | version "1.0.3" 704 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 705 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 706 | dependencies: 707 | function-bind "^1.1.1" 708 | 709 | is-binary-path@~2.1.0: 710 | version "2.1.0" 711 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 712 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 713 | dependencies: 714 | binary-extensions "^2.0.0" 715 | 716 | is-core-module@^2.9.0: 717 | version "2.11.0" 718 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" 719 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== 720 | dependencies: 721 | has "^1.0.3" 722 | 723 | is-extglob@^2.1.1: 724 | version "2.1.1" 725 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 726 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 727 | 728 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 729 | version "4.0.3" 730 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 731 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 732 | dependencies: 733 | is-extglob "^2.1.1" 734 | 735 | is-number@^7.0.0: 736 | version "7.0.0" 737 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 738 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 739 | 740 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 741 | version "4.0.0" 742 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 743 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 744 | 745 | jsesc@^2.5.1: 746 | version "2.5.2" 747 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 748 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 749 | 750 | json5@^2.2.1: 751 | version "2.2.2" 752 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.2.tgz#64471c5bdcc564c18f7c1d4df2e2297f2457c5ab" 753 | integrity sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ== 754 | 755 | lilconfig@^2.0.5, lilconfig@^2.0.6: 756 | version "2.0.6" 757 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" 758 | integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== 759 | 760 | loose-envify@^1.1.0: 761 | version "1.4.0" 762 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 763 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 764 | dependencies: 765 | js-tokens "^3.0.0 || ^4.0.0" 766 | 767 | lru-cache@^5.1.1: 768 | version "5.1.1" 769 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 770 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 771 | dependencies: 772 | yallist "^3.0.2" 773 | 774 | magic-string@^0.27.0: 775 | version "0.27.0" 776 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" 777 | integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== 778 | dependencies: 779 | "@jridgewell/sourcemap-codec" "^1.4.13" 780 | 781 | merge2@^1.3.0: 782 | version "1.4.1" 783 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 784 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 785 | 786 | micromatch@^4.0.4, micromatch@^4.0.5: 787 | version "4.0.5" 788 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 789 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 790 | dependencies: 791 | braces "^3.0.2" 792 | picomatch "^2.3.1" 793 | 794 | minimist@^1.2.6: 795 | version "1.2.7" 796 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" 797 | integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== 798 | 799 | ms@2.1.2: 800 | version "2.1.2" 801 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 802 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 803 | 804 | nanoid@^3.3.4: 805 | version "3.3.4" 806 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 807 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 808 | 809 | node-releases@^2.0.6: 810 | version "2.0.8" 811 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" 812 | integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== 813 | 814 | normalize-path@^3.0.0, normalize-path@~3.0.0: 815 | version "3.0.0" 816 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 817 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 818 | 819 | normalize-range@^0.1.2: 820 | version "0.1.2" 821 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" 822 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== 823 | 824 | object-hash@^3.0.0: 825 | version "3.0.0" 826 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" 827 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== 828 | 829 | path-parse@^1.0.7: 830 | version "1.0.7" 831 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 832 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 833 | 834 | picocolors@^1.0.0: 835 | version "1.0.0" 836 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 837 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 838 | 839 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 840 | version "2.3.1" 841 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 842 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 843 | 844 | pify@^2.3.0: 845 | version "2.3.0" 846 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 847 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 848 | 849 | postcss-import@^14.1.0: 850 | version "14.1.0" 851 | resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" 852 | integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== 853 | dependencies: 854 | postcss-value-parser "^4.0.0" 855 | read-cache "^1.0.0" 856 | resolve "^1.1.7" 857 | 858 | postcss-js@^4.0.0: 859 | version "4.0.0" 860 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" 861 | integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== 862 | dependencies: 863 | camelcase-css "^2.0.1" 864 | 865 | postcss-load-config@^3.1.4: 866 | version "3.1.4" 867 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" 868 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== 869 | dependencies: 870 | lilconfig "^2.0.5" 871 | yaml "^1.10.2" 872 | 873 | postcss-nested@6.0.0: 874 | version "6.0.0" 875 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" 876 | integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== 877 | dependencies: 878 | postcss-selector-parser "^6.0.10" 879 | 880 | postcss-selector-parser@^6.0.10: 881 | version "6.0.11" 882 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" 883 | integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== 884 | dependencies: 885 | cssesc "^3.0.0" 886 | util-deprecate "^1.0.2" 887 | 888 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: 889 | version "4.2.0" 890 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 891 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 892 | 893 | postcss@^8.4.18, postcss@^8.4.20: 894 | version "8.4.20" 895 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" 896 | integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== 897 | dependencies: 898 | nanoid "^3.3.4" 899 | picocolors "^1.0.0" 900 | source-map-js "^1.0.2" 901 | 902 | queue-microtask@^1.2.2: 903 | version "1.2.3" 904 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 905 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 906 | 907 | quick-lru@^5.1.1: 908 | version "5.1.1" 909 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 910 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 911 | 912 | react-dom@^18.2.0: 913 | version "18.2.0" 914 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 915 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 916 | dependencies: 917 | loose-envify "^1.1.0" 918 | scheduler "^0.23.0" 919 | 920 | react-refresh@^0.14.0: 921 | version "0.14.0" 922 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" 923 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== 924 | 925 | react@^18.2.0: 926 | version "18.2.0" 927 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 928 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 929 | dependencies: 930 | loose-envify "^1.1.0" 931 | 932 | read-cache@^1.0.0: 933 | version "1.0.0" 934 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" 935 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== 936 | dependencies: 937 | pify "^2.3.0" 938 | 939 | readdirp@~3.6.0: 940 | version "3.6.0" 941 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 942 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 943 | dependencies: 944 | picomatch "^2.2.1" 945 | 946 | resolve@^1.1.7, resolve@^1.22.1: 947 | version "1.22.1" 948 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 949 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 950 | dependencies: 951 | is-core-module "^2.9.0" 952 | path-parse "^1.0.7" 953 | supports-preserve-symlinks-flag "^1.0.0" 954 | 955 | reusify@^1.0.4: 956 | version "1.0.4" 957 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 958 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 959 | 960 | rollup@^3.7.0: 961 | version "3.8.1" 962 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.8.1.tgz#d4af8aca7c60d5b8c0281be79ea2fab6b41d458f" 963 | integrity sha512-4yh9eMW7byOroYcN8DlF9P/2jCpu6txVIHjEqquQVSx7DI0RgyCCN3tjrcy4ra6yVtV336aLBB3v2AarYAxePQ== 964 | optionalDependencies: 965 | fsevents "~2.3.2" 966 | 967 | run-parallel@^1.1.9: 968 | version "1.2.0" 969 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 970 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 971 | dependencies: 972 | queue-microtask "^1.2.2" 973 | 974 | scheduler@^0.23.0: 975 | version "0.23.0" 976 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 977 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 978 | dependencies: 979 | loose-envify "^1.1.0" 980 | 981 | semver@^6.3.0: 982 | version "6.3.0" 983 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 984 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 985 | 986 | source-map-js@^1.0.2: 987 | version "1.0.2" 988 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 989 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 990 | 991 | supports-color@^5.3.0: 992 | version "5.5.0" 993 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 994 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 995 | dependencies: 996 | has-flag "^3.0.0" 997 | 998 | supports-preserve-symlinks-flag@^1.0.0: 999 | version "1.0.0" 1000 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1001 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1002 | 1003 | tailwindcss@^3.2.4: 1004 | version "3.2.4" 1005 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.4.tgz#afe3477e7a19f3ceafb48e4b083e292ce0dc0250" 1006 | integrity sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ== 1007 | dependencies: 1008 | arg "^5.0.2" 1009 | chokidar "^3.5.3" 1010 | color-name "^1.1.4" 1011 | detective "^5.2.1" 1012 | didyoumean "^1.2.2" 1013 | dlv "^1.1.3" 1014 | fast-glob "^3.2.12" 1015 | glob-parent "^6.0.2" 1016 | is-glob "^4.0.3" 1017 | lilconfig "^2.0.6" 1018 | micromatch "^4.0.5" 1019 | normalize-path "^3.0.0" 1020 | object-hash "^3.0.0" 1021 | picocolors "^1.0.0" 1022 | postcss "^8.4.18" 1023 | postcss-import "^14.1.0" 1024 | postcss-js "^4.0.0" 1025 | postcss-load-config "^3.1.4" 1026 | postcss-nested "6.0.0" 1027 | postcss-selector-parser "^6.0.10" 1028 | postcss-value-parser "^4.2.0" 1029 | quick-lru "^5.1.1" 1030 | resolve "^1.22.1" 1031 | 1032 | to-fast-properties@^2.0.0: 1033 | version "2.0.0" 1034 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1035 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1036 | 1037 | to-regex-range@^5.0.1: 1038 | version "5.0.1" 1039 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1040 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1041 | dependencies: 1042 | is-number "^7.0.0" 1043 | 1044 | typescript@^4.9.3: 1045 | version "4.9.4" 1046 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" 1047 | integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== 1048 | 1049 | update-browserslist-db@^1.0.9: 1050 | version "1.0.10" 1051 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 1052 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 1053 | dependencies: 1054 | escalade "^3.1.1" 1055 | picocolors "^1.0.0" 1056 | 1057 | util-deprecate@^1.0.2: 1058 | version "1.0.2" 1059 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1060 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1061 | 1062 | vite@^4.0.0: 1063 | version "4.0.3" 1064 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.3.tgz#de27ad3f263a03ae9419cdc8bc07721eadcba8b9" 1065 | integrity sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA== 1066 | dependencies: 1067 | esbuild "^0.16.3" 1068 | postcss "^8.4.20" 1069 | resolve "^1.22.1" 1070 | rollup "^3.7.0" 1071 | optionalDependencies: 1072 | fsevents "~2.3.2" 1073 | 1074 | xtend@^4.0.2: 1075 | version "4.0.2" 1076 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1077 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1078 | 1079 | yallist@^3.0.2: 1080 | version "3.1.1" 1081 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1082 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1083 | 1084 | yaml@^1.10.2: 1085 | version "1.10.2" 1086 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 1087 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 1088 | --------------------------------------------------------------------------------