@twardoch/namzy 1.0.19 → 1.0.23

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/src/wordlist.ts CHANGED
@@ -1,175 +1,291 @@
1
- // Geographic names (A-Za-z only, no diacritics). Shared across all implementations.
2
- export const GEO: string[] = [
3
- "tokyo", "paris", "oslo", "berlin", "lagos", "lima",
4
- "boston", "vienna", "cairo", "kyoto", "dubai", "seoul",
5
- "milan", "tunis", "perth", "genoa", "porto", "bruges",
6
- "ghent", "brest", "ashford", "sofia", "riga", "lyon",
7
- "basel", "natal", "recife", "darwin", "hobart", "ashbury",
8
- "varna", "split", "kotor", "tirana", "skopje", "bitola",
9
- "plovdiv", "gabrovo", "ruse", "delhi", "rome", "athens",
10
- "nairobi", "bali", "havana", "lisbon", "bogota", "dakar",
11
- "quito", "vilnius", "vaduz", "bern", "accra", "kigali",
12
- "abuja", "bamako", "niamey", "lome", "prague", "dublin",
13
- "naples", "tulum", "tbilisi", "yerevan", "astana", "lusaka",
14
- "harare", "asmara", "manaus", "cuenca", "merida", "geneva",
15
- "zurich", "venice", "sydney", "denver", "austin", "phoenix",
16
- "tucson", "reno", "boise", "fargo", "tulsa", "tampa",
17
- "miami", "salem", "dover", "trenton", "helena", "juneau",
18
- "topeka", "albany", "amsterdam", "antwerp", "arusha", "aspen",
19
- "atlanta", "auckland", "baku", "bangkok", "barcelona", "ashgrove",
20
- "ashfield", "bergen", "bilbao", "bordeaux", "braga", "brisbane",
21
- "bristol", "brussels", "bucharest", "budapest", "calgary", "canberra",
22
- "cardiff", "casablanca", "chicago", "cologne", "colombo", "copenhagen",
23
- "cork", "dresden", "durban", "edinburgh", "florence", "frankfurt",
24
- "gdansk", "glasgow", "granada", "guangzhou", "hamburg", "hanoi",
25
- "helsinki", "houston", "jakarta", "krakow", "leipzig", "lille",
26
- "london", "luanda", "lucerne", "madrid", "malaga", "manila",
27
- "marrakesh", "marseille", "melbourne", "memphis", "montreal", "munich",
28
- "nagoya", "nantes", "napier", "nashville", "orlando", "osaka",
29
- "ottawa", "palermo", "panama", "phuket", "pisa", "poznan",
30
- "quebec", "reykjavik", "rotterdam", "sapporo", "sevilla", "shanghai",
31
- "stockholm", "suzhou", "swansea", "bayfield", "tallinn", "tangier",
32
- "thimphu", "toronto", "toulouse", "trieste", "valencia", "vancouver",
33
- "verona", "warsaw", "winnipeg", "wroclaw", "zagreb", "aarhus",
34
- "abidjan", "adelaide", "alger", "annaba", "ankara", "antalya",
35
- "arezzo", "asuncion", "avignon", "baltimore", "banjul", "belem",
36
- "bologna", "bremen", "cancun", "caracas", "cartagena", "catania",
37
- "charlotte", "chennai", "chiangmai", "cleveland", "cordoba", "curitiba",
38
- "cusco", "dallas", "dundee", "espoo", "fez", "freetown",
39
- "fukuoka", "funchal", "gothenburg", "guayaquil", "bayport", "halifax",
40
- "hamilton", "honolulu", "ibadan", "innsbruck", "izmir", "jaipur",
41
- "kampala", "kansas", "kathmandu", "kingston", "kinshasa", "koblenz",
42
- "kortrijk", "lahti", "lausanne", "leeds", "leuven", "liege",
43
- "liverpool", "ljubljana", "lodz", "luxor", "bayview", "madison",
44
- "malmo", "manchester", "mandalay", "maputo", "mendoza", "monterrey",
45
- "montevideo", "noumea", "nuremberg", "okinawa", "omaha", "padua",
46
- "penang", "portland", "pretoria", "rabat", "raleigh", "rennes",
47
- "richmond", "salzburg", "samarkand", "santander", "santiago", "sendai",
48
- "singapore", "skagen", "stavanger", "stuttgart", "surabaya", "suva",
49
- "tampere", "taranto", "tarragona", "tiruchirappalli", "trondheim", "utrecht",
50
- "valletta", "victoria", "vigo", "bergenfield", "bellevue", "bloomington",
51
- "boulder", "bozeman", "bradford", "brighton", "brookline", "cambridge",
52
- "carmel", "carson", "cedarpark", "chandler", "chico", "claremont",
53
- "clearwater", "concord", "corvallis", "dayton", "decatur", "denton",
54
- "duluth", "durham", "eugene", "everett", "fairbanks", "fairfield",
55
- "flagstaff", "fremont", "fresno", "frisco", "gainesville", "garland",
56
- "gilbert", "grandrapids", "greensboro", "greenville", "hartford", "hayward",
57
- "henderson", "holland", "irvine", "ithaca", "lancaster", "lansing",
58
- "lincoln", "lowell", "madisonville", "marion", "mesa", "miamibeach",
59
- "midland", "milford", "mobile", "modesto", "monterey", "moreno",
60
- "naperville", "newark", "newhaven", "newport", "norfolk", "norman",
61
- "oakland", "oceanside", "olympia", "orleans", "pasadena", "peoria",
62
- "plano", "pocatello", "pueblo", "redmond", "riverside", "rochester",
63
- "rockford", "roseville", "sacramento", "savannah", "scottsdale", "somerville",
64
- "spokane", "springfield", "stockton", "tacoma", "tempe", "torrance",
65
- "tuscaloosa", "waco", "waterloo", "westport", "wichita", "wilmington",
66
- "worcester", "yonkers", "york", "abilene", "akron", "annapolis",
67
- "appleton", "arlington", "ashland", "atherton", "auburn", "bakersfield",
68
- "bayonne", "benicia", "berkeley", "billings", "bloomfield", "bluffton",
69
- "boca", "bradenton", "brentwood", "burlington", "camden", "canton",
70
- "carlisle", "cheyenne", "chicopee", "clifton", "columbia", "columbus",
71
- "conway", "cranston", "davis", "daytona", "deland", "dentonville",
72
- "desmoines", "elgin", "elizabeth", "elkhart", "elmira", "erie",
73
- "eureka", "evansville", "everglades", "fallsburg", "fayetteville", "flint",
74
- "florissant", "fortwayne", "frederick", "fredericksburg", "gastonia", "georgetown",
75
- "glendale", "grandforks", "greenbay", "haverhill", "highpoint", "hollywood",
76
- "huntington", "huntsville", "independence", "jackson", "jacksonville", "joliet",
77
- "kenosha", "kettering", "knoxville", "laredo", "lawrence", "lexington",
78
- "livermore", "longmont", "lubbock", "macon", "malibu", "medford",
79
- "merced", "mesquite", "missoula", "moline", "murfreesboro", "napa",
80
- "newton", "niagara", "norwalk", "ocala", "ogden", "ontario",
81
- "orange", "oshkosh", "owensboro", "palmcoast", "pensacola", "pomona",
82
- "providence", "provo", "quincy", "racine", "redding", "renton",
83
- "roanoke", "rockville", "roswell", "roundrock", "salinas", "sanjose",
84
- "sanmateo", "santaana", "santafe", "santarosa", "sarasota", "schaumburg",
85
- "shreveport", "siouxcity", "southbend", "stcloud", "stillwater", "sunnyvale",
86
- "syracuse", "baywood",
1
+ // this_file: src/wordlist.ts
2
+ // AUTO-GENERATED by scripts/generate_data.py. Do not edit.
3
+
4
+ export const STEMS: readonly string[] = [
5
+ "paris", "tokyo", "milan", "rome", "oslo", "lima", "baku", "doha",
6
+ "kiev", "riga", "sofia", "kabul", "dakar", "cairo", "accra", "perth",
7
+ "miami", "boston", "dallas", "denver", "vegas", "tulsa", "fargo", "salem",
8
+ "dover", "leeds", "york", "derby", "bath", "hull", "kent", "devon",
9
+ "essex", "berlin", "munich", "bremen", "bonn", "jena", "mainz", "madrid",
10
+ "lisbon", "porto", "faro", "braga", "athens", "sparta", "rhodes", "crete",
11
+ "naxos", "delos", "rabat", "oran", "tunis", "sana", "mecca", "jeddah",
12
+ "aden", "dubai", "amman", "mosul", "basra", "herat", "dhaka", "delhi",
13
+ "agra", "pune", "surat", "patna", "hanoi", "cebu", "davao", "medan",
14
+ "beijing", "wuhan", "xian", "dalian", "taipei", "seoul", "busan", "daegu",
15
+ "kobe", "sydney", "hobart", "darwin", "cairns", "cuzco", "quito", "cali",
16
+ "natal", "leon", "cancun", "austin", "fresno", "durham", "boise", "reno",
17
+ "juneau", "dublin", "galway", "cork", "bergen", "tromso", "malmo", "turku",
18
+ "kazan", "tomsk", "omsk", "perm", "minsk", "warsaw", "nile", "volga",
19
+ "rhine", "seine", "thames", "tiber", "indus", "congo", "niger", "douro",
20
+ "tagus", "ebro", "loire", "elbe", "oder", "don", "ural", "lena",
21
+ "amur", "chao", "jordan", "snake", "platte", "ohio", "red", "gila",
22
+ "fraser", "peace", "copper", "yampa", "green", "pearl", "james", "hudson",
23
+ "mohawk", "fox", "iowa", "cedar", "grand", "white", "salt", "neches",
24
+ "arno", "taro", "oglio", "adda", "mincio", "piave", "brenta", "ems",
25
+ "weser", "saale", "havel", "spree", "main", "neckar", "lech", "isar",
26
+ "inn", "drava", "sava", "tisza", "prut", "olt", "mures", "somes",
27
+ "drin", "tay", "clyde", "forth", "tweed", "spey", "severn", "trent",
28
+ "avon", "dee", "esk", "wye", "usk", "lee", "suir", "nore",
29
+ "boyne", "bann", "erne", "moy", "lagan", "mekong", "yukon", "ganges",
30
+ "yangtze", "meuse", "rhone", "tarn", "lot", "var", "ain", "aisne",
31
+ "marne", "yonne", "saone", "tilt", "teme", "dove", "ouse", "swale",
32
+ "ure", "tees", "amber", "coral", "jade", "lilac", "mauve", "ochre",
33
+ "ruby", "sepia", "teal", "umber", "plum", "cobalt", "cyan", "navy",
34
+ "salmon", "beige", "linen", "mint", "peach", "rose", "sand", "sky",
35
+ "slate", "snow", "tan", "wine", "bronze", "gold", "brass", "cherry",
36
+ "hazel", "honey", "lemon", "lime", "cream", "cocoa", "mocha", "sage",
37
+ "taupe", "fern", "flax", "ginger", "grape", "khaki", "orchid", "moss",
38
+ "rust", "sienna", "spruce", "jasper", "ash", "fawn", "dust", "gray",
39
+ "char", "ink", "frost", "silver", "claret", "garnet", "jet", "onyx",
40
+ "blush", "rouge", "crimson", "scarlet", "violet", "poppy", "saffron", "citrus",
41
+ "papaya", "melon", "thistle", "topaz", "quartz", "pewter", "saddle", "smoke",
42
+ "fuchsia", "buff", "brick", "coffee", "dune", "dawn", "vine", "ember",
43
+ "seal", "opal", "mango", "chia", "pine", "bay", "sable", "brave",
44
+ "bright", "calm", "clever", "cool", "deep", "eager", "fair", "fine",
45
+ "glad", "happy", "keen", "kind", "merry", "neat", "noble", "proud",
46
+ "quick", "quiet", "swift", "warm", "wise", "witty", "young", "jolly",
47
+ "lucky", "mighty", "smart", "snappy", "spry", "sunny", "super", "tidy",
48
+ "true", "vivid", "wild", "zippy", "able", "alert", "ample", "apt",
49
+ "artful", "balmy", "bold", "breezy", "brisk", "chic", "chill", "cosy",
50
+ "crisp", "dapper", "deft", "dreamy", "easy", "epic", "exact", "fancy",
51
+ "fluent", "fresh", "funky", "gallant", "gentle", "gifted", "glossy", "hardy",
52
+ "hearty", "honest", "humble", "jaunty", "jazzy", "jovial", "joyful", "lavish",
53
+ "light", "limber", "lithe", "loyal", "lucid", "lush", "mellow", "mild",
54
+ "modest", "nifty", "nimble", "peppy", "perky", "placid", "plucky", "plush",
55
+ "posh", "prime", "prompt", "pure", "quaint", "quirky", "rapid", "rare",
56
+ "regal", "robust", "rosy", "royal", "rugged", "sassy", "savvy", "sharp",
57
+ "shiny", "silky", "sleek", "slick", "harbor", "haven", "cove", "glade",
58
+ "meadow", "grove", "summit", "ridge", "peak", "canyon", "vista", "oasis",
59
+ "sanctum", "atrium", "plaza", "forum", "portal", "beacon", "torch", "spark",
60
+ "flame", "prism", "orbit", "comet", "zenith", "apex", "crown", "laurel",
61
+ "medal", "trophy", "gem", "jewel", "charm", "token", "coin", "badge",
62
+ "crest", "emblem", "sigil", "banner", "arrow", "anchor", "compass", "pillar",
63
+ "lantern", "keep", "tower", "castle", "bastion", "manor", "cabin", "lodge",
64
+ "chalet", "villa", "temple", "shrine", "altar", "chapel", "garden", "grotto",
65
+ "spring", "brook", "creek", "tide", "wave", "swell", "shell", "reef",
66
+ "port", "pier", "dock", "wharf", "isle", "atoll", "cape", "cliff",
67
+ "bluff", "mesa", "valley", "vale", "dale", "fen", "heath", "moor",
68
+ "delta", "lagoon", "fjord", "sound", "channel", "gulf", "inlet", "beach",
69
+ "basalt", "crystal", "beryl", "zircon", "spinel", "falcon", "eagle", "soar",
70
+ "glide", "drift", "float", "flow", "leap", "dash", "sprint", "march",
71
+ "wander", "roam", "voyage", "journey", "travel", "embark", "launch", "kindle",
72
+ "rise", "climb", "ascend", "bloom", "blossom", "flower", "grow", "expand",
73
+ "uplift", "foster", "shelter", "guard", "protect", "uphold", "support", "sustain",
74
+ "steady", "align", "tune", "craft", "fashion", "forge", "sculpt", "shape",
75
+ "mold", "weave", "thread", "knit", "stitch", "braid", "build", "raise",
76
+ "unveil", "reveal", "unfold", "open", "share", "spread", "gather", "collect",
77
+ "bond", "join", "meld", "merge", "blend", "fuse", "connect", "link",
78
+ "bridge", "rally", "thrive", "prosper", "attain", "master", "prevail", "excel",
79
+ "shine", "glow", "gleam", "glimmer", "sparkle", "beam", "flash", "flutter",
80
+ "dart", "dive", "surge", "swirl", "spin", "twirl", "pivot", "hover",
81
+ "linger", "swoop", "tumble", "vault", "bound", "bounce", "skip", "prance",
82
+ "gambol", "caper", "romp", "frolic", "cavort", "ada", "alex", "amy",
83
+ "ana", "avi", "ben", "bea", "cam", "dan", "eli", "emma",
84
+ "eva", "finn", "gus", "hugo", "ian", "iris", "ivan", "jane",
85
+ "juno", "kai", "kit", "liam", "lila", "luca", "lyra", "maya",
86
+ "mia", "milo", "nia", "noah", "nora", "oli", "omar", "otto",
87
+ "piper", "quinn", "rex", "rio", "ron", "sam", "sara", "seth",
88
+ "theo", "tom", "uma", "vera", "vic", "will", "xander", "yael",
89
+ "yuki", "zane", "zara", "alma", "anya", "beau", "cole", "cora",
90
+ "dane", "dora", "elsa", "enzo", "erin", "esme", "gabe", "gina",
91
+ "hank", "iggy", "inez", "ivy", "jack", "joel", "kade", "kara",
92
+ "kira", "kyle", "lana", "lars", "leah", "lily", "luna", "mack",
93
+ "maeve", "mads", "matt", "myra", "nash", "neil", "niko", "odin",
94
+ "oren", "orin", "pax", "pete", "raj", "rena", "rhys", "riya",
95
+ "rosa", "ruth", "ryan", "shay", "oak", "elm", "fir", "maple",
96
+ "birch", "beech", "alder", "holly", "rowan", "larch", "yew", "palm",
97
+ "aspen", "poplar", "willow", "walnut", "linden", "cypress", "plane", "fig",
98
+ "pear", "apple", "almond", "cacao", "banyan", "baobab", "teak", "dogwood",
99
+ "box", "quince", "balsa", "sandal", "myrtle", "locust", "pecan", "elder",
100
+ "robin", "finch", "wren", "hawk", "owl", "swan", "crane", "lark",
101
+ "raven", "jay", "kestrel", "heron", "ibis", "kite", "buzzard", "merlin",
102
+ "osprey", "peacock", "parrot", "ostrich", "emu", "kiwi", "puffin", "gull",
103
+ "tern", "petrel", "cuckoo", "magpie", "thrush", "sparrow", "martin", "swallow",
104
+ "plover", "snipe", "quail", "grouse", "turkey", "rooster", "hen", "duck",
105
+ "goose", "mallard", "stork", "bittern", "auk", "loon", "grebe", "coot",
106
+ "rail", "moorhen", "pigeon", "jackdaw", "rook", "crow", "warbler", "tit",
107
+ "pipit", "wagtail", "bunting", "linnet", "siskin", "redpoll", "waxwing", "redwing",
108
+ "shrike", "hoopoe", "roller", "toucan", "macaw", "budgie", "lapis", "mica",
109
+ "gypsum", "flint", "chert", "shale", "marble", "bone", "horn", "antler",
110
+ "storm", "mist", "dusk", "rain", "fog", "haze", "ice", "cloud",
111
+ "breeze", "gust", "gale", "tempest", "squall", "hail", "sleet", "drizzle",
112
+ "thunder", "rainbow", "zephyr", "sunset", "noon", "vapor", "steam", "cinder",
113
+ "spray", "spume", "foam", "shower", "monsoon", "typhoon", "vortex", "eddy",
114
+ "current", "draft", "draught", "warmth", "shimmer", "blaze", "flare", "bolt",
115
+ "cosmos", "pulsar", "quasar", "planet", "star", "moon", "sun", "thor",
116
+ "loki", "freya", "frigg", "hel", "baldr", "tyr", "atlas", "hera",
117
+ "mars", "vesta", "ceres", "leto", "niobe", "isis", "hathor", "horus",
118
+ "apis", "ptah", "thoth", "bast", "set", "seshat", "ammit", "khonsu",
119
+ "sobek", "bes", "maat", "shiva", "vishnu", "rama", "sita", "kali",
120
+ "durga", "indra", "ganesh", "kuber", "surya", "soma", "agni", "vayu",
121
+ "prana", "lakshmi", "mira", "yama", "zeus", "ares", "hades", "hermes",
122
+ "hebe", "helios", "eos", "nyx", "aether", "chaos", "gaia", "cronus",
123
+ "rhea", "tethys", "phoebe", "themis", "pan", "triton", "nereus", "proteus",
124
+ "circe", "scylla", "hydra",
125
+ ];
126
+
127
+ export const ROTATIONS: readonly (readonly [string, string])[] = [
128
+ ["ba", "bo"],
129
+ ["bo", "ba"],
130
+ ["bi", "by"],
131
+ ["by", "bi"],
132
+ ["be", "bi"],
133
+ ["bi", "be"],
134
+ ["bo", "bu"],
135
+ ["bu", "bo"],
136
+ ["ca", "co"],
137
+ ["co", "ca"],
138
+ ["ci", "cy"],
139
+ ["cy", "ci"],
140
+ ["ce", "ci"],
141
+ ["ci", "ce"],
142
+ ["co", "cu"],
143
+ ["cu", "co"],
144
+ ["da", "do"],
145
+ ["do", "da"],
146
+ ["di", "dy"],
147
+ ["dy", "di"],
148
+ ["de", "di"],
149
+ ["di", "de"],
150
+ ["do", "du"],
151
+ ["du", "do"],
152
+ ["fa", "fo"],
153
+ ["fo", "fa"],
154
+ ["fi", "fy"],
155
+ ["fy", "fi"],
156
+ ["fe", "fi"],
157
+ ["fi", "fe"],
158
+ ["fo", "fu"],
159
+ ["fu", "fo"],
160
+ ["ga", "go"],
161
+ ["go", "ga"],
162
+ ["gi", "gy"],
163
+ ["gy", "gi"],
164
+ ["ge", "gi"],
165
+ ["gi", "ge"],
166
+ ["go", "gu"],
167
+ ["gu", "go"],
168
+ ["ha", "ho"],
169
+ ["ho", "ha"],
170
+ ["hi", "hy"],
171
+ ["hy", "hi"],
172
+ ["he", "hi"],
173
+ ["hi", "he"],
174
+ ["ho", "hu"],
175
+ ["hu", "ho"],
176
+ ["ja", "jo"],
177
+ ["jo", "ja"],
178
+ ["ji", "jy"],
179
+ ["jy", "ji"],
180
+ ["je", "ji"],
181
+ ["ji", "je"],
182
+ ["jo", "ju"],
183
+ ["ju", "jo"],
184
+ ["ka", "ko"],
185
+ ["ko", "ka"],
186
+ ["ki", "ky"],
187
+ ["ky", "ki"],
188
+ ["ke", "ki"],
189
+ ["ki", "ke"],
190
+ ["ko", "ku"],
191
+ ["ku", "ko"],
192
+ ["la", "lo"],
193
+ ["lo", "la"],
194
+ ["li", "ly"],
195
+ ["ly", "li"],
196
+ ["le", "li"],
197
+ ["li", "le"],
198
+ ["lo", "lu"],
199
+ ["lu", "lo"],
200
+ ["ma", "mo"],
201
+ ["mo", "ma"],
202
+ ["mi", "my"],
203
+ ["my", "mi"],
204
+ ["me", "mi"],
205
+ ["mi", "me"],
206
+ ["mo", "mu"],
207
+ ["mu", "mo"],
208
+ ["na", "no"],
209
+ ["no", "na"],
210
+ ["ni", "ny"],
211
+ ["ny", "ni"],
212
+ ["ne", "ni"],
213
+ ["ni", "ne"],
214
+ ["no", "nu"],
215
+ ["nu", "no"],
216
+ ["pa", "po"],
217
+ ["po", "pa"],
218
+ ["pi", "py"],
219
+ ["py", "pi"],
220
+ ["pe", "pi"],
221
+ ["pi", "pe"],
222
+ ["po", "pu"],
223
+ ["pu", "po"],
224
+ ["ra", "ro"],
225
+ ["ro", "ra"],
226
+ ["ri", "ry"],
227
+ ["ry", "ri"],
228
+ ["re", "ri"],
229
+ ["ri", "re"],
230
+ ["ro", "ru"],
231
+ ["ru", "ro"],
232
+ ["sa", "so"],
233
+ ["so", "sa"],
234
+ ["si", "sy"],
235
+ ["sy", "si"],
236
+ ["se", "si"],
237
+ ["si", "se"],
238
+ ["so", "su"],
239
+ ["su", "so"],
240
+ ["ta", "to"],
241
+ ["to", "ta"],
242
+ ["ti", "ty"],
243
+ ["ty", "ti"],
244
+ ["te", "ti"],
245
+ ["ti", "te"],
246
+ ["to", "tu"],
247
+ ["tu", "to"],
248
+ ["va", "vo"],
249
+ ["vo", "va"],
250
+ ["vi", "vy"],
251
+ ["vy", "vi"],
252
+ ["ve", "vi"],
253
+ ["vi", "ve"],
254
+ ["vo", "vu"],
255
+ ["vu", "vo"],
256
+ ["wa", "wo"],
257
+ ["wo", "wa"],
258
+ ["wi", "wy"],
259
+ ["wy", "wi"],
260
+ ["we", "wi"],
261
+ ["wi", "we"],
262
+ ["wo", "wu"],
263
+ ["wu", "wo"],
264
+ ["za", "zo"],
265
+ ["zo", "za"],
266
+ ["zi", "zy"],
267
+ ["zy", "zi"],
268
+ ["ze", "zi"],
269
+ ["zi", "ze"],
270
+ ["zo", "zu"],
271
+ ["zu", "zo"],
272
+ ["k", "q"],
273
+ ["q", "k"],
274
+ ["c", "k"],
275
+ ["k", "c"],
276
+ ["ph", "f"],
277
+ ["f", "ph"],
278
+ ["x", "ks"],
279
+ ["ks", "x"],
87
280
  ];
88
281
 
89
- // Common words (A-Za-z only, no diacritics). Shared across all implementations.
90
- export const COMMON: string[] = [
91
- "river", "stone", "ember", "frost", "harbor", "willow",
92
- "copper", "marble", "anchor", "lantern", "cedar", "falcon",
93
- "coral", "dagger", "flint", "grove", "haven", "iron",
94
- "jasper", "kelp", "larch", "mast", "nettle", "oak",
95
- "pine", "quill", "reed", "sage", "thorn", "umber",
96
- "vale", "wren", "yarrow", "zenith", "amber", "birch",
97
- "cliff", "drift", "forge", "glade", "mesa", "canyon",
98
- "basin", "fern", "gale", "peak", "ridge", "shore",
99
- "tide", "bluff", "brook", "crest", "delta", "glen",
100
- "helm", "inlet", "jetty", "knoll", "loft", "moor",
101
- "notch", "orbit", "prism", "thunder", "silver", "meadow",
102
- "basalt", "summit", "valley", "bridge", "beacon", "ranger",
103
- "timber", "clover", "pebble", "ripple", "canopy", "chimney",
104
- "cinder", "comet", "ferret", "glider", "jaguar", "kernel",
105
- "lancer", "mortar", "nebula", "osprey", "patrol", "quartz",
106
- "rafter", "sparrow", "granite", "hazel", "kindle", "laurel",
107
- "mossy", "nimble", "ochre", "russet", "sable", "vapor",
108
- "wicker", "cobalt", "dune", "hollow", "ivy", "juniper",
109
- "linden", "mist", "oyster", "acorn", "anvil", "apron",
110
- "arrow", "ash", "atlas", "autumn", "badge", "banner",
111
- "beryl", "blossom", "boulder", "bramble", "brass", "breeze",
112
- "briar", "bronze", "brooklet", "buckle", "burl", "cairn",
113
- "candle", "canvas", "cavern", "chalk", "charm", "citrine",
114
- "cloud", "cloverleaf", "cobaltcore", "compass", "copperleaf", "cradle",
115
- "cricket", "crystal", "daisy", "dale", "dawn", "deerden",
116
- "desert", "dew", "diamond", "dovetail", "dragonfly", "dream",
117
- "drifter", "dunecrest", "dusk", "echo", "elm", "fernleaf",
118
- "firefly", "fjord", "flame", "flower", "flume", "forest",
119
- "foxglove", "garden", "garnet", "geode", "glacier", "glimmer",
120
- "goldfinch", "gravel", "greenwood", "griffin", "harborlight", "hearth",
121
- "heather", "heron", "hill", "honey", "horizon", "icicle",
122
- "ivory", "jewel", "kestrel", "lagoon", "laurelwood", "leaf",
123
- "lighthouse", "lilac", "lotus", "meadowlark", "moon", "moss",
124
- "myrtle", "nectar", "nightingale", "obsidian", "olive", "opal",
125
- "orchard", "otter", "pebblebrook", "petal", "plume", "prairie",
126
- "rain", "raven", "redwood", "reef", "ribbon", "root",
127
- "rose", "ruby", "sail", "salt", "sapphire", "scarlet",
128
- "seabird", "sequoia", "shadow", "shale", "shell", "shimmer",
129
- "skylark", "slate", "smoke", "snow", "sparrowhawk", "spindle",
130
- "spirit", "spring", "spruce", "star", "starlight", "storm",
131
- "stream", "sunbeam", "sunset", "sycamore", "talon", "thicket",
132
- "thistle", "thunderhead", "tidepool", "topaz", "trail", "valleyfield",
133
- "velvet", "violet", "walnut", "waterfall", "wave", "wind",
134
- "winter", "wolfram", "woodland", "zephyr", "ashwood", "bell",
135
- "bird", "bloom", "branch", "bright", "brookside", "camp",
136
- "campfire", "castle", "chime", "clay", "cloudbank", "coast",
137
- "copperwood", "creek", "crown", "emberfall", "field", "firestone",
138
- "flag", "fog", "fox", "gardenia", "gate", "glow",
139
- "grass", "grovewood", "harborstone", "hilltop", "honeycomb", "island",
140
- "kestrelwing", "lake", "leafwing", "marigold", "moonstone", "morning",
141
- "acacia", "alpine", "amulet", "apple", "apricot", "arcade",
142
- "arcadia", "archer", "argent", "armor", "asters", "aster",
143
- "aurora", "awning", "badger", "bamboo", "barley", "basil",
144
- "basket", "bayberry", "beech", "bellflower", "berry", "billet",
145
- "biscuit", "blackbird", "bluebell", "bluejay", "bonnet", "bough",
146
- "braid", "bread", "brick", "bridle", "brocade", "buckthorn",
147
- "burrow", "buttercup", "cabochon", "campion", "canary", "caraway",
148
- "catkin", "celeriac", "cello", "chanter", "chanticleer", "chestnut",
149
- "citadel", "clementine", "cloverfield", "cobble", "codex", "columbine",
150
- "corduroy", "cornflower", "courier", "coventry", "cove", "cowbell",
151
- "crocus", "curlew", "cypress", "damask", "daffodil", "dandelion",
152
- "dewdrop", "distaff", "driftwood", "eider", "elder", "elderberry",
153
- "elfin", "emerald", "enamel", "equinox", "faience", "feather",
154
- "fennel", "fiddle", "finch", "fir", "firwood", "flax",
155
- "floret", "flute", "freesia", "frostline", "gable", "galax",
156
- "garland", "gentian", "ginger", "gingham", "glenwood", "gosling",
157
- "grain", "grebe", "halcyon", "hazelnut", "headland", "heliotrope",
158
- "holly", "holystone", "honeydew", "hornbeam", "hyacinth", "inkwood",
159
- "iris", "ironwood", "jasmine", "jennet", "jonquil", "kettle",
160
- "kingsley", "laburnum", "lace", "ladle", "larkspur", "lavender",
161
- "leather", "ledger", "lemongrass", "linnet", "lodestar", "loquat",
162
- "lyre", "magnolia", "mandolin", "maple", "mariner", "marmot",
163
- "mayflower", "meadowrun", "merlin", "mica", "milkweed", "millet",
164
- "minnow", "mint", "mirabelle", "moonbeam", "moonrise", "moorland",
165
- "mulberry", "nimbus", "nuthatch", "oatfield", "olivewood", "onyx",
166
- "oriole", "oxbow", "pansy", "parchment", "partridge", "pear",
167
- "pearwood", "pelican", "pepper", "peridot", "pewter", "pheasant",
168
- "pimpernel", "pipit", "pistachio", "poplar", "porcelain", "primrose",
169
- "quail", "quince", "quincewood", "rainbird", "rainstone", "reedbed",
170
- "reedling", "rook", "rosemary", "rowan", "saddle", "saffron",
171
- "sandalwood", "satin", "sawgrass", "scallop", "seafoam", "seedling",
172
- "selkie", "shepherd", "shoal", "silk", "silverbell", "skylight",
173
- "snowdrop", "songbird", "sorrel", "spindlewood", "spindleberry", "sprucewood",
174
- "starling", "stonecrop",
282
+ export const BAD_SEAMS: readonly string[] = [
283
+ "aa",
284
+ "ee",
285
+ "ii",
286
+ "oo",
287
+ "uu",
288
+ "yy",
289
+ "iy",
290
+ "yi",
175
291
  ];