diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..d6c9537 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,18 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/api/data.json b/api/data.json new file mode 100644 index 0000000..cc58f7f --- /dev/null +++ b/api/data.json @@ -0,0 +1,3022 @@ +[ + { + "name": "Aardonyx", + "description": "An early stage in the evolution of sauropods." + }, + { + "name": "Abelisaurus", + "description": "\"Abel's lizard\" has been reconstructed from a single skull." + }, + { + "name": "Abrictosaurus", + "description": "An early relative of Heterodontosaurus." + }, + { + "name": "Abrosaurus", + "description": "A close Asian relative of Camarasaurus." + }, + { + "name": "Abydosaurus", + "description": "This sauropod's intact skull was discovered in 2010." + }, + { + "name": "Acanthopholis", + "description": "No, it's not a city in Greece." + }, + { + "name": "Achelousaurus", + "description": "Might this have been a growth stage of Pachyrhinosaurus?" + }, + { + "name": "Achillobator", + "description": "This fierce raptor was discovered in modern-day Mongolia." + }, + { + "name": "Acristavus", + "description": "This early hadrosaur lacked any ornamentation on its skull." + }, + { + "name": "Acrocanthosaurus", + "description": "The largest meat-eating dinosaur of the early Cretaceous period." + }, + { + "name": "Acrotholus", + "description": "North America's earliest bone-headed dinosaur." + }, + { + "name": "Adamantisaurus", + "description": "This titanosaur was named 50 years after its discovery." + }, + { + "name": "Adasaurus", + "description": "This raptor's hind claws were unusually small." + }, + { + "name": "Adeopapposaurus", + "description": "A close relative of Massospondylus." + }, + { + "name": "Aegyptosaurus", + "description": "Try and guess which country this dinosaur was found in." + }, + { + "name": "Aeolosaurus", + "description": "Could this titanosaur have reared up on its hind legs?" + }, + { + "name": "Aerosteon", + "description": "This air-boned dinosaur may have breathed like a bird." + }, + { + "name": "Afrovenator", + "description": "One of the few carnivores ever to be dug up in northern Africa." + }, + { + "name": "Agathaumas", + "description": "The first ceratopsian dinosaur ever discovered." + }, + { + "name": "Agilisaurus", + "description": "This \"agile lizard\" was one of the earliest ornithopods." + }, + { + "name": "Agujaceratops", + "description": "It was once classified as a species of Chasmosaurus." + }, + { + "name": "Agustinia", + "description": "A large, spiny-backed sauropod." + }, + { + "name": "Ajkaceratops", + "description": "The first ceratopsian ever to be discovered in Europe." + }, + { + "name": "Alamosaurus", + "description": "No, it wasn't named after the Alamo, but it should have been." + }, + { + "name": "Alaskacephale", + "description": "Can you guess which state this pachycephalosaur was found in?" + }, + { + "name": "Albalophosaurus", + "description": "One of the few dinosaurs ever to be discovered in Japan." + }, + { + "name": "Albertaceratops", + "description": "The most basal \"centrosaurine\" yet identified." + }, + { + "name": "Albertadromeus", + "description": "This petite ornithopod was recently discovered in Canada." + }, + { + "name": "Albertonykus", + "description": "A tiny, birdlike, North American dinosaur." + }, + { + "name": "Albertosaurus", + "description": "This carnivorous dinosaur was a close relative of T. Rex." + }, + { + "name": "Alectrosaurus", + "description": "Few specimens of this \"unmarried lizard\" have been found." + }, + { + "name": "Aletopelta", + "description": "The first ankylosaur known to have lived in Mexico." + }, + { + "name": "Alioramus", + "description": "Everything we know about this tyrannosaur is based on a single skull." + }, + { + "name": "Allosaurus", + "description": "The apex predator of late Jurassic North America." + }, + { + "name": "Altirhinus", + "description": "This \"high-nosed\" plant eater resembled an early hadrosaur." + }, + { + "name": "Alvarezsaurus", + "description": "A bird-like dinosaur of the late Cretaceous." + }, + { + "name": "Alwalkeria", + "description": "This Indian dinosaur was one of the earliest saurischians." + }, + { + "name": "Alxasaurus", + "description": "An early relative of the bizarre Therizinosaurus." + }, + { + "name": "Amargasaurus", + "description": "A bizarre, spined sauropod from South America." + }, + { + "name": "Amazonsaurus", + "description": "One of the few dinosaurs to be found in the Amazon basin." + }, + { + "name": "Ammosaurus", + "description": "This may (or may not) have been the same dinosaur as Anchisaurus." + }, + { + "name": "Ampelosaurus", + "description": "One of the best-known of the armored titanosaurs." + }, + { + "name": "Amphicoelias", + "description": "Could it have been the biggest dinosaur that ever lived?" + }, + { + "name": "Amurosaurus", + "description": "The most complete hadrosaur to be discovered in Russia." + }, + { + "name": "Anabisetia", + "description": "The best-attested South American ornithopod." + }, + { + "name": "Anatosaurus", + "description": "This dinosaur is now known as either Anatotitan or Edmontosaurus." + }, + { + "name": "Anatotitan", + "description": "This hadrosaur's name means \"giant duck\"." + }, + { + "name": "Anchiceratops", + "description": "This dinosaur had a distinctively shaped frill." + }, + { + "name": "Anchiornis", + "description": "A four-winged dino-bird that resembled Microraptor." + }, + { + "name": "Anchisaurus", + "description": "One of the first dinosaurs ever to be dug up in the U.S." + }, + { + "name": "Andesaurus", + "description": "This titanosaur rivaled Argentinosaurus in size." + }, + { + "name": "Angaturama", + "description": "A Brazilian relative of Spinosaurus." + }, + { + "name": "Angolatitan", + "description": "The first dinosaur ever to be discovered in Angola." + }, + { + "name": "Angulomastacator", + "description": "This dinosaur had a strangely shaped upper jaw." + }, + { + "name": "Animantarx", + "description": "This \"living fortress\" was discovered in an unusual way." + }, + { + "name": "Ankylosaurus", + "description": "This dinosaur was the Cretaceous equivalent of a Sherman tank." + }, + { + "name": "Anodontosaurus", + "description": "This \"toothless lizard\" actually had a full set of choppers." + }, + { + "name": "Anserimimus", + "description": "This \"goose mimic\" didn’t bear much of a resemblance." + }, + { + "name": "Antarctopelta", + "description": "The first dinosaur fossil ever discovered in Antarctica." + }, + { + "name": "Antarctosaurus", + "description": "This titanosaur may or may not have lived in Antarctica." + }, + { + "name": "Antetonitrus", + "description": "Either a very late prosauropod or a very early sauropod." + }, + { + "name": "Anzu", + "description": "This Oviraptor relative was recently discovered in North America." + }, + { + "name": "Aorun", + "description": "A small theropod of late Jurassic Asia." + }, + { + "name": "Apatosaurus", + "description": "The dinosaur formerly known as Brontosaurus." + }, + { + "name": "Appalachiosaurus", + "description": "One of the few dinosaurs ever to be found in Alabama." + }, + { + "name": "Aquilops", + "description": "The earliest ceratopsian ever to be discovered in North America." + }, + { + "name": "Aragosaurus", + "description": "named after the Aragon region of Spain." + }, + { + "name": "Aralosaurus", + "description": "Not much is known about this central Asian duck-billed dinosaur." + }, + { + "name": "Archaeoceratops", + "description": "Possibly the smallest ceratopsian that ever lived." + }, + { + "name": "Archaeopteryx", + "description": "This ancient dino-bird was about the size of a modern pigeon." + }, + { + "name": "Archaeornithomimus", + "description": "A likely ancestor of Ornithomimus." + }, + { + "name": "Arcovenator", + "description": "This fierce abelisaur was recently discovered in France." + }, + { + "name": "Arcusaurus", + "description": "This prosauropod was recently discovered in South Africa." + }, + { + "name": "Argentinosaurus", + "description": "Possibly the largest dinosaur that ever lived." + }, + { + "name": "Argyrosaurus", + "description": "A plus-sized titanosaur from South America." + }, + { + "name": "Aristosuchus", + "description": "This \"noble crocodile\" was actually a dinosaur." + }, + { + "name": "Arrhinoceratops", + "description": "This ceratopsian was named for its \"missing\" nose horn." + }, + { + "name": "Astrodon", + "description": "The official state dinosaur of Maryland." + }, + { + "name": "Asylosaurus", + "description": "This \"unharmed lizard\" escaped destruction in World War II." + }, + { + "name": "Atlasaurus", + "description": "This sauropod had unusually long legs." + }, + { + "name": "Atlascopcosaurus", + "description": "named after a manufacturer of digging equipment." + }, + { + "name": "Atrociraptor", + "description": "This \"cruel thief\" wasn't as atrocious as its name implies." + }, + { + "name": "Aublysodon", + "description": "This tyrannosaur was named after a single tooth." + }, + { + "name": "Aucasaurus", + "description": "This predator was a close relative of Carnotaurus." + }, + { + "name": "Auroraceratops", + "description": "A close relative of Archaeoceratops." + }, + { + "name": "Australodocus", + "description": "This sauropod was found in modern-day Tanzania." + }, + { + "name": "Australovenator", + "description": "A recently discovered carnivore from Australia." + }, + { + "name": "Austroraptor", + "description": "The largest raptor from South America." + }, + { + "name": "Austrosaurus", + "description": "This titanosaur was discovered near a train station." + }, + { + "name": "Avaceratops", + "description": "This ceratopsian is represented by a single juvenile." + }, + { + "name": "Aviatyrannis", + "description": "This \"grandmother tyrant\" was one of the first tyrannosaurs." + }, + { + "name": "Avimimus", + "description": "A particularly bird-like cousin of Oviraptor." + }, + { + "name": "Bactrosaurus", + "description": "One of the earliest of the duck-billed dinosaurs." + }, + { + "name": "Bagaceratops", + "description": "A small ceratopsian from central Asia." + }, + { + "name": "Bagaraatan", + "description": "No one is quite sure how to classify this theropod." + }, + { + "name": "Bahariasaurus", + "description": "This obscure carnivore may have been the size of T. Rex." + }, + { + "name": "Balaur", + "description": "This \"stocky dragon\" was recently discovered in Romania." + }, + { + "name": "Bambiraptor", + "description": "Yes, this tiny raptor was named after you-know-who." + }, + { + "name": "Barapasaurus", + "description": "Probably the first of the giant sauropods." + }, + { + "name": "Barilium", + "description": "Yet another iguanodontid ornithopod of the British Isles." + }, + { + "name": "Barosaurus", + "description": "An enormous plant-eater with a tiny head." + }, + { + "name": "Barsboldia", + "description": "This hadrosaur was named after Rinchen Barsbold." + }, + { + "name": "Baryonyx", + "description": "You wouldn't want to clip this dinosaur's claws." + }, + { + "name": "Batyrosaurus", + "description": "One of the most basal hadrosaurs yet identified." + }, + { + "name": "Becklespinax", + "description": "A strangely named theropod of the early Cretaceous period." + }, + { + "name": "Beipiaosaurus", + "description": "The only known feathered therizinosaur." + }, + { + "name": "Beishanlong", + "description": "This bird mimic weighed over half a ton." + }, + { + "name": "Bellusaurus", + "description": "A herd of this sauropod drowned in a flash flood." + }, + { + "name": "Berberosaurus", + "description": "This \"Berber lizard\" has proven difficult to classify." + }, + { + "name": "Bicentenaria", + "description": "This dinosaur was named for Argentina's 200th anniversary." + }, + { + "name": "Bistahieversor", + "description": "This tyrannosaur had more teeth than T. Rex." + }, + { + "name": "Bonapartenykus", + "description": "This feathered dinosaur was found in close proximity to its eggs." + }, + { + "name": "Bonitasaura", + "description": "This titanosaur wasn't as beautiful as its name implies." + }, + { + "name": "Borogovia", + "description": "This theropod was named after a Lewis Carroll poem." + }, + { + "name": "Bothriospondylus", + "description": "A case study in dinosaur confusion." + }, + { + "name": "Brachiosaurus", + "description": "This dinosaur was a giant, gentle, long-necked plant-eater." + }, + { + "name": "Brachyceratops", + "description": "A little-known ceratopsian from North America." + }, + { + "name": "Brachylophosaurus", + "description": "This duck-billed dinosaur's beak looked more like a parrot's." + }, + { + "name": "Brachytrachelopan", + "description": "This sauropod had an unusually short neck." + }, + { + "name": "Bravoceratops", + "description": "This ceratopsian was recently discovered in Texas." + }, + { + "name": "Brontomerus", + "description": "Its name is Greek for \"thunder thighs\"." + }, + { + "name": "Bruhathkayosaurus", + "description": "Was this titanosaur bigger than Argentinosaurus?" + }, + { + "name": "Buitreraptor", + "description": "The oldest raptor ever discovered in South America." + }, + { + "name": "Byronosaurus", + "description": "This theropod was a close relative of Troodon." + }, + { + "name": "Camarasaurus", + "description": "The most common sauropod of Jurassic North America." + }, + { + "name": "Camarillasaurus", + "description": "A ceratosaur of early Cretaceous western Europe." + }, + { + "name": "Camelotia", + "description": "An early member of the line that evolved into sauropods." + }, + { + "name": "Camptosaurus", + "description": "A close relative of Iguanodon." + }, + { + "name": "Carcharodontosaurus", + "description": "Its name means \"great white shark lizard.\" Impressed yet?" + }, + { + "name": "Carnotaurus", + "description": "The shortest arms of any meat-eating dinosaur with horns to match." + }, + { + "name": "Caudipteryx", + "description": "A birdlike dinosaur that changed the views of paleontologists." + }, + { + "name": "Centrosaurus", + "description": "Like a unicorn, this ceratopsian only had one horn." + }, + { + "name": "Cerasinops", + "description": "A small ceratopsian of the late Cretaceous." + }, + { + "name": "Ceratonykus", + "description": "This dino-bird was discovered in Mongolia in 2009." + }, + { + "name": "Ceratosaurus", + "description": "This primitive carnivore is hard to classify." + }, + { + "name": "Cetiosauriscus", + "description": "Not to be confused with the more famous Cetiosaurus." + }, + { + "name": "Cetiosaurus", + "description": "This \"whale lizard\" was once mistaken for the Loch Ness Monster." + }, + { + "name": "Changyuraptor", + "description": "Was this feathered dinosaur capable of flight?" + }, + { + "name": "Chaoyangsaurus", + "description": "An early ceratopsian of the late Jurassic period." + }, + { + "name": "Charonosaurus", + "description": "This duck-billed dinosaur was much bigger than an elephant." + }, + { + "name": "Chasmosaurus", + "description": "The only dinosaur that came with its own awning." + }, + { + "name": "Chialingosaurus", + "description": "One of the earliest Asian stegosaurs." + }, + { + "name": "Chilantaisaurus", + "description": "This large theropod may have been ancestral to Spinosaurus." + }, + { + "name": "Chilesaurus", + "description": "This plant-eating theropod was recently discovered in Chile." + }, + { + "name": "Chindesaurus", + "description": "This early dinosaur was a close relative of Herrerasaurus." + }, + { + "name": "Chirostenotes", + "description": "This birdlike dinosaur has been known by three different names." + }, + { + "name": "Chubutisaurus", + "description": "This titanosaur was on Tyrannotitan's lunch menu." + }, + { + "name": "Chungkingosaurus", + "description": "This early stegosaur had some primitive characteristics." + }, + { + "name": "Citipati", + "description": "This Mongolian theropod was a close relative of Oviraptor." + }, + { + "name": "Claosaurus", + "description": "This \"broken lizard\" was a primitive hadrosaur." + }, + { + "name": "Coahuilaceratops", + "description": "It had the longest horns of any known ceratopsian dinosaur." + }, + { + "name": "Coelophysis", + "description": "One of the most ancient dinosaurs ever to roam the earth." + }, + { + "name": "Coelurus", + "description": "This tiny dinosaur was a close relative of Compsognathus." + }, + { + "name": "Colepiocephale", + "description": "This thick-skulled dinosaur's name is Greek for \"knucklehead\"." + }, + { + "name": "Compsognathus", + "description": "This dinosaur was the size of a chicken, but much meaner." + }, + { + "name": "Concavenator", + "description": "This large theropod had a bizarre hump on its back." + }, + { + "name": "Conchoraptor", + "description": "This \"conch thief\" may have lunched on mollusks." + }, + { + "name": "Condorraptor", + "description": "A small theropod of middle Jurassic South America." + }, + { + "name": "Coronosaurus", + "description": "This \"crown lizard\" was once classified as a species of Centrosaurus." + }, + { + "name": "Corythosaurus", + "description": "This \"Corinthian-helmeted\" dino had a distinctive mating call." + }, + { + "name": "Crichtonsaurus", + "description": "This dinosaur was named after the author of Jurassic Park." + }, + { + "name": "Cruxicheiros", + "description": "This \"cross-handed\" dinosaur was named in 2010." + }, + { + "name": "Cryolophosaurus", + "description": "This crested dinosaur was once known as \"Elvisaurus\"." + }, + { + "name": "Cryptovolans", + "description": "Was this the same dinosaur as Microraptor?" + }, + { + "name": "Cumnoria", + "description": "It was once mistakenly classified as a species of Iguanodon." + }, + { + "name": "Dacentrurus", + "description": "The first stegosaur ever to be described." + }, + { + "name": "Daemonosauru 0s", + "description": "This \"evil lizard\" was a close relative of Coelophysis." + }, + { + "name": "Dahalokely", + "description": "A rare theropod from the island of Madagascar." + }, + { + "name": "Dakotaraptor", + "description": "This giant raptor was recently discovered in South Dakota." + }, + { + "name": "Daspletosaurus", + "description": "This \"frightful lizard\" was a close cousin of T. Rex." + }, + { + "name": "Datousaurus", + "description": "A medium-sized sauropod from middle Jurassic Asia." + }, + { + "name": "Darwinsaurus", + "description": "\"Darwin's lizard\" may or may not be a valid dinosaur genus." + }, + { + "name": "Deinocheirus", + "description": "All we know for sure about this dinosaur is the shape of its arms." + }, + { + "name": "Deinodon", + "description": "This \"terrible tooth\" is important from a historical perspective." + }, + { + "name": "Deinonychus", + "description": "One of the most fearsome raptors of the Cretaceous period." + }, + { + "name": "Delapparentia", + "description": "This ornithopod was initially classified as a species of Iguanodon." + }, + { + "name": "Deltadromeus", + "description": "An unusually speedy theropod of the middle Cretaceous." + }, + { + "name": "Demandasaurus", + "description": "A poorly understood sauropod of early Cretaceous Europe." + }, + { + "name": "Diabloceratops", + "description": "It looked like a cross between a Triceratops and a Centrosaurus." + }, + { + "name": "Diamantinasaurus", + "description": "This titanosaur was recently discovered in Australia." + }, + { + "name": "Diceratops", + "description": "Was this two-horned dinosaur really a specimen of Triceratops?" + }, + { + "name": "Dicraeosaurus", + "description": "A medium-sized, spiny-necked sauropod." + }, + { + "name": "Dilong", + "description": "This \"emperor dragon\" may have been an ancestor of T. Rex." + }, + { + "name": "Dilophosaurus", + "description": "This dinosaur was distinguished by the bony crests on its noggin." + }, + { + "name": "Dimetrodon", + "description": "This ancient synapsid had a huge sail on its back." + }, + { + "name": "Diplodocus", + "description": "Thin at one end, much thicker in the middle, and thin again at the far end." + }, + { + "name": "Dollodon", + "description": "named after the Belgian paleontologist Louis Dollo." + }, + { + "name": "Draconyx", + "description": "This \"dragon claw\" lived in late Jurassic Portugal." + }, + { + "name": "Dracopelta", + "description": "This early ankylosaur was discovered in Portugal." + }, + { + "name": "Dracorex", + "description": "The only dinosaur to be named after the \"Harry Potter\" books." + }, + { + "name": "Dracovenator", + "description": "This \"dragon hunter\" was a close relative of Dilophosaurus." + }, + { + "name": "Dravidosaurus", + "description": "This \"dinosaur\" may actually have been a marine reptile." + }, + { + "name": "Dreadnoughtus", + "description": "This huge titanosaur was recently discovered in Argentina." + }, + { + "name": "Drinker", + "description": "named after the famous paleontologist Edward Drinker Cope." + }, + { + "name": "Dromaeosauroides", + "description": "The only dinosaur ever to be discovered in Denmark." + }, + { + "name": "Dromaeosaurus", + "description": "This \"running lizard\" was probably covered with feathers." + }, + { + "name": "Dromiceiomimus", + "description": "Possibly the fastest dinosaur that ever lived." + }, + { + "name": "Dryosaurus", + "description": "A typical ornithopod of the late Jurassic." + }, + { + "name": "Dryptosaurus", + "description": "The first tyrannosaur to be discovered in the U.S." + }, + { + "name": "Dubreuillosaurus", + "description": "This megalosaur had a long, low snout." + }, + { + "name": "Duriavenator", + "description": "Yet another theropod that was once assigned to Megalosaurus." + }, + { + "name": "Dyoplosaurus", + "description": "This ankylosaur was once confused with Euoplocephalus." + }, + { + "name": "Dysalotosaurus", + "description": "We know a lot about this dinosaur's growth stages." + }, + { + "name": "Dyslocosaurus", + "description": "Its name means \"hard-to-place lizard\"." + }, + { + "name": "Dystrophaeus", + "description": "This Diplodocus-like sauropod was named by Edward Cope." + }, + { + "name": "Echinodon", + "description": "One of the few ornithopods to sport a set of canines." + }, + { + "name": "Edmarka", + "description": "This may have been a species of Torvosaurus." + }, + { + "name": "Edmontonia", + "description": "This armored dinosaur never actually lived in Edmonton." + }, + { + "name": "Edmontosaurus", + "description": "This large, duck-billed herbivore was a contemporary of T. Rex." + }, + { + "name": "Efraasia", + "description": "This Triassic herbivore may have been ancestral to sauropods." + }, + { + "name": "Einiosaurus", + "description": "This ceratopsian was a close relative of Centrosaurus." + }, + { + "name": "Ekrixinatosaurus", + "description": "Its name means \"explosion-born lizard\"." + }, + { + "name": "Elaphrosaurus", + "description": "A lightweight theropod from the late Jurassic." + }, + { + "name": "Elmisaurus", + "description": "This \"foot lizard\" was a close relative of Oviraptor." + }, + { + "name": "Elopteryx", + "description": "This Transylvanian dinosaur is almost as controversial as Dracula." + }, + { + "name": "Elrhazosaurus", + "description": "Once classified as a species of Valdosaurus." + }, + { + "name": "Enigmosaurus", + "description": "This \"puzzle lizard\" was closely related to Therizinosaurus." + }, + { + "name": "Eoabelisaurus", + "description": "The earliest abelisaurid theropod yet identified." + }, + { + "name": "Eobrontosaurus", + "description": "This \"dawn brontosaurus\" isn't accepted by most experts." + }, + { + "name": "Eocarcharia", + "description": "This \"dawn shark\" prowled the woodlands of northern Africa." + }, + { + "name": "Eocursor", + "description": "This late Triassic reptile was one of the earliest true dinosaurs." + }, + { + "name": "Eodromaeus", + "description": "Yet another ancient theropod from South America." + }, + { + "name": "Eolambia", + "description": "An early hadrosaur from North America." + }, + { + "name": "Eoraptor", + "description": "This tiny dinosaur was among the first of its kind." + }, + { + "name": "Eosinopteryx", + "description": "A tiny feathered dinosaur of the late Jurassic period." + }, + { + "name": "Eotriceratops", + "description": "This \"dawn Triceratops\" was recently discovered in Canada." + }, + { + "name": "Eotyrannus", + "description": "This early tyrannosaur looked more like a raptor." + }, + { + "name": "Epachthosaurus", + "description": "This \"heavy lizard\" was relatively primitive for its time and place." + }, + { + "name": "Epidendrosaurus", + "description": "Did this tiny dino-bird spend its life up a tree?" + }, + { + "name": "Epidexipteryx", + "description": "This feathered dinosaur predated Archaeopteryx." + }, + { + "name": "Equijubus", + "description": "Its name is Greek for \"horse mane\"." + }, + { + "name": "Erectopus", + "description": "This \"upright-footed\" dinosaur is a 19th-century enigma." + }, + { + "name": "Erketu", + "description": "This titanosaur had an unusually long neck." + }, + { + "name": "Erliansaurus", + "description": "A basal therizinosaur from central Asia." + }, + { + "name": "Erlikosaurus", + "description": "This late therizinosaur roamed the Mongolian forests." + }, + { + "name": "Euhelopus", + "description": "The first sauropod to be discovered in China." + }, + { + "name": "Euoplocephalus", + "description": "Even this ankylosaur's eyelids were armored." + }, + { + "name": "Europasaurus", + "description": "The smallest sauropod ever discovered." + }, + { + "name": "Europelta", + "description": "This early nodosaur was recently discovered in Spain." + }, + { + "name": "Euskelosaurus", + "description": "The first dinosaur ever to be discovered in Africa." + }, + { + "name": "Eustreptospondylus", + "description": "A close cousin of Megalosaurus." + }, + { + "name": "Fabrosaurus", + "description": "This early ornithopod may have been a species of Lesothosaurus." + }, + { + "name": "Falcarius", + "description": "A bizarre, feathered theropod from North America." + }, + { + "name": "Ferganasaurus", + "description": "The first dinosaur ever to be discovered in the USSR." + }, + { + "name": "Fruitadens", + "description": "One of the tiniest dinosaurs ever to live in North America." + }, + { + "name": "Fukuiraptor", + "description": "One of the few carnivorous dinosaurs ever to be dug up in Japan." + }, + { + "name": "Fukuisaurus", + "description": "This ornithopod was discovered in Japan." + }, + { + "name": "Fulgurotherium", + "description": "Very little is known about this \"lightning beast\"." + }, + { + "name": "Futalognkosaurus", + "description": "A very big, and very strangely named sauropod." + }, + { + "name": "Gallimimus", + "description": "This \"chicken mimic\" roamed the plains of the late Cretaceous." + }, + { + "name": "Gargoyleosaurus", + "description": "This \"gargoyle lizard\" was an ancestor of Ankylosaurus." + }, + { + "name": "Garudimimus", + "description": "A relative slowpoke compared to other ornithomimids." + }, + { + "name": "Gasosaurus", + "description": "Yes, that's its real name, and no, it isn't for the reason you think." + }, + { + "name": "Gasparinisaura", + "description": "One of the few ornithopods known to have lived in South America." + }, + { + "name": "Gastonia", + "description": "This ankylosaur was probably on Utahraptor's lunch menu." + }, + { + "name": "Genyodectes", + "description": "This dinosaur is represented by an impressive set of teeth." + }, + { + "name": "Gideonmantellia", + "description": "Guess what naturalist this dinosaur was named after." + }, + { + "name": "Giganotosaurus", + "description": "Not quite a \"Gigantosaurus,\" but close enough." + }, + { + "name": "Gigantoraptor", + "description": "This huge oviraptorosaur weighed over two tons." + }, + { + "name": "Gigantspinosaurus", + "description": "It may or may not have been a true stegosaur." + }, + { + "name": "Gilmoreosaurus", + "description": "One of the few dinosaurs known to have suffered from cancer." + }, + { + "name": "Giraffatitan", + "description": "Might this \"giant giraffe\" have been a species of Brachiosaurus?" + }, + { + "name": "Glacialisaurus", + "description": "This \"frozen lizard\" was a close relative of Lufengosaurus." + }, + { + "name": "Gobiceratops", + "description": "This ceratopsian's tiny skull was found in the Gobi Desert." + }, + { + "name": "Gobisaurus", + "description": "An unusually large ankylosaur of central Asia." + }, + { + "name": "Gobivenator", + "description": "This feathered dinosaur gave Velociraptor a run for its money." + }, + { + "name": "Gojirasaurus", + "description": "This early predator was named after Godzilla." + }, + { + "name": "Gondwanatitan", + "description": "Yet another titanosaur from South America." + }, + { + "name": "Gorgosaurus", + "description": "Might this tyrannosaur have been a species of Albertosaurus?" + }, + { + "name": "Goyocephale", + "description": "A primitive bonehead from Asia." + }, + { + "name": "Graciliraptor", + "description": "This tiny dino-bird was a close relative of Microraptor." + }, + { + "name": "Gryphoceratops", + "description": "A tiny ceratopsian of Cretaceous North America." + }, + { + "name": "Gryponyx", + "description": "This \"hooked claw\" was a distant sauropod ancestor." + }, + { + "name": "Gryposaurus", + "description": "One of the most common of the duck-billed dinosaurs." + }, + { + "name": "Guaibasaurus", + "description": "Was this early dinosaur a theropod or a prosauropod?" + }, + { + "name": "Guanlong", + "description": "Probably the first tyrannosaur ever to walk the earth." + }, + { + "name": "Hadrosaurus", + "description": "The official state dinosaur of New Jersey." + }, + { + "name": "Hagryphus", + "description": "The largest North American oviraptor yet discovered." + }, + { + "name": "Halticosaurus", + "description": "A \"nomen dubium\" theropod of the early 20th century." + }, + { + "name": "Haplocanthosaurus", + "description": "A typical sauropod of the late Jurassic period." + }, + { + "name": "Haplocheirus", + "description": "This feathered dinosaur predated Archaeopteryx by millions of years." + }, + { + "name": "Harpymimus", + "description": "named after the winged creature of Greek myth." + }, + { + "name": "Haya", + "description": "This dinosaur was named after a horse-headed Mongolian god." + }, + { + "name": "Herrerasaurus", + "description": "This carnivore roamed present-day South America." + }, + { + "name": "Hesperonychus", + "description": "A tiny North American dinosaur." + }, + { + "name": "Hesperosaurus", + "description": "The oldest stegosaur discovered in North America." + }, + { + "name": "Heterodontosaurus", + "description": "This \"different-toothed\" dinosaur was a dentist's nightmare." + }, + { + "name": "Hexing", + "description": "This early ornithomimid was recently discovered in China." + }, + { + "name": "Hexinlusaurus", + "description": "named after the Chinese professor He Xin-Lu." + }, + { + "name": "Heyuannia", + "description": "Yet another close relative of Oviraptor." + }, + { + "name": "Hippodraco", + "description": "This \"horse dragon\" was recently discovered in Utah." + }, + { + "name": "Homalocephale", + "description": "This herbivore had a very flat--and very thick--skull." + }, + { + "name": "Hongshanosaurus", + "description": "This early ceratopsian is known by two skulls." + }, + { + "name": "Hoplitosaurus", + "description": "named after the heavily armored soldiers of classical Greece." + }, + { + "name": "Huabeisaurus", + "description": "A titanosaur from northern China." + }, + { + "name": "Huanghetitan", + "description": "Yet another contender for the biggest dinosaur that ever lived." + }, + { + "name": "Huaxiagnathus", + "description": "One of the biggest dino-birds of its time." + }, + { + "name": "Huaxiaosaurus", + "description": "Might it be an unusually large specimen of Shantungosaurus?" + }, + { + "name": "Huayangosaurus", + "description": "Could this have been the ancestor of all the stegosaurs?" + }, + { + "name": "Huehuecanauhtlus", + "description": "Its name is Aztec for \"ancient duck\"." + }, + { + "name": "Hungarosaurus", + "description": "The best-attested ankylosaur ever discovered in Europe." + }, + { + "name": "Huxleysaurus", + "description": "named after the famous biologist Thomas Henry Huxley." + }, + { + "name": "Hylaeosaurus", + "description": "One of the first creatures ever to be called a dinosaur." + }, + { + "name": "Hypacrosaurus", + "description": "We know a lot about this dinosaur's family life." + }, + { + "name": "Hypselosaurus", + "description": "This titanosaur's eggs were a foot in diameter." + }, + { + "name": "Hypselospinus", + "description": "It was once classified as a species of Iguanodon." + }, + { + "name": "Hypsibema", + "description": "The official state dinosaur of Missouri." + }, + { + "name": "Hypsilophodon", + "description": "This man-sized herbivore liked to eat and run." + }, + { + "name": "Ichthyovenator", + "description": "This sail-backed dinosaur was recently discovered in Laos." + }, + { + "name": "Ignavusaurus", + "description": "Its name means \"cowardly lizard\"." + }, + { + "name": "Iguanacolossus", + "description": "A brand-new ornithopod from North America." + }, + { + "name": "Iguanodon", + "description": "The second dinosaur in history ever to receive a name." + }, + { + "name": "Ilokelesia", + "description": "A primitive abelisaur from South America." + }, + { + "name": "Incisivosaurus", + "description": "This buck-toothed dinosaur was the Cretaceous equivalent of a beaver." + }, + { + "name": "Indosuchus", + "description": "This \"Indian crocodile\" was actually a dinosaur." + }, + { + "name": "Ingenia", + "description": "A small, birdlike dinosaur from central Asia." + }, + { + "name": "Irritator", + "description": "This spinosaur was named by a very frustrated paleontologist." + }, + { + "name": "Isanosaurus", + "description": "One of the first sauropods ever to walk the earth." + }, + { + "name": "Isisaurus", + "description": "Otherwise known as the Indian Statistical Institute Lizard." + }, + { + "name": "Jainosaurus", + "description": "named after the Indian paleontologist Sohan Lal Jain." + }, + { + "name": "Janenschia", + "description": "The earliest titanosaur in the fossil record." + }, + { + "name": "Jaxartosaurus", + "description": "A poorly known hadrosaur from central Asia." + }, + { + "name": "Jeholosaurus", + "description": "This ornithopod may have had an omnivorous diet." + }, + { + "name": "Jeyawati", + "description": "Its name is Zuni for \"grinding mouth\"." + }, + { + "name": "Jianchangosaurus", + "description": "One of the earliest therizinosaurs in the fossil record." + }, + { + "name": "Jinfengopteryx", + "description": "This feathered dinosaur was once thought to be a true bird." + }, + { + "name": "Jingshanosaurus", + "description": "A close relative of Yunnanosaurus." + }, + { + "name": "Jinzhousaurus", + "description": "This Asian dinosaur was one of the first hadrosaurs." + }, + { + "name": "Jobaria", + "description": "A strange, short-tailed African sauropod." + }, + { + "name": "Judiceratops", + "description": "The earliest Chasmosaurus ancestor yet identified." + }, + { + "name": "Juratyrant", + "description": "This early tyrannosaur was discovered in England." + }, + { + "name": "Juravenator", + "description": "Why didn't this presumed \"dino-bird\" have feathers?" + }, + { + "name": "Kaatedocus", + "description": "This Diplodocus relative had a characteristic grin." + }, + { + "name": "Kaijiangosaurus", + "description": "This might have been the same dinosaur as Gasosaurus." + }, + { + "name": "Kazaklambia", + "description": "This duck-billed dinosaur was discovered in Kazakhstan." + }, + { + "name": "Kentrosaurus", + "description": "A smaller, African cousin of Stegosaurus." + }, + { + "name": "Kerberosaurus", + "description": "named after the three-headed dog of Greek myth." + }, + { + "name": "Khaan", + "description": "Few small mammals dared face the wrath of this dinosaur." + }, + { + "name": "Kileskus", + "description": "Yet another \"basal\" tyrannosaur from central Asia." + }, + { + "name": "Kinnareemimus", + "description": "This \"bird mimic\" dinosaur was recently discovered in Thailand." + }, + { + "name": "Kol", + "description": "It's tied with Mei for \"shortest dinosaur name\"." + }, + { + "name": "Koreaceratops", + "description": "There's evidence that this ceratopsian liked to go swimming." + }, + { + "name": "Koreanosaurus", + "description": "Guess what country this ornithopod was discovered in." + }, + { + "name": "Kosmoceratops", + "description": "This ceratopsian had a bizarre, downward-folding frill." + }, + { + "name": "Kotasaurus", + "description": "One of the few sauropods to be discovered in India." + }, + { + "name": "Kritosaurus", + "description": "A famous, but poorly understood hadrosaur." + }, + { + "name": "Kryptops", + "description": "This dinosaur came equipped with its own face mask." + }, + { + "name": "Kukufeldia", + "description": "Yet another ornithopod that was once lumped in with Iguanodon." + }, + { + "name": "Kulindadromeus", + "description": "Why did this ornithopod dinosaur have feathers?" + }, + { + "name": "Kundurosaurus", + "description": "This hadrosaur was discovered in the far east of Russia." + }, + { + "name": "Labocania", + "description": "It may or may not have been a true tyrannosaur." + }, + { + "name": "Lagosuchus", + "description": "Could this have been the ancestor of all the dinosaurs?" + }, + { + "name": "Lambeosaurus", + "description": "This duck-billed dinosaur had a hatchet-shaped crest on its noggin." + }, + { + "name": "Lamplughsaura", + "description": "This early sauropod was discovered in India." + }, + { + "name": "Lanzhousaurus", + "description": "This herbivore's teeth were half a foot long." + }, + { + "name": "Laosaurus", + "description": "This dubious ornithopod was named by Othniel C. Marsh." + }, + { + "name": "Lapparentosaurus", + "description": "This sauropod was discovered in Madagascar." + }, + { + "name": "Laquintasaura", + "description": "The first plant-eating dinosaur ever to be discovered in Venezuela." + }, + { + "name": "Latirhinus", + "description": "This duck-billed dinosaur had an enormous nose." + }, + { + "name": "Leaellynasaura", + "description": "One of the few dinosaurs to be named after a little girl." + }, + { + "name": "Leinkupal", + "description": "The latest surviving diplodocid sauropod." + }, + { + "name": "Leonerasaurus", + "description": "This prosauropod was recently discovered in Argentina." + }, + { + "name": "Leptoceratops", + "description": "One of the most primitive of all ceratopsians." + }, + { + "name": "Leshansaurus", + "description": "Did this meat-eater feast on small, armored dinosaurs?" + }, + { + "name": "Lesothosaurus", + "description": "One of the earliest of all the ornithischian dinosaurs." + }, + { + "name": "Lessemsaurus", + "description": "named after the popular science writer Don Lessem." + }, + { + "name": "Lexovisaurus", + "description": "One of the oldest European stegosaurs." + }, + { + "name": "Leyesaurus", + "description": "A newly discovered prosauropod from South America." + }, + { + "name": "Liaoceratops", + "description": "A tiny ceratopsian of early Cretaceous Asia." + }, + { + "name": "Liaoningosaurus", + "description": "One of the smallest ankylosaurs in the fossil record." + }, + { + "name": "Liliensternus", + "description": "One of the largest carnivores of the Triassic period." + }, + { + "name": "Limaysaurus", + "description": "It was once classified as a species of Rebbachisaurus." + }, + { + "name": "Limusaurus", + "description": "Was this toothless theropod a vegetarian?" + }, + { + "name": "Linhenykus", + "description": "This tiny dinosaur had single-clawed hands." + }, + { + "name": "Linheraptor", + "description": "This Mongolian raptor was discovered in 2008." + }, + { + "name": "Linhevenato", + "description": "r This troodont was recently discovered in Mongolia." + }, + { + "name": "Lophorhothon", + "description": "The first dinosaur ever to be discovered in Alabama." + }, + { + "name": "Lophostropheus", + "description": "This theropod lived near the Triassic/Jurassic boundary." + }, + { + "name": "Loricatosaurus", + "description": "This stegosaur was once classified as a species of Lexovisaurus." + }, + { + "name": "Lourinhanosaurus", + "description": "Not to be confused with Lourinhasaurus, below." + }, + { + "name": "Lourinhasaurus", + "description": "Not to be confused with Lourinhanosaurus, above." + }, + { + "name": "Luanchuanraptor", + "description": "A small, poorly understood Asian raptor." + }, + { + "name": "Lufengosaurus", + "description": "A common sight at Chinese natural history museums." + }, + { + "name": "Lurdusaurus", + "description": "This ornithopod resembled a giant sloth." + }, + { + "name": "Lusotitan", + "description": "This sauropod was once classified as a species of Brachiosaurus." + }, + { + "name": "Lycorhinus", + "description": "This dinosaur was once thought to be a mammal-like reptile." + }, + { + "name": "Lythronax", + "description": "This tyrannosaur lived on the island of Laramidia." + }, + { + "name": "Machairasaurus", + "description": "This \"short scimitar lizard\" was a close relative of Oviraptor." + }, + { + "name": "Macrogryphosaurus", + "description": "Otherwise known as the Big Enigmatic Lizard." + }, + { + "name": "Magnapaulia", + "description": "The largest lambeosaurine hadrosaur yet identified." + }, + { + "name": "Magnirostris", + "description": "This ceratopsian had an unusually big beak." + }, + { + "name": "Magnosaurus", + "description": "Once thought to be a species of Megalosaurus." + }, + { + "name": "Magyarosaurus", + "description": "This dwarf titanosaur was probably confined to a small island." + }, + { + "name": "Mahakala", + "description": "This dino-bird was named after a Buddhist deity." + }, + { + "name": "Maiasaura", + "description": "This \"good mother lizard\" kept close tabs on her young." + }, + { + "name": "Majungasaurus", + "description": "Fairly--or unfairly--known as the \"cannibal dinosaur\"." + }, + { + "name": "Malawisaurus", + "description": "The first titanosaur to be found with an intact skull." + }, + { + "name": "Mamenchisaurus", + "description": "The longest-necked dinosaur that ever lived." + }, + { + "name": "Manidens", + "description": "A strangely toothed relative of Heterodontosaurus." + }, + { + "name": "Mantellisaurus", + "description": "named after the famous fossil hunter Gideon Mantell." + }, + { + "name": "Mantellodon", + "description": "This Iguanodon refugee may or may not deserve its own genus." + }, + { + "name": "Mapusaurus", + "description": "This huge carnivore was closely related to Giganotosaurus." + }, + { + "name": "Marshosaurus", + "description": "named after the famous paleontologist Othniel C. Marsh." + }, + { + "name": "Martharaptor", + "description": "This dinosaur was named after a Utah paleontologist." + }, + { + "name": "Masiakasaurus", + "description": "A bizarre, buck-toothed predator of the late Cretaceous." + }, + { + "name": "Massospondylus", + "description": "This small, lithe, bipedal plant-eater roamed the plains of South Africa." + }, + { + "name": "Maxakalisaurus", + "description": "One of the biggest titanosaurs ever found in Brazil." + }, + { + "name": "Medusaceratops", + "description": "This frilled dinosaur was a close relative of Centrosaurus." + }, + { + "name": "Megalosaurus", + "description": "The first dinosaur ever to be discovered and named." + }, + { + "name": "Megapnosaurus", + "description": "Its name is Greek for \"big dead lizard\"." + }, + { + "name": "Megaraptor", + "description": "Despite its name, it wasn't really a raptor." + }, + { + "name": "Mei", + "description": "The current record-holder for \"shortest dinosaur name\"." + }, + { + "name": "Melanorosaurus", + "description": "Probably the largest prosauropod that ever lived." + }, + { + "name": "Mendozasaurus", + "description": "This titanosaur was ancestral to Futalognkosaurus." + }, + { + "name": "Mercuriceratops", + "description": "This ceratopsian was discovered on the U.S./Canada border." + }, + { + "name": "Metriacanthosaurus", + "description": "Yet another dinosaur that was once mistaken for Megalosaurus." + }, + { + "name": "Microceratops", + "description": "Probably the smallest ceratopsian that ever lived." + }, + { + "name": "Micropachycephalosaurus", + "description": "The current record-holder for longest dinosaur name." + }, + { + "name": "Microraptor", + "description": "This tiny feathered dinosaur had four wings rather than two." + }, + { + "name": "Microvenator", + "description": "This \"tiny hunter\" actually measured 10 feet from head to tail." + }, + { + "name": "Minmi", + "description": "An early (and very dumb) ankylosaur from Australia." + }, + { + "name": "Minotaurasaurus", + "description": "named after the half-man, half-bull of Greek myth." + }, + { + "name": "Miragaia", + "description": "This stegosaur had an unusually long neck." + }, + { + "name": "Mirischia", + "description": "Its name means \"wonderful pelvis\"." + }, + { + "name": "Mochlodon", + "description": "One of the few dinosaurs ever to be discovered in Austria." + }, + { + "name": "Mojoceratops", + "description": "This ceratopsian had a heart-shaped frill." + }, + { + "name": "Monkonosaurus", + "description": "The first dinosaur ever to be discovered in modern-day Tibet." + }, + { + "name": "Monoclonius", + "description": "Might this have been a species of Centrosaurus?" + }, + { + "name": "Monolophosaurus", + "description": "This Jurassic predator had a single crest on its skull." + }, + { + "name": "Mononykus", + "description": "This dinosaur may have dug into termite mounds for its lunch." + }, + { + "name": "Montanoceratops", + "description": "A primitive ceratopsian of the late Cretaceous period." + }, + { + "name": "Mussaurus", + "description": "This \"mouse lizard\" lived in Triassic South America." + }, + { + "name": "Muttaburrasaurus", + "description": "The most complete dinosaur fossil ever found in Australia." + }, + { + "name": "Mymoorapelta", + "description": "named after the Mygand-Moore quarry in Colorado." + }, + { + "name": "Nankangia", + "description": "A recently discovered oviraptor from China." + }, + { + "name": "Nanosaurus", + "description": "This \"tiny lizard\" was named by Othniel C. Marsh." + }, + { + "name": "Nanotyrannus", + "description": "Could this have been a juvenile T. Rex?" + }, + { + "name": "Nanshiungosaurus", + "description": "A bizarre therizinosaur from Asia." + }, + { + "name": "Nanuqsaurus", + "description": "This \"polar lizard\" was recently discovered in Alaska." + }, + { + "name": "Nanyangosaurus", + "description": "An iguanodontid ornithopod of middle Cretaceous Asia." + }, + { + "name": "Nasutoceratops", + "description": "This dinosaur had horns like a modern steer." + }, + { + "name": "Nebulasaurus", + "description": "This \"nebula lizard\" was recently discovered in China." + }, + { + "name": "Nedcolbertia", + "description": "named after the famous paleontologist Edwin Colbert." + }, + { + "name": "Neimongosaurus", + "description": "A rare therizinosaur from inner Mongolia." + }, + { + "name": "Nemegtomaia", + "description": "This dinosaur had a bizarrely shaped skull." + }, + { + "name": "Nemegtosaurus", + "description": "This titanosaur has been recreated from a single, incomplete skull." + }, + { + "name": "Neovenator", + "description": "One of the largest carnivorous dinosaurs of western Europe." + }, + { + "name": "Neuquenraptor", + "description": "It may actually be a species (or specimen) of Unenlagia." + }, + { + "name": "Neuquensaurus", + "description": "Was this titanosaur really a species of Saltasaurus?" + }, + { + "name": "Nigersaurus", + "description": "This African sauropod had a huge number of teeth." + }, + { + "name": "Nipponosaurus", + "description": "This hadrosaur was discovered on the island of Sakhalin." + }, + { + "name": "Noasaurus", + "description": "Were this predator's giant claws on its hands, or on its feet?" + }, + { + "name": "Nodocephalosaurus", + "description": "This armored dinosaur has been reconstructed from a single skull." + }, + { + "name": "Nodosaurus", + "description": "One of the first armored dinosaurs ever discovered in North America." + }, + { + "name": "Nomingia", + "description": "This small dinosaur had a peacock-like tail." + }, + { + "name": "Nothronychus", + "description": "The first therizonosaur to be found outside Asia." + }, + { + "name": "Notohypsilophodon", + "description": "A rare South American ornithopod." + }, + { + "name": "Nqwebasaurus", + "description": "One of the few theropods to be discovered in sub-Saharan Africa." + }, + { + "name": "Nuthetes", + "description": "This raptor was named after the modern monitor lizard." + }, + { + "name": "Nyasasaurus", + "description": "Could this be the earliest dinosaur in the fossil record?" + }, + { + "name": "Ojoceratops", + "description": "A very close relative of Triceratops." + }, + { + "name": "Olorotitan", + "description": "One of the most complete dinosaur fossils ever found in Russia." + }, + { + "name": "Omeisaurus", + "description": "One of the most common Chinese sauropods." + }, + { + "name": "Oohkotokia", + "description": "Its name is Blackfoot for \"large stone\"." + }, + { + "name": "Opisthocoelicaudia", + "description": "A clumsily named titanosaur of the late Cretaceous period." + }, + { + "name": "Orkoraptor", + "description": "The southernmost theropod ever to live in South America." + }, + { + "name": "Ornithodesmus", + "description": "This mysterious raptor was once thought to be a pterosaur." + }, + { + "name": "Ornitholestes", + "description": "This \"bird robber\" probably preyed on small lizards instead." + }, + { + "name": "Ornithomimus", + "description": "This \"bird mimic\" resembled a modern ostrich." + }, + { + "name": "Ornithopsis", + "description": "This \"bird face\" was actually a genus of titanosaur." + }, + { + "name": "Orodromeus", + "description": "This tiny herbivore was on Troodon's dinner menu." + }, + { + "name": "Orthomerus", + "description": "One of the few dinosaurs to be discovered in Holland." + }, + { + "name": "Oryctodromeus", + "description": "The only ornithopod known to have lived in burrows." + }, + { + "name": "Ostafrikasaurus", + "description": "Could this have been the earliest known spinosaur?" + }, + { + "name": "Othnielia", + "description": "named after the famous paleontologist Othniel C. Marsh." + }, + { + "name": "Othnielosaurus", + "description": "Also named after the famous paleontologist Othniel C. Marsh." + }, + { + "name": "Ouranosaurus", + "description": "Scientists can't decide if this herbivore had a sail or a hump." + }, + { + "name": "Overosaurus", + "description": "This dwarf titanosaur was announced to the world in 2013." + }, + { + "name": "Oviraptor", + "description": "Turns out that this \"egg thief\" got a bad rap." + }, + { + "name": "Oxalaia", + "description": "This spinosaur was recently discovered in Brazil." + }, + { + "name": "Ozraptor", + "description": "Not much is known about this Australian theropod." + }, + { + "name": "Pachycephalosaurus", + "description": "This plant-eater gave new meaning to the word \"blockhead\"." + }, + { + "name": "Pachyrhinosaurus", + "description": "This \"thick-nosed lizard\" roamed the North American forests." + }, + { + "name": "Palaeoscincus", + "description": "This \"ancient skink\" was actually an armored dinosaur." + }, + { + "name": "Paluxysaurus", + "description": "The official Texas state dinosaur." + }, + { + "name": "Pampadromaeus", + "description": "This \"Pampas runner\" was ancestral to sauropods." + }, + { + "name": "Pamparaptor", + "description": "This raptor was discovered in the Argentinian Pampas." + }, + { + "name": "Panamericansaurus", + "description": "This titanosaur was named after an energy company." + }, + { + "name": "Panoplosaurus", + "description": "A squat, stocky nodosaur of the late Cretaceous." + }, + { + "name": "Panphagia", + "description": "Its name is Greek for \"eats everything\"." + }, + { + "name": "Pantydraco", + "description": "No, this dinosaur didn't wear you-know-what." + }, + { + "name": "Paralititan", + "description": "This huge sauropod was discovered recently in Egypt." + }, + { + "name": "Paranthodon", + "description": "This stegosaur was discovered over 150 years ago." + }, + { + "name": "Pararhabdodon", + "description": "The western European equivalent of Tsintaosaurus." + }, + { + "name": "Parasaurolophus", + "description": "Possibly the loudest dinosaur ever to roam the earth." + }, + { + "name": "Parksosaurus", + "description": "It was once classified as a species of Thescelosaurus." + }, + { + "name": "Paronychodon", + "description": "This \"tooth taxon\" didn't make it out of the 19th century." + }, + { + "name": "Parvicursor", + "description": "One of the smallest dinosaurs yet identified." + }, + { + "name": "Patagosaurus", + "description": "This \"Patagonian lizard\" hailed from South America." + }, + { + "name": "Pawpawsaurus", + "description": "This ancient nodosaur was discovered in Texas." + }, + { + "name": "Pedopenna", + "description": "One of the earliest known dino-birds." + }, + { + "name": "Pegomastax", + "description": "This dinosaur was covered with porcupine-like bristles." + }, + { + "name": "Pelecanimimus", + "description": "This \"pelican mimic\" sported over 200 teeth." + }, + { + "name": "Peloroplites", + "description": "This \"monstrous Hoplite\" was recently discovered in Utah." + }, + { + "name": "Pelorosaurus", + "description": "The first sauropod ever to be discovered." + }, + { + "name": "Pentaceratops", + "description": "This \"five-horned\" herbivore really had only three." + }, + { + "name": "Philovenator", + "description": "As its name says this dinosaur \"loved to hunt\"." + }, + { + "name": "Phuwiangosaurus", + "description": "This titanosaur was discovered in modern-day Thailand." + }, + { + "name": "Piatnitzkysaurus", + "description": "Its teeth were as sharp as its name is funny." + }, + { + "name": "Pinacosaurus", + "description": "Did this ankylosaur roam central Asia in herds?" + }, + { + "name": "Pisanosaurus", + "description": "One of the earliest known ornithischian dinosaurs." + }, + { + "name": "Piveteausaurus", + "description": "No one is quite sure what to make of this theropod dinosaur." + }, + { + "name": "Planicoxa", + "description": "A medium-sized iguanodont of early Cretaceous North America." + }, + { + "name": "Plateosaurus", + "description": "This herd dinosaur blackened the plains of the late Triassic." + }, + { + "name": "Pleurocoelus", + "description": "It was the official state dinosaur of Texas." + }, + { + "name": "Pneumatoraptor", + "description": "This \"air thief\" was recently discovered in Hungary." + }, + { + "name": "Podokesaurus", + "description": "One of the earliest dinosaurs to live in eastern North America." + }, + { + "name": "Poekilopleuron", + "description": "It may (or may not) have been a species of Megalosaurus." + }, + { + "name": "Polacanthus", + "description": "An extremely spiky ankylosaur of the middle Cretaceous." + }, + { + "name": "Prenocephale", + "description": "This \"bonehead\" had a round, thick skull." + }, + { + "name": "Prenoceratops", + "description": "A close relative of Leptoceratops." + }, + { + "name": "Proa", + "description": "This ornithopod was named after its prow-shaped jaw." + }, + { + "name": "Probactrosaurus", + "description": "An early stage in hadrosaur evolution." + }, + { + "name": "Proceratosaurus", + "description": "Despite its name, not a close relative of Ceratosaurus." + }, + { + "name": "Procompsognathus", + "description": "Was it an archosaur or an early dinosaur?" + }, + { + "name": "Propanoplosaurus", + "description": "This baby ankylosaur was recently discovered in Maryland." + }, + { + "name": "Prosaurolophus", + "description": "The likely ancestor of both Saurolophus and Parasaurolophus." + }, + { + "name": "Protarchaeopteryx", + "description": "Before Archaeopteryx? It actually lived millions of years later." + }, + { + "name": "Protoceratops", + "description": "A famous dinosaur with a very funky frill." + }, + { + "name": "Protohadros", + "description": "Despite its name, it wasn't really the \"first\" hadrosaur." + }, + { + "name": "Psittacosaurus", + "description": "This dinosaur's noggin wouldn't have looked out of place on a parrot." + }, + { + "name": "Puertasaurus", + "description": "This titanosaur rivaled Argentinosaurus in size." + }, + { + "name": "Pyroraptor", + "description": "This \"fire thief\" prowled the plains of prehistoric France." + }, + { + "name": "Qantassaurus", + "description": "named after the national airline of Australia." + }, + { + "name": "Qianzhousaurus", + "description": "This long-snouted tyrannosaur has been nicknamed Pinocchio Rex." + }, + { + "name": "Qiaowanlong", + "description": "An Asian relative of Brachiosaurus." + }, + { + "name": "Qiupalong", + "description": "This \"bird mimic\" dinosaur was recently discovered in China." + }, + { + "name": "Quaesitosaurus", + "description": "This titanosaur may have had remarkably sharp hearing." + }, + { + "name": "Quilmesaurus", + "description": "This dinosaur was named after an indigenous South American tribe." + }, + { + "name": "Rahiolisaurus", + "description": "This Indian dinosaur is represented by seven tangled individuals." + }, + { + "name": "Rahonavis", + "description": "Was it a raptor-like bird or a bird-like raptor?" + }, + { + "name": "Rajasaurus", + "description": "This \"prince lizard\" lived in what is now modern-day India." + }, + { + "name": "Rapator", + "description": "No, this mysterious Australian theropod wasn't a raptor." + }, + { + "name": "Rapetosaurus", + "description": "The only sauropod ever to be discovered on modern-day Madagascar." + }, + { + "name": "Raptorex", + "description": "A pint-sized precursor of T. Rex." + }, + { + "name": "Rebbachisaurus", + "description": "A poorly understood sauropod from northern Africa." + }, + { + "name": "Regaliceratops", + "description": "This ceratopsian had a huge, crown-shaped frill." + }, + { + "name": "Regnosaurus", + "description": "This stegosaur lived in what is now modern-day England." + }, + { + "name": "Rhabdodon", + "description": "A possible \"missing link\" between Iguanodon and Hypsilophodon." + }, + { + "name": "Rhinorex", + "description": "This duck-billed dinosaur had an unusually large nose." + }, + { + "name": "Rhoetosaurus", + "description": "A medium-sized sauropod from Down Under." + }, + { + "name": "Richardoestesia", + "description": "named after the paleontologist Richard Estes." + }, + { + "name": "Rinchenia", + "description": "named after the famous paleontologist Rinchen Barsbold." + }, + { + "name": "Rinconsaurus", + "description": "A modestly sized titanosaur of South America." + }, + { + "name": "Riojasaurus", + "description": "One of the few prosauropods known to have lived in South America." + }, + { + "name": "Rubeosaurus", + "description": "A ceratopsian dinosaur from the Two Medicine Formation." + }, + { + "name": "Rugops", + "description": "This wrinkly-faced carnivore probably fed on abandoned carcasses." + }, + { + "name": "Sahaliyania", + "description": "This hadrosaur's name is Manchurian for \"black\"." + }, + { + "name": "Saichania", + "description": "This ankylosaur's name is Chinese for \"beautiful\"." + }, + { + "name": "Saltasaurus", + "description": "The first armored sauropod ever to be discovered." + }, + { + "name": "Saltopus", + "description": "Experts aren't sure if this was a dinosaur or an archosaur." + }, + { + "name": "Sanjuansaurus", + "description": "An early theropod from South America." + }, + { + "name": "Santanaraptor", + "description": "named after Brazil's Santana formation." + }, + { + "name": "Sarahsaurus", + "description": "This prosauropod had unusually strong hands." + }, + { + "name": "Sarcolestes", + "description": "The most likely ancestor of the ankylosaurs." + }, + { + "name": "Sarcosaurus", + "description": "This \"flesh lizard\" roamed early Jurassic England." + }, + { + "name": "Saturnalia", + "description": "The earliest dinosaur known to have had a herbivorous diet." + }, + { + "name": "Saurolophus", + "description": "One of the few hadrosaurs known to have lived on two continents." + }, + { + "name": "Sauroniops", + "description": "This dinosaur's name means \"Eye of Sauron\"." + }, + { + "name": "Sauropelta", + "description": "This ankylosaur's armor helped keep raptors at bay." + }, + { + "name": "Saurophaganax", + "description": "The official state dinosaur of Oklahoma." + }, + { + "name": "Sauroposeidon", + "description": "One of the tallest dinosaurs ever to walk the earth." + }, + { + "name": "Saurornithoides", + "description": "A Troodon-like predator from central Asia." + }, + { + "name": "Saurornitholestes", + "description": "A close cousin of Velociraptor." + }, + { + "name": "Savannasaurus", + "description": "This titanosaur was recently discovered in Australia." + }, + { + "name": "Scansoriopteryx", + "description": "This early proto-bird probably lived in trees." + }, + { + "name": "Scelidosaurus", + "description": "Among the earliest of all the armored dinosaurs." + }, + { + "name": "Scipionyx", + "description": "One of the most perfectly preserved dinosaur fossils ever found." + }, + { + "name": "Sciurumimus", + "description": "This \"squirrel mimic\" was one of the earliest feathered dinosaurs." + }, + { + "name": "Scolosaurus", + "description": "It was once classified as a species of Euoplocephalus." + }, + { + "name": "Scutellosaurus", + "description": "Probably the smallest of all the armored dinosaurs." + }, + { + "name": "Secernosaurus", + "description": "The first hadrosaur to be discovered in South America." + }, + { + "name": "Seitaad", + "description": "This small dinosaur may have been buried in an avalanche." + }, + { + "name": "Segisaurus", + "description": "An early dinosaur closely related to Coelophysis." + }, + { + "name": "Segnosaurus", + "description": "One of the most unusual (and poorly understood) Cretaceous dinosaurs." + }, + { + "name": "Seismosaurus", + "description": "It was huge, to be sure, but might it have been a species of Diplodocus?" + }, + { + "name": "Sellosaurus", + "description": "Another early prosauropod of the Triassic period." + }, + { + "name": "Serendipaceratops", + "description": "Was this really an Australian ceratopsian?" + }, + { + "name": "Shamosaurus", + "description": "This Mongolian ankylosaur was a close relative of Gobisaurus." + }, + { + "name": "Shanag", + "description": "A basal raptor of early Cretaceous Asia." + }, + { + "name": "Shantungosaurus", + "description": "The biggest of all the duck-billed dinosaurs." + }, + { + "name": "Shaochilong", + "description": "Its name is Chinese for \"shark-toothed dragon\"." + }, + { + "name": "Shenzhousaurus", + "description": "A small, primitive ornithomimid from China." + }, + { + "name": "Shunosaurus", + "description": "Anatomically speaking, probably the best known of all the sauropods." + }, + { + "name": "Shuvosaurus", + "description": "Was this meat eater an early dinosaur or a two-legged crocodile?" + }, + { + "name": "Shuvuuia", + "description": "Scientists can't decide if it was a dinosaur or a bird." + }, + { + "name": "Siamodon", + "description": "This ornithopod was recently discovered in Thailand." + }, + { + "name": "Siamosaurus", + "description": "This may (or may not) have been a spinosaur from Thailand." + }, + { + "name": "Siamotyrannus", + "description": "Despite its name, it wasn't a true tyrannosaur." + }, + { + "name": "Siats", + "description": "One of the largest theropods ever to live in North America." + }, + { + "name": "Sigilmassasaurus", + "description": "Was this really a species of Carcharodontosaurus?" + }, + { + "name": "Silvisaurus", + "description": "This primitive nodosaur was discovered in Kansas." + }, + { + "name": "Similicaudipteryx", + "description": "The juveniles may have been differently feathered than the adults." + }, + { + "name": "Sinocalliopteryx", + "description": "The biggest \"dino-bird\" yet discovered." + }, + { + "name": "Sinoceratops", + "description": "A rare ceratopsian from late Cretaceous China." + }, + { + "name": "Sinornithoides", + "description": "A small, feathered dinosaur closely related to Troodon." + }, + { + "name": "Sinornithomimus", + "description": "This ornithomimid is known from over a dozen skeletons." + }, + { + "name": "Sinornithosaurus", + "description": "A typical dino-bird of the early Cretaceous." + }, + { + "name": "Sinosauropteryx", + "description": "The first dinosaur proven to have feathers." + }, + { + "name": "Sinosaurus", + "description": "It was once classified as an Asian species of Dilophosaurus." + }, + { + "name": "Sinotyrannus", + "description": "This \"Chinese tyrant\" was an ancient ancestor of tyrannosaurs." + }, + { + "name": "Sinovenator", + "description": "This \"Chinese hunter\" preyed on its fellow dino-birds." + }, + { + "name": "Sinraptor", + "description": "Despite its name, this allosaur wasn't any better or worse than other dinosaurs." + }, + { + "name": "Sinusonasus", + "description": "It sounds like a disease, but it was actually a feathered dinosaur." + }, + { + "name": "Skorpiovenator", + "description": "This \"scorpion hunter\" really ate meat." + }, + { + "name": "Sonorasaurus", + "description": "The remains of this sauropod were discovered in Arizona." + }, + { + "name": "Sphaerotholus", + "description": "Yet another dome-headed dino from North America." + }, + { + "name": "Spinophorosaurus", + "description": "This early sauropod had a \"thagomizer\" on its tail." + }, + { + "name": "Spinops", + "description": "This ceratopsian was named 100 years after its bones were found." + }, + { + "name": "Spinosaurus", + "description": "This dinosaur was distinguished by the sail-like structure on its back." + }, + { + "name": "Spinostropheus", + "description": "This theropod was once thought to be a species of Elaphrosaurus." + }, + { + "name": "Staurikosaurus", + "description": "Another primitive theropod of the Triassic period." + }, + { + "name": "Stegoceras", + "description": "This small herbivore was built for high-speed head-butting." + }, + { + "name": "Stegosaurus", + "description": "The small-brained, spike-tailed, plant-eating dinosaur." + }, + { + "name": "Stenopelix", + "description": "Experts aren't sure how to classify this dinosaur." + }, + { + "name": "Stokesosaurus", + "description": "Some experts think this was the earliest tyrannosaur." + }, + { + "name": "Struthiomimus", + "description": "This \"ostrich mimic\" roamed the plains of North America." + }, + { + "name": "Struthiosaurus", + "description": "The smallest nodosaur yet discovered." + }, + { + "name": "Stygimoloch", + "description": "Its name means \"demon from the river of death.\" Got your attention yet?" + }, + { + "name": "Styracosaurus", + "description": "Winner of the \"most elaborate head display\" competition." + }, + { + "name": "Suchomimus", + "description": "A fish-eating dinosaur with a distinct crocodilian profile." + }, + { + "name": "Sulaimanisaurus", + "description": "One of the few dinosaurs ever to be discovered in Pakistan." + }, + { + "name": "Supersaurus", + "description": "No, it didn't wear a cape, but this giant dino was still impressive." + }, + { + "name": "Suuwassea", + "description": "Its name is Native American for \"ancient thunder\"." + }, + { + "name": "Suzhousaurus", + "description": "A large, early Cretaceous therizinosaur." + }, + { + "name": "Szechuanosaurus", + "description": "This theropod was a close relative of Sinraptor." + }, + { + "name": "Tachiraptor", + "description": "The first meat-eating dinosaur ever to be discovered in Venezuela." + }, + { + "name": "Talarurus", + "description": "This ankylosaur was discovered in the Gobi Desert." + }, + { + "name": "Talos", + "description": "This dinosaur was found with an injured big toe." + }, + { + "name": "Tangvayosaurus", + "description": "This Laotian titanosaur was closely related to Phuwiangosaurus." + }, + { + "name": "Tanius", + "description": "Not much is known about this Chinese hadrosaur." + }, + { + "name": "Tanycolagreus", + "description": "This mysterious theropod was once thought to be a species of Coelurus." + }, + { + "name": "Taohelong", + "description": "The first \"polacanthine\" ankylosaur ever to be discovered in Asia." + }, + { + "name": "Tapuiasaurus", + "description": "A recently discovered titanosaur from South America." + }, + { + "name": "Tarascosaurus", + "description": "The only known abelisaur of the northern hemisphere." + }, + { + "name": "Tarbosaurus", + "description": "The second-biggest tyrannosaur after T. Rex." + }, + { + "name": "Tarchia", + "description": "Its name means \"brainy,\" but that may be an exaggeration." + }, + { + "name": "Tastavinsaurus", + "description": "This titanosaur was discovered in Spain." + }, + { + "name": "Tatankacephalus", + "description": "A brand-new ankylosaur from North America." + }, + { + "name": "Tatankaceratops", + "description": "Was this really a juvenile specimen of Triceratops?" + }, + { + "name": "Tataouinea", + "description": "No, this dinosaur wasn't named after Tatooine in Star Wars." + }, + { + "name": "Tawa", + "description": "This ancient theropod points to a South American origin for dinosaurs." + }, + { + "name": "Tazoudasaurus", + "description": "This Vulcanodon relative was one of the earliest sauropods." + }, + { + "name": "Technosaurus", + "description": "This early herbivore was named after Texas Tech university." + }, + { + "name": "Tehuelchesaurus", + "description": "This sauropod was named after an indigenous South American people." + }, + { + "name": "Telmatosaurus", + "description": "This duck-billed dinosaur was discovered in Transylvania." + }, + { + "name": "Tendaguria", + "description": "This Tanzanian sauropod has proven difficult to classify." + }, + { + "name": "Tenontosaurus", + "description": "This long-tailed herbivore was hunted by Deinonychus." + }, + { + "name": "Teratophoneus", + "description": "This \"monstrous murderer\" wasn't all that big." + }, + { + "name": "Tethyshadros", + "description": "One of the few dinosaurs to be found in modern-day Italy." + }, + { + "name": "Texacephale", + "description": "This Texan pachycephalosaur was named in 2010." + }, + { + "name": "Thecocoelurus", + "description": "Is this the earliest ornithomimid in the fossil record?" + }, + { + "name": "Thecodontosaurus", + "description": "The first prosauropod ever to be discovered." + }, + { + "name": "Theiophytalia", + "description": "Its name means \"garden of the gods\"." + }, + { + "name": "Therizinosaurus", + "description": "What did Little Orphan Annie say to this dinosaur? \"Reaping lizards!\"" + }, + { + "name": "Thescelosaurus", + "description": "Did paleontologists find this dinosaur's mummified heart?" + }, + { + "name": "Tianchisaurus", + "description": "This dinosaur's species name honors \"Jurassic Park\"." + }, + { + "name": "Tianyulong", + "description": "Why did this ornithopod have feathers?" + }, + { + "name": "Tianyuraptor", + "description": "A small, long-legged raptor from eastern Asia." + }, + { + "name": "Tianzhenosaurus", + "description": "This ankylosaur's skull has been spectacularly preserved." + }, + { + "name": "Timimus", + "description": "The only ornithomimid ever discovered in Australia." + }, + { + "name": "Titanoceratops", + "description": "The biggest of all the horned, frilled dinosaurs." + }, + { + "name": "Titanosaurus", + "description": "This sauropod may—or may not—have been a unique member of its genus." + }, + { + "name": "Tochisaurus", + "description": "A large troodont of late Cretaceous Asia." + }, + { + "name": "Tornieria", + "description": "This sauropod has a complicated taxonomic history." + }, + { + "name": "Torosaurus", + "description": "Was it really an elderly specimen of Triceratops?" + }, + { + "name": "Torvosaurus", + "description": "One of the largest predators of Jurassic North America." + }, + { + "name": "Triceratops", + "description": "The famous, three-horned, plant-eating dinosaur." + }, + { + "name": "Trinisaura", + "description": "The first ornithopod ever to be discovered in Antarctica." + }, + { + "name": "Troodon", + "description": "Possibly the smartest dinosaur that ever lived." + }, + { + "name": "Tsaagan", + "description": "One of the earliest raptors yet discovered." + }, + { + "name": "Tsintaosaurus", + "description": "Also known as the \"Unicorn Dinosaur\"." + }, + { + "name": "Tuojiangosaurus", + "description": "One of the most well-known Chinese stegosaurs." + }, + { + "name": "Turanoceratops", + "description": "What was this ceratopsian doing in late Cretaceous Asia?" + }, + { + "name": "Turiasaurus", + "description": "The largest dinosaur ever to be discovered in Europe." + }, + { + "name": "Tylocephale", + "description": "The tallest-domed of all the pachycephalosaurs." + }, + { + "name": "Tyrannosaurus Rex", + "description": "The once—and always—king of the dinosaurs." + }, + { + "name": "Tyrannotitan", + "description": "We know very little about this fearsomely named dinosaur." + }, + { + "name": "Uberabatitan", + "description": "Discovered in the Uberaba region of Brazil." + }, + { + "name": "Udanoceratops", + "description": "The largest ceratopsian to run on two legs." + }, + { + "name": "Unaysaurus", + "description": "One of the oldest prosauropods yet discovered." + }, + { + "name": "Unenlagia", + "description": "This bird-like raptor was native to South America." + }, + { + "name": "Unescoceratops", + "description": "named after the United Nation's UNESCO." + }, + { + "name": "Urbacodon", + "description": "This Troodon-like predator was discovered in Uzbekistan." + }, + { + "name": "Utahceratops", + "description": "Guess what state this dinosaur was discovered in." + }, + { + "name": "Utahraptor", + "description": "Probably the biggest raptor that ever lived." + }, + { + "name": "Uteodon", + "description": "It was once classified as a species of Camptosaurus." + }, + { + "name": "Vagaceratops", + "description": "This big-frilled dinosaur was closely related to Kosmoceratops." + }, + { + "name": "Vahiny", + "description": "Its name is Malagasy for \"traveler\"." + }, + { + "name": "Valdoraptor", + "description": "This early \"bird mimic\" dinosaur lived in England." + }, + { + "name": "Valdosaurus", + "description": "This ornithopod was discovered on the Isle of Wight." + }, + { + "name": "Variraptor", + "description": "The first raptor ever to be discovered in France." + }, + { + "name": "Velafrons", + "description": "A new addition to the duck-billed dinosaur family." + }, + { + "name": "Velociraptor", + "description": "This dinosaur was vicious but a lot smaller than you thought." + }, + { + "name": "Velocisaurus", + "description": "A small, speedy theropod of late Cretaceous South America." + }, + { + "name": "Venenosaurus", + "description": "This \"poison lizard\" was really a gentle plant-eater." + }, + { + "name": "Veterupristisaurus", + "description": "One of the earliest carcharodontosaurs yet identified." + }, + { + "name": "Vulcanodon", + "description": "An early sauropod of the Jurassic period." + }, + { + "name": "Wannanosaurus", + "description": "Probably the smallest of all the bone-headed dinosaurs." + }, + { + "name": "Wellnhoferia", + "description": "Was it really a species of Archaeopteryx?" + }, + { + "name": "Wendiceratops", + "description": "This dinosaur honors Canadian fossil hunter Wendy Sloboda." + }, + { + "name": "Willinakaqe", + "description": "A rare duck-billed dinosaur from South America." + }, + { + "name": "Wintonotitan", + "description": "Another new titanosaur from Australia." + }, + { + "name": "Wuerhosaurus", + "description": "Could this have been the last of the stegosaurs?" + }, + { + "name": "Wulagasaurus", + "description": "The earliest saurolophine hadrosaur in the fossil record." + }, + { + "name": "Xenoceratops", + "description": "This \"alien horned face\" was announced in 2012." + }, + { + "name": "Xenoposeidon", + "description": "Experts aren't sure how to classify this sauropod." + }, + { + "name": "Xenotarsosaurus", + "description": "A poorly understood abelisaur from South America." + }, + { + "name": "Xiaosaurus", + "description": "A small ornithopod from late Jurassic Asia." + }, + { + "name": "Xiaotingia", + "description": "This feathered dinosaur predated Archaeopteryx." + }, + { + "name": "Xinjiangtitan", + "description": "This huge sauropod was a close relative of Mamenchisaurus." + }, + { + "name": "Xiongguanlong", + "description": "A small, primitive tyrannosaur from Asia." + }, + { + "name": "Xixianykus", + "description": "A long-legged dino-bird from eastern Asia." + }, + { + "name": "Xuanhanosaurus", + "description": "You didn't think there'd be so many \"X\"'s on this list, did you?" + }, + { + "name": "Xuanhuaceratops", + "description": "An early ceratopsian of the late Jurassic." + }, + { + "name": "Xuwulong", + "description": "This iguanodontid ornithopod was recently discovered in China." + }, + { + "name": "Yamaceratops", + "description": "No, it didn't have a sweet potato for a head." + }, + { + "name": "Yandusaurus", + "description": "A small ornithopod of middle Jurassic China." + }, + { + "name": "Yangchuanosaurus", + "description": "A large theropod of late Jurassic Asia." + }, + { + "name": "Yaverlandia", + "description": "A classic case of mistaken dinosaur identity." + }, + { + "name": "Yi Qi", + "description": "This strange Jurassic dinosaur had bat-like wings." + }, + { + "name": "Yimenosaurus", + "description": "One of the better-known Chinese prosauropods." + }, + { + "name": "Yinlong", + "description": "This \"hidden dragon\" was an early ceratopsian." + }, + { + "name": "Yixianosaurus", + "description": "How did this dino-bird use its long fingers?" + }, + { + "name": "Yizhousaurus", + "description": "The earliest intact sauropod yet discovered." + }, + { + "name": "Yongjinglong", + "description": "This titanosaur was recently discovered in China." + }, + { + "name": "Yueosaurus", + "description": "This basal ornithopod was discovered by construction workers." + }, + { + "name": "Yulong", + "description": "The smallest oviraptor yet identified." + }, + { + "name": "Yunnanosaurus", + "description": "One of the last prosauropods to walk the earth." + }, + { + "name": "Yutyrannus", + "description": "The largest feathered tyrannosaur yet identified." + }, + { + "name": "Zalmoxes", + "description": "A strange-looking ornithopod from Romania." + }, + { + "name": "Zanabazar", + "description": "named after a Buddhist spiritual leader." + }, + { + "name": "Zapalasaurus", + "description": "This \"diplodocoid\" sauropod lived in early Cretaceous South America." + }, + { + "name": "Zby", + "description": "This dinosaur's name was inversely proportional to its size." + }, + { + "name": "Zephyrosaurus", + "description": "Otherwise known as the Western Wind Lizard." + }, + { + "name": "Zhanghenglong", + "description": "A transitional hadrosaur of late Cretaceous Asia." + }, + { + "name": "Zhejiangosaurus", + "description": "The first identified nodosaur from Asia." + }, + { + "name": "Zhenyuanlong", + "description": "Also known as the \"fluffy feathered poodle from hell\"." + }, + { + "name": "Zhongyuansaurus", + "description": "The only known ankylosaur to lack a tail club." + }, + { + "name": "Zhuchengceratops", + "description": "It probably figured on the lunch menu of Zhuchengtyrannus." + }, + { + "name": "Zhuchengosaurus", + "description": "This hadrosaur was even bigger than Shantungosaurus." + }, + { + "name": "Zhuchengtyrannus", + "description": "This Asian tyrannosaur was the size of T. Rex." + }, + { + "name": "Zuniceratops", + "description": "This horned dinosaur was discovered by an eight-year-old boy." + }, + { + "name": "Zuolong", + "description": "It was named after General Tso, of Chinese restaurant fame." + }, + { + "name": "Zupaysaurus", + "description": "This \"devil lizard\" was one of the earliest theropods." + } +] diff --git a/api/main.ts b/api/main.ts new file mode 100644 index 0000000..0da9e39 --- /dev/null +++ b/api/main.ts @@ -0,0 +1,32 @@ +import { Application, Router } from "@oak/oak"; +import { oakCors } from "@tajpouria/cors"; +import data from "./data.json" with { type: "json" }; + +const router = new Router(); + +router.get("/", (context) => { + context.response.body = "Welcome to dinosaur API!"; +}) + +router.get("/dinosaurs", (context) => { + context.response.body = data; +}) + +router.get("/dinosaurs/:dinosaur", (context) => { + if (!context?.params?.dinosaur) { + context.response.body = "No dinosaur name provided."; + } + + const dinosaur = data.find((item) => + item.name.toLowerCase() === context.params.dinosaur.toLowerCase() + ); + + context.response.body = dinosaur ? dinosaur : "No dinosaur found."; +}); + +const app = new Application(); +app.use(oakCors()); +app.use(router.routes()); +app.use(router.allowedMethods()); + +await app.listen({ port: 8000 }); diff --git a/deno.lock b/deno.lock new file mode 100644 index 0000000..1099a48 --- /dev/null +++ b/deno.lock @@ -0,0 +1,1524 @@ +{ + "version": "3", + "packages": { + "specifiers": { + "jsr:@oak/commons@^1.0": "jsr:@oak/commons@1.0.0", + "jsr:@oak/oak@^17.0.0": "jsr:@oak/oak@17.0.0", + "jsr:@std/assert@^1.0": "jsr:@std/assert@1.0.6", + "jsr:@std/bytes@^1.0": "jsr:@std/bytes@1.0.2", + "jsr:@std/bytes@^1.0.2": "jsr:@std/bytes@1.0.2", + "jsr:@std/crypto@^1.0": "jsr:@std/crypto@1.0.3", + "jsr:@std/encoding@^1.0": "jsr:@std/encoding@1.0.5", + "jsr:@std/encoding@^1.0.5": "jsr:@std/encoding@1.0.5", + "jsr:@std/http@^1.0": "jsr:@std/http@1.0.7", + "jsr:@std/io@0.224": "jsr:@std/io@0.224.9", + "jsr:@std/media-types@^1.0": "jsr:@std/media-types@1.0.3", + "jsr:@std/path@^1.0": "jsr:@std/path@1.0.6", + "jsr:@tajpouria/cors@^1.2.1": "jsr:@tajpouria/cors@1.2.1", + "npm:@types/react-dom@^18.3.0": "npm:@types/react-dom@18.3.0", + "npm:@types/react@^18.3.3": "npm:@types/react@18.3.9", + "npm:@typescript-eslint/eslint-plugin@^7.15.0": "npm:@typescript-eslint/eslint-plugin@7.18.0_@typescript-eslint+parser@7.18.0__eslint@8.57.1__typescript@5.6.2_eslint@8.57.1_typescript@5.6.2", + "npm:@typescript-eslint/parser@^7.15.0": "npm:@typescript-eslint/parser@7.18.0_eslint@8.57.1_typescript@5.6.2", + "npm:@vitejs/plugin-react@^4.3.1": "npm:@vitejs/plugin-react@4.3.1_vite@5.4.8_@babel+core@7.25.2", + "npm:eslint-plugin-react-hooks@^4.6.2": "npm:eslint-plugin-react-hooks@4.6.2_eslint@8.57.1", + "npm:eslint-plugin-react-refresh@^0.4.7": "npm:eslint-plugin-react-refresh@0.4.12_eslint@8.57.1", + "npm:eslint@^8.57.0": "npm:eslint@8.57.1", + "npm:path-to-regexp@6.2.1": "npm:path-to-regexp@6.2.1", + "npm:react-dom@^18.3.1": "npm:react-dom@18.3.1_react@18.3.1", + "npm:react@^18.3.1": "npm:react@18.3.1", + "npm:typescript@^5.2.2": "npm:typescript@5.6.2", + "npm:vite": "npm:vite@5.4.8", + "npm:vite@5.4.8": "npm:vite@5.4.8", + "npm:vite@^5.3.4": "npm:vite@5.4.8" + }, + "jsr": { + "@oak/commons@1.0.0": { + "integrity": "49805b55603c3627a9d6235c0655aa2b6222d3036b3a13ff0380c16368f607ac", + "dependencies": [ + "jsr:@std/assert@^1.0", + "jsr:@std/bytes@^1.0", + "jsr:@std/crypto@^1.0", + "jsr:@std/encoding@^1.0", + "jsr:@std/http@^1.0", + "jsr:@std/media-types@^1.0" + ] + }, + "@oak/oak@17.0.0": { + "integrity": "1be33e585080d8ce5093963469a05ed265f1d5f139421c9b0fda8419a533ebee", + "dependencies": [ + "jsr:@oak/commons@^1.0", + "jsr:@std/assert@^1.0", + "jsr:@std/bytes@^1.0", + "jsr:@std/crypto@^1.0", + "jsr:@std/http@^1.0", + "jsr:@std/io@0.224", + "jsr:@std/media-types@^1.0", + "jsr:@std/path@^1.0", + "npm:path-to-regexp@6.2.1" + ] + }, + "@std/assert@1.0.6": { + "integrity": "1904c05806a25d94fe791d6d883b685c9e2dcd60e4f9fc30f4fc5cf010c72207" + }, + "@std/bytes@1.0.2": { + "integrity": "fbdee322bbd8c599a6af186a1603b3355e59a5fb1baa139f8f4c3c9a1b3e3d57" + }, + "@std/crypto@1.0.3": { + "integrity": "a2a32f51ddef632d299e3879cd027c630dcd4d1d9a5285d6e6788072f4e51e7f" + }, + "@std/encoding@1.0.5": { + "integrity": "ecf363d4fc25bd85bd915ff6733a7e79b67e0e7806334af15f4645c569fefc04" + }, + "@std/http@1.0.7": { + "integrity": "9b904fc256678a5c9759f1a53a24a3fdcc59d83dc62099bb472683b6f819194c", + "dependencies": [ + "jsr:@std/encoding@^1.0.5" + ] + }, + "@std/io@0.224.9": { + "integrity": "4414664b6926f665102e73c969cfda06d2c4c59bd5d0c603fd4f1b1c840d6ee3", + "dependencies": [ + "jsr:@std/bytes@^1.0.2" + ] + }, + "@std/media-types@1.0.3": { + "integrity": "b12d30a7852f7578f4d210622df713bbfd1cbdd9b4ec2eaf5c1845ab70bab159" + }, + "@std/path@1.0.6": { + "integrity": "ab2c55f902b380cf28e0eec501b4906e4c1960d13f00e11cfbcd21de15f18fed" + }, + "@tajpouria/cors@1.2.1": { + "integrity": "eca42e4fb7cb3906ef0ee3d1e565dd6bb4632ccd8e70a95cf4279759743328f0" + } + }, + "npm": { + "@ampproject/remapping@2.3.0": { + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5", + "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25" + } + }, + "@babel/code-frame@7.24.7": { + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dependencies": { + "@babel/highlight": "@babel/highlight@7.24.7", + "picocolors": "picocolors@1.1.0" + } + }, + "@babel/compat-data@7.25.4": { + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "dependencies": {} + }, + "@babel/core@7.25.2": { + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dependencies": { + "@ampproject/remapping": "@ampproject/remapping@2.3.0", + "@babel/code-frame": "@babel/code-frame@7.24.7", + "@babel/generator": "@babel/generator@7.25.6", + "@babel/helper-compilation-targets": "@babel/helper-compilation-targets@7.25.2", + "@babel/helper-module-transforms": "@babel/helper-module-transforms@7.25.2_@babel+core@7.25.2", + "@babel/helpers": "@babel/helpers@7.25.6", + "@babel/parser": "@babel/parser@7.25.6", + "@babel/template": "@babel/template@7.25.0", + "@babel/traverse": "@babel/traverse@7.25.6", + "@babel/types": "@babel/types@7.25.6", + "convert-source-map": "convert-source-map@2.0.0", + "debug": "debug@4.3.7", + "gensync": "gensync@1.0.0-beta.2", + "json5": "json5@2.2.3", + "semver": "semver@6.3.1" + } + }, + "@babel/generator@7.25.6": { + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "dependencies": { + "@babel/types": "@babel/types@7.25.6", + "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5", + "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25", + "jsesc": "jsesc@2.5.2" + } + }, + "@babel/helper-compilation-targets@7.25.2": { + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dependencies": { + "@babel/compat-data": "@babel/compat-data@7.25.4", + "@babel/helper-validator-option": "@babel/helper-validator-option@7.24.8", + "browserslist": "browserslist@4.24.0", + "lru-cache": "lru-cache@5.1.1", + "semver": "semver@6.3.1" + } + }, + "@babel/helper-module-imports@7.24.7": { + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dependencies": { + "@babel/traverse": "@babel/traverse@7.25.6", + "@babel/types": "@babel/types@7.25.6" + } + }, + "@babel/helper-module-transforms@7.25.2_@babel+core@7.25.2": { + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dependencies": { + "@babel/core": "@babel/core@7.25.2", + "@babel/helper-module-imports": "@babel/helper-module-imports@7.24.7", + "@babel/helper-simple-access": "@babel/helper-simple-access@7.24.7", + "@babel/helper-validator-identifier": "@babel/helper-validator-identifier@7.24.7", + "@babel/traverse": "@babel/traverse@7.25.6" + } + }, + "@babel/helper-plugin-utils@7.24.8": { + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dependencies": {} + }, + "@babel/helper-simple-access@7.24.7": { + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dependencies": { + "@babel/traverse": "@babel/traverse@7.25.6", + "@babel/types": "@babel/types@7.25.6" + } + }, + "@babel/helper-string-parser@7.24.8": { + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dependencies": {} + }, + "@babel/helper-validator-identifier@7.24.7": { + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dependencies": {} + }, + "@babel/helper-validator-option@7.24.8": { + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dependencies": {} + }, + "@babel/helpers@7.25.6": { + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "dependencies": { + "@babel/template": "@babel/template@7.25.0", + "@babel/types": "@babel/types@7.25.6" + } + }, + "@babel/highlight@7.24.7": { + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dependencies": { + "@babel/helper-validator-identifier": "@babel/helper-validator-identifier@7.24.7", + "chalk": "chalk@2.4.2", + "js-tokens": "js-tokens@4.0.0", + "picocolors": "picocolors@1.1.0" + } + }, + "@babel/parser@7.25.6": { + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "dependencies": { + "@babel/types": "@babel/types@7.25.6" + } + }, + "@babel/plugin-transform-react-jsx-self@7.24.7_@babel+core@7.25.2": { + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "dependencies": { + "@babel/core": "@babel/core@7.25.2", + "@babel/helper-plugin-utils": "@babel/helper-plugin-utils@7.24.8" + } + }, + "@babel/plugin-transform-react-jsx-source@7.24.7_@babel+core@7.25.2": { + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "dependencies": { + "@babel/core": "@babel/core@7.25.2", + "@babel/helper-plugin-utils": "@babel/helper-plugin-utils@7.24.8" + } + }, + "@babel/template@7.25.0": { + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dependencies": { + "@babel/code-frame": "@babel/code-frame@7.24.7", + "@babel/parser": "@babel/parser@7.25.6", + "@babel/types": "@babel/types@7.25.6" + } + }, + "@babel/traverse@7.25.6": { + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "dependencies": { + "@babel/code-frame": "@babel/code-frame@7.24.7", + "@babel/generator": "@babel/generator@7.25.6", + "@babel/parser": "@babel/parser@7.25.6", + "@babel/template": "@babel/template@7.25.0", + "@babel/types": "@babel/types@7.25.6", + "debug": "debug@4.3.7", + "globals": "globals@11.12.0" + } + }, + "@babel/types@7.25.6": { + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "dependencies": { + "@babel/helper-string-parser": "@babel/helper-string-parser@7.24.8", + "@babel/helper-validator-identifier": "@babel/helper-validator-identifier@7.24.7", + "to-fast-properties": "to-fast-properties@2.0.0" + } + }, + "@esbuild/aix-ppc64@0.21.5": { + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dependencies": {} + }, + "@esbuild/android-arm64@0.21.5": { + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dependencies": {} + }, + "@esbuild/android-arm@0.21.5": { + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dependencies": {} + }, + "@esbuild/android-x64@0.21.5": { + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dependencies": {} + }, + "@esbuild/darwin-arm64@0.21.5": { + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dependencies": {} + }, + "@esbuild/darwin-x64@0.21.5": { + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dependencies": {} + }, + "@esbuild/freebsd-arm64@0.21.5": { + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dependencies": {} + }, + "@esbuild/freebsd-x64@0.21.5": { + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dependencies": {} + }, + "@esbuild/linux-arm64@0.21.5": { + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dependencies": {} + }, + "@esbuild/linux-arm@0.21.5": { + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dependencies": {} + }, + "@esbuild/linux-ia32@0.21.5": { + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dependencies": {} + }, + "@esbuild/linux-loong64@0.21.5": { + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dependencies": {} + }, + "@esbuild/linux-mips64el@0.21.5": { + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dependencies": {} + }, + "@esbuild/linux-ppc64@0.21.5": { + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dependencies": {} + }, + "@esbuild/linux-riscv64@0.21.5": { + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dependencies": {} + }, + "@esbuild/linux-s390x@0.21.5": { + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dependencies": {} + }, + "@esbuild/linux-x64@0.21.5": { + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dependencies": {} + }, + "@esbuild/netbsd-x64@0.21.5": { + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dependencies": {} + }, + "@esbuild/openbsd-x64@0.21.5": { + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dependencies": {} + }, + "@esbuild/sunos-x64@0.21.5": { + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dependencies": {} + }, + "@esbuild/win32-arm64@0.21.5": { + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dependencies": {} + }, + "@esbuild/win32-ia32@0.21.5": { + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dependencies": {} + }, + "@esbuild/win32-x64@0.21.5": { + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dependencies": {} + }, + "@eslint-community/eslint-utils@4.4.0_eslint@8.57.1": { + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint": "eslint@8.57.1", + "eslint-visitor-keys": "eslint-visitor-keys@3.4.3" + } + }, + "@eslint-community/regexpp@4.11.1": { + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dependencies": {} + }, + "@eslint/eslintrc@2.1.4": { + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "ajv@6.12.6", + "debug": "debug@4.3.7", + "espree": "espree@9.6.1_acorn@8.12.1", + "globals": "globals@13.24.0", + "ignore": "ignore@5.3.2", + "import-fresh": "import-fresh@3.3.0", + "js-yaml": "js-yaml@4.1.0", + "minimatch": "minimatch@3.1.2", + "strip-json-comments": "strip-json-comments@3.1.1" + } + }, + "@eslint/js@8.57.1": { + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dependencies": {} + }, + "@humanwhocodes/config-array@0.13.0": { + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "dependencies": { + "@humanwhocodes/object-schema": "@humanwhocodes/object-schema@2.0.3", + "debug": "debug@4.3.7", + "minimatch": "minimatch@3.1.2" + } + }, + "@humanwhocodes/module-importer@1.0.1": { + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dependencies": {} + }, + "@humanwhocodes/object-schema@2.0.3": { + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dependencies": {} + }, + "@jridgewell/gen-mapping@0.3.5": { + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "@jridgewell/set-array@1.2.1", + "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0", + "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25" + } + }, + "@jridgewell/resolve-uri@3.1.2": { + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dependencies": {} + }, + "@jridgewell/set-array@1.2.1": { + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dependencies": {} + }, + "@jridgewell/sourcemap-codec@1.5.0": { + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dependencies": {} + }, + "@jridgewell/trace-mapping@0.3.25": { + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "@jridgewell/resolve-uri@3.1.2", + "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0" + } + }, + "@nodelib/fs.scandir@2.1.5": { + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5", + "run-parallel": "run-parallel@1.2.0" + } + }, + "@nodelib/fs.stat@2.0.5": { + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dependencies": {} + }, + "@nodelib/fs.walk@1.2.8": { + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "@nodelib/fs.scandir@2.1.5", + "fastq": "fastq@1.17.1" + } + }, + "@rollup/rollup-android-arm-eabi@4.22.4": { + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "dependencies": {} + }, + "@rollup/rollup-android-arm64@4.22.4": { + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "dependencies": {} + }, + "@rollup/rollup-darwin-arm64@4.22.4": { + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "dependencies": {} + }, + "@rollup/rollup-darwin-x64@4.22.4": { + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm-gnueabihf@4.22.4": { + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm-musleabihf@4.22.4": { + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm64-gnu@4.22.4": { + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm64-musl@4.22.4": { + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "dependencies": {} + }, + "@rollup/rollup-linux-powerpc64le-gnu@4.22.4": { + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "dependencies": {} + }, + "@rollup/rollup-linux-riscv64-gnu@4.22.4": { + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "dependencies": {} + }, + "@rollup/rollup-linux-s390x-gnu@4.22.4": { + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "dependencies": {} + }, + "@rollup/rollup-linux-x64-gnu@4.22.4": { + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "dependencies": {} + }, + "@rollup/rollup-linux-x64-musl@4.22.4": { + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "dependencies": {} + }, + "@rollup/rollup-win32-arm64-msvc@4.22.4": { + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "dependencies": {} + }, + "@rollup/rollup-win32-ia32-msvc@4.22.4": { + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "dependencies": {} + }, + "@rollup/rollup-win32-x64-msvc@4.22.4": { + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "dependencies": {} + }, + "@types/babel__core@7.20.5": { + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "@babel/parser@7.25.6", + "@babel/types": "@babel/types@7.25.6", + "@types/babel__generator": "@types/babel__generator@7.6.8", + "@types/babel__template": "@types/babel__template@7.4.4", + "@types/babel__traverse": "@types/babel__traverse@7.20.6" + } + }, + "@types/babel__generator@7.6.8": { + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "@babel/types@7.25.6" + } + }, + "@types/babel__template@7.4.4": { + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "@babel/parser@7.25.6", + "@babel/types": "@babel/types@7.25.6" + } + }, + "@types/babel__traverse@7.20.6": { + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dependencies": { + "@babel/types": "@babel/types@7.25.6" + } + }, + "@types/estree@1.0.5": { + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dependencies": {} + }, + "@types/prop-types@15.7.13": { + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dependencies": {} + }, + "@types/react-dom@18.3.0": { + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dependencies": { + "@types/react": "@types/react@18.3.9" + } + }, + "@types/react@18.3.9": { + "integrity": "sha512-+BpAVyTpJkNWWSSnaLBk6ePpHLOGJKnEQNbINNovPWzvEUyAe3e+/d494QdEh71RekM/qV7lw6jzf1HGrJyAtQ==", + "dependencies": { + "@types/prop-types": "@types/prop-types@15.7.13", + "csstype": "csstype@3.1.3" + } + }, + "@typescript-eslint/eslint-plugin@7.18.0_@typescript-eslint+parser@7.18.0__eslint@8.57.1__typescript@5.6.2_eslint@8.57.1_typescript@5.6.2": { + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dependencies": { + "@eslint-community/regexpp": "@eslint-community/regexpp@4.11.1", + "@typescript-eslint/parser": "@typescript-eslint/parser@7.18.0_eslint@8.57.1_typescript@5.6.2", + "@typescript-eslint/scope-manager": "@typescript-eslint/scope-manager@7.18.0", + "@typescript-eslint/type-utils": "@typescript-eslint/type-utils@7.18.0_eslint@8.57.1_typescript@5.6.2", + "@typescript-eslint/utils": "@typescript-eslint/utils@7.18.0_eslint@8.57.1_typescript@5.6.2", + "@typescript-eslint/visitor-keys": "@typescript-eslint/visitor-keys@7.18.0", + "eslint": "eslint@8.57.1", + "graphemer": "graphemer@1.4.0", + "ignore": "ignore@5.3.2", + "natural-compare": "natural-compare@1.4.0", + "ts-api-utils": "ts-api-utils@1.3.0_typescript@5.6.2" + } + }, + "@typescript-eslint/parser@7.18.0_eslint@8.57.1_typescript@5.6.2": { + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dependencies": { + "@typescript-eslint/scope-manager": "@typescript-eslint/scope-manager@7.18.0", + "@typescript-eslint/types": "@typescript-eslint/types@7.18.0", + "@typescript-eslint/typescript-estree": "@typescript-eslint/typescript-estree@7.18.0_typescript@5.6.2", + "@typescript-eslint/visitor-keys": "@typescript-eslint/visitor-keys@7.18.0", + "debug": "debug@4.3.7", + "eslint": "eslint@8.57.1" + } + }, + "@typescript-eslint/scope-manager@7.18.0": { + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dependencies": { + "@typescript-eslint/types": "@typescript-eslint/types@7.18.0", + "@typescript-eslint/visitor-keys": "@typescript-eslint/visitor-keys@7.18.0" + } + }, + "@typescript-eslint/type-utils@7.18.0_eslint@8.57.1_typescript@5.6.2": { + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dependencies": { + "@typescript-eslint/typescript-estree": "@typescript-eslint/typescript-estree@7.18.0_typescript@5.6.2", + "@typescript-eslint/utils": "@typescript-eslint/utils@7.18.0_eslint@8.57.1_typescript@5.6.2", + "debug": "debug@4.3.7", + "eslint": "eslint@8.57.1", + "ts-api-utils": "ts-api-utils@1.3.0_typescript@5.6.2" + } + }, + "@typescript-eslint/types@7.18.0": { + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dependencies": {} + }, + "@typescript-eslint/typescript-estree@7.18.0_typescript@5.6.2": { + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dependencies": { + "@typescript-eslint/types": "@typescript-eslint/types@7.18.0", + "@typescript-eslint/visitor-keys": "@typescript-eslint/visitor-keys@7.18.0", + "debug": "debug@4.3.7", + "globby": "globby@11.1.0", + "is-glob": "is-glob@4.0.3", + "minimatch": "minimatch@9.0.5", + "semver": "semver@7.6.3", + "ts-api-utils": "ts-api-utils@1.3.0_typescript@5.6.2" + } + }, + "@typescript-eslint/utils@7.18.0_eslint@8.57.1_typescript@5.6.2": { + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dependencies": { + "@eslint-community/eslint-utils": "@eslint-community/eslint-utils@4.4.0_eslint@8.57.1", + "@typescript-eslint/scope-manager": "@typescript-eslint/scope-manager@7.18.0", + "@typescript-eslint/types": "@typescript-eslint/types@7.18.0", + "@typescript-eslint/typescript-estree": "@typescript-eslint/typescript-estree@7.18.0_typescript@5.6.2", + "eslint": "eslint@8.57.1" + } + }, + "@typescript-eslint/visitor-keys@7.18.0": { + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dependencies": { + "@typescript-eslint/types": "@typescript-eslint/types@7.18.0", + "eslint-visitor-keys": "eslint-visitor-keys@3.4.3" + } + }, + "@ungap/structured-clone@1.2.0": { + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dependencies": {} + }, + "@vitejs/plugin-react@4.3.1_vite@5.4.8_@babel+core@7.25.2": { + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "dependencies": { + "@babel/core": "@babel/core@7.25.2", + "@babel/plugin-transform-react-jsx-self": "@babel/plugin-transform-react-jsx-self@7.24.7_@babel+core@7.25.2", + "@babel/plugin-transform-react-jsx-source": "@babel/plugin-transform-react-jsx-source@7.24.7_@babel+core@7.25.2", + "@types/babel__core": "@types/babel__core@7.20.5", + "react-refresh": "react-refresh@0.14.2", + "vite": "vite@5.4.8" + } + }, + "acorn-jsx@5.3.2_acorn@8.12.1": { + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dependencies": { + "acorn": "acorn@8.12.1" + } + }, + "acorn@8.12.1": { + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dependencies": {} + }, + "ajv@6.12.6": { + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "fast-deep-equal@3.1.3", + "fast-json-stable-stringify": "fast-json-stable-stringify@2.1.0", + "json-schema-traverse": "json-schema-traverse@0.4.1", + "uri-js": "uri-js@4.4.1" + } + }, + "ansi-regex@5.0.1": { + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dependencies": {} + }, + "ansi-styles@3.2.1": { + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "color-convert@1.9.3" + } + }, + "ansi-styles@4.3.0": { + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "color-convert@2.0.1" + } + }, + "argparse@2.0.1": { + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dependencies": {} + }, + "array-union@2.1.0": { + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dependencies": {} + }, + "balanced-match@1.0.2": { + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dependencies": {} + }, + "brace-expansion@1.1.11": { + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "balanced-match@1.0.2", + "concat-map": "concat-map@0.0.1" + } + }, + "brace-expansion@2.0.1": { + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "balanced-match@1.0.2" + } + }, + "braces@3.0.3": { + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "fill-range@7.1.1" + } + }, + "browserslist@4.24.0": { + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dependencies": { + "caniuse-lite": "caniuse-lite@1.0.30001664", + "electron-to-chromium": "electron-to-chromium@1.5.29", + "node-releases": "node-releases@2.0.18", + "update-browserslist-db": "update-browserslist-db@1.1.0_browserslist@4.24.0" + } + }, + "callsites@3.1.0": { + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dependencies": {} + }, + "caniuse-lite@1.0.30001664": { + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", + "dependencies": {} + }, + "chalk@2.4.2": { + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "ansi-styles@3.2.1", + "escape-string-regexp": "escape-string-regexp@1.0.5", + "supports-color": "supports-color@5.5.0" + } + }, + "chalk@4.1.2": { + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "ansi-styles@4.3.0", + "supports-color": "supports-color@7.2.0" + } + }, + "color-convert@1.9.3": { + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "color-name@1.1.3" + } + }, + "color-convert@2.0.1": { + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "color-name@1.1.4" + } + }, + "color-name@1.1.3": { + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dependencies": {} + }, + "color-name@1.1.4": { + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dependencies": {} + }, + "concat-map@0.0.1": { + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dependencies": {} + }, + "convert-source-map@2.0.0": { + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dependencies": {} + }, + "cross-spawn@7.0.3": { + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "path-key@3.1.1", + "shebang-command": "shebang-command@2.0.0", + "which": "which@2.0.2" + } + }, + "csstype@3.1.3": { + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dependencies": {} + }, + "debug@4.3.7": { + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "ms@2.1.3" + } + }, + "deep-is@0.1.4": { + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dependencies": {} + }, + "dir-glob@3.0.1": { + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "path-type@4.0.0" + } + }, + "doctrine@3.0.0": { + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "esutils@2.0.3" + } + }, + "electron-to-chromium@1.5.29": { + "integrity": "sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==", + "dependencies": {} + }, + "esbuild@0.21.5": { + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dependencies": { + "@esbuild/aix-ppc64": "@esbuild/aix-ppc64@0.21.5", + "@esbuild/android-arm": "@esbuild/android-arm@0.21.5", + "@esbuild/android-arm64": "@esbuild/android-arm64@0.21.5", + "@esbuild/android-x64": "@esbuild/android-x64@0.21.5", + "@esbuild/darwin-arm64": "@esbuild/darwin-arm64@0.21.5", + "@esbuild/darwin-x64": "@esbuild/darwin-x64@0.21.5", + "@esbuild/freebsd-arm64": "@esbuild/freebsd-arm64@0.21.5", + "@esbuild/freebsd-x64": "@esbuild/freebsd-x64@0.21.5", + "@esbuild/linux-arm": "@esbuild/linux-arm@0.21.5", + "@esbuild/linux-arm64": "@esbuild/linux-arm64@0.21.5", + "@esbuild/linux-ia32": "@esbuild/linux-ia32@0.21.5", + "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.21.5", + "@esbuild/linux-mips64el": "@esbuild/linux-mips64el@0.21.5", + "@esbuild/linux-ppc64": "@esbuild/linux-ppc64@0.21.5", + "@esbuild/linux-riscv64": "@esbuild/linux-riscv64@0.21.5", + "@esbuild/linux-s390x": "@esbuild/linux-s390x@0.21.5", + "@esbuild/linux-x64": "@esbuild/linux-x64@0.21.5", + "@esbuild/netbsd-x64": "@esbuild/netbsd-x64@0.21.5", + "@esbuild/openbsd-x64": "@esbuild/openbsd-x64@0.21.5", + "@esbuild/sunos-x64": "@esbuild/sunos-x64@0.21.5", + "@esbuild/win32-arm64": "@esbuild/win32-arm64@0.21.5", + "@esbuild/win32-ia32": "@esbuild/win32-ia32@0.21.5", + "@esbuild/win32-x64": "@esbuild/win32-x64@0.21.5" + } + }, + "escalade@3.2.0": { + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dependencies": {} + }, + "escape-string-regexp@1.0.5": { + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dependencies": {} + }, + "escape-string-regexp@4.0.0": { + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dependencies": {} + }, + "eslint-plugin-react-hooks@4.6.2_eslint@8.57.1": { + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dependencies": { + "eslint": "eslint@8.57.1" + } + }, + "eslint-plugin-react-refresh@0.4.12_eslint@8.57.1": { + "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", + "dependencies": { + "eslint": "eslint@8.57.1" + } + }, + "eslint-scope@7.2.2": { + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "esrecurse@4.3.0", + "estraverse": "estraverse@5.3.0" + } + }, + "eslint-visitor-keys@3.4.3": { + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dependencies": {} + }, + "eslint@8.57.1": { + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "dependencies": { + "@eslint-community/eslint-utils": "@eslint-community/eslint-utils@4.4.0_eslint@8.57.1", + "@eslint-community/regexpp": "@eslint-community/regexpp@4.11.1", + "@eslint/eslintrc": "@eslint/eslintrc@2.1.4", + "@eslint/js": "@eslint/js@8.57.1", + "@humanwhocodes/config-array": "@humanwhocodes/config-array@0.13.0", + "@humanwhocodes/module-importer": "@humanwhocodes/module-importer@1.0.1", + "@nodelib/fs.walk": "@nodelib/fs.walk@1.2.8", + "@ungap/structured-clone": "@ungap/structured-clone@1.2.0", + "ajv": "ajv@6.12.6", + "chalk": "chalk@4.1.2", + "cross-spawn": "cross-spawn@7.0.3", + "debug": "debug@4.3.7", + "doctrine": "doctrine@3.0.0", + "escape-string-regexp": "escape-string-regexp@4.0.0", + "eslint-scope": "eslint-scope@7.2.2", + "eslint-visitor-keys": "eslint-visitor-keys@3.4.3", + "espree": "espree@9.6.1_acorn@8.12.1", + "esquery": "esquery@1.6.0", + "esutils": "esutils@2.0.3", + "fast-deep-equal": "fast-deep-equal@3.1.3", + "file-entry-cache": "file-entry-cache@6.0.1", + "find-up": "find-up@5.0.0", + "glob-parent": "glob-parent@6.0.2", + "globals": "globals@13.24.0", + "graphemer": "graphemer@1.4.0", + "ignore": "ignore@5.3.2", + "imurmurhash": "imurmurhash@0.1.4", + "is-glob": "is-glob@4.0.3", + "is-path-inside": "is-path-inside@3.0.3", + "js-yaml": "js-yaml@4.1.0", + "json-stable-stringify-without-jsonify": "json-stable-stringify-without-jsonify@1.0.1", + "levn": "levn@0.4.1", + "lodash.merge": "lodash.merge@4.6.2", + "minimatch": "minimatch@3.1.2", + "natural-compare": "natural-compare@1.4.0", + "optionator": "optionator@0.9.4", + "strip-ansi": "strip-ansi@6.0.1", + "text-table": "text-table@0.2.0" + } + }, + "espree@9.6.1_acorn@8.12.1": { + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "acorn@8.12.1", + "acorn-jsx": "acorn-jsx@5.3.2_acorn@8.12.1", + "eslint-visitor-keys": "eslint-visitor-keys@3.4.3" + } + }, + "esquery@1.6.0": { + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dependencies": { + "estraverse": "estraverse@5.3.0" + } + }, + "esrecurse@4.3.0": { + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "estraverse@5.3.0" + } + }, + "estraverse@5.3.0": { + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dependencies": {} + }, + "esutils@2.0.3": { + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dependencies": {} + }, + "fast-deep-equal@3.1.3": { + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dependencies": {} + }, + "fast-glob@3.3.2": { + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5", + "@nodelib/fs.walk": "@nodelib/fs.walk@1.2.8", + "glob-parent": "glob-parent@5.1.2", + "merge2": "merge2@1.4.1", + "micromatch": "micromatch@4.0.8" + } + }, + "fast-json-stable-stringify@2.1.0": { + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dependencies": {} + }, + "fast-levenshtein@2.0.6": { + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dependencies": {} + }, + "fastq@1.17.1": { + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "reusify@1.0.4" + } + }, + "file-entry-cache@6.0.1": { + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "flat-cache@3.2.0" + } + }, + "fill-range@7.1.1": { + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "to-regex-range@5.0.1" + } + }, + "find-up@5.0.0": { + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "locate-path@6.0.0", + "path-exists": "path-exists@4.0.0" + } + }, + "flat-cache@3.2.0": { + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "flatted@3.3.1", + "keyv": "keyv@4.5.4", + "rimraf": "rimraf@3.0.2" + } + }, + "flatted@3.3.1": { + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dependencies": {} + }, + "fs.realpath@1.0.0": { + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dependencies": {} + }, + "fsevents@2.3.3": { + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dependencies": {} + }, + "gensync@1.0.0-beta.2": { + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dependencies": {} + }, + "glob-parent@5.1.2": { + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "is-glob@4.0.3" + } + }, + "glob-parent@6.0.2": { + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "is-glob@4.0.3" + } + }, + "glob@7.2.3": { + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "fs.realpath@1.0.0", + "inflight": "inflight@1.0.6", + "inherits": "inherits@2.0.4", + "minimatch": "minimatch@3.1.2", + "once": "once@1.4.0", + "path-is-absolute": "path-is-absolute@1.0.1" + } + }, + "globals@11.12.0": { + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dependencies": {} + }, + "globals@13.24.0": { + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "type-fest@0.20.2" + } + }, + "globby@11.1.0": { + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "array-union@2.1.0", + "dir-glob": "dir-glob@3.0.1", + "fast-glob": "fast-glob@3.3.2", + "ignore": "ignore@5.3.2", + "merge2": "merge2@1.4.1", + "slash": "slash@3.0.0" + } + }, + "graphemer@1.4.0": { + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dependencies": {} + }, + "has-flag@3.0.0": { + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dependencies": {} + }, + "has-flag@4.0.0": { + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dependencies": {} + }, + "ignore@5.3.2": { + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dependencies": {} + }, + "import-fresh@3.3.0": { + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "parent-module@1.0.1", + "resolve-from": "resolve-from@4.0.0" + } + }, + "imurmurhash@0.1.4": { + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dependencies": {} + }, + "inflight@1.0.6": { + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "once@1.4.0", + "wrappy": "wrappy@1.0.2" + } + }, + "inherits@2.0.4": { + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dependencies": {} + }, + "is-extglob@2.1.1": { + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dependencies": {} + }, + "is-glob@4.0.3": { + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "is-extglob@2.1.1" + } + }, + "is-number@7.0.0": { + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dependencies": {} + }, + "is-path-inside@3.0.3": { + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dependencies": {} + }, + "isexe@2.0.0": { + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dependencies": {} + }, + "js-tokens@4.0.0": { + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dependencies": {} + }, + "js-yaml@4.1.0": { + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "argparse@2.0.1" + } + }, + "jsesc@2.5.2": { + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dependencies": {} + }, + "json-buffer@3.0.1": { + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dependencies": {} + }, + "json-schema-traverse@0.4.1": { + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dependencies": {} + }, + "json-stable-stringify-without-jsonify@1.0.1": { + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dependencies": {} + }, + "json5@2.2.3": { + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dependencies": {} + }, + "keyv@4.5.4": { + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "json-buffer@3.0.1" + } + }, + "levn@0.4.1": { + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "prelude-ls@1.2.1", + "type-check": "type-check@0.4.0" + } + }, + "locate-path@6.0.0": { + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "p-locate@5.0.0" + } + }, + "lodash.merge@4.6.2": { + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dependencies": {} + }, + "loose-envify@1.4.0": { + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "js-tokens@4.0.0" + } + }, + "lru-cache@5.1.1": { + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "yallist@3.1.1" + } + }, + "merge2@1.4.1": { + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dependencies": {} + }, + "micromatch@4.0.8": { + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "braces@3.0.3", + "picomatch": "picomatch@2.3.1" + } + }, + "minimatch@3.1.2": { + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "brace-expansion@1.1.11" + } + }, + "minimatch@9.0.5": { + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "brace-expansion@2.0.1" + } + }, + "ms@2.1.3": { + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dependencies": {} + }, + "nanoid@3.3.7": { + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dependencies": {} + }, + "natural-compare@1.4.0": { + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dependencies": {} + }, + "node-releases@2.0.18": { + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dependencies": {} + }, + "once@1.4.0": { + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "wrappy@1.0.2" + } + }, + "optionator@0.9.4": { + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dependencies": { + "deep-is": "deep-is@0.1.4", + "fast-levenshtein": "fast-levenshtein@2.0.6", + "levn": "levn@0.4.1", + "prelude-ls": "prelude-ls@1.2.1", + "type-check": "type-check@0.4.0", + "word-wrap": "word-wrap@1.2.5" + } + }, + "p-limit@3.1.0": { + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "yocto-queue@0.1.0" + } + }, + "p-locate@5.0.0": { + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "p-limit@3.1.0" + } + }, + "parent-module@1.0.1": { + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "callsites@3.1.0" + } + }, + "path-exists@4.0.0": { + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dependencies": {} + }, + "path-is-absolute@1.0.1": { + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dependencies": {} + }, + "path-key@3.1.1": { + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dependencies": {} + }, + "path-to-regexp@6.2.1": { + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dependencies": {} + }, + "path-type@4.0.0": { + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dependencies": {} + }, + "picocolors@1.1.0": { + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dependencies": {} + }, + "picomatch@2.3.1": { + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dependencies": {} + }, + "postcss@8.4.47": { + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dependencies": { + "nanoid": "nanoid@3.3.7", + "picocolors": "picocolors@1.1.0", + "source-map-js": "source-map-js@1.2.1" + } + }, + "prelude-ls@1.2.1": { + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dependencies": {} + }, + "punycode@2.3.1": { + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dependencies": {} + }, + "queue-microtask@1.2.3": { + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dependencies": {} + }, + "react-dom@18.3.1_react@18.3.1": { + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "loose-envify@1.4.0", + "react": "react@18.3.1", + "scheduler": "scheduler@0.23.2" + } + }, + "react-refresh@0.14.2": { + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dependencies": {} + }, + "react@18.3.1": { + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "loose-envify@1.4.0" + } + }, + "resolve-from@4.0.0": { + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dependencies": {} + }, + "reusify@1.0.4": { + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dependencies": {} + }, + "rimraf@3.0.2": { + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "glob@7.2.3" + } + }, + "rollup@4.22.4": { + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "dependencies": { + "@rollup/rollup-android-arm-eabi": "@rollup/rollup-android-arm-eabi@4.22.4", + "@rollup/rollup-android-arm64": "@rollup/rollup-android-arm64@4.22.4", + "@rollup/rollup-darwin-arm64": "@rollup/rollup-darwin-arm64@4.22.4", + "@rollup/rollup-darwin-x64": "@rollup/rollup-darwin-x64@4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "@rollup/rollup-linux-arm-gnueabihf@4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "@rollup/rollup-linux-arm-musleabihf@4.22.4", + "@rollup/rollup-linux-arm64-gnu": "@rollup/rollup-linux-arm64-gnu@4.22.4", + "@rollup/rollup-linux-arm64-musl": "@rollup/rollup-linux-arm64-musl@4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "@rollup/rollup-linux-powerpc64le-gnu@4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "@rollup/rollup-linux-riscv64-gnu@4.22.4", + "@rollup/rollup-linux-s390x-gnu": "@rollup/rollup-linux-s390x-gnu@4.22.4", + "@rollup/rollup-linux-x64-gnu": "@rollup/rollup-linux-x64-gnu@4.22.4", + "@rollup/rollup-linux-x64-musl": "@rollup/rollup-linux-x64-musl@4.22.4", + "@rollup/rollup-win32-arm64-msvc": "@rollup/rollup-win32-arm64-msvc@4.22.4", + "@rollup/rollup-win32-ia32-msvc": "@rollup/rollup-win32-ia32-msvc@4.22.4", + "@rollup/rollup-win32-x64-msvc": "@rollup/rollup-win32-x64-msvc@4.22.4", + "@types/estree": "@types/estree@1.0.5", + "fsevents": "fsevents@2.3.3" + } + }, + "run-parallel@1.2.0": { + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dependencies": { + "queue-microtask": "queue-microtask@1.2.3" + } + }, + "scheduler@0.23.2": { + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "loose-envify@1.4.0" + } + }, + "semver@6.3.1": { + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dependencies": {} + }, + "semver@7.6.3": { + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dependencies": {} + }, + "shebang-command@2.0.0": { + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "shebang-regex@3.0.0" + } + }, + "shebang-regex@3.0.0": { + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dependencies": {} + }, + "slash@3.0.0": { + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dependencies": {} + }, + "source-map-js@1.2.1": { + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dependencies": {} + }, + "strip-ansi@6.0.1": { + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "ansi-regex@5.0.1" + } + }, + "strip-json-comments@3.1.1": { + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dependencies": {} + }, + "supports-color@5.5.0": { + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "has-flag@3.0.0" + } + }, + "supports-color@7.2.0": { + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "has-flag@4.0.0" + } + }, + "text-table@0.2.0": { + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dependencies": {} + }, + "to-fast-properties@2.0.0": { + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dependencies": {} + }, + "to-regex-range@5.0.1": { + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "is-number@7.0.0" + } + }, + "ts-api-utils@1.3.0_typescript@5.6.2": { + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dependencies": { + "typescript": "typescript@5.6.2" + } + }, + "type-check@0.4.0": { + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "prelude-ls@1.2.1" + } + }, + "type-fest@0.20.2": { + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dependencies": {} + }, + "typescript@5.6.2": { + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dependencies": {} + }, + "update-browserslist-db@1.1.0_browserslist@4.24.0": { + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dependencies": { + "browserslist": "browserslist@4.24.0", + "escalade": "escalade@3.2.0", + "picocolors": "picocolors@1.1.0" + } + }, + "uri-js@4.4.1": { + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "punycode@2.3.1" + } + }, + "vite@5.4.8": { + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dependencies": { + "esbuild": "esbuild@0.21.5", + "fsevents": "fsevents@2.3.3", + "postcss": "postcss@8.4.47", + "rollup": "rollup@4.22.4" + } + }, + "which@2.0.2": { + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "isexe@2.0.0" + } + }, + "word-wrap@1.2.5": { + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dependencies": {} + }, + "wrappy@1.0.2": { + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dependencies": {} + }, + "yallist@3.1.1": { + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dependencies": {} + }, + "yocto-queue@0.1.0": { + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dependencies": {} + } + } + }, + "remote": {}, + "workspace": { + "dependencies": [ + "jsr:@oak/oak@^17.0.0", + "jsr:@tajpouria/cors@^1.2.1" + ], + "packageJson": { + "dependencies": [ + "npm:@types/react-dom@^18.3.0", + "npm:@types/react@^18.3.3", + "npm:@typescript-eslint/eslint-plugin@^7.15.0", + "npm:@typescript-eslint/parser@^7.15.0", + "npm:@vitejs/plugin-react@^4.3.1", + "npm:eslint-plugin-react-hooks@^4.6.2", + "npm:eslint-plugin-react-refresh@^0.4.7", + "npm:eslint@^8.57.0", + "npm:react-dom@^18.3.1", + "npm:react@^18.3.1", + "npm:typescript@^5.2.2", + "npm:vite@^5.3.4" + ] + } + } +}