joyful 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -17
- package/dist/{chunk-4SDH76MV.mjs → chunk-I6RQ6IVV.mjs} +1 -1
- package/dist/cli.js +11 -9
- package/dist/cli.mjs +11 -9
- package/dist/index.d.mts +20 -5
- package/dist/index.d.ts +20 -5
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var f=["accommodating","admirable","adored","adventurous","affable","affectionate","agreeable","alluring","amiable","amicable","amusing","appreciable","appreciated","appreciative","attentive","authentic","balanced","beautiful","benevolent","blessed","blissful","bounteous","bountiful","bright","brilliant","bubbly","calm","caring","charitable","charming","cheerful","cheery","cherished","comforting","committed","compassionate","complimentary","confident","considerate","content","contented","cordial","courageous","creative","credible","dedicated","delighted","delightful","dependable","determined","devoted","diligent","dreamy","eager","earnest","easygoing","ebullient","elated","empowering","encouraging","endearing","energetic","engaging","enthusiastic","exciting","exquisite","extraordinary","exuberant","fabulous","faithful","fervent","festive","forgiving","friendly","funny","generous","gentle","genuine","giggling","giving","gleeful","glowing","good","graceful","gracious","grateful","gratified","gratifying","happy","harmonious","heartening","heartfelt","heartwarming","helpful","honest","honorable","hopeful","hospitable","humorous","illuminating","imaginative","impartial","inclusive","innocent","innovative","inspiring","invigorating","inviting","jolly","jovial","joyful","joyfully","joyous","jubilant","keen","kind","kindhearted","kindly","laughing","liberating","lighthearted","likeable","liked","lively","lovable","lovely","loving","loyal","lucid","luminous","magnanimous","mellow","merry","mindful","mirthful","modest","nice","noble","nourishing","nurturing","obliging","open","openhearted","openminded","optimistic","outgoing","passionate","patient","peaceful","personable","playful","pleasant","pleasing","polite","positive","productive","prosperous","radiant","reassuring","refreshing","rejoicing","relaxed","reliable","resilient","respectable","respectful","responsive","revered","reverent","satisfied","secure","sensational","sensitive","serene","sincere","smiling","sociable","soft","sparkling","spirited","stable","sunny","supportive","sweet","sympathetic","tactful","tenacious","thankful","thoughtful","tolerant","tranquil","true","trusting","trustworthy","truthful","understanding","unique","unselfish","untroubled","upbeat","uplifting","valuable","valued","versatile","vibrant","vigorous","virtuous","vital","vivacious","warm","warmhearted","welcoming","wholehearted","wholesome","willing","winsome","wise","witty","wonderful","xenial","yearning","youthful","yummy","zealous","zestful","zesty","zippy"];var v=["aardvark","albatross","ant","antelope","ape","armadillo","badger","bat","bear","bison","bumblebee","butterfly","camel","capybara","caribou","cassowary","cat","caterpillar","cheetah","chicken","chimpanzee","chinchilla","chipmunk","cougar","cow","coyote","crab","cricket","crow","deer","dingo","dog","dolphin","donkey","dove","duck","eagle","echidna","elephant","falcon","ferret","finch","fish","flamingo","fly","fox","frog","gazelle","gerbil","giraffe","goat","goldfish","goose","gorilla","grasshopper","hamster","hare","hedgehog","heron","hippopotamus","horse","hummingbird","hyena","iguana","impala","jackal","jaguar","jellyfish","kangaroo","kitten","koala","kudu","ladybug","leopard","lion","llama","lobster","locust","lynx","magpie","marten","meerkat","mink","mockingbird","mole","mongoose","monkey","moose","mouse","mynah","narwhal","newt","nuthatch","ocelot","octopus","opossum","orangutan","osprey","ostrich","otter","owl","ox","oyster","panda","pangolin","panther","parakeet","parrot","peacock","pelican","penguin","pheasant","pig","pigeon","pika","platypus","plover","polecat","porcupine","puffin","quail","quokka","rabbit","raccoon","ragdoll","ram","rat","raven","reindeer","rhea","rhinoceros","roo","rooster","saiga","salamander","sambar","sandpiper","sardine","scorpion","seahorse","seal","serval","sheep","shelduck","shrew","shrimp","siskin","skunk","sloth","snail","snapper","sora","sparrow","spoonbill","squirrel","starling","stingray","stork","swan","tadpole","tamarin","tanager","tapir","tarpon","tarsier","tetra","thrush","tiger","toad","toucan","toucanet","towhee","trogon","turaco","turtle","uakari","umbrellabird","urchin","vaquita","vicuna","vireo","vole","vulture","wagtail","wallaby","wallaroo","walrus","warthog","waxwing","whale","whippet","wilddog","wildebeest","wolf","wolverine","wombat","woodpecker","wrasse","xerus","yaffle","yak","zebra","zebu"];var w=["abacus","acroterion","aedicule","aisle","alcove","ambulatory","annex","antechamber","apse","arcade","arch","architrave","archivolt","archway","astragal","atrium","attic","balcony","baldachin","baluster","balustrade","bargeboard","baseboard","basilica","bay","bead","beam","belfry","belvedere","billet","blueprint","bracket","breezeway","brise","buttress","campanile","canopy","cantilever","capital","cartouche","caryatid","casement","casing","castellated","chamfer","chevron","chimney","cladding","clerestory","cloister","colonnade","column","console","coping","corbel","cornice","courtyard","crenellation","cresting","crown","cupola","curtain","cyma","dado","dais","dentil","dome","domed","doric","dormer","dripstone","eaves","echinus","elevation","ell","engaged","entablature","entresol","entryway","facade","fanlight","fascia","fenestration","finial","fluting","foundation","foyer","fresco","frieze","gable","gallery","gargoyle","grille","hall","hammerbeam","hearth","hip","hyphen","impost","inglenook","interior","ionic","jamb","joist","keystone","lancet","lantern","lintel","lobby","loggia","louver","lunette","mansard","metope","mezzanine","minaret","modillion","molding","mullion","muntins","narthex","nave","newel","niche","obelisk","oculus","ogee","oriel","parapet","pavilion","pedestal","pediment","pendentive","pilaster","pillar","pinnacle","plinth","porte","portico","quatrefoil","quoin","rafter","raking","reredos","reveal","ridge","riser","roof","rosette","rotunda","roundel","sash","sconce","sill","skylight","soffit","spandrel","spire","stanchion","steeple","stoa","stucco","stylobate","terrace","tracery","transept","transom","tread","trellis","triforium","triglyph","truss","turret","tympanum","undercroft","vault","veranda","vestibule","volute","voussoir","wainscot","wall","window","ziggurat"];var k=["abstract","acanthus","acrylic","adornment","aesthetic","airbrush","amphora","animation","antiquity","applique","aquarelle","arabesque","armature","artifact","artisan","artistry","artwork","assemblage","atelier","balance","baroque","batik","biennale","blending","bricolage","brushstroke","bust","calligraphy","cameo","canvas","carving","casting","ceramics","charcoal","chasing","chiaroscuro","chisel","chromatic","classical","cloisonne","collage","composition","connoisseur","contour","contrast","craftsmanship","crayon","creativity","critique","cubism","curator","dada","decorative","decoupage","design","diorama","diptych","drapery","drawing","easel","embellishment","embossing","enamel","encaustic","engraving","ensemble","etching","expressionism","fauvism","filigree","fine","finesse","firing","folio","foreshortening","form","gauche","gesso","gilding","glyptic","gouache","graffiti","harmony","hatching","hue","iconography","illustration","impasto","impressionism","ink","installation","intaglio","interpretation","kiln","kilnwork","kinetic","lacquer","landscape","linocut","lithography","luminism","lyrical","mannequin","marbling","masterpiece","medallion","medium","memento","miniature","miniaturist","mobile","modernism","mosaic","mural","museum","naturalism","neoclassicism","neon","nuance","oil","origami","ornament","painting","palette","pastel","patina","pencil","pentimento","perspective","photography","pictorial","pigment","plaster","pointillism","polychrome","portfolio","portrait","print","proportion","provenance","relief","renaissance","rendering","replica","representation","restoration","retrospective","rococo","romanticism","salon","sanguine","saturation","sculpture","sepia","serif","sfumato","sgraffito","shade","shadow","silhouette","simulacrum","sketch","stencil","stippling","stoneware","studio","study","surrealism","symmetry","tableau","technique","tempera","tessellation","texture","tint","triptych","typography","underpainting","varnish","vernissage","virtuoso","visionary","visual","watercolor","weaving","woodcut"];var x=["amsterdam","athens","atlanta","auckland","austin","barcelona","basel","bergen","berlin","bilbao","bogota","boston","bristol","brussels","budapest","cairo","calgary","canberra","cardiff","chicago","copenhagen","dakar","denver","dublin","edinburgh","florence","geneva","glasgow","helsinki","hobart","honolulu","istanbul","jakarta","kyoto","leipzig","lisbon","london","lucerne","madrid","malaga","melbourne","memphis","milan","montreal","munich","nairobi","naples","osaka","oslo","ottawa","palermo","porto","prague","quito","reykjavik","rotterdam","sapporo","savannah","seattle","seoul","stockholm","sydney","taipei","tallinn","tbilisi","toronto","toulouse","tunis","valencia","vienna","warsaw","zagreb","zurich"];var j=["alabaster","amber","aqua","auburn","azure","beige","bisque","black","blonde","blue","blush","bone","bordeaux","brick","brown","buff","burgundy","cadet","canary","cappuccino","cardinal","carmine","carnelian","celadon","cerulean","champagne","chartreuse","claret","cobalt","cognac","copper","cornflower","crimson","cyan","daffodil","ebony","ecru","eggshell","electric","espresso","fawn","flax","fuchsia","glaucous","gold","goldenrod","graphite","gray","green","gunmetal","heliotrope","hunter","indigo","ivory","jade","jasper","khaki","lapis","lava","magenta","mahogany","maize","malachite","mandarin","maroon","mauve","midnight","mocha","mulberry","navy","obsidian","ochre","onyx","paprika","pearl","periwinkle","pewter","pink","platinum","powder","puce","purple","red","rosewood","ruby","russet","rust","sable","saffron","sangria","scarlet","seafoam","sienna","silver","slate","smoke","snow","steel","tan","taupe","tawny","teal","terracotta","titanium","turquoise","ultramarine","umber","verdigris","vermilion","viridian","white","yellow","zinc","zircon"];var z=["acceptance","admiration","adoration","affection","amazement","amusement","anticipation","astonishment","awe","bashfulness","belonging","bewilderment","bliss","caution","cheerfulness","compassion","concern","confidence","confusion","contentment","courage","curiosity","delight","determination","distraction","eagerness","elation","empathy","enchantment","enjoyment","enlightenment","enthusiasm","euphoria","excitement","exhilaration","expectation","fascination","fondness","fulfillment","gladness","glee","gratification","gratitude","happiness","heartache","hesitation","homesickness","hope","infatuation","inspiration","interest","intoxication","joy","jubilation","kindness","longing","love","nervousness","optimism","overwhelm","patience","peace","pensiveness","perplexity","positivity","pride","puzzlement","rapture","reassurance","relaxation","reverence","satisfaction","security","serenity","shyness","solidarity","surprise","sympathy","tenderness","thankfulness","thrill","tranquility","triumph","valor","vigilance","warmth","wonder","zeal","zest"];var q=["accessory","apparel","asymmetrical","attire","ballet","bandana","beaded","belt","bespoke","blazer","blouse","bodysuit","boho","bolero","boots","boutique","bracelet","brocade","brooch","button","cape","capri","cardigan","cashmere","casual","chic","chiffon","classic","cloche","clutch","cocktail","collar","collection","corduroy","cotton","couture","cravat","cuff","culottes","dapper","denim","drape","dress","earrings","edgy","elegant","embroidery","empire","epaulette","eyelet","fabric","fashion","faux","fedora","fitted","flair","flannel","flapper","floral","formal","fringe","fur","garment","garter","glamorous","gloves","gown","halter","handbag","haute","headband","heel","hemline","iridescent","jacket","jewelry","jumpsuit","kaftan","kimono","knit","lace","lapel","leather","linen","loafers","luxurious","material","merino","moccasin","modern","mule","necklace","outfit","oxford","palazzo","pants","pashmina","patent","pattern","pearls","peplum","plaid","platform","pleat","pleated","pocket","poncho","preppy","puff","pumps","purse","quilted","retro","robe","ruched","ruffle","sandals","sartorial","satin","scarf","seamstress","sequin","shawl","sheath","shift","shirt","shoes","shorts","silk","skirt","sleek","sleeve","slippers","sneakers","socks","sophisticated","stiletto","stole","strappy","striped","stylish","suede","suit","sundress","sunglasses","sweater","taffeta","textile","tiara","tie","tote","trend","trim","trousers","tulle","tunic","turtleneck","tweed","uniform","velvet","vest","vintage","vogue","wardrobe","watch","wedge","wool","woven","wrap"];var P=["almond","apple","apricot","artichoke","asparagus","avocado","bacon","bagel","barley","basil","bean","beef","beet","berry","biscuit","blueberry","bread","broccoli","brusselsprout","bun","butter","cabbage","cake","candy","cantaloupe","caramel","carrot","cashew","cauliflower","caviar","celery","cheese","chickpea","chili","chocolate","chutney","cider","cinnamon","citrus","clam","cocoa","coconut","coffee","cookie","corn","cranberry","cupcake","currant","curry","date","dill","doughnut","egg","eggplant","endive","fennel","fig","flour","garlic","gelatin","ginger","grape","grapefruit","gravy","greenbean","guava","halibut","ham","hamburger","hazelnut","honey","honeydew","horseradish","iceberg","jalapeno","jam","jelly","kale","ketchup","kiwi","lamb","leek","lemon","lentil","lettuce","lime","lychee","macadamia","macaroni","mango","maple","margarine","mayonnaise","milk","mint","molasses","muffin","mushroom","mustard","nectarine","noodle","nutmeg","oat","olive","onion","orange","oregano","pancake","papaya","parsley","parsnip","pasta","peach","peanut","pear","pecan","pepper","persimmon","pickle","pie","pineapple","pistachio","plum","pomegranate","popcorn","pork","potato","pretzel","prune","pudding","pumpkin","quince","radicchio","radish","raisin","raspberry","ravioli","relish","rhubarb","rice","rosemary","rye","sage","salad","salami","salmon","salsa","salt","sandwich","scallop","seaweed","slaw","sorbet","soy","spaghetti","spinach","squash","steak","strawberry","sundae","sushi","taco","tangerine","tart","tea","thyme","toast","tomato","trout","tuna","turkey","turnip","vanilla","veal","venison","vinegar","waffle","walnut","watercress","watermelon","wheat","whipped","wine","yam","yogurt","zucchini"];var C=["academia","accomplishment","achievement","advancement","ancestor","ancient","anthropology","antiquarian","antique","archaeology","archive","aristocracy","bronze","bygone","calendar","cartography","castle","cathedral","century","ceremony","chronicle","chronographer","citadel","civilization","coins","commemoration","compilation","conquest","conservation","coronation","culture","cuneiform","customs","decade","decree","deeds","diplomacy","discovery","document","dynasty","edict","encyclopedia","eon","epoch","era","events","excavation","exhibit","expedition","exploration","feudal","fossil","founder","genealogy","generation","golden","governance","heraldry","heritage","hieratic","hieroglyphs","history","imperial","inscription","institute","invention","journal","kingdom","knowledge","landmark","legacy","lineage","lore","medieval","memorabilia","memorial","memories","methodology","migration","millennium","monarchy","monastery","monument","mummy","mythology","nation","nobility","nostalgia","origin","palace","paleography","paleontology","papyrus","parchment","past","patriarch","periodization","pharaoh","pilgrimage","prehistoric","preservation","primary","progeny","progress","pyramid","realm","reconstruction","record","reign","relic","remembrance","repository","research","revolution","royal","ruins","scholar","scroll","secondary","settlement","society","stone","storytelling","tapestry","temple","throne","timeline","tradition","treaty","university","vellum"];var J=["allegory","alliteration","allusion","almanac","analogy","anecdote","annotation","antagonist","anthology","antihero","aphorism","appendix","archetype","assonance","autobiography","ballad","bibliography","bildungsroman","biography","blurb","bookmark","canon","canto","caricature","catharsis","chapter","characterization","chronology","cliche","codex","comedy","commentary","conflict","connotation","consonance","couplet","dedication","denouement","deus","dialect","dialogue","diary","diction","didactic","drama","dramatis","dystopia","editorial","elegy","ellipsis","enigma","enjambment","epilogue","epiphany","epistolary","epitaph","epithet","essay","euphemism","excerpt","exposition","fable","fairytale","fantasy","farce","fiction","figurative","flashback","flashforward","foil","folklore","footnote","foreshadowing","foreword","frame","genre","glossary","haiku","hardcover","heroine","hubris","hyperbole","idiom","imagery","index","intertextuality","introduction","invective","irony","jargon","juxtaposition","legend","leitmotif","libretto","limerick","literary","literature","litotes","lyric","manuscript","memoir","metaphor","meter","metonymy","monograph","monologue","mood","motif","mystery","narration","narrative","narrator","nonfiction","novella","ode","omniscient","onomatopoeia","opus","oxymoron","parable","paradox","paragraph","parody","passage","pastiche","pastoral","pathetic","pentameter","persona","personification","plot","poem","poetics","poetry","point","postscript","preface","premise","prologue","propaganda","prose","protagonist","pseudonym","publisher","quatrain","quest","quotation","reader","realism","refrain","resolution","rhetoric","rhyme","rhythm","romance","saga","sarcasm","satire","scene","scribe","sequel","serial","setting","simile","soliloquy","sonnet","stanza","storyline","stream","structure","style","subplot","subtext","summary","suspense","symbol","symbolism","synopsis","syntax","tale","tanka","text","theme","thesis","thriller","title","tome","tone","tragedy","trope","understatement","utopia","verse","vignette","villain","voice","wordplay"];var O=["accordion","acoustic","adagio","allegro","alto","amplifier","andante","anthem","aria","arpeggio","arrangement","band","banjo","baritone","bass","bassoon","baton","beat","bell","blues","bongo","brass","cadence","cantata","capriccio","cello","chimes","chorale","chord","chorus","clarinet","clef","coda","composer","concert","concerto","conductor","counterpoint","crescendo","cymbal","decrescendo","ditty","drum","duet","dynamics","etude","euphonium","falsetto","fanfare","fermata","fiddler","flute","folk","forte","fortissimo","fretboard","fugue","glissando","glockenspiel","gospel","groove","guitar","harmonica","harmonics","harp","harpsichord","horn","hymn","improvisation","instrument","interlude","interval","jazz","jingle","key","keyboard","legato","lullaby","lute","madrigal","maestro","major","mandolin","march","measure","melody","metronome","microphone","minuet","musical","musicianship","nocturne","oboe","octave","opera","oratorio","orchestra","orchestration","organ","ostinato","overture","panpipes","percussion","piano","piccolo","pitch","pizzicato","polka","prelude","quartet","quintet","recital","recorder","requiem","rhapsody","riff","rondo","samba","scale","score","serenade","sharp","singer","solfege","solo","sonata","song","sonorous","soprano","staccato","staff","strings","suite","symphony","syncopation","tambourine","tango","tempo","tenor","timbre","tonality","treble","triad","trill","trio","trombone","trumpet","tune","tuner","ukulele","unison","variation","vibrato","viola","violin","vivace","vocalise","waltz","woodwind","xylophone","yodel","zither"];var S=["achilles","aeolus","aesculapius","aether","agamemnon","ajax","amalthea","ambrosia","amphitrite","andromeda","antaeus","antigone","apollo","aquilo","ares","argo","argus","ariadne","artemis","asclepius","athena","atlas","atropos","aurora","bacchus","bellerophon","bellona","boreas","briseis","cadmus","calliope","calypso","cassandra","cassiopeia","castor","centaurs","cerberus","ceres","chaos","charon","charybdis","chimera","clio","clotho","cupid","cybele","cynthia","daedalus","daphne","diana","dido","diomedes","dionysus","dryads","egeria","electra","elysium","endymion","eos","eris","europa","eurydice","euterpe","fates","faunus","flora","fortuna","gaea","galatea","ganymede","gorgons","graces","griffin","hector","helios","hephaestus","hera","hercules","hermes","hero","hestia","hydra","hyperion","icarus","io","iris","janus","jason","juno","jupiter","lachesis","leda","leto","liber","maenads","mars","medea","medusa","melampus","memnon","mercury","midas","minerva","minos","minotaur","moirae","momus","morpheus","muses","nemesis","neptune","nereus","nike","nymphs","odysseus","olympus","orion","orpheus","pallas","pan","pandora","paris","pegasus","penelope","persephone","perseus","phaedra","phaeton","phoebe","phoenix","pluto","pollux","polyphemus","poseidon","priam","prometheus","proserpina","proteus","psyche","pygmalion","python","romulus","saturn","scylla","selene","sibyl","silenus","sol","sphinx","styx","tartarus","terpsichore","theseus","thetis","thisbe","tiresias","titan","triton","troy","venus","vesta","vulcan","zephyr","zeus"];var $=["acacia","acorn","alder","alpine","amaryllis","amethyst","anemone","aquamarine","arboretum","aspen","autumn","avalanche","azalea","bamboo","banyan","baobab","bark","basalt","beach","beech","birch","blossom","bluff","bog","boulder","bracken","branch","breeze","briar","brook","buckeye","bud","butte","cactus","camellia","canyon","carnation","cascade","cave","cedar","chamomile","chestnut","chrysanthemum","citrine","cliff","cloud","clover","coast","conifer","coral","cove","creek","crystal","cypress","dahlia","dandelion","dawn","delta","desert","dew","driftwood","dune","earth","eclipse","ecosystem","elm","emerald","eucalyptus","everglades","evergreen","fern","firefly","fjord","flint","flower","fog","foothill","forest","galaxy","garden","geyser","ginkgo","glacier","glade","gorge","granite","grass","grotto","grove","harbor","harvest","haze","hazel","heath","heather","hemlock","hibiscus","hill","holly","honeysuckle","horizon","hyacinth","island","ivy","jasmine","jungle","juniper","kelp","lagoon","lake","lavender","leaf","lichen","lighthouse","lilac","lily","lotus","magnolia","mangrove","marigold","marsh","meadow","meteor","mimosa","mist","monsoon","moon","moonstone","moss","mountain","nest","oak","oasis","ocean","opal","orchard","orchid","palm","pampas","pebble","peony","petal","phlox","pine","planet","plateau","pond","poppy","prairie","primrose","quartz","rainbow","raindrop","rainforest","redwood","reef","rhododendron","river","rock","rose","sand","sapphire","savanna","sea","seashell","seed","sequoia","shore","sky","snapdragon","snowdrop","snowflake","spring","sprout","spruce","star","steppe","summit","sun","sunbeam","sunflower","sunrise","sunset","sycamore","taiga","thistle","tide","topaz","tree","tulip","tundra","valley","violet","volcano","waterfall","wave","willow","wind","wisteria","woodland","yucca","zinnia"];var E=["accountant","acrobat","actuary","administrator","advisor","advocate","agronomist","analyst","animator","anthropologist","appraiser","apprentice","arbitrator","archaeologist","architect","archivist","astronomer","attorney","auctioneer","auditor","author","baker","banker","barber","barista","bartender","biologist","blacksmith","blogger","bookkeeper","botanist","brewer","broadcaster","broker","builder","butcher","buyer","cabinetmaker","calligrapher","caregiver","carpenter","cartographer","cashier","caterer","chemist","chiropractor","cinematographer","clerk","cobbler","columnist","comedian","commissioner","consultant","contractor","copywriter","coroner","correspondent","counselor","courier","craftsman","critic","cryptographer","custodian","dancer","dealer","dentist","dermatologist","designer","detective","developer","dietitian","diplomat","director","dispatcher","diver","doctor","doorman","drafter","dramatist","driver","ecologist","economist","editor","educator","electrician","embalmer","engineer","engraver","entrepreneur","epidemiologist","essayist","estimator","ethnographer","evangelist","examiner","executive","explorer","exporter","fabricator","facilitator","farmer","financier","firefighter","fisherman","florist","foreman","forester","fundraiser","gamekeeper","gardener","gemologist","geneticist","geographer","geologist","glazier","goldsmith","governor","grocer","groundskeeper","guide","hairdresser","handyman","herbalist","historian","host","housekeeper","illustrator","importer","inspector","instructor","interpreter","interviewer","inventor","investigator","ironworker","jeweler","journalist","judge","laborer","landscaper","lawyer","lecturer","librarian","lifeguard","linguist","lithographer","lobbyist","locksmith","machinist","magician","magistrate","manager","manufacturer","marketer","mason","mathematician","mechanic","mediator","meteorologist","midwife","milliner","miner","minister","model","mortician","musician","nanny","navigator","negotiator","neurologist","notary","novelist","nurse","nutritionist","obstetrician","oceanographer","oncologist","operator","ophthalmologist","optician","optometrist","orator","ornithologist","orthodontist","painter","paleontologist","paralegal","paramedic","pathologist","pediatrician","perfumer","pharmacist","philosopher","photographer","physician","physicist","physiotherapist","pilot","plasterer","playwright","plumber","podiatrist","poet","politician","porter","potter","preacher","principal","printer","producer","professor","programmer","promoter","proofreader","prosecutor","prosthetist","psychiatrist","psychologist","publicist","puppeteer","rabbi","radiologist","rancher","realtor","receptionist","recruiter","registrar","reporter","researcher","retailer","roofer","sailor","salesperson","sanitarian","scientist","screenwriter","sculptor","secretary","senator","server","shepherd","sheriff","sociologist","soldier","sommelier","speechwriter","spokesperson","statistician","stockbroker","stonemason","strategist","stylist","superintendent","supervisor","supplier","surgeon","surveyor","tailor","taxidermist","teacher","technician","therapist","tiler","toxicologist","trader","translator","treasurer","tutor","typist","underwriter","upholsterer","urologist","usher","valet","vendor","veterinarian","videographer","vintner","virologist","volunteer","waiter","warden","weaver","welder","wholesaler","woodworker","writer","zoologist"];var N=["acceleration","acid","alkaline","allele","alloy","amoeba","amplitude","anatomy","antibiotic","antibody","antigen","antioxidant","aqueous","assay","atom","atomic","bacteria","barometer","base","beaker","biome","biopsy","biosynthesis","bond","botany","calibration","capillary","carbohydrate","carbon","catalyst","cathode","cell","cellular","centrifuge","chlorophyll","chromosome","circuit","coagulation","coefficient","colloid","combustion","compound","condensation","conductivity","covalent","cytoplasm","data","decay","decomposition","density","diffusion","dilution","dipole","dissection","dissolution","distillation","dna","electrode","electrolyte","electron","element","embryo","emission","endothermic","enzyme","equation","equilibrium","evaporation","evolution","exothermic","experiment","exponential","fermentation","filament","filtration","fission","flask","formula","frequency","friction","fungus","fusion","gamete","gas","gene","genome","geology","geothermal","germ","glucose","gradient","gravitational","halogen","heredity","hormone","hybrid","hydrogen","hydrolysis","hypothesis","immunity","induction","inertia","inoculation","insulation","ion","isomer","laboratory","laser","latent","lattice","lens","lipid","liquid","locus","magnet","magnetic","magnetism","mass","membrane","metabolism","metallurgy","microscope","mitochondria","mitosis","molecular","molecule","momentum","monomer","morphology","mutation","neuron","neutralization","nitrogen","nutrient","observation","optics","orbital","organic","oscillation","osmosis","oxidation","oxygen","ozone","parasite","particle","pathogen","peptide","periodic","permeability","petri","phenotype","phosphate","photosynthesis","physics","pipette","plankton","polymer","potential","precipitate","pressure","prism","prokaryote","protein","quantum","radioactive","reactant","reaction","reagent","receptor","recessive","reduction","reflection","refraction","replication","resistance","resonance","respiration","ribosome","rna","salinity","saturated","sediment","semiconductor","serum","solid","solubility","solute","solution","solvent","speciation","specimen","spectrometer","spore","stimulus","stoichiometry","substrate","suspension","symbiosis","synthesis","taxonomy","temperature","theorem","theory","thermal","thermodynamics","titration","tissue","toxin","transcription","translation","transmitter","ultraviolet","valence","vapor","variable","vector","velocity","virus","viscosity","voltage","volume","wavelength","zoology"];var R=["aperture","apogee","asterism","asteroid","astrology","astronaut","astronomy","atmosphere","axis","betelgeuse","bigbang","binary","bolide","canopus","capsule","celestial","centauri","centaurus","cepheid","cetus","chiron","cluster","comet","constellation","copernicus","corona","cosmic","cosmonaut","crater","cygnus","draco","dwarf","einstein","equinox","eridanus","exoplanet","fermi","galactic","galileo","gemini","gravity","hades","halley","heliocentric","hubble","hypernova","infrared","interstellar","isotope","jansky","kbo","kepler","kuiper","laplace","larissa","libration","lightyear","lunar","lyra","magnetar","messier","meteorite","meteoroid","milkyway","mimas","nadir","naiad","nebula","nereid","neutron","nix","nova","nucleus","oberon","occultation","oort","orbit","parsec","perigee","perihelion","perseid","phobos","photon","pioneer","plasma","polar","polaris","proton","puck","pulsar","quasar","radar","radiation","radioscope","retrograde","rocket","sagittarius","satellite","satyr","sideral","sirius","skylab","solar","solstice","space","spaceship","spectrum","starlight","starship","stellar","supernova","taurid","telescope","tethys","thule","titania","ufo","ulysses","umbra","universe","uranus","ursa","vacuum","vega","vernal","voyager","wormhole","xenon","yttrium","zenith","zodiac"];var I=["aerobics","archery","athlete","backstroke","badminton","baseball","basketball","bench","biathlon","billiards","birdie","bobsled","bocce","bogey","bowling","boxing","captain","champion","cheerleading","cleats","climbing","competition","court","crawl","croquet","curling","cycling","darts","decathlon","defense","diving","dodgeball","dribble","dugout","dunk","equestrian","fairway","fencing","field","fitness","football","freestyle","futsal","goal","goalie","goalkeeper","golf","gymnastics","halftime","handball","heptathlon","hiking","hockey","hurdles","javelin","jersey","jogging","judo","karate","kickball","kickboxing","lacrosse","league","luge","marathon","medal","medalist","medley","midfielder","netball","offense","olympics","overtime","paddleboarding","paintball","par","parkour","passing","penalty","pentathlon","pickleball","pilates","pingpong","playoff","podium","polo","qualifier","racket","racquetball","rally","rebounding","referee","relay","rink","rowing","rugby","running","sailing","scoreboard","scoring","scrimmage","serve","shot","sideline","skating","skeleton","skiing","slalom","sled","snooker","snowboarding","soccer","softball","sparring","speedskating","spike","sprint","stadium","steeplechase","striker","surfing","swimming","table","tackling","taekwondo","teammate","tennis","throwing","timeout","tournament","track","trainer","trampolining","triathlete","triathlon","trophy","tryout","tumbling","umpire","varsity","victory","volleyball","wakeboarding","walking","warmup","waterpolo","weightlifting","wicket","windsurfing","workout","wrestling","yoga","zone","zumba"];var W=["aircraft","airliner","airplane","airport","ambulance","amphibious","armored","autobus","automobile","aviation","balloon","barge","biplane","boat","boxcar","buggy","bullet","bus","cab","cable","caboose","camper","canoe","caravan","cargo","carriage","carrier","cart","catamaran","chairlift","chariot","chopper","clipper","coach","cockpit","commuter","convertible","coupe","cruiser","deckboat","delivery","diesel","dinghy","dirigible","dolly","draisine","dray","drifter","engine","express","ferry","flatbed","fleet","floatplane","flyover","freighter","fuselage","galleon","galley","glider","gondola","gunboat","gyrocopter","hangar","hatchback","hauler","hearse","helicopter","highway","hopper","houseboat","hovercraft","hydrofoil","hydroplane","icebreaker","inflatable","interstate","jet","jetliner","jetpack","jetski","jitney","junction","kayak","ketch","landau","landing","launch","lifeboat","limousine","liner","locomotive","maglev","metro","minibus","minivan","moped","monorail","mooring","motorbike","motorboat","motorcycle","motorhome","narrowboat","outboard","outrigger","paddleboat","parachute","parasail","passenger","patrol","pedalo","pickup","pier","pontoon","propeller","pullman","quadcopter","raft","railcar","railroad","railway","rickshaw","roadster","ropeway","rotorcraft","rowboat","runway","sailboat","schooner","scooter","seaplane","sedan","semitrailer","ship","shuttle","skateboard","skiff","sleigh","snowmobile","speedboat","station","steamboat","steamer","steamship","streetcar","submarine","subwaycar","tandem","tanker","taxi","taxicab","tender","terminal","tiller","toboggan","tractor","trailer","train","tram","tramcar","tramway","transport","trawler","tricycle","trolley","trolleybus","truck","tugboat","turboprop","ultralight","unicycle","van","vehicle","vessel","wagon","watercraft","wharf","wheelbarrow","windjammer","yacht","yawl","zeppelin"];var D=2,L=[...f,...j],u={adjective:f,animal:v,architecture:w,art:k,city:x,color:j,emotion:z,fashion:q,food:P,history:C,literature:J,music:O,mythology:S,nature:$,profession:E,science:N,space:R,sport:I,transportation:W},fe=Object.keys(u),ve=e=>Object.hasOwn(u,e),F=[v,w,k,x,z,q,P,C,J,O,S,$,E,N,R,I,W],V=F.flat(),we=V.length,l=e=>e[Math.floor(Math.random()*e.length)],G=e=>{if(e){for(let a of e)if(!ve(a))throw new Error(`Unknown pattern category "${a}". Expected one of: ${fe.join(", ")}`)}},B=e=>{if(e<2)throw new Error("Need at least 2 words")},ke=(e,a,r,t)=>{var i;let o=(i=t==null?void 0:t.length)!=null?i:e;if(B(o),!a)throw new Error("Need a separator");if(r!==void 0&&(!Number.isInteger(r)||r<=0))throw new Error("maxLength must be a positive integer");G(t)},xe=e=>{B(e);let a=L.length;for(let r=1;r<e;r+=1)a*=we;return a},je=e=>{B(e.length),G(e);let a=1;for(let r of e)a*=u[r].length;return a},d=(e,a)=>{let r=l(F),t=a===void 0?r:r.filter(i=>i.length<=a);if(t.length===0)return d(e,a);let o=l(t);return e.includes(o)?d(e,a):o},Y=(e,a,r)=>{if(r===void 0){if(e.length>=a.length&&a.every(i=>e.includes(i)))return;let o=l(a);for(;e.includes(o);)o=l(a);return o}let t=a.filter(o=>!e.includes(o)&&o.length<=r);return t.length===0?void 0:l(t)},ze=(e,a)=>{let r=[l(L)];for(let t=1;t<e;t+=1)r.push(d(r));return r.join(a)},qe=e=>{for(let a=0;a<e.length;a+=1)for(let r=a+1;r<e.length;r+=1)if(e[a]===e[r])return!0;return!1},Pe=(e,a)=>{let r=[];for(let t of e)r.push(l(u[t]));return r.join(a)},Ce=(e,a)=>{if(!qe(e))return Pe(e,a);let r=[];for(let t of e){let o=Y(r,u[t]);if(!o)throw new Error(`Not enough unique words in pattern category "${t}"`);r.push(o)}return r.join(a)},g=(e,a,r)=>new Error(`maxLength ${e} is too short to generate ${a} segments with separator "${r}"`),Je=(e,a)=>{let r=e-(a-1)*D,t=L.filter(o=>o.length<=r);return t.length===0?void 0:l(t)},Oe=(e,a,r)=>{let t=a-r*D;return V.some(i=>i.length<=t)?d(e,t):void 0},Se=(e,a,r,t,o)=>{let i=r;for(let n=1;n<a;n+=1){let p=Oe(e,i,a-n-1);if(!p)throw g(t,a,o);e.push(p),i-=p.length}return i},$e=e=>{let a=Number.POSITIVE_INFINITY;for(let r of e)a=Math.min(a,r.length);return a},A=(e,a)=>{let r=0;for(let t=a;t<e.length;t+=1)r+=$e(e[t]);return r},Ee=(e,a,r)=>{let t=r-(e-1)*a.length,o=Je(t,e);if(!o)throw g(r,e,a);let i=[o];return Se(i,e,t-o.length,r,a),i.join(a)},Ne=(e,a,r,t,o)=>{let i=r;for(let n=0;n<a.length;n+=1){let p=i-A(a,n+1),b=Y(e,a[n],p);if(!b)throw g(t,a.length,o);e.push(b),i-=b.length}},Re=(e,a,r)=>{let t=e.map(n=>u[n]),o=r-(e.length-1)*a.length;if(o<A(t,0))throw g(r,e.length,a);let i=[];return Ne(i,t,o,r,a),i.join(a)},H=(e={})=>{let{maxLength:a,pattern:r,segments:t=2,separator:o="-"}=e;return ke(t,o,a,r),r?a===void 0?Ce(r,o):Re(r,o,a):a===void 0?ze(t,o):Ee(t,o,a)},m=(e={})=>{let{pattern:a,segments:r=2}=e;return a?je(a):xe(r)};var c=process.argv.slice(2),h=(e,a)=>{for(let r=0;r<c.length;r+=1)if(c[r]===`--${e}`||c[r]===`-${a}`)return c[r+1]};(c.includes("--help")||c.includes("-h"))&&(console.log(`Usage: joyful [options]
|
|
2
|
+
"use strict";var j=["accommodating","admirable","adored","adventurous","affable","affectionate","agreeable","alluring","amiable","amicable","amusing","appreciable","appreciated","appreciative","attentive","authentic","balanced","beautiful","benevolent","blessed","blissful","bounteous","bountiful","bright","brilliant","bubbly","calm","caring","charitable","charming","cheerful","cheery","cherished","comforting","committed","compassionate","complimentary","confident","considerate","content","contented","cordial","courageous","creative","credible","dedicated","delighted","delightful","dependable","determined","devoted","diligent","dreamy","eager","earnest","easygoing","ebullient","elated","empowering","encouraging","endearing","energetic","engaging","enthusiastic","exciting","exquisite","extraordinary","exuberant","fabulous","faithful","fervent","festive","forgiving","friendly","funny","generous","gentle","genuine","giggling","giving","gleeful","glowing","good","graceful","gracious","grateful","gratified","gratifying","happy","harmonious","heartening","heartfelt","heartwarming","helpful","honest","honorable","hopeful","hospitable","humorous","illuminating","imaginative","impartial","inclusive","innocent","innovative","inspiring","invigorating","inviting","jolly","jovial","joyful","joyfully","joyous","jubilant","keen","kind","kindhearted","kindly","laughing","liberating","lighthearted","likeable","liked","lively","lovable","lovely","loving","loyal","lucid","luminous","magnanimous","mellow","merry","mindful","mirthful","modest","nice","noble","nourishing","nurturing","obliging","open","openhearted","openminded","optimistic","outgoing","passionate","patient","peaceful","personable","playful","pleasant","pleasing","polite","positive","productive","prosperous","radiant","reassuring","refreshing","rejoicing","relaxed","reliable","resilient","respectable","respectful","responsive","revered","reverent","satisfied","secure","sensational","sensitive","serene","sincere","smiling","sociable","soft","sparkling","spirited","stable","sunny","supportive","sweet","sympathetic","tactful","tenacious","thankful","thoughtful","tolerant","tranquil","true","trusting","trustworthy","truthful","understanding","unique","unselfish","untroubled","upbeat","uplifting","valuable","valued","versatile","vibrant","vigorous","virtuous","vital","vivacious","warm","warmhearted","welcoming","wholehearted","wholesome","willing","winsome","wise","witty","wonderful","xenial","yearning","youthful","yummy","zealous","zestful","zesty","zippy"];var W=["aardvark","albatross","ant","antelope","ape","armadillo","badger","bat","bear","bison","bumblebee","butterfly","camel","capybara","caribou","cassowary","cat","caterpillar","cheetah","chicken","chimpanzee","chinchilla","chipmunk","cougar","cow","coyote","crab","cricket","crow","deer","dingo","dog","dolphin","donkey","dove","duck","eagle","echidna","elephant","falcon","ferret","finch","fish","flamingo","fly","fox","frog","gazelle","gerbil","giraffe","goat","goldfish","goose","gorilla","grasshopper","hamster","hare","hedgehog","heron","hippopotamus","horse","hummingbird","hyena","iguana","impala","jackal","jaguar","jellyfish","kangaroo","kitten","koala","kudu","ladybug","leopard","lion","llama","lobster","locust","lynx","magpie","marten","meerkat","mink","mockingbird","mole","mongoose","monkey","moose","mouse","mynah","narwhal","newt","nuthatch","ocelot","octopus","opossum","orangutan","osprey","ostrich","otter","owl","ox","oyster","panda","pangolin","panther","parakeet","parrot","peacock","pelican","penguin","pheasant","pig","pigeon","pika","platypus","plover","polecat","porcupine","puffin","quail","quokka","rabbit","raccoon","ragdoll","ram","rat","raven","reindeer","rhea","rhinoceros","roo","rooster","saiga","salamander","sambar","sandpiper","sardine","scorpion","seahorse","seal","serval","sheep","shelduck","shrew","shrimp","siskin","skunk","sloth","snail","snapper","sora","sparrow","spoonbill","squirrel","starling","stingray","stork","swan","tadpole","tamarin","tanager","tapir","tarpon","tarsier","tetra","thrush","tiger","toad","toucan","toucanet","towhee","trogon","turaco","turtle","uakari","umbrellabird","urchin","vaquita","vicuna","vireo","vole","vulture","wagtail","wallaby","wallaroo","walrus","warthog","waxwing","whale","whippet","wilddog","wildebeest","wolf","wolverine","wombat","woodpecker","wrasse","xerus","yaffle","yak","zebra","zebu"];var q=["abacus","acroterion","aedicule","aisle","alcove","ambulatory","annex","antechamber","apse","arcade","arch","architrave","archivolt","archway","astragal","atrium","attic","balcony","baldachin","baluster","balustrade","bargeboard","baseboard","basilica","bay","bead","beam","belfry","belvedere","billet","blueprint","bracket","breezeway","brise","buttress","campanile","canopy","cantilever","capital","cartouche","caryatid","casement","casing","castellated","chamfer","chevron","chimney","cladding","clerestory","cloister","colonnade","column","console","coping","corbel","cornice","courtyard","crenellation","cresting","crown","cupola","curtain","cyma","dado","dais","dentil","dome","domed","doric","dormer","dripstone","eaves","echinus","elevation","ell","engaged","entablature","entresol","entryway","facade","fanlight","fascia","fenestration","finial","fluting","foundation","foyer","fresco","frieze","gable","gallery","gargoyle","grille","hall","hammerbeam","hearth","hip","hyphen","impost","inglenook","interior","ionic","jamb","joist","keystone","lancet","lantern","lintel","lobby","loggia","louver","lunette","mansard","metope","mezzanine","minaret","modillion","molding","mullion","muntins","narthex","nave","newel","niche","obelisk","oculus","ogee","oriel","parapet","pavilion","pedestal","pediment","pendentive","pilaster","pillar","pinnacle","plinth","porte","portico","quatrefoil","quoin","rafter","raking","reredos","reveal","ridge","riser","roof","rosette","rotunda","roundel","sash","sconce","sill","skylight","soffit","spandrel","spire","stanchion","steeple","stoa","stucco","stylobate","terrace","tracery","transept","transom","tread","trellis","triforium","triglyph","truss","turret","tympanum","undercroft","vault","veranda","vestibule","volute","voussoir","wainscot","wall","window","ziggurat"];var z=["abstract","acanthus","acrylic","adornment","aesthetic","airbrush","amphora","animation","antiquity","applique","aquarelle","arabesque","armature","artifact","artisan","artistry","artwork","assemblage","atelier","balance","baroque","batik","biennale","blending","bricolage","brushstroke","bust","calligraphy","cameo","canvas","carving","casting","ceramics","charcoal","chasing","chiaroscuro","chisel","chromatic","classical","cloisonne","collage","composition","connoisseur","contour","contrast","craftsmanship","crayon","creativity","critique","cubism","curator","dada","decorative","decoupage","design","diorama","diptych","drapery","drawing","easel","embellishment","embossing","enamel","encaustic","engraving","ensemble","etching","expressionism","fauvism","filigree","fine","finesse","firing","folio","foreshortening","form","gauche","gesso","gilding","glyptic","gouache","graffiti","harmony","hatching","hue","iconography","illustration","impasto","impressionism","ink","installation","intaglio","interpretation","kiln","kilnwork","kinetic","lacquer","landscape","linocut","lithography","luminism","lyrical","mannequin","marbling","masterpiece","medallion","medium","memento","miniature","miniaturist","mobile","modernism","mosaic","mural","museum","naturalism","neoclassicism","neon","nuance","oil","origami","ornament","painting","palette","pastel","patina","pencil","pentimento","perspective","photography","pictorial","pigment","plaster","pointillism","polychrome","portfolio","portrait","print","proportion","provenance","relief","renaissance","rendering","replica","representation","restoration","retrospective","rococo","romanticism","salon","sanguine","saturation","sculpture","sepia","serif","sfumato","sgraffito","shade","shadow","silhouette","simulacrum","sketch","stencil","stippling","stoneware","studio","study","surrealism","symmetry","tableau","technique","tempera","tessellation","texture","tint","triptych","typography","underpainting","varnish","vernissage","virtuoso","visionary","visual","watercolor","weaving","woodcut"];var L=["amsterdam","athens","atlanta","auckland","austin","barcelona","basel","bergen","berlin","bilbao","bogota","boston","bristol","brussels","budapest","cairo","calgary","canberra","cardiff","chicago","copenhagen","dakar","denver","dublin","edinburgh","florence","geneva","glasgow","helsinki","hobart","honolulu","istanbul","jakarta","kyoto","leipzig","lisbon","london","lucerne","madrid","malaga","melbourne","memphis","milan","montreal","munich","nairobi","naples","osaka","oslo","ottawa","palermo","porto","prague","quito","reykjavik","rotterdam","sapporo","savannah","seattle","seoul","stockholm","sydney","taipei","tallinn","tbilisi","toronto","toulouse","tunis","valencia","vienna","warsaw","zagreb","zurich"];var P=["alabaster","amber","aqua","auburn","azure","beige","bisque","black","blonde","blue","blush","bone","bordeaux","brick","brown","buff","burgundy","cadet","canary","cappuccino","cardinal","carmine","carnelian","celadon","cerulean","champagne","chartreuse","claret","cobalt","cognac","copper","cornflower","crimson","cyan","daffodil","ebony","ecru","eggshell","electric","espresso","fawn","flax","fuchsia","glaucous","gold","goldenrod","graphite","gray","green","gunmetal","heliotrope","hunter","indigo","ivory","jade","jasper","khaki","lapis","lava","magenta","mahogany","maize","malachite","mandarin","maroon","mauve","midnight","mocha","mulberry","navy","obsidian","ochre","onyx","paprika","pearl","periwinkle","pewter","pink","platinum","powder","puce","purple","red","rosewood","ruby","russet","rust","sable","saffron","sangria","scarlet","seafoam","sienna","silver","slate","smoke","snow","steel","tan","taupe","tawny","teal","terracotta","titanium","turquoise","ultramarine","umber","verdigris","vermilion","viridian","white","yellow","zinc","zircon"];var O=["acceptance","admiration","adoration","affection","amazement","amusement","anticipation","astonishment","awe","bashfulness","belonging","bewilderment","bliss","caution","cheerfulness","compassion","concern","confidence","confusion","contentment","courage","curiosity","delight","determination","distraction","eagerness","elation","empathy","enchantment","enjoyment","enlightenment","enthusiasm","euphoria","excitement","exhilaration","expectation","fascination","fondness","fulfillment","gladness","glee","gratification","gratitude","happiness","heartache","hesitation","homesickness","hope","infatuation","inspiration","interest","intoxication","joy","jubilation","kindness","longing","love","nervousness","optimism","overwhelm","patience","peace","pensiveness","perplexity","positivity","pride","puzzlement","rapture","reassurance","relaxation","reverence","satisfaction","security","serenity","shyness","solidarity","surprise","sympathy","tenderness","thankfulness","thrill","tranquility","triumph","valor","vigilance","warmth","wonder","zeal","zest"];var S=["accessory","apparel","asymmetrical","attire","ballet","bandana","beaded","belt","bespoke","blazer","blouse","bodysuit","boho","bolero","boots","boutique","bracelet","brocade","brooch","button","cape","capri","cardigan","cashmere","casual","chic","chiffon","classic","cloche","clutch","cocktail","collar","collection","corduroy","cotton","couture","cravat","cuff","culottes","dapper","denim","drape","dress","earrings","edgy","elegant","embroidery","empire","epaulette","eyelet","fabric","fashion","faux","fedora","fitted","flair","flannel","flapper","floral","formal","fringe","fur","garment","garter","glamorous","gloves","gown","halter","handbag","haute","headband","heel","hemline","iridescent","jacket","jewelry","jumpsuit","kaftan","kimono","knit","lace","lapel","leather","linen","loafers","luxurious","material","merino","moccasin","modern","mule","necklace","outfit","oxford","palazzo","pants","pashmina","patent","pattern","pearls","peplum","plaid","platform","pleat","pleated","pocket","poncho","preppy","puff","pumps","purse","quilted","retro","robe","ruched","ruffle","sandals","sartorial","satin","scarf","seamstress","sequin","shawl","sheath","shift","shirt","shoes","shorts","silk","skirt","sleek","sleeve","slippers","sneakers","socks","sophisticated","stiletto","stole","strappy","striped","stylish","suede","suit","sundress","sunglasses","sweater","taffeta","textile","tiara","tie","tote","trend","trim","trousers","tulle","tunic","turtleneck","tweed","uniform","velvet","vest","vintage","vogue","wardrobe","watch","wedge","wool","woven","wrap"];var J=["almond","apple","apricot","artichoke","asparagus","avocado","bacon","bagel","barley","basil","bean","beef","beet","berry","biscuit","blueberry","bread","broccoli","brusselsprout","bun","butter","cabbage","cake","candy","cantaloupe","caramel","carrot","cashew","cauliflower","caviar","celery","cheese","chickpea","chili","chocolate","chutney","cider","cinnamon","citrus","clam","cocoa","coconut","coffee","cookie","corn","cranberry","cupcake","currant","curry","date","dill","doughnut","egg","eggplant","endive","fennel","fig","flour","garlic","gelatin","ginger","grape","grapefruit","gravy","greenbean","guava","halibut","ham","hamburger","hazelnut","honey","honeydew","horseradish","iceberg","jalapeno","jam","jelly","kale","ketchup","kiwi","lamb","leek","lemon","lentil","lettuce","lime","lychee","macadamia","macaroni","mango","maple","margarine","mayonnaise","milk","mint","molasses","muffin","mushroom","mustard","nectarine","noodle","nutmeg","oat","olive","onion","orange","oregano","pancake","papaya","parsley","parsnip","pasta","peach","peanut","pear","pecan","pepper","persimmon","pickle","pie","pineapple","pistachio","plum","pomegranate","popcorn","pork","potato","pretzel","prune","pudding","pumpkin","quince","radicchio","radish","raisin","raspberry","ravioli","relish","rhubarb","rice","rosemary","rye","sage","salad","salami","salmon","salsa","salt","sandwich","scallop","seaweed","slaw","sorbet","soy","spaghetti","spinach","squash","steak","strawberry","sundae","sushi","taco","tangerine","tart","tea","thyme","toast","tomato","trout","tuna","turkey","turnip","vanilla","veal","venison","vinegar","waffle","walnut","watercress","watermelon","wheat","whipped","wine","yam","yogurt","zucchini"];var C=["academia","accomplishment","achievement","advancement","ancestor","ancient","anthropology","antiquarian","antique","archaeology","archive","aristocracy","bronze","bygone","calendar","cartography","castle","cathedral","century","ceremony","chronicle","chronographer","citadel","civilization","coins","commemoration","compilation","conquest","conservation","coronation","culture","cuneiform","customs","decade","decree","deeds","diplomacy","discovery","document","dynasty","edict","encyclopedia","eon","epoch","era","events","excavation","exhibit","expedition","exploration","feudal","fossil","founder","genealogy","generation","golden","governance","heraldry","heritage","hieratic","hieroglyphs","history","imperial","inscription","institute","invention","journal","kingdom","knowledge","landmark","legacy","lineage","lore","medieval","memorabilia","memorial","memories","methodology","migration","millennium","monarchy","monastery","monument","mummy","mythology","nation","nobility","nostalgia","origin","palace","paleography","paleontology","papyrus","parchment","past","patriarch","periodization","pharaoh","pilgrimage","prehistoric","preservation","primary","progeny","progress","pyramid","realm","reconstruction","record","reign","relic","remembrance","repository","research","revolution","royal","ruins","scholar","scroll","secondary","settlement","society","stone","storytelling","tapestry","temple","throne","timeline","tradition","treaty","university","vellum"];var E=["allegory","alliteration","allusion","almanac","analogy","anecdote","annotation","antagonist","anthology","antihero","aphorism","appendix","archetype","assonance","autobiography","ballad","bibliography","bildungsroman","biography","blurb","bookmark","canon","canto","caricature","catharsis","chapter","characterization","chronology","cliche","codex","comedy","commentary","conflict","connotation","consonance","couplet","dedication","denouement","deus","dialect","dialogue","diary","diction","didactic","drama","dramatis","dystopia","editorial","elegy","ellipsis","enigma","enjambment","epilogue","epiphany","epistolary","epitaph","epithet","essay","euphemism","excerpt","exposition","fable","fairytale","fantasy","farce","fiction","figurative","flashback","flashforward","foil","folklore","footnote","foreshadowing","foreword","frame","genre","glossary","haiku","hardcover","heroine","hubris","hyperbole","idiom","imagery","index","intertextuality","introduction","invective","irony","jargon","juxtaposition","legend","leitmotif","libretto","limerick","literary","literature","litotes","lyric","manuscript","memoir","metaphor","meter","metonymy","monograph","monologue","mood","motif","mystery","narration","narrative","narrator","nonfiction","novella","ode","omniscient","onomatopoeia","opus","oxymoron","parable","paradox","paragraph","parody","passage","pastiche","pastoral","pathetic","pentameter","persona","personification","plot","poem","poetics","poetry","point","postscript","preface","premise","prologue","propaganda","prose","protagonist","pseudonym","publisher","quatrain","quest","quotation","reader","realism","refrain","resolution","rhetoric","rhyme","rhythm","romance","saga","sarcasm","satire","scene","scribe","sequel","serial","setting","simile","soliloquy","sonnet","stanza","storyline","stream","structure","style","subplot","subtext","summary","suspense","symbol","symbolism","synopsis","syntax","tale","tanka","text","theme","thesis","thriller","title","tome","tone","tragedy","trope","understatement","utopia","verse","vignette","villain","voice","wordplay"];var R=["accordion","acoustic","adagio","allegro","alto","amplifier","andante","anthem","aria","arpeggio","arrangement","band","banjo","baritone","bass","bassoon","baton","beat","bell","blues","bongo","brass","cadence","cantata","capriccio","cello","chimes","chorale","chord","chorus","clarinet","clef","coda","composer","concert","concerto","conductor","counterpoint","crescendo","cymbal","decrescendo","ditty","drum","duet","dynamics","etude","euphonium","falsetto","fanfare","fermata","fiddler","flute","folk","forte","fortissimo","fretboard","fugue","glissando","glockenspiel","gospel","groove","guitar","harmonica","harmonics","harp","harpsichord","horn","hymn","improvisation","instrument","interlude","interval","jazz","jingle","key","keyboard","legato","lullaby","lute","madrigal","maestro","major","mandolin","march","measure","melody","metronome","microphone","minuet","musical","musicianship","nocturne","oboe","octave","opera","oratorio","orchestra","orchestration","organ","ostinato","overture","panpipes","percussion","piano","piccolo","pitch","pizzicato","polka","prelude","quartet","quintet","recital","recorder","requiem","rhapsody","riff","rondo","samba","scale","score","serenade","sharp","singer","solfege","solo","sonata","song","sonorous","soprano","staccato","staff","strings","suite","symphony","syncopation","tambourine","tango","tempo","tenor","timbre","tonality","treble","triad","trill","trio","trombone","trumpet","tune","tuner","ukulele","unison","variation","vibrato","viola","violin","vivace","vocalise","waltz","woodwind","xylophone","yodel","zither"];var $=["achilles","aeolus","aesculapius","aether","agamemnon","ajax","amalthea","ambrosia","amphitrite","andromeda","antaeus","antigone","apollo","aquilo","ares","argo","argus","ariadne","artemis","asclepius","athena","atlas","atropos","aurora","bacchus","bellerophon","bellona","boreas","briseis","cadmus","calliope","calypso","cassandra","cassiopeia","castor","centaurs","cerberus","ceres","chaos","charon","charybdis","chimera","clio","clotho","cupid","cybele","cynthia","daedalus","daphne","diana","dido","diomedes","dionysus","dryads","egeria","electra","elysium","endymion","eos","eris","europa","eurydice","euterpe","fates","faunus","flora","fortuna","gaea","galatea","ganymede","gorgons","graces","griffin","hector","helios","hephaestus","hera","hercules","hermes","hero","hestia","hydra","hyperion","icarus","io","iris","janus","jason","juno","jupiter","lachesis","leda","leto","liber","maenads","mars","medea","medusa","melampus","memnon","mercury","midas","minerva","minos","minotaur","moirae","momus","morpheus","muses","nemesis","neptune","nereus","nike","nymphs","odysseus","olympus","orion","orpheus","pallas","pan","pandora","paris","pegasus","penelope","persephone","perseus","phaedra","phaeton","phoebe","phoenix","pluto","pollux","polyphemus","poseidon","priam","prometheus","proserpina","proteus","psyche","pygmalion","python","romulus","saturn","scylla","selene","sibyl","silenus","sol","sphinx","styx","tartarus","terpsichore","theseus","thetis","thisbe","tiresias","titan","triton","troy","venus","vesta","vulcan","zephyr","zeus"];var N=["acacia","acorn","alder","alpine","amaryllis","amethyst","anemone","aquamarine","arboretum","aspen","autumn","avalanche","azalea","bamboo","banyan","baobab","bark","basalt","beach","beech","birch","blossom","bluff","bog","boulder","bracken","branch","breeze","briar","brook","buckeye","bud","butte","cactus","camellia","canyon","carnation","cascade","cave","cedar","chamomile","chestnut","chrysanthemum","citrine","cliff","cloud","clover","coast","conifer","coral","cove","creek","crystal","cypress","dahlia","dandelion","dawn","delta","desert","dew","driftwood","dune","earth","eclipse","ecosystem","elm","emerald","eucalyptus","everglades","evergreen","fern","firefly","fjord","flint","flower","fog","foothill","forest","galaxy","garden","geyser","ginkgo","glacier","glade","gorge","granite","grass","grotto","grove","harbor","harvest","haze","hazel","heath","heather","hemlock","hibiscus","hill","holly","honeysuckle","horizon","hyacinth","island","ivy","jasmine","jungle","juniper","kelp","lagoon","lake","lavender","leaf","lichen","lighthouse","lilac","lily","lotus","magnolia","mangrove","marigold","marsh","meadow","meteor","mimosa","mist","monsoon","moon","moonstone","moss","mountain","nest","oak","oasis","ocean","opal","orchard","orchid","palm","pampas","pebble","peony","petal","phlox","pine","planet","plateau","pond","poppy","prairie","primrose","quartz","rainbow","raindrop","rainforest","redwood","reef","rhododendron","river","rock","rose","sand","sapphire","savanna","sea","seashell","seed","sequoia","shore","sky","snapdragon","snowdrop","snowflake","spring","sprout","spruce","star","steppe","summit","sun","sunbeam","sunflower","sunrise","sunset","sycamore","taiga","thistle","tide","topaz","tree","tulip","tundra","valley","violet","volcano","waterfall","wave","willow","wind","wisteria","woodland","yucca","zinnia"];var B=["accountant","acrobat","actuary","administrator","advisor","advocate","agronomist","analyst","animator","anthropologist","appraiser","apprentice","arbitrator","archaeologist","architect","archivist","astronomer","attorney","auctioneer","auditor","author","baker","banker","barber","barista","bartender","biologist","blacksmith","blogger","bookkeeper","botanist","brewer","broadcaster","broker","builder","butcher","buyer","cabinetmaker","calligrapher","caregiver","carpenter","cartographer","cashier","caterer","chemist","chiropractor","cinematographer","clerk","cobbler","columnist","comedian","commissioner","consultant","contractor","copywriter","coroner","correspondent","counselor","courier","craftsman","critic","cryptographer","custodian","dancer","dealer","dentist","dermatologist","designer","detective","developer","dietitian","diplomat","director","dispatcher","diver","doctor","doorman","drafter","dramatist","driver","ecologist","economist","editor","educator","electrician","embalmer","engineer","engraver","entrepreneur","epidemiologist","essayist","estimator","ethnographer","evangelist","examiner","executive","explorer","exporter","fabricator","facilitator","farmer","financier","firefighter","fisherman","florist","foreman","forester","fundraiser","gamekeeper","gardener","gemologist","geneticist","geographer","geologist","glazier","goldsmith","governor","grocer","groundskeeper","guide","hairdresser","handyman","herbalist","historian","host","housekeeper","illustrator","importer","inspector","instructor","interpreter","interviewer","inventor","investigator","ironworker","jeweler","journalist","judge","laborer","landscaper","lawyer","lecturer","librarian","lifeguard","linguist","lithographer","lobbyist","locksmith","machinist","magician","magistrate","manager","manufacturer","marketer","mason","mathematician","mechanic","mediator","meteorologist","midwife","milliner","miner","minister","model","mortician","musician","nanny","navigator","negotiator","neurologist","notary","novelist","nurse","nutritionist","obstetrician","oceanographer","oncologist","operator","ophthalmologist","optician","optometrist","orator","ornithologist","orthodontist","painter","paleontologist","paralegal","paramedic","pathologist","pediatrician","perfumer","pharmacist","philosopher","photographer","physician","physicist","physiotherapist","pilot","plasterer","playwright","plumber","podiatrist","poet","politician","porter","potter","preacher","principal","printer","producer","professor","programmer","promoter","proofreader","prosecutor","prosthetist","psychiatrist","psychologist","publicist","puppeteer","rabbi","radiologist","rancher","realtor","receptionist","recruiter","registrar","reporter","researcher","retailer","roofer","sailor","salesperson","sanitarian","scientist","screenwriter","sculptor","secretary","senator","server","shepherd","sheriff","sociologist","soldier","sommelier","speechwriter","spokesperson","statistician","stockbroker","stonemason","strategist","stylist","superintendent","supervisor","supplier","surgeon","surveyor","tailor","taxidermist","teacher","technician","therapist","tiler","toxicologist","trader","translator","treasurer","tutor","typist","underwriter","upholsterer","urologist","usher","valet","vendor","veterinarian","videographer","vintner","virologist","volunteer","waiter","warden","weaver","welder","wholesaler","woodworker","writer","zoologist"];var F=["acceleration","acid","alkaline","allele","alloy","amoeba","amplitude","anatomy","antibiotic","antibody","antigen","antioxidant","aqueous","assay","atom","atomic","bacteria","barometer","base","beaker","biome","biopsy","biosynthesis","bond","botany","calibration","capillary","carbohydrate","carbon","catalyst","cathode","cell","cellular","centrifuge","chlorophyll","chromosome","circuit","coagulation","coefficient","colloid","combustion","compound","condensation","conductivity","covalent","cytoplasm","data","decay","decomposition","density","diffusion","dilution","dipole","dissection","dissolution","distillation","dna","electrode","electrolyte","electron","element","embryo","emission","endothermic","enzyme","equation","equilibrium","evaporation","evolution","exothermic","experiment","exponential","fermentation","filament","filtration","fission","flask","formula","frequency","friction","fungus","fusion","gamete","gas","gene","genome","geology","geothermal","germ","glucose","gradient","gravitational","halogen","heredity","hormone","hybrid","hydrogen","hydrolysis","hypothesis","immunity","induction","inertia","inoculation","insulation","ion","isomer","laboratory","laser","latent","lattice","lens","lipid","liquid","locus","magnet","magnetic","magnetism","mass","membrane","metabolism","metallurgy","microscope","mitochondria","mitosis","molecular","molecule","momentum","monomer","morphology","mutation","neuron","neutralization","nitrogen","nutrient","observation","optics","orbital","organic","oscillation","osmosis","oxidation","oxygen","ozone","parasite","particle","pathogen","peptide","periodic","permeability","petri","phenotype","phosphate","photosynthesis","physics","pipette","plankton","polymer","potential","precipitate","pressure","prism","prokaryote","protein","quantum","radioactive","reactant","reaction","reagent","receptor","recessive","reduction","reflection","refraction","replication","resistance","resonance","respiration","ribosome","rna","salinity","saturated","sediment","semiconductor","serum","solid","solubility","solute","solution","solvent","speciation","specimen","spectrometer","spore","stimulus","stoichiometry","substrate","suspension","symbiosis","synthesis","taxonomy","temperature","theorem","theory","thermal","thermodynamics","titration","tissue","toxin","transcription","translation","transmitter","ultraviolet","valence","vapor","variable","vector","velocity","virus","viscosity","voltage","volume","wavelength","zoology"];var D=["aperture","apogee","asterism","asteroid","astrology","astronaut","astronomy","atmosphere","axis","betelgeuse","bigbang","binary","bolide","canopus","capsule","celestial","centauri","centaurus","cepheid","cetus","chiron","cluster","comet","constellation","copernicus","corona","cosmic","cosmonaut","crater","cygnus","draco","dwarf","einstein","equinox","eridanus","exoplanet","fermi","galactic","galileo","gemini","gravity","hades","halley","heliocentric","hubble","hypernova","infrared","interstellar","isotope","jansky","kbo","kepler","kuiper","laplace","larissa","libration","lightyear","lunar","lyra","magnetar","messier","meteorite","meteoroid","milkyway","mimas","nadir","naiad","nebula","nereid","neutron","nix","nova","nucleus","oberon","occultation","oort","orbit","parsec","perigee","perihelion","perseid","phobos","photon","pioneer","plasma","polar","polaris","proton","puck","pulsar","quasar","radar","radiation","radioscope","retrograde","rocket","sagittarius","satellite","satyr","sideral","sirius","skylab","solar","solstice","space","spaceship","spectrum","starlight","starship","stellar","supernova","taurid","telescope","tethys","thule","titania","ufo","ulysses","umbra","universe","uranus","ursa","vacuum","vega","vernal","voyager","wormhole","xenon","yttrium","zenith","zodiac"];var I=["aerobics","archery","athlete","backstroke","badminton","baseball","basketball","bench","biathlon","billiards","birdie","bobsled","bocce","bogey","bowling","boxing","captain","champion","cheerleading","cleats","climbing","competition","court","crawl","croquet","curling","cycling","darts","decathlon","defense","diving","dodgeball","dribble","dugout","dunk","equestrian","fairway","fencing","field","fitness","football","freestyle","futsal","goal","goalie","goalkeeper","golf","gymnastics","halftime","handball","heptathlon","hiking","hockey","hurdles","javelin","jersey","jogging","judo","karate","kickball","kickboxing","lacrosse","league","luge","marathon","medal","medalist","medley","midfielder","netball","offense","olympics","overtime","paddleboarding","paintball","par","parkour","passing","penalty","pentathlon","pickleball","pilates","pingpong","playoff","podium","polo","qualifier","racket","racquetball","rally","rebounding","referee","relay","rink","rowing","rugby","running","sailing","scoreboard","scoring","scrimmage","serve","shot","sideline","skating","skeleton","skiing","slalom","sled","snooker","snowboarding","soccer","softball","sparring","speedskating","spike","sprint","stadium","steeplechase","striker","surfing","swimming","table","tackling","taekwondo","teammate","tennis","throwing","timeout","tournament","track","trainer","trampolining","triathlete","triathlon","trophy","tryout","tumbling","umpire","varsity","victory","volleyball","wakeboarding","walking","warmup","waterpolo","weightlifting","wicket","windsurfing","workout","wrestling","yoga","zone","zumba"];var A=["aircraft","airliner","airplane","airport","ambulance","amphibious","armored","autobus","automobile","aviation","balloon","barge","biplane","boat","boxcar","buggy","bullet","bus","cab","cable","caboose","camper","canoe","caravan","cargo","carriage","carrier","cart","catamaran","chairlift","chariot","chopper","clipper","coach","cockpit","commuter","convertible","coupe","cruiser","deckboat","delivery","diesel","dinghy","dirigible","dolly","draisine","dray","drifter","engine","express","ferry","flatbed","fleet","floatplane","flyover","freighter","fuselage","galleon","galley","glider","gondola","gunboat","gyrocopter","hangar","hatchback","hauler","hearse","helicopter","highway","hopper","houseboat","hovercraft","hydrofoil","hydroplane","icebreaker","inflatable","interstate","jet","jetliner","jetpack","jetski","jitney","junction","kayak","ketch","landau","landing","launch","lifeboat","limousine","liner","locomotive","maglev","metro","minibus","minivan","moped","monorail","mooring","motorbike","motorboat","motorcycle","motorhome","narrowboat","outboard","outrigger","paddleboat","parachute","parasail","passenger","patrol","pedalo","pickup","pier","pontoon","propeller","pullman","quadcopter","raft","railcar","railroad","railway","rickshaw","roadster","ropeway","rotorcraft","rowboat","runway","sailboat","schooner","scooter","seaplane","sedan","semitrailer","ship","shuttle","skateboard","skiff","sleigh","snowmobile","speedboat","station","steamboat","steamer","steamship","streetcar","submarine","subwaycar","tandem","tanker","taxi","taxicab","tender","terminal","tiller","toboggan","tractor","trailer","train","tram","tramcar","tramway","transport","trawler","tricycle","trolley","trolleybus","truck","tugboat","turboprop","ultralight","unicycle","van","vehicle","vessel","wagon","watercraft","wharf","wheelbarrow","windjammer","yacht","yawl","zeppelin"];var M={adjective:j,animal:W,architecture:q,art:z,city:L,color:P,emotion:O,fashion:S,food:J,history:C,literature:E,music:R,mythology:$,nature:N,profession:B,science:F,space:D,sport:I,transportation:A},Le=Object.keys(M),Pe=[W,q,z,L,O,S,J,C,E,R,$,N,B,F,D,I,A],Oe=Pe.flat(),Se=[...j,...P],h={categoryNames:Le,categoryWordLists:M,categoryWords:Oe,prefixes:Se},p=e=>e[Math.floor(Math.random()*e.length)],Je=e=>Array.isArray(e)&&e.every(r=>typeof r=="string"),g=e=>[...new Set(e)],Ce=e=>{if(e)for(let[r,t]of Object.entries(e)){if(!r)throw new Error("Custom word list names cannot be empty");if(!Je(t))throw new Error(`Custom word list "${r}" must contain strings`)}},Ee=(e,r)=>g(e).filter(t=>!r.has(t)),H=(e,r=[])=>{var s,u;if(Ce(e),!e&&r.length===0)return h;let t=new Set(r),a={...M,...e},o={};for(let[m,se]of Object.entries(a))o[m]=Ee(se,t);let i=Object.keys(o),n=Object.entries(o).filter(([m])=>m!=="adjective"&&m!=="color").map(([,m])=>m);return{categoryNames:i,categoryWordLists:o,categoryWords:g(n.flat()),prefixes:g([...(s=o.adjective)!=null?s:[],...(u=o.color)!=null?u:[]])}},K=(e,r,t)=>{if(t){for(let a of t)if(!Object.hasOwn(r,a))throw new Error(`Unknown pattern category "${a}". Expected one of: ${e.join(", ")}`)}},U=e=>{if(e<2)throw new Error("Need at least 2 words")},Re=(e,r,t,a,o=h)=>{var n;let i=(n=a==null?void 0:a.length)!=null?n:e;if(U(i),!r)throw new Error("Need a separator");if(t!==void 0&&(!Number.isInteger(t)||t<=0))throw new Error("maxLength must be a positive integer");K(o.categoryNames,o.categoryWordLists,a)},Q=(e,r)=>{if(e<r)return 0;let t=1;for(let a=0;a<r;a+=1)t*=e-a;return t},$e=(e,r=h)=>{U(e);let t=0,a=new Set(r.categoryWords);for(let o of r.prefixes){let i=r.categoryWords.length-(a.has(o)?1:0);t+=Q(i,e-1)}return t},Ne=(e,r)=>{if(e.length!==r.length)return!1;let t=new Set(e);return r.every(a=>t.has(a))},Be=e=>{let r=new Set;for(let t of e)for(let a of t){if(r.has(a))return!1;r.add(a)}return!0},Fe=e=>{if(e.some(a=>a.length===0))return 0;if(Be(e))return e.reduce((a,o)=>a*o.length,1);if(e.every(a=>Ne(a,e[0])))return Q(e[0].length,e.length);let r=e.toSorted((a,o)=>a.length-o.length),t=(a,o)=>{if(a>=r.length)return 1;let i=0;for(let n of r[a])o.includes(n)||(i+=t(a+1,[...o,n]));return i};return t(0,[])},De=(e,r=h)=>{U(e.length),K(r.categoryNames,r.categoryWordLists,e);let t=e.map(a=>{var o;return g((o=r.categoryWordLists[a])!=null?o:[])});return Fe(t)},Ie=(e,r,t)=>{if(t===void 0){if(e.length>=r.length&&r.every(i=>e.includes(i)))return;let o=p(r);for(;e.includes(o);)o=p(r);return o}let a=r.filter(o=>!e.includes(o)&&o.length<=t);return a.length===0?void 0:p(a)},X=(e,r,t)=>Ie(e,r,t),Z=(e,r,t,a)=>{if(r>=e.length)return!0;for(let o of e[r])if(!(a!==void 0&&o.length>a)&&!t.includes(o)&&Z(e,r+1,[...t,o],a===void 0?void 0:a-o.length))return!0;return!1},ee=(e,r,t,a)=>{let o=e[r].filter(i=>!t.includes(i)&&(a===void 0||i.length<=a)&&Z(e,r+1,[...t,i],a===void 0?void 0:a-i.length));return o.length===0?void 0:p(o)},_=()=>new Error("Not enough unique words to generate a result"),Ae=(e,r,t)=>{if(t.prefixes.length===0)throw _();let a=[p(t.prefixes)];for(let o=1;o<e;o+=1){let i=X(a,t.categoryWords);if(!i)throw _();a.push(i)}return a.join(r)},Me=(e,r,t)=>{let a=e.map(i=>{var n;return(n=t[i])!=null?n:[]}),o=[];for(let[i,n]of e.entries()){let s=ee(a,i,o);if(!s)throw new Error(`Not enough unique words in pattern category "${n}"`);o.push(s)}return o.join(r)},y=(e,r,t)=>new Error(`maxLength ${e} is too short to generate ${r} segments with separator "${t}"`),T=e=>{let r=Number.POSITIVE_INFINITY;for(let t of e)r=Math.min(r,t.length);return r},Ue=(e,r,t)=>{let a=T(t.categoryWords),o=e-(r-1)*a,i=t.prefixes.filter(n=>n.length<=o);return i.length===0?void 0:p(i)},Te=(e,r,t,a)=>{let o=T(a.categoryWords),i=r-t*o;return X(e,a.categoryWords,i)},Ve=(e,r,t,a,o,i)=>{let n=t;for(let s=1;s<r;s+=1){let u=Te(e,n,r-s-1,i);if(!u)throw y(a,r,o);e.push(u),n-=u.length}return n},Ge=(e,r)=>{let t=0;for(let a=r;a<e.length;a+=1)t+=T(e[a]);return t},Ye=(e,r,t,a)=>{let o=t-(e-1)*r.length,i=Ue(o,e,a);if(!i)throw y(t,e,r);let n=[i];return Ve(n,e,o-i.length,t,r,a),n.join(r)},_e=(e,r,t,a,o)=>{let i=t;for(let n=0;n<r.length;n+=1){let s=ee(r,n,e,i);if(!s)throw y(a,r.length,o);e.push(s),i-=s.length}},He=(e,r,t,a)=>{let o=e.map(s=>{var u;return(u=a[s])!=null?u:[]}),i=t-(e.length-1)*r.length;if(i<Ge(o,0))throw y(t,e.length,r);let n=[];return _e(n,o,i,t,r),n.join(r)},re=(e={})=>{let{maxLength:r,omit:t=[],pattern:a,segments:o=2,separator:i="-",wordLists:n}=e,s=H(n,t);return Re(o,i,r,a,s),a?r===void 0?Me(a,i,s.categoryWordLists):He(a,i,r,s.categoryWordLists):r===void 0?Ae(o,i,s):Ye(o,i,r,s)},d=(e={})=>{let{omit:r=[],pattern:t,segments:a=2,wordLists:o}=e,i=H(o,r);return t?De(t,i):$e(a,i)};var c=process.argv.slice(2),Ke=new Set(["--help","-h","--json","--max-length","-m","--omit","-o","--pattern","-t","--permutations","--segments","-s","--separator","-p","--word-list","-w"]),ie=(e,r)=>{let t=c[e+1];if(t===void 0||Ke.has(t))throw new Error(`--${r} requires a value`);return t},f=(e,r)=>{for(let t=0;t<c.length;t+=1)if(c[t]===`--${e}`||c[t]===`-${r}`)return ie(t,e)},te=(e,r)=>{let t=[];for(let a=0;a<c.length;a+=1)(c[a]===`--${e}`||c[a]===`-${r}`)&&t.push(ie(a,e));return t};(c.includes("--help")||c.includes("-h"))&&(console.log(`Usage: joyful [options]
|
|
3
3
|
|
|
4
4
|
Options:
|
|
5
|
-
-s, --segments <number>
|
|
6
|
-
-t, --pattern <categories>
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
-s, --segments <number> Number of words to generate (default: 2)
|
|
6
|
+
-t, --pattern <categories> Category pattern, comma-separated
|
|
7
|
+
-w, --word-list <name=words> Custom list, comma-separated; repeatable
|
|
8
|
+
-o, --omit <words> Words to omit, comma-separated; repeatable
|
|
9
|
+
-p, --separator <string> Separator between words (default: "-")
|
|
10
|
+
-m, --max-length <number> Maximum length of the result
|
|
11
|
+
--permutations Calculate possible permutations
|
|
12
|
+
--json Output permutation results as JSON
|
|
13
|
+
-h, --help Show this help message`),process.exit(0));var ne=e=>c.includes(`--${e}`),b,v,ae=[],V=[],w,oe=ne("permutations"),k=ne("json"),G=e=>e.split(",").map(r=>r.trim()).filter(Boolean),Qe=e=>G(e),Xe=e=>{var t;if(e.length===0)return;let r={};for(let a of e){let o=a.indexOf("=");if(o<=0)throw new Error('--word-list must use the format "name=word,word"');let i=a.slice(0,o).trim(),n=G(a.slice(o+1));if(n.length===0)throw new Error(`Custom word list "${i}" must include words`);r[i]=[...(t=r[i])!=null?t:[],...n]}return r},l={},Ze=[["adjective","animal"],["color","nature","animal"],["city","nature","space"]],Y=e=>{console.log(JSON.stringify(e,null,2))},x=(e={})=>({omit:l.omit,pattern:e.pattern,segments:e.segments,wordLists:l.wordLists}),er=()=>[2,3,4,5].map(e=>({permutations:d(x({segments:e})),segments:e})),rr=()=>Ze.map(e=>({pattern:e,permutations:d(x({pattern:e}))})),tr=e=>{console.log("Possible permutations:");for(let r of e)console.log(`${r.segments} words: ${r.permutations.toLocaleString()}`)},ar=e=>{console.log(`
|
|
14
|
+
Pattern permutations:`);for(let r of e)console.log(`${r.pattern.join("-")}: ${r.permutations.toLocaleString()}`)},or=()=>{let e=er(),r=rr();if(k){Y({patterns:r,segments:e});return}tr(e),ar(r)},ir=e=>{let r={pattern:e,permutations:d(x({pattern:e}))};if(k){Y(r);return}console.log(`${r.pattern.join("-")}: ${r.permutations.toLocaleString()}`)},nr=e=>{let r={permutations:d(x({segments:e})),segments:e};if(k){Y(r);return}console.log(`${r.segments} words: ${r.permutations.toLocaleString()}`)},sr=()=>{if(w!==void 0)throw new Error("--max-length is not supported with --permutations");if(v!==void 0&&l.pattern){ir(l.pattern);return}if(b!==void 0&&l.segments!==void 0){nr(l.segments);return}or()};try{b=f("segments","s"),v=f("pattern","t"),ae=te("word-list","w"),V=te("omit","o"),w=f("max-length","m");let e=f("separator","p");b!==void 0&&(l.segments=Number.parseInt(b,10)),v!==void 0&&(l.pattern=Qe(v)),e!==void 0&&(l.separator=e),w!==void 0&&(l.maxLength=Number.parseInt(w,10));let r=Xe(ae);if(r&&(l.wordLists=r),V.length>0&&(l.omit=V.flatMap(G)),k&&!oe)throw new Error("--json is only supported with --permutations");oe&&(sr(),process.exit(0)),console.log(re(l))}catch(e){console.error(e instanceof Error?e.message:e),process.exit(1)}
|
package/dist/cli.mjs
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as
|
|
2
|
+
import{a as P,b as i}from"./chunk-I6RQ6IVV.mjs";var o=process.argv.slice(2),O=new Set(["--help","-h","--json","--max-length","-m","--omit","-o","--pattern","-t","--permutations","--segments","-s","--separator","-p","--word-list","-w"]),$=(t,e)=>{let n=o[t+1];if(n===void 0||O.has(n))throw new Error(`--${e} requires a value`);return n},a=(t,e)=>{for(let n=0;n<o.length;n+=1)if(o[n]===`--${t}`||o[n]===`-${e}`)return $(n,t)},b=(t,e)=>{let n=[];for(let r=0;r<o.length;r+=1)(o[r]===`--${t}`||o[r]===`-${e}`)&&n.push($(r,t));return n};(o.includes("--help")||o.includes("-h"))&&(console.log(`Usage: joyful [options]
|
|
3
3
|
|
|
4
4
|
Options:
|
|
5
|
-
-s, --segments <number>
|
|
6
|
-
-t, --pattern <categories>
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
-s, --segments <number> Number of words to generate (default: 2)
|
|
6
|
+
-t, --pattern <categories> Category pattern, comma-separated
|
|
7
|
+
-w, --word-list <name=words> Custom list, comma-separated; repeatable
|
|
8
|
+
-o, --omit <words> Words to omit, comma-separated; repeatable
|
|
9
|
+
-p, --separator <string> Separator between words (default: "-")
|
|
10
|
+
-m, --max-length <number> Maximum length of the result
|
|
11
|
+
--permutations Calculate possible permutations
|
|
12
|
+
--json Output permutation results as JSON
|
|
13
|
+
-h, --help Show this help message`),process.exit(0));var x=t=>o.includes(`--${t}`),u,m,L=[],f=[],l,S=x("permutations"),p=x("json"),w=t=>t.split(",").map(e=>e.trim()).filter(Boolean),J=t=>w(t),v=t=>{var n;if(t.length===0)return;let e={};for(let r of t){let d=r.indexOf("=");if(d<=0)throw new Error('--word-list must use the format "name=word,word"');let c=r.slice(0,d).trim(),y=w(r.slice(d+1));if(y.length===0)throw new Error(`Custom word list "${c}" must include words`);e[c]=[...(n=e[c])!=null?n:[],...y]}return e},s={},C=[["adjective","animal"],["color","nature","animal"],["city","nature","space"]],h=t=>{console.log(JSON.stringify(t,null,2))},g=(t={})=>({omit:s.omit,pattern:t.pattern,segments:t.segments,wordLists:s.wordLists}),R=()=>[2,3,4,5].map(t=>({permutations:i(g({segments:t})),segments:t})),j=()=>C.map(t=>({pattern:t,permutations:i(g({pattern:t}))})),W=t=>{console.log("Possible permutations:");for(let e of t)console.log(`${e.segments} words: ${e.permutations.toLocaleString()}`)},E=t=>{console.log(`
|
|
14
|
+
Pattern permutations:`);for(let e of t)console.log(`${e.pattern.join("-")}: ${e.permutations.toLocaleString()}`)},F=()=>{let t=R(),e=j();if(p){h({patterns:e,segments:t});return}W(t),E(e)},N=t=>{let e={pattern:t,permutations:i(g({pattern:t}))};if(p){h(e);return}console.log(`${e.pattern.join("-")}: ${e.permutations.toLocaleString()}`)},I=t=>{let e={permutations:i(g({segments:t})),segments:t};if(p){h(e);return}console.log(`${e.segments} words: ${e.permutations.toLocaleString()}`)},k=()=>{if(l!==void 0)throw new Error("--max-length is not supported with --permutations");if(m!==void 0&&s.pattern){N(s.pattern);return}if(u!==void 0&&s.segments!==void 0){I(s.segments);return}F()};try{u=a("segments","s"),m=a("pattern","t"),L=b("word-list","w"),f=b("omit","o"),l=a("max-length","m");let t=a("separator","p");u!==void 0&&(s.segments=Number.parseInt(u,10)),m!==void 0&&(s.pattern=J(m)),t!==void 0&&(s.separator=t),l!==void 0&&(s.maxLength=Number.parseInt(l,10));let e=v(L);if(e&&(s.wordLists=e),f.length>0&&(s.omit=f.flatMap(w)),p&&!S)throw new Error("--json is only supported with --permutations");S&&(k(),process.exit(0)),console.log(P(s))}catch(t){console.error(t instanceof Error?t.message:t),process.exit(1)}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
type JoyfulWordLists = Record<string, readonly string[]>;
|
|
2
|
+
interface BaseJoyfulOptions {
|
|
2
3
|
maxLength?: number;
|
|
3
|
-
|
|
4
|
+
omit?: readonly string[];
|
|
4
5
|
segments?: number;
|
|
5
6
|
separator?: string;
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
+
type JoyfulOptions = (BaseJoyfulOptions & {
|
|
9
|
+
pattern?: readonly JoyfulCategory[];
|
|
10
|
+
wordLists?: undefined;
|
|
11
|
+
}) | (BaseJoyfulOptions & {
|
|
12
|
+
pattern?: readonly string[];
|
|
13
|
+
wordLists: JoyfulWordLists;
|
|
14
|
+
});
|
|
15
|
+
type PermutationsOptions = {
|
|
16
|
+
omit?: readonly string[];
|
|
8
17
|
pattern?: readonly JoyfulCategory[];
|
|
9
18
|
segments?: number;
|
|
10
|
-
|
|
19
|
+
wordLists?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
omit?: readonly string[];
|
|
22
|
+
pattern?: readonly string[];
|
|
23
|
+
segments?: number;
|
|
24
|
+
wordLists: JoyfulWordLists;
|
|
25
|
+
};
|
|
11
26
|
declare const categoryWordLists: {
|
|
12
27
|
adjective: string[];
|
|
13
28
|
animal: string[];
|
|
@@ -33,4 +48,4 @@ type JoyfulCategory = keyof typeof categoryWordLists;
|
|
|
33
48
|
declare const joyful: (options?: JoyfulOptions) => string;
|
|
34
49
|
declare const permutations: (options?: PermutationsOptions) => number;
|
|
35
50
|
|
|
36
|
-
export { type JoyfulCategory, type JoyfulOptions, type PermutationsOptions, joyful, permutations };
|
|
51
|
+
export { type JoyfulCategory, type JoyfulOptions, type JoyfulWordLists, type PermutationsOptions, joyful, permutations };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
type JoyfulWordLists = Record<string, readonly string[]>;
|
|
2
|
+
interface BaseJoyfulOptions {
|
|
2
3
|
maxLength?: number;
|
|
3
|
-
|
|
4
|
+
omit?: readonly string[];
|
|
4
5
|
segments?: number;
|
|
5
6
|
separator?: string;
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
+
type JoyfulOptions = (BaseJoyfulOptions & {
|
|
9
|
+
pattern?: readonly JoyfulCategory[];
|
|
10
|
+
wordLists?: undefined;
|
|
11
|
+
}) | (BaseJoyfulOptions & {
|
|
12
|
+
pattern?: readonly string[];
|
|
13
|
+
wordLists: JoyfulWordLists;
|
|
14
|
+
});
|
|
15
|
+
type PermutationsOptions = {
|
|
16
|
+
omit?: readonly string[];
|
|
8
17
|
pattern?: readonly JoyfulCategory[];
|
|
9
18
|
segments?: number;
|
|
10
|
-
|
|
19
|
+
wordLists?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
omit?: readonly string[];
|
|
22
|
+
pattern?: readonly string[];
|
|
23
|
+
segments?: number;
|
|
24
|
+
wordLists: JoyfulWordLists;
|
|
25
|
+
};
|
|
11
26
|
declare const categoryWordLists: {
|
|
12
27
|
adjective: string[];
|
|
13
28
|
animal: string[];
|
|
@@ -33,4 +48,4 @@ type JoyfulCategory = keyof typeof categoryWordLists;
|
|
|
33
48
|
declare const joyful: (options?: JoyfulOptions) => string;
|
|
34
49
|
declare const permutations: (options?: PermutationsOptions) => number;
|
|
35
50
|
|
|
36
|
-
export { type JoyfulCategory, type JoyfulOptions, type PermutationsOptions, joyful, permutations };
|
|
51
|
+
export { type JoyfulCategory, type JoyfulOptions, type JoyfulWordLists, type PermutationsOptions, joyful, permutations };
|