@twardoch/namzy 1.0.19 → 1.0.21
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/dist/cli.js +19 -16
- package/dist/index.d.ts +7 -8
- package/dist/index.js +15 -21
- package/dist/mangle.d.ts +5 -14
- package/dist/mangle.js +30 -70
- package/dist/web.d.ts +1 -1
- package/dist/web.js +1 -1
- package/dist/wordlist.d.ts +2 -2
- package/dist/wordlist.js +200 -172
- package/package.json +1 -1
- package/src/cli.ts +20 -18
- package/src/index.ts +17 -25
- package/src/mangle.ts +30 -71
- package/src/web.ts +1 -1
- package/src/wordlist.ts +201 -172
package/dist/wordlist.js
CHANGED
|
@@ -1,174 +1,202 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
1
|
+
// this_file: src/wordlist.ts
|
|
2
|
+
// AUTO-GENERATED by scripts/generate_data.py. Do not edit.
|
|
3
|
+
export const STEMS = [
|
|
4
|
+
"paris", "tokyo", "milan", "rome", "oslo", "lima", "baku", "doha",
|
|
5
|
+
"kiev", "riga", "sofia", "kabul", "dakar", "cairo", "accra", "perth",
|
|
6
|
+
"miami", "boston", "dallas", "denver", "vegas", "omaha", "tulsa", "fargo",
|
|
7
|
+
"salem", "mobile", "tucson", "ottawa", "calgary", "dover", "leeds", "york",
|
|
8
|
+
"derby", "oxford", "bristol", "cardiff", "bath", "hull", "kent", "devon",
|
|
9
|
+
"essex", "berlin", "munich", "bremen", "bonn", "jena", "mainz", "madrid",
|
|
10
|
+
"sevilla", "malaga", "bilbao", "toledo", "oviedo", "lisbon", "porto", "faro",
|
|
11
|
+
"evora", "braga", "athens", "sparta", "rhodes", "crete", "naxos", "delos",
|
|
12
|
+
"rabat", "tangier", "oran", "tunis", "sana", "mecca", "jeddah", "aden",
|
|
13
|
+
"dubai", "manama", "beirut", "amman", "aleppo", "mosul", "basra", "shiraz",
|
|
14
|
+
"tabriz", "herat", "lahore", "dhaka", "mumbai", "delhi", "jaipur", "agra",
|
|
15
|
+
"chennai", "pune", "surat", "bhopal", "indore", "nagpur", "patna", "kandy",
|
|
16
|
+
"galle", "lhasa", "hanoi", "manila", "cebu", "davao", "jakarta", "bandung",
|
|
17
|
+
"medan", "penang", "melaka", "beijing", "wuhan", "harbin", "chengdu", "ningbo",
|
|
18
|
+
"xian", "dalian", "taipei", "seoul", "busan", "daegu", "sapporo", "sendai",
|
|
19
|
+
"nagoya", "kobe", "niigata", "sydney", "hobart", "darwin", "cairns", "mackay",
|
|
20
|
+
"alice", "auckland", "nelson", "napier", "cuzco", "quito", "bogota", "cali",
|
|
21
|
+
"caracas", "recife", "manaus", "natal", "asuncion", "santiago", "rosario", "havana",
|
|
22
|
+
"nassau", "panama", "leon", "merida", "oaxaca", "puebla", "cancun", "austin",
|
|
23
|
+
"houston", "phoenix", "fresno", "oakland", "raleigh", "durham", "nashville", "eugene",
|
|
24
|
+
"boise", "reno", "juneau", "wichita", "topeka", "lincoln", "helena", "pierre",
|
|
25
|
+
"dublin", "galway", "cork", "bergen", "tromso", "aarhus", "malmo", "turku",
|
|
26
|
+
"tampere", "kazan", "samara", "tomsk", "omsk", "perm", "minsk", "vilnius",
|
|
27
|
+
"tallinn", "warsaw", "krakow", "brno", "linz", "graz", "salzburg", "basel",
|
|
28
|
+
"geneva", "lyon", "nantes", "nice", "dijon", "reims", "lille", "rouen",
|
|
29
|
+
"nile", "amazon", "volga", "rhine", "danube", "seine", "thames", "tiber",
|
|
30
|
+
"tigris", "ganges", "indus", "mekong", "yukon", "hudson", "congo", "niger",
|
|
31
|
+
"zambezi", "orinoco", "parana", "douro", "tagus", "ebro", "loire", "elbe",
|
|
32
|
+
"oder", "vistula", "dnieper", "don", "ural", "lena", "ob", "amur",
|
|
33
|
+
"yangtze", "huang", "chao", "brahma", "yamuna", "kaveri", "jordan", "euphrates",
|
|
34
|
+
"orange", "limpopo", "senegal", "gambia", "okavango", "murray", "darling", "colorado",
|
|
35
|
+
"snake", "platte", "ohio", "missouri", "illinois", "arkansas", "red", "brazos",
|
|
36
|
+
"pecos", "rio", "gila", "salmon", "willamette", "sacramento", "klamath", "fraser",
|
|
37
|
+
"churchill", "peace", "mackenzie", "liard", "skeena", "thompson", "saskatchewan", "athabasca",
|
|
38
|
+
"saint", "lawrence", "saguenay", "copper", "kobuk", "noatak", "yampa", "green",
|
|
39
|
+
"roanoke", "savannah", "neuse", "cape", "pearl", "alabama", "tombigbee", "chattahoochee",
|
|
40
|
+
"suwannee", "santee", "broad", "oconee", "black", "tar", "peedee", "yadkin",
|
|
41
|
+
"catawba", "cumberland", "tennessee", "kanawha", "shenandoah", "james", "potomac", "susquehanna",
|
|
42
|
+
"delaware", "connecticut", "penobscot", "kennebec", "androscoggin", "merrimack", "housatonic", "genesee",
|
|
43
|
+
"mohawk", "oswego", "niagara", "maumee", "wabash", "cuyahoga", "muskingum", "scioto",
|
|
44
|
+
"licking", "barren", "rock", "fox", "sangamon", "iowa", "cedar", "des",
|
|
45
|
+
"moines", "wapsipinicon", "skunk", "chariton", "grand", "gasconade", "meramec", "current",
|
|
46
|
+
"eleven", "white", "cache", "buffalo", "neosho", "verdigris", "cimarron", "washita",
|
|
47
|
+
"canadian", "salt", "nueces", "frio", "llano", "san", "sabine", "trinity",
|
|
48
|
+
"neches", "lavaca", "guadalupe", "medina", "concho", "po", "arno", "tevere",
|
|
49
|
+
"adige", "taro", "ticino", "oglio", "adda", "mincio", "piave", "brenta",
|
|
50
|
+
"ems", "weser", "saale", "havel", "spree", "main", "neckar", "lech",
|
|
51
|
+
"isar", "inn", "drava", "sava", "morava", "tisza", "prut", "siret",
|
|
52
|
+
"olt", "mures", "somes", "argesh", "struma", "maritsa", "vardar", "drin",
|
|
53
|
+
"tay", "clyde", "azure", "amber", "coral", "indigo", "ivory", "jade",
|
|
54
|
+
"lilac", "mauve", "ochre", "olive", "ruby", "saffron", "scarlet", "sepia",
|
|
55
|
+
"teal", "violet", "umber", "vermilion", "plum", "cobalt", "cyan", "magenta",
|
|
56
|
+
"crimson", "maroon", "navy", "beige", "linen", "mint", "peach", "rose",
|
|
57
|
+
"sand", "sky", "slate", "snow", "tan", "wine", "bronze", "gold",
|
|
58
|
+
"silver", "brass", "cherry", "chestnut", "hazel", "honey", "lemon", "lime",
|
|
59
|
+
"cream", "cocoa", "coffee", "mocha", "russet", "sage", "taupe", "burgundy",
|
|
60
|
+
"claret", "emerald", "fern", "flax", "ginger", "grape", "khaki", "orchid",
|
|
61
|
+
"orchard", "fuchsia", "magnolia", "chartreuse", "moss", "myrtle", "pumpkin", "raspberry",
|
|
62
|
+
"rust", "seagreen", "seashell", "sienna", "sorrel", "spruce", "squash", "tangerine",
|
|
63
|
+
"thistle", "topaz", "turquoise", "viridian", "wheat", "zaffre", "puce", "mulberry",
|
|
64
|
+
"damask", "carmine", "cerise", "garnet", "hyacinth", "jasmine", "lavender", "melon",
|
|
65
|
+
"mustard", "nutmeg", "paprika", "periwinkle", "persimmon", "pewter", "pomegranate", "poppy",
|
|
66
|
+
"quince", "rosewood", "ruche", "saddle", "sangria", "seafoam", "shamrock", "smoke",
|
|
67
|
+
"spearmint", "sterling", "sunflower", "terra", "tomato", "vanilla", "veronica", "wisteria",
|
|
68
|
+
"xanadu", "zinnia", "absinthe", "alabaster", "apricot", "aqua", "aquamarine", "asparagus",
|
|
69
|
+
"avocado", "azalea", "bistre", "bittersweet", "blush", "bordeaux", "brick", "buff",
|
|
70
|
+
"bumblebee", "butter", "byzantium", "canary", "cardinal", "celadon", "celeste", "chambray",
|
|
71
|
+
"chamois", "cinnabar", "citrine", "clover", "coquelicot", "daffodil", "dandelion", "eggshell",
|
|
72
|
+
"electric", "firebrick", "flame", "glaucous", "goldenrod", "gunmetal", "heliotrope", "iceberg",
|
|
73
|
+
"icterine", "isabelline", "imperial", "jet", "juniper", "lemonade", "mahogany", "malachite",
|
|
74
|
+
"mango", "midnight", "moonbeam", "morello", "nutbrown", "obsidian", "opal", "opaline",
|
|
75
|
+
"oyster", "paisley", "papaya", "pastel", "pink", "pistachio", "platinum", "porcelain",
|
|
76
|
+
"primrose", "prussian", "quartz", "quicksilver", "rouge", "sable", "sapphire", "seal",
|
|
77
|
+
"shadow", "starlight", "sunset", "thunder", "umbra", "walnut", "brave", "bright",
|
|
78
|
+
"calm", "clever", "cool", "deep", "eager", "fair", "fine", "glad",
|
|
79
|
+
"happy", "keen", "kind", "lively", "merry", "neat", "noble", "proud",
|
|
80
|
+
"quick", "quiet", "swift", "warm", "wise", "witty", "young", "zest",
|
|
81
|
+
"jolly", "lucky", "mighty", "smart", "snappy", "spry", "sunny", "super",
|
|
82
|
+
"tidy", "true", "vivid", "wild", "zippy", "able", "active", "alert",
|
|
83
|
+
"ample", "apt", "artful", "balmy", "bold", "breezy", "brisk", "chic",
|
|
84
|
+
"chill", "cosy", "crisp", "dapper", "dashing", "dazzling", "deft", "divine",
|
|
85
|
+
"dreamy", "dynamic", "earnest", "easy", "elated", "elegant", "epic", "exact",
|
|
86
|
+
"fancy", "fluent", "fresh", "friendly", "funky", "gallant", "gentle", "gifted",
|
|
87
|
+
"glossy", "graceful", "hardy", "hearty", "honest", "hopeful", "humble", "jaunty",
|
|
88
|
+
"jazzy", "jovial", "joyful", "jubilant", "lavish", "legit", "liberal", "light",
|
|
89
|
+
"limber", "lithe", "lovely", "loyal", "lucid", "lush", "magic", "mellow",
|
|
90
|
+
"mild", "modest", "nifty", "nimble", "nimbly", "notable", "peppy", "perky",
|
|
91
|
+
"placid", "plucky", "plush", "polished", "polite", "posh", "prime", "pristine",
|
|
92
|
+
"prompt", "pure", "quaint", "quirky", "radiant", "rapid", "rare", "regal",
|
|
93
|
+
"reliable", "robust", "rosy", "royal", "rugged", "sassy", "savvy", "serene",
|
|
94
|
+
"sharp", "shiny", "silky", "sincere", "sleek", "slick", "smooth", "snug",
|
|
95
|
+
"solid", "sparkly", "spirited", "splendid", "spotless", "spunky", "stable", "stately",
|
|
96
|
+
"steady", "stellar", "stoic", "strong", "stunning", "stylish", "suave", "subtle",
|
|
97
|
+
"sturdy", "supple", "svelte", "tactful", "tender", "thrifty", "timeless", "top",
|
|
98
|
+
"tough", "tranquil", "trendy", "trusty", "upbeat", "valiant", "velvet", "warmhearted",
|
|
99
|
+
"welcoming", "worthy", "zealous", "ace", "adept", "agile", "airy", "ardent",
|
|
100
|
+
"astute", "beaming", "benign", "bonny", "buoyant", "candid", "charming", "cheery",
|
|
101
|
+
"chipper", "choice", "classic", "clean", "cogent", "comfy", "cordial", "cosmic",
|
|
102
|
+
"cute", "daring", "dauntless", "harbor", "haven", "cove", "glade", "meadow",
|
|
103
|
+
"grove", "summit", "ridge", "peak", "canyon", "vista", "oasis", "sanctum",
|
|
104
|
+
"atrium", "plaza", "forum", "agora", "portal", "beacon", "torch", "ember",
|
|
105
|
+
"spark", "prism", "orbit", "comet", "nebula", "pulsar", "quasar", "zenith",
|
|
106
|
+
"apex", "crown", "laurel", "medal", "trophy", "gem", "jewel", "charm",
|
|
107
|
+
"token", "coin", "badge", "crest", "emblem", "sigil", "banner", "pennant",
|
|
108
|
+
"arrow", "anchor", "compass", "keystone", "cornerstone", "pillar", "lantern", "lighthouse",
|
|
109
|
+
"keep", "tower", "castle", "bastion", "citadel", "fortress", "manor", "cottage",
|
|
110
|
+
"cabin", "lodge", "chalet", "villa", "palace", "temple", "shrine", "altar",
|
|
111
|
+
"chapel", "cathedral", "basilica", "garden", "grotto", "fountain", "spring", "brook",
|
|
112
|
+
"creek", "falls", "rapids", "tide", "wave", "swell", "shell", "reef",
|
|
113
|
+
"port", "pier", "dock", "wharf", "marina", "island", "isle", "archipelago",
|
|
114
|
+
"atoll", "cliff", "bluff", "mesa", "plateau", "valley", "vale", "dale",
|
|
115
|
+
"fen", "heath", "moor", "savanna", "prairie", "tundra", "delta", "lagoon",
|
|
116
|
+
"estuary", "fjord", "strait", "sound", "channel", "bay", "gulf", "inlet",
|
|
117
|
+
"lakeshore", "beach", "dune", "cinder", "pumice", "basalt", "granite", "crystal",
|
|
118
|
+
"agate", "onyx", "zircon", "spinel", "beryl", "peridot", "tourmaline", "jasper",
|
|
119
|
+
"moonstone", "sunstone", "bloodstone", "amethyst", "lapis", "carnelian", "chalcedony", "tigereye",
|
|
120
|
+
"hematite", "meadowlark", "falcon", "eagle", "hawk", "swan", "crane", "heron",
|
|
121
|
+
"robin", "wren", "finch", "sparrow", "sunbeam", "dawn", "dusk", "twilight",
|
|
122
|
+
"moonlight", "aurora", "rainbow", "zephyr", "breeze", "gale", "storm", "lightning",
|
|
123
|
+
"whirlwind", "tempest", "meridian", "solstice", "equinox", "talisman", "amulet", "scepter",
|
|
124
|
+
"chalice", "goblet", "flute", "lyre", "harp", "drum", "bell", "chime",
|
|
125
|
+
"echo", "soar", "glide", "drift", "float", "flow", "leap", "dash",
|
|
126
|
+
"sprint", "march", "wander", "roam", "explore", "voyage", "venture", "journey",
|
|
127
|
+
"travel", "embark", "launch", "begin", "start", "ignite", "kindle", "awaken",
|
|
128
|
+
"arise", "rise", "climb", "ascend", "conquer", "triumph", "flourish", "thrive",
|
|
129
|
+
"prosper", "bloom", "blossom", "flower", "grow", "expand", "evolve", "elevate",
|
|
130
|
+
"empower", "energize", "inspire", "uplift", "cherish", "nurture", "foster", "shelter",
|
|
131
|
+
"guard", "protect", "uphold", "support", "sustain", "balance", "harmonize", "align",
|
|
132
|
+
"tune", "compose", "craft", "fashion", "forge", "sculpt", "shape", "mold",
|
|
133
|
+
"weave", "thread", "knit", "stitch", "braid", "binds", "build", "raise",
|
|
134
|
+
"rear", "render", "discover", "unveil", "reveal", "disclose", "unfold", "open",
|
|
135
|
+
"share", "spread", "broadcast", "gather", "collect", "compile", "assemble", "unite",
|
|
136
|
+
"bond", "join", "meld", "merge", "blend", "fuse", "synthesize", "integrate",
|
|
137
|
+
"connect", "link", "bridge", "converge", "rally", "succeed", "achieve", "attain",
|
|
138
|
+
"master", "prevail", "excel", "shine", "glow", "gleam", "glimmer", "sparkle",
|
|
139
|
+
"radiate", "beam", "flash", "flutter", "dart", "dive", "surge", "swirl",
|
|
140
|
+
"spin", "twirl", "pivot", "hover", "linger", "pirouette", "swoop", "swivel",
|
|
141
|
+
"cascade", "tumble", "vault", "bound", "bounce", "skip", "prance", "gambol",
|
|
142
|
+
"caper", "romp", "frolic", "cavort", "dance", "sway", "glisten", "shimmer",
|
|
143
|
+
"scintillate", "twinkle", "dazzle", "illuminate", "brighten", "amplify", "boost", "charge",
|
|
144
|
+
"fortify", "embolden", "enliven", "enchant", "captivate", "beguile", "mesmerize", "delight",
|
|
145
|
+
"gladden", "enrich", "endow", "grant", "gift", "bestow", "yield", "deliver",
|
|
146
|
+
"produce", "furnish", "supply", "provide", "cultivate", "plant", "sow", "reap",
|
|
147
|
+
"harvest", "till", "tend", "mind", "heal", "mend", "renew", "restore",
|
|
148
|
+
"revive", "refresh", "rejuvenate", "quicken", "hasten", "propel", "thrust", "guide",
|
|
149
|
+
"steer", "navigate", "course", "chart", "map", "ada", "alex", "amy",
|
|
150
|
+
"ana", "avi", "ben", "bea", "cam", "dan", "dee", "eli",
|
|
151
|
+
"emma", "eva", "finn", "gus", "hugo", "ian", "iris", "ivan",
|
|
152
|
+
"jane", "juno", "kai", "kit", "liam", "lila", "luca", "lyra",
|
|
153
|
+
"maya", "mia", "milo", "nia", "noah", "nora", "oli", "omar",
|
|
154
|
+
"otto", "piper", "quinn", "rex", "ron", "sam", "sara", "seth",
|
|
155
|
+
"theo", "tom", "uma", "vera", "vic", "will", "xander", "yael",
|
|
156
|
+
"yuki", "zane", "zara", "alma", "anya", "beau", "cole", "cora",
|
|
157
|
+
"dane", "dora", "elsa", "enzo", "erin", "esme", "gabe", "gina",
|
|
158
|
+
"hank", "iggy", "inez", "ivy", "jack", "joel", "kade", "kara",
|
|
159
|
+
"kira", "kyle", "lana", "lars", "leah", "lily", "luna", "mack",
|
|
160
|
+
"maeve", "mads", "matt", "myra", "nash", "neil", "niko", "odin",
|
|
161
|
+
"oren", "orin", "pax", "pete", "raj", "rena", "rhys", "riya",
|
|
162
|
+
"rosa", "ruth", "ryan", "ryla", "shay", "simon", "sloan", "stef",
|
|
163
|
+
"tara", "teo", "tess", "thane", "tilda", "toby", "vance", "vita",
|
|
164
|
+
"vlad", "walt", "wes", "xenia", "yves", "zeke", "zion", "abe",
|
|
165
|
+
"alan", "amir", "andi", "arden", "aria", "ariel", "arlo", "asher",
|
|
166
|
+
"aster", "atticus", "august", "beck", "beth", "blake", "blanche", "bo",
|
|
167
|
+
"bridget", "bruno", "cael", "cain", "cal", "calla", "callie", "camilo",
|
|
168
|
+
"cara", "casey", "cass", "cato", "cecily", "celia", "celine", "cesar",
|
|
169
|
+
"chase", "clio", "colt", "cooper", "corin", "cyrus", "daisy", "dalia",
|
|
170
|
+
"dario", "darby", "dax", "desmond", "dexter", "diana", "dimitri", "dina",
|
|
171
|
+
"dom", "drew", "dru", "dylan", "eden", "edith", "elena", "elias",
|
|
172
|
+
"eliza", "elif", "ellis", "emery", "emil", "eric", "estes", "evan",
|
|
173
|
+
"ewan", "ezra",
|
|
87
174
|
];
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"desert", "dew", "diamond", "dovetail", "dragonfly", "dream",
|
|
116
|
-
"drifter", "dunecrest", "dusk", "echo", "elm", "fernleaf",
|
|
117
|
-
"firefly", "fjord", "flame", "flower", "flume", "forest",
|
|
118
|
-
"foxglove", "garden", "garnet", "geode", "glacier", "glimmer",
|
|
119
|
-
"goldfinch", "gravel", "greenwood", "griffin", "harborlight", "hearth",
|
|
120
|
-
"heather", "heron", "hill", "honey", "horizon", "icicle",
|
|
121
|
-
"ivory", "jewel", "kestrel", "lagoon", "laurelwood", "leaf",
|
|
122
|
-
"lighthouse", "lilac", "lotus", "meadowlark", "moon", "moss",
|
|
123
|
-
"myrtle", "nectar", "nightingale", "obsidian", "olive", "opal",
|
|
124
|
-
"orchard", "otter", "pebblebrook", "petal", "plume", "prairie",
|
|
125
|
-
"rain", "raven", "redwood", "reef", "ribbon", "root",
|
|
126
|
-
"rose", "ruby", "sail", "salt", "sapphire", "scarlet",
|
|
127
|
-
"seabird", "sequoia", "shadow", "shale", "shell", "shimmer",
|
|
128
|
-
"skylark", "slate", "smoke", "snow", "sparrowhawk", "spindle",
|
|
129
|
-
"spirit", "spring", "spruce", "star", "starlight", "storm",
|
|
130
|
-
"stream", "sunbeam", "sunset", "sycamore", "talon", "thicket",
|
|
131
|
-
"thistle", "thunderhead", "tidepool", "topaz", "trail", "valleyfield",
|
|
132
|
-
"velvet", "violet", "walnut", "waterfall", "wave", "wind",
|
|
133
|
-
"winter", "wolfram", "woodland", "zephyr", "ashwood", "bell",
|
|
134
|
-
"bird", "bloom", "branch", "bright", "brookside", "camp",
|
|
135
|
-
"campfire", "castle", "chime", "clay", "cloudbank", "coast",
|
|
136
|
-
"copperwood", "creek", "crown", "emberfall", "field", "firestone",
|
|
137
|
-
"flag", "fog", "fox", "gardenia", "gate", "glow",
|
|
138
|
-
"grass", "grovewood", "harborstone", "hilltop", "honeycomb", "island",
|
|
139
|
-
"kestrelwing", "lake", "leafwing", "marigold", "moonstone", "morning",
|
|
140
|
-
"acacia", "alpine", "amulet", "apple", "apricot", "arcade",
|
|
141
|
-
"arcadia", "archer", "argent", "armor", "asters", "aster",
|
|
142
|
-
"aurora", "awning", "badger", "bamboo", "barley", "basil",
|
|
143
|
-
"basket", "bayberry", "beech", "bellflower", "berry", "billet",
|
|
144
|
-
"biscuit", "blackbird", "bluebell", "bluejay", "bonnet", "bough",
|
|
145
|
-
"braid", "bread", "brick", "bridle", "brocade", "buckthorn",
|
|
146
|
-
"burrow", "buttercup", "cabochon", "campion", "canary", "caraway",
|
|
147
|
-
"catkin", "celeriac", "cello", "chanter", "chanticleer", "chestnut",
|
|
148
|
-
"citadel", "clementine", "cloverfield", "cobble", "codex", "columbine",
|
|
149
|
-
"corduroy", "cornflower", "courier", "coventry", "cove", "cowbell",
|
|
150
|
-
"crocus", "curlew", "cypress", "damask", "daffodil", "dandelion",
|
|
151
|
-
"dewdrop", "distaff", "driftwood", "eider", "elder", "elderberry",
|
|
152
|
-
"elfin", "emerald", "enamel", "equinox", "faience", "feather",
|
|
153
|
-
"fennel", "fiddle", "finch", "fir", "firwood", "flax",
|
|
154
|
-
"floret", "flute", "freesia", "frostline", "gable", "galax",
|
|
155
|
-
"garland", "gentian", "ginger", "gingham", "glenwood", "gosling",
|
|
156
|
-
"grain", "grebe", "halcyon", "hazelnut", "headland", "heliotrope",
|
|
157
|
-
"holly", "holystone", "honeydew", "hornbeam", "hyacinth", "inkwood",
|
|
158
|
-
"iris", "ironwood", "jasmine", "jennet", "jonquil", "kettle",
|
|
159
|
-
"kingsley", "laburnum", "lace", "ladle", "larkspur", "lavender",
|
|
160
|
-
"leather", "ledger", "lemongrass", "linnet", "lodestar", "loquat",
|
|
161
|
-
"lyre", "magnolia", "mandolin", "maple", "mariner", "marmot",
|
|
162
|
-
"mayflower", "meadowrun", "merlin", "mica", "milkweed", "millet",
|
|
163
|
-
"minnow", "mint", "mirabelle", "moonbeam", "moonrise", "moorland",
|
|
164
|
-
"mulberry", "nimbus", "nuthatch", "oatfield", "olivewood", "onyx",
|
|
165
|
-
"oriole", "oxbow", "pansy", "parchment", "partridge", "pear",
|
|
166
|
-
"pearwood", "pelican", "pepper", "peridot", "pewter", "pheasant",
|
|
167
|
-
"pimpernel", "pipit", "pistachio", "poplar", "porcelain", "primrose",
|
|
168
|
-
"quail", "quince", "quincewood", "rainbird", "rainstone", "reedbed",
|
|
169
|
-
"reedling", "rook", "rosemary", "rowan", "saddle", "saffron",
|
|
170
|
-
"sandalwood", "satin", "sawgrass", "scallop", "seafoam", "seedling",
|
|
171
|
-
"selkie", "shepherd", "shoal", "silk", "silverbell", "skylight",
|
|
172
|
-
"snowdrop", "songbird", "sorrel", "spindlewood", "spindleberry", "sprucewood",
|
|
173
|
-
"starling", "stonecrop",
|
|
175
|
+
export const ROTATIONS = [
|
|
176
|
+
["a", "e"],
|
|
177
|
+
["e", "i"],
|
|
178
|
+
["i", "y"],
|
|
179
|
+
["o", "u"],
|
|
180
|
+
["u", "o"],
|
|
181
|
+
["y", "i"],
|
|
182
|
+
["b", "p"],
|
|
183
|
+
["c", "k"],
|
|
184
|
+
["d", "t"],
|
|
185
|
+
["f", "v"],
|
|
186
|
+
["g", "j"],
|
|
187
|
+
["h", "x"],
|
|
188
|
+
["j", "y"],
|
|
189
|
+
["k", "c"],
|
|
190
|
+
["l", "r"],
|
|
191
|
+
["m", "n"],
|
|
192
|
+
["n", "m"],
|
|
193
|
+
["p", "b"],
|
|
194
|
+
["q", "k"],
|
|
195
|
+
["r", "l"],
|
|
196
|
+
["s", "z"],
|
|
197
|
+
["t", "d"],
|
|
198
|
+
["v", "f"],
|
|
199
|
+
["w", "v"],
|
|
200
|
+
["x", "z"],
|
|
201
|
+
["z", "s"],
|
|
174
202
|
];
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -4,24 +4,21 @@
|
|
|
4
4
|
import { generate } from "./index.js";
|
|
5
5
|
|
|
6
6
|
const HELP = `
|
|
7
|
-
namzy — generate
|
|
7
|
+
namzy — generate compact, memorable, unique names
|
|
8
8
|
|
|
9
9
|
Usage:
|
|
10
10
|
namzy [options]
|
|
11
11
|
|
|
12
12
|
Options:
|
|
13
13
|
--count <N> Number of names to generate (default: 1)
|
|
14
|
+
--seed <N> Integer seed (default: current timestamp)
|
|
14
15
|
--help Show this help
|
|
15
|
-
|
|
16
|
-
Examples:
|
|
17
|
-
namzy
|
|
18
|
-
namzy --count 5
|
|
19
16
|
`.trimStart();
|
|
20
17
|
|
|
21
|
-
function parseArgs(argv: string[]): { count: number } {
|
|
18
|
+
function parseArgs(argv: string[]): { count: number; seed?: number } {
|
|
22
19
|
const args = argv.slice(2);
|
|
23
20
|
let count = 1;
|
|
24
|
-
|
|
21
|
+
let seed: number | undefined;
|
|
25
22
|
for (let i = 0; i < args.length; i++) {
|
|
26
23
|
const arg = args[i];
|
|
27
24
|
switch (arg) {
|
|
@@ -33,30 +30,35 @@ function parseArgs(argv: string[]): { count: number } {
|
|
|
33
30
|
case "--count": {
|
|
34
31
|
const n = parseInt(args[++i], 10);
|
|
35
32
|
if (Number.isNaN(n) || n < 1) {
|
|
36
|
-
process.stderr.write(
|
|
33
|
+
process.stderr.write("--count must be a positive integer\n");
|
|
37
34
|
process.exit(1);
|
|
38
35
|
}
|
|
39
36
|
count = n;
|
|
40
37
|
break;
|
|
41
38
|
}
|
|
39
|
+
case "--seed": {
|
|
40
|
+
const n = parseInt(args[++i], 10);
|
|
41
|
+
if (Number.isNaN(n)) {
|
|
42
|
+
process.stderr.write("--seed must be an integer\n");
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
seed = n;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
42
48
|
default:
|
|
43
49
|
process.stderr.write(`Unknown flag: ${arg}\nRun namzy --help for usage.\n`);
|
|
44
50
|
process.exit(1);
|
|
45
51
|
}
|
|
46
52
|
}
|
|
47
|
-
return { count };
|
|
53
|
+
return { count, seed };
|
|
48
54
|
}
|
|
49
55
|
|
|
50
|
-
|
|
51
|
-
const { count } = parseArgs(process.argv);
|
|
52
|
-
const base = Date.now();
|
|
56
|
+
function main(): void {
|
|
57
|
+
const { count, seed } = parseArgs(process.argv);
|
|
58
|
+
const base = seed ?? Date.now();
|
|
53
59
|
for (let i = 0; i < count; i++) {
|
|
54
|
-
|
|
55
|
-
process.stdout.write(`${name}\n`);
|
|
60
|
+
process.stdout.write(`${generate({ seed: base + i * 2654435761 })}\n`);
|
|
56
61
|
}
|
|
57
62
|
}
|
|
58
63
|
|
|
59
|
-
main()
|
|
60
|
-
process.stderr.write(`Error: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
61
|
-
process.exit(1);
|
|
62
|
-
});
|
|
64
|
+
main();
|
package/src/index.ts
CHANGED
|
@@ -1,35 +1,27 @@
|
|
|
1
1
|
// this_file: src/index.ts
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { applyRotations, buildName, mulberry32 } from "./mangle.js";
|
|
4
|
+
import { ROTATIONS, STEMS } from "./wordlist.js";
|
|
5
5
|
|
|
6
6
|
export interface NamzyOptions {
|
|
7
|
-
|
|
7
|
+
seed?: number;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
/** Generate one namzy name. Default seed is the current timestamp. */
|
|
11
|
+
export function generate(opts?: NamzyOptions): string {
|
|
12
|
+
const seed = opts?.seed ?? Date.now();
|
|
13
|
+
return buildName(mulberry32(seed));
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
/** Generate `count` names. Distinct seeds derived from the base seed. */
|
|
17
|
+
export function generateMany(count: number, opts?: NamzyOptions): string[] {
|
|
18
|
+
const base = opts?.seed ?? Date.now();
|
|
19
|
+
const out: string[] = [];
|
|
20
|
+
for (let i = 0; i < count; i++) {
|
|
21
|
+
out.push(generate({ seed: base + i * 2654435761 }));
|
|
22
|
+
}
|
|
23
|
+
return out;
|
|
16
24
|
}
|
|
17
25
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* Two raw words → junction-cleaned fusion → consonant rotation → capitalize.
|
|
21
|
-
*/
|
|
22
|
-
export async function generate(opts?: NamzyOptions): Promise<string> {
|
|
23
|
-
const seed = opts?.seed ?? Date.now();
|
|
24
|
-
const rng = mulberry32(seed);
|
|
25
|
-
|
|
26
|
-
const w1 = pick(GEO, rng).toLowerCase();
|
|
27
|
-
const w2 = pick(COMMON, rng).toLowerCase();
|
|
28
|
-
const [first, second] = rng() < 0.5 ? [w1, w2] : [w2, w1];
|
|
29
|
-
|
|
30
|
-
const fused = joinClean(first, second);
|
|
31
|
-
return capitalize(mangle(fused, activeRotationMask(rng)));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export { COMMON, GEO } from "./wordlist.js";
|
|
35
|
-
export { activeRotationMask, joinClean, mangle, mulberry32 };
|
|
26
|
+
export { STEMS, ROTATIONS } from "./wordlist.js";
|
|
27
|
+
export { applyRotations, buildName, mulberry32 };
|