/
aqa
/
claude-code
Обзор
Документация
Войти
/
aqa
/
claude-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
utils/words.ts
800 строк
11 KB
kuberwastaken
new initial commit (history rewritten)
01 апр 2026, 14:57
01 апр 2026, 14:57
c1996f2
Код
Авторство
О чём код?
/** * Random word slug generator for plan IDs * Inspired by https://github.com/nas5w/random-word-slugs * with Claude-flavored words */ import { randomBytes } from 'crypto' // Adjectives for slug generation - whimsical and delightful const ADJECTIVES = [ // Classic pleasant adjectives 'abundant', 'ancient', 'bright', 'calm', 'cheerful', 'clever', 'cozy', 'curious', 'dapper', 'dazzling', 'deep', 'delightful', 'eager', 'elegant', 'enchanted', 'fancy', 'fluffy', 'gentle', 'gleaming', 'golden', 'graceful', 'happy', 'hidden', 'humble', 'jolly', 'joyful', 'keen', 'kind', 'lively', 'lovely', 'lucky', 'luminous', 'magical', 'majestic', 'mellow', 'merry', 'mighty', 'misty', 'noble', 'peaceful', 'playful', 'polished', 'precious', 'proud', 'quiet', 'quirky', 'radiant', 'rosy', 'serene', 'shiny', 'silly', 'sleepy', 'smooth', 'snazzy', 'snug', 'snuggly', 'soft', 'sparkling', 'spicy', 'splendid', 'sprightly', 'starry', 'steady', 'sunny', 'swift', 'tender', 'tidy', 'toasty', 'tranquil', 'twinkly', 'valiant', 'vast', 'velvet', 'vivid', 'warm', 'whimsical', 'wild', 'wise', 'witty', 'wondrous', 'zany', 'zesty', 'zippy', // Whimsical / magical 'breezy', 'bubbly', 'buzzing', 'cheeky', 'cosmic', 'cozy', 'crispy', 'crystalline', 'cuddly', 'drifting', 'dreamy', 'effervescent', 'ethereal', 'fizzy', 'flickering', 'floating', 'floofy', 'fluttering', 'foamy', 'frolicking', 'fuzzy', 'giggly', 'glimmering', 'glistening', 'glittery', 'glowing', 'goofy', 'groovy', 'harmonic', 'hazy', 'humming', 'iridescent', 'jaunty', 'jazzy', 'jiggly', 'melodic', 'moonlit', 'mossy', 'nifty', 'peppy', 'prancy', 'purrfect', 'purring', 'quizzical', 'rippling', 'rustling', 'shimmering', 'shimmying', 'snappy', 'snoopy', 'squishy', 'swirling', 'ticklish', 'tingly', 'twinkling', 'velvety', 'wiggly', 'wobbly', 'woolly', 'zazzy', // Programming concepts 'abstract', 'adaptive', 'agile', 'async', 'atomic', 'binary', 'cached', 'compiled', 'composed', 'compressed', 'concurrent', 'cryptic', 'curried', 'declarative', 'delegated', 'distributed', 'dynamic', 'eager', 'elegant', 'encapsulated', 'enumerated', 'eventual', 'expressive', 'federated', 'functional', 'generic', 'greedy', 'hashed', 'idempotent', 'immutable', 'imperative', 'indexed', 'inherited', 'iterative', 'lazy', 'lexical', 'linear', 'linked', 'logical', 'memoized', 'modular', 'mutable', 'nested', 'optimized', 'parallel', 'parsed', 'partitioned', 'piped', 'polymorphic', 'pure', 'reactive', 'recursive', 'refactored', 'reflective', 'replicated', 'resilient', 'robust', 'scalable', 'sequential', 'serialized', 'sharded', 'sorted', 'staged', 'stateful', 'stateless', 'streamed', 'structured', 'synchronous', 'synthetic', 'temporal', 'transient', 'typed', 'unified', 'validated', 'vectorized', 'virtual', ] as const // Nouns for slug generation - whimsical creatures, nature, and fun objects const NOUNS = [ // Nature & cosmic 'aurora', 'avalanche', 'blossom', 'breeze', 'brook', 'bubble', 'canyon', 'cascade', 'cloud', 'clover', 'comet', 'coral', 'cosmos', 'creek', 'crescent', 'crystal', 'dawn', 'dewdrop', 'dusk', 'eclipse', 'ember', 'feather', 'fern', 'firefly', 'flame', 'flurry', 'fog', 'forest', 'frost', 'galaxy', 'garden', 'glacier', 'glade', 'grove', 'harbor', 'horizon', 'island', 'lagoon', 'lake', 'leaf', 'lightning', 'meadow', 'meteor', 'mist', 'moon', 'moonbeam', 'mountain', 'nebula', 'nova', 'ocean', 'orbit', 'pebble', 'petal', 'pine', 'planet', 'pond', 'puddle', 'quasar', 'rain', 'rainbow', 'reef', 'ripple', 'river', 'shore', 'sky', 'snowflake', 'spark', 'spring', 'star', 'stardust', 'starlight', 'storm', 'stream', 'summit', 'sun', 'sunbeam', 'sunrise', 'sunset', 'thunder', 'tide', 'twilight', 'valley', 'volcano', 'waterfall', 'wave', 'willow', 'wind', // Cute creatures 'alpaca', 'axolotl', 'badger', 'bear', 'beaver', 'bee', 'bird', 'bumblebee', 'bunny', 'cat', 'chipmunk', 'crab', 'crane', 'deer', 'dolphin', 'dove', 'dragon', 'dragonfly', 'duckling', 'eagle', 'elephant', 'falcon', 'finch', 'flamingo', 'fox', 'frog', 'giraffe', 'goose', 'hamster', 'hare', 'hedgehog', 'hippo', 'hummingbird', 'jellyfish', 'kitten', 'koala', 'ladybug', 'lark', 'lemur', 'llama', 'lobster', 'lynx', 'manatee', 'meerkat', 'moth', 'narwhal', 'newt', 'octopus', 'otter', 'owl', 'panda', 'parrot', 'peacock', 'pelican', 'penguin', 'phoenix', 'piglet', 'platypus', 'pony', 'porcupine', 'puffin', 'puppy', 'quail', 'quokka', 'rabbit', 'raccoon', 'raven', 'robin', 'salamander', 'seahorse', 'seal', 'sloth', 'snail', 'sparrow', 'sphinx', 'squid', 'squirrel', 'starfish', 'swan', 'tiger', 'toucan', 'turtle', 'unicorn', 'walrus', 'whale', 'wolf', 'wombat', 'wren', 'yeti', 'zebra', // Fun objects & concepts 'acorn', 'anchor', 'balloon', 'beacon', 'biscuit', 'blanket', 'bonbon', 'book', 'boot', 'cake', 'candle', 'candy', 'castle', 'charm', 'clock', 'cocoa', 'cookie', 'crayon', 'crown', 'cupcake', 'donut', 'dream', 'fairy', 'fiddle', 'flask', 'flute', 'fountain', 'gadget', 'gem', 'gizmo', 'globe', 'goblet', 'hammock', 'harp', 'haven', 'hearth', 'honey', 'journal', 'kazoo', 'kettle', 'key', 'kite', 'lantern', 'lemon', 'lighthouse', 'locket', 'lollipop', 'mango', 'map', 'marble', 'marshmallow', 'melody', 'mitten', 'mochi', 'muffin', 'music', 'nest', 'noodle', 'oasis', 'origami', 'pancake', 'parasol', 'peach', 'pearl', 'pebble', 'pie', 'pillow', 'pinwheel', 'pixel', 'pizza', 'plum', 'popcorn', 'pretzel', 'prism', 'pudding', 'pumpkin', 'puzzle', 'quiche', 'quill', 'quilt', 'riddle', 'rocket', 'rose', 'scone', 'scroll', 'shell', 'sketch', 'snowglobe', 'sonnet', 'sparkle', 'spindle', 'sprout', 'sundae', 'swing', 'taco', 'teacup', 'teapot', 'thimble', 'toast', 'token', 'tome', 'tower', 'treasure', 'treehouse', 'trinket', 'truffle', 'tulip', 'umbrella', 'waffle', 'wand', 'whisper', 'whistle', 'widget', 'wreath', 'zephyr', // Computer scientists 'abelson', 'adleman', 'aho', 'allen', 'babbage', 'bachman', 'backus', 'barto', 'bengio', 'bentley', 'blum', 'boole', 'brooks', 'catmull', 'cerf', 'cherny', 'church', 'clarke', 'cocke', 'codd', 'conway', 'cook', 'corbato', 'cray', 'curry', 'dahl', 'diffie', 'dijkstra', 'dongarra', 'eich', 'emerson', 'engelbart', 'feigenbaum', 'floyd', 'gosling', 'graham', 'gray', 'hamming', 'hanrahan', 'hartmanis', 'hejlsberg', 'hellman', 'hennessy', 'hickey', 'hinton', 'hoare', 'hollerith', 'hopcroft', 'hopper', 'iverson', 'kahan', 'kahn', 'karp', 'kay', 'kernighan', 'knuth', 'kurzweil', 'lamport', 'lampson', 'lecun', 'lerdorf', 'liskov', 'lovelace', 'matsumoto', 'mccarthy', 'metcalfe', 'micali', 'milner', 'minsky', 'moler', 'moore', 'naur', 'neumann', 'newell', 'nygaard', 'papert', 'parnas', 'pascal', 'patterson', 'pearl', 'perlis', 'pike', 'pnueli', 'rabin', 'reddy', 'ritchie', 'rivest', 'rossum', 'russell', 'scott', 'sedgewick', 'shamir', 'shannon', 'sifakis', 'simon', 'stallman', 'stearns', 'steele', 'stonebraker', 'stroustrup', 'sutherland', 'sutton', 'tarjan', 'thacker', 'thompson', 'torvalds', 'turing', 'ullman', 'valiant', 'wadler', 'wall', 'wigderson', 'wilkes', 'wilkinson', 'wirth', 'wozniak', 'yao', ] as const // Verbs for the middle word - whimsical action words const VERBS = [ 'baking', 'beaming', 'booping', 'bouncing', 'brewing', 'bubbling', 'chasing', 'churning', 'coalescing', 'conjuring', 'cooking', 'crafting', 'crunching', 'cuddling', 'dancing', 'dazzling', 'discovering', 'doodling', 'dreaming', 'drifting', 'enchanting', 'exploring', 'finding', 'floating', 'fluttering', 'foraging', 'forging', 'frolicking', 'gathering', 'giggling', 'gliding', 'greeting', 'growing', 'hatching', 'herding', 'honking', 'hopping', 'hugging', 'humming', 'imagining', 'inventing', 'jingling', 'juggling', 'jumping', 'kindling', 'knitting', 'launching', 'leaping', 'mapping', 'marinating', 'meandering', 'mixing', 'moseying', 'munching', 'napping', 'nibbling', 'noodling', 'orbiting', 'painting', 'percolating', 'petting', 'plotting', 'pondering', 'popping', 'prancing', 'purring', 'puzzling', 'questing', 'riding', 'roaming', 'rolling', 'sauteeing', 'scribbling', 'seeking', 'shimmying', 'singing', 'skipping', 'sleeping', 'snacking', 'sniffing', 'snuggling', 'soaring', 'sparking', 'spinning', 'splashing', 'sprouting', 'squishing', 'stargazing', 'stirring', 'strolling', 'swimming', 'swinging', 'tickling', 'tinkering', 'toasting', 'tumbling', 'twirling', 'waddling', 'wandering', 'watching', 'weaving', 'whistling', 'wibbling', 'wiggling', 'wishing', 'wobbling', 'wondering', 'yawning', 'zooming', ] as const /** * Generate a cryptographically random integer in the range [0, max) */ function randomInt(max: number): number { // Use crypto.randomBytes for better randomness than Math.random const bytes = randomBytes(4) const value = bytes.readUInt32BE(0) return value % max } /** * Pick a random element from an array */ function pickRandom<T>(array: readonly T[]): T { return array[randomInt(array.length)]! } /** * Generate a random word slug in the format "adjective-verb-noun" * Example: "gleaming-brewing-phoenix", "cosmic-pondering-lighthouse" */ export function generateWordSlug(): string { const adjective = pickRandom(ADJECTIVES) const verb = pickRandom(VERBS) const noun = pickRandom(NOUNS) return `${adjective}-${verb}-${noun}` } /** * Generate a shorter random word slug in the format "adjective-noun" * Example: "graceful-unicorn", "cosmic-lighthouse" */ export function generateShortWordSlug(): string { const adjective = pickRandom(ADJECTIVES) const noun = pickRandom(NOUNS) return `${adjective}-${noun}` }