snort/packages/app/src/Components/User/AnimalName.ts
Martti Malmi afa6d39a56
Some checks failed
continuous-integration/drone/push Build is failing
reorganize code into smaller files & dirs
2024-01-04 15:48:19 +02:00

1836 lines
23 KiB
TypeScript

import { sha256 } from "@noble/hashes/sha256";
const animals = [
"canidae",
"felidae",
"cat",
"cattle",
"dog",
"donkey",
"goat",
"horse",
"pig",
"rabbit",
"aardvark",
"aardwolf",
"albatross",
"alligator",
"alpaca",
"amphibian",
"anaconda",
"angelfish",
"anglerfish",
"ant",
"anteater",
"antelope",
"antlion",
"ape",
"aphid",
"armadillo",
"asp",
"baboon",
"badger",
"bandicoot",
"barnacle",
"barracuda",
"basilisk",
"bass",
"bat",
"bear",
"beaver",
"bedbug",
"bee",
"beetle",
"bird",
"bison",
"blackbird",
"boa",
"boar",
"bobcat",
"bobolink",
"bonobo",
"booby",
"bovid",
"bug",
"butterfly",
"buzzard",
"camel",
"canid",
"capybara",
"cardinal",
"caribou",
"carp",
"cat",
"catshark",
"caterpillar",
"catfish",
"cattle",
"centipede",
"cephalopod",
"chameleon",
"cheetah",
"chickadee",
"chicken",
"chimpanzee",
"chinchilla",
"chipmunk",
"clam",
"clownfish",
"cobra",
"cockroach",
"cod",
"condor",
"constrictor",
"coral",
"cougar",
"cow",
"coyote",
"crab",
"crane",
"crawdad",
"crayfish",
"cricket",
"crocodile",
"crow",
"cuckoo",
"cicada",
"damselfly",
"deer",
"dingo",
"dinosaur",
"dog",
"dolphin",
"donkey",
"dormouse",
"dove",
"dragonfly",
"dragon",
"duck",
"eagle",
"earthworm",
"earwig",
"echidna",
"eel",
"egret",
"elephant",
"elk",
"emu",
"ermine",
"falcon",
"ferret",
"finch",
"firefly",
"fish",
"flamingo",
"flea",
"fly",
"flyingfish",
"fowl",
"fox",
"frog",
"gamefowl",
"galliform",
"gazelle",
"gecko",
"gerbil",
"gibbon",
"giraffe",
"goat",
"goldfish",
"goose",
"gopher",
"gorilla",
"grasshopper",
"grouse",
"guan",
"guanaco",
"guineafowl",
"gull",
"guppy",
"haddock",
"halibut",
"hamster",
"hare",
"harrier",
"hawk",
"hedgehog",
"heron",
"herring",
"hippopotamus",
"hookworm",
"hornet",
"horse",
"hoverfly",
"hummingbird",
"hyena",
"iguana",
"impala",
"jackal",
"jaguar",
"jay",
"jellyfish",
"junglefowl",
"kangaroo",
"kingfisher",
"kite",
"kiwi",
"koala",
"koi",
"krill",
"ladybug",
"lamprey",
"landfowl",
"lark",
"leech",
"lemming",
"lemur",
"leopard",
"leopon",
"limpet",
"lion",
"lizard",
"llama",
"lobster",
"locust",
"loon",
"louse",
"lungfish",
"lynx",
"macaw",
"mackerel",
"magpie",
"mammal",
"manatee",
"mandrill",
"marlin",
"marmoset",
"marmot",
"marsupial",
"marten",
"mastodon",
"meadowlark",
"meerkat",
"mink",
"minnow",
"mite",
"mockingbird",
"mole",
"mollusk",
"mongoose",
"monkey",
"moose",
"mosquito",
"moth",
"mouse",
"mule",
"muskox",
"narwhal",
"newt",
"nightingale",
"ocelot",
"octopus",
"opossum",
"orangutan",
"orca",
"ostrich",
"otter",
"owl",
"ox",
"panda",
"panther",
"parakeet",
"parrot",
"parrotfish",
"partridge",
"peacock",
"peafowl",
"pelican",
"penguin",
"perch",
"pheasant",
"pig",
"pigeon",
"pike",
"pinniped",
"piranha",
"planarian",
"platypus",
"pony",
"porcupine",
"porpoise",
"possum",
"prawn",
"primate",
"ptarmigan",
"puffin",
"puma",
"python",
"quail",
"quelea",
"quokka",
"rabbit",
"raccoon",
"rat",
"rattlesnake",
"raven",
"reindeer",
"reptile",
"rhinoceros",
"roadrunner",
"rodent",
"rook",
"rooster",
"roundworm",
"sailfish",
"salamander",
"salmon",
"sawfish",
"scallop",
"scorpion",
"seahorse",
"shark",
"sheep",
"shrew",
"shrimp",
"silkworm",
"silverfish",
"skink",
"skunk",
"sloth",
"slug",
"smelt",
"snail",
"snake",
"snipe",
"sole",
"sparrow",
"spider",
"spoonbill",
"squid",
"squirrel",
"starfish",
"stingray",
"stoat",
"stork",
"sturgeon",
"swallow",
"swan",
"swift",
"swordfish",
"swordtail",
"tahr",
"takin",
"tapir",
"tarantula",
"tarsier",
"termite",
"tern",
"thrush",
"tick",
"tiger",
"tiglon",
"toad",
"tortoise",
"toucan",
"trout",
"tuna",
"turkey",
"turtle",
"tyrannosaurus",
"urial",
"vicuna",
"viper",
"vole",
"vulture",
"wallaby",
"walrus",
"wasp",
"warbler",
"weasel",
"whale",
"whippet",
"whitefish",
"wildcat",
"wildebeest",
"wildfowl",
"wolf",
"wolverine",
"wombat",
"woodpecker",
"worm",
"wren",
"xerinae",
"yak",
"zebra",
"alpaca",
"cat",
"cattle",
"chicken",
"dog",
"donkey",
"ferret",
"gayal",
"goldfish",
"guppy",
"horse",
"koi",
"llama",
"sheep",
"yak",
"unicorn",
];
const adjectives = [
"average",
"big",
"colossal",
"fat",
"giant",
"gigantic",
"great",
"huge",
"immense",
"large",
"little",
"long",
"mammoth",
"massive",
"miniature",
"petite",
"puny",
"short",
"small",
"tall",
"tiny",
"boiling",
"breezy",
"broken",
"bumpy",
"chilly",
"cold",
"cool",
"creepy",
"crooked",
"cuddly",
"curly",
"damaged",
"damp",
"dirty",
"dry",
"dusty",
"filthy",
"flaky",
"fluffy",
"wet",
"broad",
"chubby",
"crooked",
"curved",
"deep",
"flat",
"high",
"hollow",
"low",
"narrow",
"round",
"shallow",
"skinny",
"square",
"steep",
"straight",
"wide",
"ancient",
"brief",
"early",
"fast",
"late",
"long",
"modern",
"old",
"quick",
"rapid",
"short",
"slow",
"swift",
"young",
"abundant",
"empty",
"few",
"heavy",
"light",
"many",
"numerous",
"Sound",
"cooing",
"deafening",
"faint",
"harsh",
"hissing",
"hushed",
"husky",
"loud",
"melodic",
"moaning",
"mute",
"noisy",
"purring",
"quiet",
"raspy",
"resonant",
"screeching",
"shrill",
"silent",
"soft",
"squealing",
"thundering",
"voiceless",
"whispering",
"bitter",
"delicious",
"fresh",
"juicy",
"ripe",
"rotten",
"salty",
"sour",
"spicy",
"stale",
"sticky",
"strong",
"sweet",
"tasteless",
"tasty",
"thirsty",
"fluttering",
"fuzzy",
"greasy",
"grubby",
"hard",
"hot",
"icy",
"loose",
"melted",
"plastic",
"prickly",
"rainy",
"rough",
"scattered",
"shaggy",
"shaky",
"sharp",
"shivering",
"silky",
"slimy",
"slippery",
"smooth",
"soft",
"solid",
"steady",
"sticky",
"tender",
"tight",
"uneven",
"weak",
"wet",
"wooden",
"afraid",
"angry",
"annoyed",
"anxious",
"arrogant",
"ashamed",
"awful",
"bad",
"bewildered",
"bored",
"combative",
"condemned",
"confused",
"creepy",
"cruel",
"dangerous",
"defeated",
"defiant",
"depressed",
"disgusted",
"disturbed",
"eerie",
"embarrassed",
"envious",
"evil",
"fierce",
"foolish",
"frantic",
"frightened",
"grieving",
"helpless",
"homeless",
"hungry",
"hurt",
"ill",
"jealous",
"lonely",
"mysterious",
"naughty",
"nervous",
"obnoxious",
"outrageous",
"panicky",
"repulsive",
"scary",
"scornful",
"selfish",
"sore",
"tense",
"terrible",
"thoughtless",
"tired",
"troubled",
"upset",
"uptight",
"weary",
"wicked",
"worried",
"agreeable",
"amused",
"brave",
"calm",
"charming",
"cheerful",
"comfortable",
"cooperative",
"courageous",
"delightful",
"determined",
"eager",
"elated",
"enchanting",
"encouraging",
"energetic",
"enthusiastic",
"excited",
"exuberant",
"fair",
"faithful",
"fantastic",
"fine",
"friendly",
"funny",
"gentle",
"glorious",
"good",
"happy",
"healthy",
"helpful",
"hilarious",
"jolly",
"joyous",
"kind",
"lively",
"lovely",
"lucky",
"obedient",
"perfect",
"pleasant",
"proud",
"relieved",
"silly",
"smiling",
"splendid",
"successful",
"thoughtful",
"victorious",
"vivacious",
"witty",
"wonderful",
"zealous",
"zany",
"other",
"good",
"new",
"old",
"great",
"high",
"small",
"different",
"large",
"local",
"social",
"important",
"long",
"young",
"national",
"british",
"right",
"early",
"possible",
"big",
"little",
"political",
"able",
"late",
"general",
"full",
"far",
"low",
"public",
"available",
"bad",
"main",
"sure",
"clear",
"major",
"economic",
"only",
"likely",
"real",
"black",
"particular",
"international",
"special",
"difficult",
"certain",
"open",
"whole",
"white",
"free",
"short",
"easy",
"strong",
"european",
"central",
"similar",
"human",
"common",
"necessary",
"single",
"personal",
"hard",
"private",
"poor",
"financial",
"wide",
"foreign",
"simple",
"recent",
"concerned",
"american",
"various",
"close",
"fine",
"english",
"wrong",
"present",
"royal",
"natural",
"individual",
"nice",
"french",
"nihilist",
"solipsist",
"materialist",
"surrealist",
"heroic",
"awesome",
"hedonist",
"absurd",
"current",
"modern",
"labour",
"legal",
"happy",
"final",
"red",
"normal",
"serious",
"previous",
"total",
"prime",
"significant",
"industrial",
"sorry",
"dead",
"specific",
"appropriate",
"top",
"soviet",
"basic",
"military",
"original",
"successful",
"aware",
"hon",
"popular",
"heavy",
"professional",
"direct",
"dark",
"cold",
"ready",
"green",
"useful",
"effective",
"western",
"traditional",
"scottish",
"german",
"independent",
"deep",
"interesting",
"considerable",
"involved",
"physical",
"hot",
"existing",
"responsible",
"complete",
"medical",
"blue",
"extra",
"past",
"male",
"interested",
"fair",
"essential",
"beautiful",
"civil",
"primary",
"obvious",
"future",
"environmental",
"positive",
"senior",
"nuclear",
"annual",
"relevant",
"huge",
"rich",
"commercial",
"safe",
"regional",
"practical",
"official",
"separate",
"key",
"chief",
"regular",
"due",
"additional",
"active",
"powerful",
"complex",
"standard",
"impossible",
"light",
"warm",
"middle",
"fresh",
"sexual",
"front",
"domestic",
"actual",
"united",
"technical",
"ordinary",
"cheap",
"strange",
"internal",
"excellent",
"quiet",
"soft",
"potential",
"northern",
"religious",
"quick",
"very",
"famous",
"cultural",
"proper",
"broad",
"joint",
"formal",
"limited",
"conservative",
"lovely",
"usual",
"ltd",
"unable",
"rural",
"initial",
"substantial",
"bright",
"average",
"leading",
"reasonable",
"immediate",
"suitable",
"equal",
"detailed",
"working",
"overall",
"female",
"afraid",
"democratic",
"growing",
"sufficient",
"scientific",
"eastern",
"correct",
"inc",
"irish",
"expensive",
"educational",
"mental",
"dangerous",
"critical",
"increased",
"familiar",
"unlikely",
"double",
"perfect",
"slow",
"tiny",
"dry",
"historical",
"thin",
"daily",
"southern",
"increasing",
"wild",
"alone",
"urban",
"empty",
"married",
"narrow",
"liberal",
"supposed",
"upper",
"apparent",
"tall",
"busy",
"bloody",
"prepared",
"russian",
"moral",
"careful",
"clean",
"attractive",
"japanese",
"vital",
"thick",
"alternative",
"fast",
"ancient",
"elderly",
"rare",
"external",
"capable",
"brief",
"wonderful",
"grand",
"typical",
"entire",
"grey",
"constant",
"vast",
"surprised",
"ideal",
"terrible",
"academic",
"funny",
"minor",
"pleased",
"severe",
"ill",
"corporate",
"negative",
"permanent",
"weak",
"brown",
"fundamental",
"odd",
"crucial",
"inner",
"used",
"criminal",
"contemporary",
"sharp",
"sick",
"near",
"roman",
"massive",
"unique",
"secondary",
"parliamentary",
"african",
"unknown",
"subsequent",
"angry",
"alive",
"guilty",
"lucky",
"enormous",
"well",
"yellow",
"unusual",
"net",
"tough",
"dear",
"extensive",
"glad",
"remaining",
"agricultural",
"alright",
"healthy",
"italian",
"principal",
"tired",
"efficient",
"comfortable",
"chinese",
"relative",
"friendly",
"conventional",
"willing",
"sudden",
"proposed",
"voluntary",
"slight",
"valuable",
"dramatic",
"golden",
"temporary",
"federal",
"keen",
"flat",
"silent",
"indian",
"worried",
"pale",
"statutory",
"welsh",
"dependent",
"firm",
"wet",
"competitive",
"armed",
"radical",
"outside",
"acceptable",
"sensitive",
"living",
"pure",
"global",
"emotional",
"sad",
"secret",
"rapid",
"adequate",
"fixed",
"sweet",
"administrative",
"wooden",
"remarkable",
"comprehensive",
"surprising",
"solid",
"rough",
"mere",
"mass",
"brilliant",
"maximum",
"absolute",
"electronic",
"visual",
"electric",
"cool",
"spanish",
"literary",
"continuing",
"supreme",
"chemical",
"genuine",
"exciting",
"written",
"advanced",
"extreme",
"classical",
"fit",
"favourite",
"widespread",
"confident",
"straight",
"proud",
"numerous",
"opposite",
"distinct",
"mad",
"helpful",
"given",
"disabled",
"consistent",
"anxious",
"nervous",
"awful",
"stable",
"constitutional",
"satisfied",
"conscious",
"developing",
"strategic",
"holy",
"smooth",
"dominant",
"remote",
"theoretical",
"outstanding",
"pink",
"pretty",
"clinical",
"minimum",
"honest",
"impressive",
"related",
"residential",
"extraordinary",
"plain",
"visible",
"accurate",
"distant",
"still",
"greek",
"complicated",
"musical",
"precise",
"gentle",
"broken",
"live",
"silly",
"fat",
"tight",
"monetary",
"round",
"psychological",
"violent",
"unemployed",
"inevitable",
"junior",
"sensible",
"grateful",
"pleasant",
"dirty",
"structural",
"welcome",
"deaf",
"above",
"continuous",
"blind",
"overseas",
"mean",
"entitled",
"delighted",
"loose",
"occasional",
"evident",
"desperate",
"fellow",
"universal",
"square",
"steady",
"classic",
"equivalent",
"intellectual",
"victorian",
"level",
"ultimate",
"creative",
"lost",
"medieval",
"clever",
"linguistic",
"convinced",
"judicial",
"raw",
"sophisticated",
"asleep",
"vulnerable",
"illegal",
"outer",
"revolutionary",
"bitter",
"changing",
"australian",
"native",
"imperial",
"strict",
"wise",
"informal",
"flexible",
"collective",
"frequent",
"experimental",
"spiritual",
"intense",
"rational",
"generous",
"inadequate",
"prominent",
"logical",
"bare",
"historic",
"modest",
"dutch",
"acute",
"electrical",
"valid",
"weekly",
"gross",
"automatic",
"loud",
"reliable",
"mutual",
"liable",
"multiple",
"ruling",
"curious",
"sole",
"managing",
"pregnant",
"latin",
"nearby",
"exact",
"underlying",
"identical",
"satisfactory",
"marginal",
"distinctive",
"electoral",
"urgent",
"presidential",
"controversial",
"everyday",
"encouraging",
"organic",
"continued",
"expected",
"statistical",
"desirable",
"innocent",
"improved",
"exclusive",
"marked",
"experienced",
"unexpected",
"superb",
"sheer",
"disappointed",
"frightened",
"gastric",
"romantic",
"naked",
"reluctant",
"magnificent",
"convenient",
"established",
"closed",
"uncertain",
"artificial",
"diplomatic",
"tremendous",
"marine",
"mechanical",
"retail",
"institutional",
"mixed",
"required",
"biological",
"known",
"functional",
"straightforward",
"superior",
"digital",
"spectacular",
"unhappy",
"confused",
"unfair",
"aggressive",
"spare",
"painful",
"abstract",
"asian",
"associated",
"legislative",
"monthly",
"intelligent",
"hungry",
"explicit",
"nasty",
"just",
"faint",
"coloured",
"ridiculous",
"amazing",
"comparable",
"successive",
"realistic",
"back",
"decent",
"decentralized",
"bitcoin",
"cypherpunk",
"unnecessary",
"flying",
"random",
"influential",
"dull",
"genetic",
"neat",
"marvellous",
"crazy",
"damp",
"giant",
"secure",
"bottom",
"skilled",
"subtle",
"elegant",
"brave",
"lesser",
"parallel",
"steep",
"intensive",
"casual",
"tropical",
"lonely",
"partial",
"preliminary",
"concrete",
"alleged",
"assistant",
"vertical",
"upset",
"delicate",
"mild",
"occupational",
"excessive",
"progressive",
"exceptional",
"integrated",
"striking",
"continental",
"okay",
"harsh",
"combined",
"fierce",
"handsome",
"characteristic",
"chronic",
"compulsory",
"interim",
"objective",
"splendid",
"magic",
"systematic",
"obliged",
"payable",
"fun",
"horrible",
"primitive",
"fascinating",
"ideological",
"metropolitan",
"surrounding",
"estimated",
"peaceful",
"premier",
"operational",
"technological",
"kind",
"advisory",
"hostile",
"precious",
"accessible",
"determined",
"excited",
"impressed",
"provincial",
"smart",
"endless",
"isolated",
"drunk",
"geographical",
"like",
"dynamic",
"boring",
"forthcoming",
"unfortunate",
"definite",
"super",
"notable",
"indirect",
"stiff",
"wealthy",
"awkward",
"lively",
"neutral",
"artistic",
"content",
"mature",
"colonial",
"ambitious",
"evil",
"magnetic",
"verbal",
"legitimate",
"sympathetic",
"empirical",
"head",
"shallow",
"vague",
"naval",
"depressed",
"shared",
"added",
"shocked",
"mid",
"worthwhile",
"qualified",
"missing",
"blank",
"absent",
"favourable",
"polish",
"israeli",
"developed",
"profound",
"representative",
"enthusiastic",
"dreadful",
"rigid",
"reduced",
"cruel",
"coastal",
"peculiar",
"swiss",
"crude",
"extended",
"selected",
"eager",
"canadian",
"bold",
"relaxed",
"corresponding",
"running",
"planned",
"applicable",
"immense",
"allied",
"comparative",
"uncomfortable",
"conservation",
"productive",
"beneficial",
"bored",
"charming",
"minimal",
"mobile",
"turkish",
"orange",
"rear",
"passive",
"suspicious",
"overwhelming",
"fatal",
"resulting",
"symbolic",
"registered",
"neighbouring",
"calm",
"irrelevant",
"patient",
"compact",
"profitable",
"rival",
"loyal",
"moderate",
"distinguished",
"interior",
"noble",
"insufficient",
"eligible",
"mysterious",
"varying",
"managerial",
"molecular",
"olympic",
"linear",
"prospective",
"printed",
"parental",
"diverse",
"elaborate",
"furious",
"fiscal",
"burning",
"useless",
"semantic",
"embarrassed",
"inherent",
"philosophical",
"deliberate",
"awake",
"variable",
"promising",
"unpleasant",
"varied",
"sacred",
"selective",
"inclined",
"tender",
"hidden",
"worthy",
"intermediate",
"sound",
"protective",
"fortunate",
"slim",
"defensive",
"divine",
"stuck",
"driving",
"invisible",
"misleading",
"circular",
"mathematical",
"inappropriate",
"liquid",
"persistent",
"solar",
"doubtful",
"manual",
"architectural",
"intact",
"incredible",
"devoted",
"prior",
"tragic",
"respectable",
"optimistic",
"convincing",
"unacceptable",
"decisive",
"competent",
"spatial",
"respective",
"binding",
"relieved",
"nursing",
"toxic",
"select",
"redundant",
"integral",
"then",
"probable",
"amateur",
"fond",
"passing",
"specified",
"territorial",
"horizontal",
"inland",
"cognitive",
"regulatory",
"miserable",
"resident",
"polite",
"scared",
"gothic",
"civilian",
"instant",
"lengthy",
"adverse",
"korean",
"unconscious",
"anonymous",
"aesthetic",
"orthodox",
"static",
"unaware",
"costly",
"fantastic",
"foolish",
"fashionable",
"causal",
"compatible",
"wee",
"implicit",
"dual",
"ok",
"cheerful",
"subjective",
"forward",
"surviving",
"exotic",
"purple",
"cautious",
"visiting",
"aggregate",
"ethical",
"teenage",
"dying",
"disastrous",
"delicious",
"confidential",
"underground",
"thorough",
"grim",
"autonomous",
"atomic",
"frozen",
"colourful",
"injured",
"uniform",
"ashamed",
"glorious",
"wicked",
"coherent",
"rising",
"shy",
"novel",
"balanced",
"delightful",
"arbitrary",
"adjacent",
"worrying",
"weird",
"unchanged",
"rolling",
"evolutionary",
"intimate",
"sporting",
"disciplinary",
"formidable",
"lexical",
"noisy",
"gradual",
"accused",
"homeless",
"supporting",
"coming",
"renewed",
"excess",
"retired",
"rubber",
"chosen",
"outdoor",
"embarrassing",
"preferred",
"bizarre",
"appalling",
"agreed",
"imaginative",
"governing",
"accepted",
"vocational",
"mighty",
"puzzled",
"worldwide",
"organisational",
"sunny",
"eldest",
"eventual",
"spontaneous",
"vivid",
"rude",
"faithful",
"ministerial",
"innovative",
"controlled",
"conceptual",
"unwilling",
"civic",
"meaningful",
"alive",
"brainy",
"breakable",
"busy",
"careful",
"cautious",
"clever",
"concerned",
"crazy",
"curious",
"dead",
"different",
"difficult",
"doubtful",
"easy",
"famous",
"fragile",
"helpful",
"helpless",
"important",
"impossible",
"innocent",
"inquisitive",
"modern",
"open",
"outstanding",
"poor",
"powerful",
"puzzled",
"real",
"rich",
"shy",
"sleepy",
"super",
"tame",
"uninterested",
"wandering",
"wild",
"wrong",
"adorable",
"alert",
"average",
"beautiful",
"blonde",
"bloody",
"blushing",
"bright",
"clean",
"clear",
"cloudy",
"colorful",
"crowded",
"cute",
"dark",
"drab",
"distinct",
"dull",
"elegant",
"fancy",
"filthy",
"glamorous",
"gleaming",
"graceful",
"grotesque",
"homely",
"light",
"misty",
"motionless",
"muddy",
"plain",
"poised",
"quaint",
"shiny",
"smoggy",
"sparkling",
"spotless",
"stormy",
"strange",
"ugly",
"unsightly",
"unusual",
"bad",
"better",
"beautiful",
"big",
"black",
"blue",
"bright",
"clumsy",
"crazy",
"dizzy",
"dull",
"fat",
"frail",
"friendly",
"funny",
"great",
"green",
"gigantic",
"gorgeous",
"grumpy",
"handsome",
"happy",
"horrible",
"itchy",
"jittery",
"jolly",
"kind",
"long",
"lazy",
"magnificent",
"magenta",
"many",
"mighty",
"mushy",
"nasty",
"new",
"nice",
"nosy",
"nutty",
"nutritious",
"odd",
"orange",
"ordinary",
"pretty",
"precious",
"prickly",
"purple",
"quaint",
"quiet",
"quick",
"quickest",
"rainy",
"rare",
"ratty",
"red",
"roasted",
"robust",
"round",
"sad",
"scary",
"scrawny",
"short",
"silly",
"stingy",
"strange",
"striped",
"spotty",
"tart",
"tall",
"tame",
"tan",
"tender",
"testy",
"tricky",
"tough",
"ugly",
"ugliest",
"vast",
"watery",
"wasteful",
"wonderful",
"yellow",
"yummy",
"zany",
];
function capitalize(s: string) {
return s.charAt(0).toUpperCase() + s.slice(1);
}
/**
* deterministically create adjective + animal names
*/
export default function (seed: string) {
if (!seed) {
throw new Error("No seed provided");
}
const hash = sha256(seed); // Uint8Array
const adjective = adjectives[hash[0] % adjectives.length];
const animal = animals[hash[1] % animals.length];
return `${capitalize(adjective)} ${capitalize(animal)}`;
}