easyen 0.1.1

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.
@@ -0,0 +1 @@
1
+ ["abdominal","absorb","absorption","accelerate","acceleration","accent","accumulate","accumulation","accuracy","accurately","acid","acidic","activate","actively","acute","adaptation","adaptive","adjacent","admission","adolescent","adverse","aerosol","aesthetic","affirm","afterward","aggregate","agriculture","airplane","algebra","algorithm","alien","alliance","allocate","allocation","altitude","aluminum","amino","amongst","amplitude","analogy","ancestor","anthropology","anti","antibiotic","antibody","antiquity","appendix","applause","apple","approximate","approximation","arbitrary","archaeology","architect","array","arrow","articulate","artifact","artificial","artistic","artwork","aspect","assembly","assert","assignment","athletic","atom","atomic","auction","audio","audit","authority","autonomy","availability","axiom","axis","backward","bacteria","bacterial","bang","bargain","barrel","basin","bat","beam","behavioral","bilingual","binary","biodiversity","biologist","biology","bizarre","blank","bleed","bodily","bonus","bound","bracket","breakdown","broadly","bubble","bucket","bulk","bullet","bundle","calcium","calculation","calculator","calculus","campus","candidate","capillary","capitalism","capitalist","carrier","cattle","censor","characterization","cheat","cheer","chemistry","chemotherapy","chess","chloride","chromosome","chronic","chunk","cinema","circa","circulate","circulation","civilization","clarify","classification","classify","classroom","clay","clever","click","client","clinic","clip","clone","closure","clue","coefficient","cognitive","coherent","collective","colonial","colony","comma","commentary","commodity","commonly","communicative","communist","compact","comparable","comparative","compensate","competence","competent","complement","complication","comply","composer","composite","comprehension","computation","conceive","conception","conceptual","conditional","conduction","cone","conference","configuration","confine","confound","congruent","connector","connotation","conscious","consciousness","consensus","consent","conservation","conserve","consonant","constitution","constrain","consultation","consumption","container","continent","continuity","contour","contradict","contradiction","contradictory","contrary","controversy","converge","convergence","coordinate","coordination","cord","coronary","corpus","correction","correctly","correlate","correlation","correspondence","corruption","cortex","credibility","criteria","critically","critique","crude","crystal","cue","cure","curriculum","cyclic","cylinder","damp","deadline","decay","deceive","defect","deficiency","definite","deflection","degrade","deliberately","delta","demonstrator","denominator","denote","dense","dependence","depict","derivative","descendent","descriptor","destination","detection","developmental","deviation","diagnose","diagnosis","diagnostic","diagram","dialect","diameter","diary","dictate","dictionary","differential","differentiate","differentiation","diffusion","dilemma","dilute","dimensional","dioxide","directive","disability","disadvantage","discharge","discourse","discrete","discrimination","displacement","dissection","dissertation","dissolve","distribution","disturbance","diverse","domain","dominance","dominant","domination","donor","dose","drain","drift","duration","dye","dynamic","ecological","ecology","economically","economist","effectiveness","elaborate","elastic","elasticity","electron","elementary","elevate","elevation","elimination","elite","embed","emergence","emission","emit","emperor","empirical","encode","enforcement","enormously","entity","entrant","enzyme","epidemic","epidemiology","equality","equilibrium","equivalence","erase","essence","essentially","estimation","ethical","ethics","evident","evolutionary","ex","execute","execution","exit","expertise","explicit","explicitly","exploit","exponential","fabric","facet","facilitate","factorial","faculty","fatigue","feedback","fertility","fetal","fever","fiber","fin","finite","flesh","flexibility","flip","fluid","flux","footnote","formally","formulation","forum","fossil","founds","fraction","fracture","freely","friction","fringe","fundamentally","fungus","fusion","gauge","generalization","generalize","genetically","genetics","ghost","globalization","goat","goodness","goods","gradient","gram","grammatical","graph","grasp","gravity","grid","gross","gut","habitat","halfway","handout","harvest","hawk","headquarter","hedge","helix","hepatitis","herbicide","hierarchy","hip","historically","homework","horizon","horizontal","hormone","hydrogen","identical","identification","ideology","illusion","immune","impact","implicit","importantly","impulse","incidence","incline","inclusion","incredible","incredibly","incumbent","independently","indicator","indifference","indigenous","indirect","individually","induce","induction","industrialization","industrialize","inequality","inevitably","infect","infectious","inference","inferior","infinite","infinity","influential","informal","inhibit","inhibition","initiate","initiation","inject","injection","innate","insect","insert","instability","instinct","integral","integration","intensity","intensive","interact","interestingly","interface","interfere","intermediate","interrupt","interval","intervene","interviewer","invade","invasion","inversion","invert","ion","irrelevant","irrigation","jazz","junior","justification","kidney","kilometer","lab","lateral","layout","leaf","lecturer","legend","legitimate","leisure","lever","lexical","liable","lifestyle","lifetime","likelihood","likewise","limb","linear","linguistic","linguistics","liter","liver","locally","locus","logical","longitudinal","loop","lump","lung","machinery","magnetic","magnitude","mall","manipulate","manipulation","manual","manuscript","marble","marginal","marker","marrow","maternal","mathematical","matrix","maximize","meaningful","mechanic","mechanical","media","mediate","membrane","memorize","mentor","mercury","merge","messenger","metabolism","metaphor","methodology","micro","mid","migrate","migration","millimeter","mineral","minimal","minimize","minus","missile","mobility","modification","mole","molecular","molecule","momentum","monetary","monkey","monopoly","morality","morphological","morphology","mortality","motif","motive","multi","multinational","multiply","mutation","myth","naked","namely","nasty","nationalism","neat","necessity","neo","nest","neural","neuron","neutral","nicely","niche","nitrogen","noble","node","noisy","nominal","non","nonetheless","nonlinear","norm","notation","novice","nucleus","null","numerical","nutrient","objection","obscure","observer","obtain","occupation","occurrence","offspring","onset","onwards","optical","optimal","optimum","oral","organ","organism","orient","orientation","oscillation","outer","outlet","overhead","overlap","overview","oxidize","oxygen","painful","par","paradigm","paradox","parameter","parcel","pardon","parental","parenthesis","partial","partially","particle","partition","pathway","peasant","periodic","peripheral","pest","pesticide","phenomenal","philosopher","philosophical","phonological","phosphate","photographic","physically","physician","physics","physiological","pi","planner","plantation","plausible","plug","plural","polar","pole","politically","portfolio","portray","portrayal","positively","poster","postgraduate","potassium","powder","practitioner","pragmatic","pre","precede","precipitate","precipitation","predator","prediction","predominantly","prejudice","preliminary","presume","prevalence","prey","primer","primitive","probe","problematic","processor","productive","productivity","profound","progression","progressive","projection","prominent","pronounce","proposition","protocol","proton","psychiatric","psychologist","psychology","publish","pulse","punch","punish","punishment","purely","puzzle","qualitative","quantitative","quantum","questionnaire","quiz","quotation","rack","radar","radiation","radius","rainfall","randomize","randomly","rational","rationality","ray","reactive","reactor","readily","realism","realistic","realm","receptor","recipe","reconstruct","regime","regression","rehabilitation","reinforce","rejection","reliability","render","repertoire","replacement","replicate","replication","reproduce","reproduction","republic","resemble","reservoir","residual","residue","resistant","respiratory","retrieve","revolutionary","rewrite","rhetoric","rhythm","ridiculous","ritual","robot","rope","rotate","rotation","rub","ruler","scatter","scenario","scholarship","scripture","scroll","secrete","sediment","selective","semantic","semester","semi","seminar","sensation","sensible","sensitivity","sensory","separately","separation","sexuality","shallow","shortly","shuttle","similarity","simplify","simulate","simulation","simultaneously","sin","singular","sketch","skip","slab","slash","slavery","slot","snake","sneeze","sniff","socialize","socially","sodium","solar","soluble","solute","solvent","sometime","sophisticate","span","spatial","specialty","specification","specimen","spectrum","sperm","sphere","splice","sponsorship","spontaneous","spray","stabilize","stack","stadium","stance","standardize","static","statistical","statistically","statistics","stereotype","stimulus","straightforward","strand","strategic","strictly","stripe","sub","subjective","subset","substitution","substrate","subtle","subtract","sufficiently","suicide","super","superior","supposedly","surgeon","surgical","surplus","susceptible","sustainable","swap","swell","sword","syllable","syllabus","symbolic","syndrome","syntactic","syntax","synthesis","synthetic","systematic","tech","technically","temporal","tempt","tense","terminal","terminology","terribly","textbook","theorem","theorist","thereby","thermal","thesis","thickness","thread","threshold","thumb","tolerance","ton","toxic","tract","traditionally","trait","trajectory","trans","transaction","transcribe","transcription","transformation","translation","transmission","transmit","transparency","transplant","trauma","treaty","tremendous","triangle","tribe","tricky","trivial","tropical","tumor","turbulent","tutor","ultimate","undergraduate","undermine","underneath","unemployed","unify","unintelligible","unity","unstable","uplift","upward","urine","usage","utility","utilize","utterance","vague","valid","validity","valve","variability","variance","variant","vector","vegetation","vein","velocity","verbal","vertical","viable","virtue","vitamin","vocabulary","volition","vowel","watershed","wavelength","weave","wheat","whereby","whichever","whoever","widespread","wisdom","workshop","yeast"]
@@ -0,0 +1 @@
1
+ ["be","and","of","to","a","in","have","it","you","he","for","they","not","that","we","on","with","this","i","do","as","at","she","but","from","by","will","or","say","go","so","all","if","one","would","about","can","which","there","know","more","get","who","like","when","think","make","time","see","what","up","some","other","out","good","people","year","take","no","well","because","very","just","come","could","work","use","than","now","then","also","into","only","look","want","give","first","new","way","find","over","any","after","day","where","thing","most","should","need","much","right","how","back","mean","even","may","here","many","such","last","child","tell","really","call","before","company","through","down","show","life","man","change","place","long","between","feel","too","still","problem","write","same","lot","great","try","leave","number","both","own","part","point","little","help","ask","meet","start","talk","something","put","another","become","interest","country","old","each","school","late","high","different","off","next","end","live","why","while","world","week","play","might","must","home","never","include","course","house","report","group","case","woman","around","book","family","seem","let","again","kind","keep","hear","system","every","question","during","always","big","set","small","study","follow","begin","important","since","run","under","turn","few","bring","early","hand","state","move","money","fact","however","area","provide","name","read","friend","month","large","business","without","information","open","order","government","word","issue","market","pay","build","hold","service","against","believe","second","though","yes","love","increase","job","plan","result","away","example","happen","offer","young","close","program","lead","buy","understand","thank","far","today","hour","student","face","hope","idea","cost","less","room","until","reason","form","spend","head","car","learn","level","person","experience","once","member","enough","bad","city","night","able","support","whether","line","present","side","quite","although","sure","term","least","age","low","speak","within","process","public","often","train","possible","actually","rather","view","together","consider","price","parent","hard","party","local","control","already","concern","product","lose","story","almost","continue","stand","whole","yet","rate","care","expect","effect","sort","ever","anything","cause","fall","deal","water","send","allow","soon","watch","base","probably","suggest","past","power","test","visit","center","grow","nothing","return","mother","walk","matter","mind","value","office","record","stay","force","stop","several","light","develop","remember","bit","share","real","answer","sit","figure","letter","decide","language","subject","class","development","town","half","minute","food","break","clear","future","either","ago","per","remain","top","among","win","color","involve","reach","social","period","across","note","history","create","drive","along","type","sound","eye","music","game","political","free","receive","moment","sale","policy","further","body","require","wait","general","appear","toward","team","easy","individual","full","black","sense","perhaps","add","rule","pass","produce","sell","short","agree","law","everything","research","cover","paper","position","near","human","computer","situation","staff","activity","film","morning","war","account","shop","major","someone","above","design","event","special","sometimes","condition","carry","choose","father","decision","table","certain","forward","main","die","bear","cut","describe","himself","available","especially","strong","rise","girl","maybe","community","else","particular","role","join","difficult","please","detail","difference","action","health","eat","step","true","phone","themselves","draw","white","date","practice","model","raise","customer","front","explain","door","outside","behind","economic","site","approach","teacher","land","charge","finally","sign","claim","relationship","travel","enjoy","death","nice","amount","improve","picture","boy","regard","organization","happy","couple","act","range","quality","project","round","opportunity","road","accord","list","wish","therefore","wear","fund","rest","kid","industry","education","measure","kill","serve","likely","certainly","national","itself","teach","field","security","air","benefit","trade","risk","news","standard","vote","percent","focus","stage","space","instead","realize","usually","data","single","address","performance","chance","accept","society","technology","mention","choice","save","common","culture","total","demand","material","limit","listen","due","wrong","foot","effort","attention","upon","check","complete","lie","pick","reduce","personal","ground","animal","arrive","patient","current","century","evidence","exist","similar","fight","leader","fine","street","former","contact","particularly","wife","sport","prepare","discuss","response","voice","piece","finish","suppose","apply","president","fire","compare","court","police","store","poor","knowledge","laugh","arm","heart","source","employee","manage","simply","bank","firm","cell","article","fast","attack","foreign","surprise","feature","factor","pretty","recently","affect","drop","recent","relate","official","financial","miss","art","campaign","private","pause","everyone","forget","page","worry","summer","drink","opinion","park","represent","key","inside","manager","international","contain","notice","wonder","nature","structure","section","myself","exactly","plant","paint","worker","press","whatever","necessary","region","growth","evening","influence","respect","various","catch","thus","skill","attempt","son","simple","medium","average","stock","management","character","bed","hit","establish","indeed","final","economy","fit","guy","function","yesterday","image","size","behavior","addition","determine","station","population","fail","environment","production","contract","player","comment","enter","occur","alone","significant","drug","wall","series","direct","success","tomorrow","director","clearly","lack","review","depend","race","recognize","window","purpose","department","gain","tree","college","argue","board","holiday","mark","church","machine","achieve","item","prove","cent","season","floor","stuff","wide","anyone","method","analysis","election","military","hotel","club","below","movie","doctor","discussion","sorry","challenge","nation","nearly","statement","link","despite","introduce","advantage","ready","marry","strike","mile","seek","ability","unit","card","hospital","quickly","interview","agreement","release","tax","solution","capital","popular","specific","beautiful","fear","aim","television","serious","target","degree","pull","red","husband","access","movement","treat","identify","loss","shall","modern","pressure","bus","treatment","yourself","supply","village","worth","natural","express","indicate","attend","brother","investment","score","organize","trip","beyond","sleep","fish","promise","potential","energy","trouble","relation","touch","file","middle","bar","suffer","strategy","deep","except","clean","tend","advance","fill","star","network","generally","operation","match","avoid","seat","throw","task","normal","goal","associate","blue","positive","option","box","huge","message","instance","style","refer","cold","push","quarter","assume","baby","successful","sing","doubt","competition","theory","propose","reference","argument","adult","fly","document","pattern","application","hot","obviously","unclear","bill","search","separate","central","career","anyway","speech","dog","officer","throughout","oil","dress","profit","guess","fun","protect","resource","science","disease","balance","damage","basis","author","basic","encourage","hair","male","operate","reflect","exercise","useful","restaurant","income","property","previous","dark","imagine","okay","earn","daughter","post","newspaper","define","conclusion","clock","everybody","weekend","perform","professional","mine","debate","memory","green","song","object","maintain","credit","ring","discover","dead","afternoon","prefer","extend","possibility","direction","facility","variety","daily","clothes","screen","track","dance","completely","female","responsibility","original","sister","rock","dream","nor","university","easily","agency","dollar","garden","fix","ahead","cross","yeah","weight","legal","proposal","version","conversation","somebody","pound","magazine","shape","sea","immediately","welcome","smile","communication","agent","traditional","replace","judge","herself","suddenly","generation","estimate","favorite","difficulty","purchase","the","announce","unless","independent","recommend","survey","majority","stick","request","rich","wind","none","exchange","budget","famous","blood","appropriate","block","warm","count","scene","writer","content","prevent","safe","invite","mix","element","effective","correct","medical","admit","beat","telephone","copy","committee","aware","advice","handle","glass","trial","stress","radio","administration","complex","text","context","ride","directly","heavy","remove","conduct","equipment","otherwise","title","extra","executive","chair","expensive","sample","sex","deliver","video","connection","primary","weather","collect","inform","principle","straight","appeal","highly","trust","wonderful","flat","absolutely","flow","fair","additional","responsible","farm","collection","hang","negative","band","relative","tour","alternative","software","pair","ship","attitude","cheap","double","leg","observe","sentence","print","progress","truth","nobody","examine","lay","speed","politics","reply","display","transfer","perfect","slightly","overall","intend","user","respond","dinner","slow","regular","physical","apart","suit","federal","reveal","percentage","peace","status","crime","decline","decade","launch","warn","consumer","favor","dry","partner","institution","spot","horse","eventually","heat","excite","reader","importance","distance","guide","grant","taxi","feed","pain","sector","mistake","ensure","satisfy","chief","cool","expert","wave","south","labor","surface","library","excellent","edge","camp","audience","lift","procedure","email","global","struggle","advertise","select","surround","extent","river","annual","fully","contrast","roll","reality","photograph","artist","conflict","entire","presence","crowd","corner","gas","shift","net","category","secretary","defense","quick","cook","spread","nuclear","scale","driver","ball","cry","introduction","requirement","north","confirm","senior","photo","refuse","transport","emerge","map","concept","island","reform","neither","football","survive","flight","left","solve","neighbor","background","technique","traffic","improvement","tool","consequence","circumstance","smoke","reaction","rain","busy","lesson","brain","mass","funny","contribute","failure","schedule","speaker","bottom","adopt","combine","mountain","waste","hide","marriage","ticket","meal","colleague","bag","repeat","equal","expression","plus","extremely","owner","plane","commercial","lady","duty","strength","connect","cultural","arrange","scheme","payment","unfortunately","brief","bird","demonstrate","contribution","appreciate","chapter","secret","apparently","novel","union","burn","trend","initial","pleasure","suggestion","critical","gather","mostly","earth","pop","essential","desire","promote","currently","employ","path","topic","beach","attract","engage","powerful","flower","crisis","settle","boat","aid","fan","kitchen","twice","fresh","delay","safety","engineer","quiet","insurance","nurse","divide","length","investigation","package","somewhere","expand","commit","obvious","jump","weapon","relatively","host","winter","district","broad","tire","spring","spirit","lunch","actual","pool","battle","tradition","cash","hardly","award","coach","experiment","consideration","strange","code","possibly","threat","accident","impossible","revenue","enable","afraid","active","conclude","religious","cancer","convince","vary","environmental","sun","healthy","blow","volume","location","invest","proceed","wash","actor","glad","tape","whereas","opposite","stone","sum","murder","monitor","soldier","finance","hate","egg","concert","shock","comfortable","usual","carefully","pack","recall","wine","camera","swim","manufacture","theater","cycle","coffee","totally","museum","visitor","freedom","construction","dear","objective","moreover","onto","historical","oppose","branch","vehicle","scientist","route","bind","belong","taste","tonight","fashion","danger","bomb","army","dangerous","decrease","hurt","council","editor","normally","sight","generate","gift","delivery","deny","guest","anybody","bedroom","quote","climb","basically","violence","minister","mainly","mouth","noise","manner","gun","square","occasion","familiar","ignore","destroy","affair","civil","locate","citizen","temperature","gold","domestic","load","belief","troop","technical","remind","arrangement","skin","prison","switch","acquire","corporate","fairly","wood","participate","tough","tear","representative","capacity","border","shake","assessment","shoe","ought","ad","fee","hall","regulation","escape","studio","proper","relax","tourist","component","afford","lawyer","suspect","cup","description","confidence","industrial","complain","perspective","error","arrest","assess","register","asset","signal","finger","relevant","explore","leadership","commitment","wake","necessarily","bright","frame","slowly","bond","hire","hole","tie","internal","chain","literature","victim","threaten","division","secure","amaze","device","birth","forest","label","root","factory","expense","channel","investigate","recommendation","rank","typical","west","friendly","resident","provision","concentrate","plenty","export","entirely","strongly","bridge","consist","graduate","brand","moral","insist","combination","abuse","ice","principal","master","definitely","session","grade","nevertheless","predict","previously","protection","largely","wed","rent","shot","appearance","reasonable","guarantee","till","theme","judgment","odd","approve","loan","definition","elect","atmosphere","farmer","comparison","characteristic","license","rely","narrow","succeed","identity","desk","permit","seriously","wild","empty","commission","unique","association","instrument","investor","practical","tea","lovely","soft","row","youth","lock","fuel","expectation","employment","celebrate","sexual","shoulder","breath","increasingly","import","bottle","ourselves","sheet","engine","cast","notion","conservative","journey","opposition","relief","debt","honor","outcome","blame","explanation","arise","musical","recover","dad","stretch","declare","retire","tiny","careful","suitable","native","fruit","analyze","witness","mail","terrible","researcher","ordinary","selection","anywhere","mental","participant","vision","personality","specifically","fat","entry","fellow","chemical","capture","tip","discount","peak","chairman","proportion","ear","disappear","shout","yard","constant","significantly","hill","considerable","instruction","intelligence","ideal","folk","surely","guard","cat","somewhat","kiss","presentation","joint","compete","poll","weak","faith","reduction","reserve","complaint","bore","mission","somehow","tone","neighborhood","passenger","justice","phase","thin","rush","formal","religion","employer","reject","latter","plate","ban","steal","protest","index","sad","frequently","circle","helpful","command","attractive","sick","impression","unable","joke","sky","column","electronic","impose","criminal","besides","properly","ancient","coast","ill","kick","closely","multiple","yield","via","legislation","county","unlike","mobile","assistant","implement","chart","attach","hell","everywhere","advise","household","acknowledge","reward","east","hat","academic","voter","meanwhile","furthermore","accuse","scientific","wage","absence","construct","remark","medicine","professor","rare","intention","dozen","settlement","gap","widely","minimum","northern","estate","equally","expose","alive","shut","victory","resolve","critic","variable","enormous","sweet","permanent","emotion","pursue","tall","urge","enemy","appoint","milk","talent","smell","prior","priority","online","phrase","pilot","stable","merely","resolution","communicate","injury","vast","exhibition","producer","regional","immediate","incident","childhood","draft","slip","accompany","politician","angry","knock","seed","salary","illustrate","imply","breakfast","temporary","liberal","lake","qualify","competitive","truly","hi","yellow","habit","disk","core","emotional","aircraft","self","metal","existence","bone","panel","prime","appointment","emphasize","maximum","effectively","elsewhere","bother","initiative","sharp","diet","motion","gray","plastic","complicate","discipline","disappoint","boss","assumption","freeze","extreme","passage","reputation","forth","negotiation","mechanism","coat","democracy","pocket","lucky","crash","observation","meat","concentration","implication","deserve","unusual","defend","classic","king","interaction","repair","collapse","borrow","fundamental","dish","abroad","soul","capable","defeat","presidential","perfectly","enhance","proud","emergency","educational","distinguish","substantial","nearby","manufacturer","slide","valuable","personally","breast","cope","approximately","accommodation","highlight","reporter","climate","shirt","exception","corporation","chip","winner","encounter","brown","breathe","excuse","partly","tennis","urban","confuse","southern","output","beauty","massive","install","calculate","mouse","mathematics","upper","creation","occupy","outline","sufficient","update","luck","preserve","split","swing","illness","journalist","sudden","advertisement","consistent","originally","aside","comfort","secondly","severe","gene","prospect","snow","plot","neck","criterion","primarily","integrate","criticism","convention","bet","retain","sequence","plain","volunteer","rural","calm","abandon","examination","silence","rapidly","efficient","revolution","delight","spell","premise","lean","dramatic","differ","grateful","protein","bike","distribute","intellectual","derive","crucial","unemployment","wheel","crop","minority","origin","interpretation","gentleman","drama","landscape","educate","toy","fault","exhibit","minor","hunt","storm","thick","achievement","negotiate","shoot","supplier","prize","typically","peer","pension","wing","acquisition","laughter","deeply","recognition","electricity","assistance","roof","retirement","respectively","variation","ultimately","proof","soil","smart","layer","upset","tooth","representation","preparation","dispute","agenda","emphasis","edition","silver","entertainment","honest","undertake","retail","wire","unlikely","gay","publication","slight","unknown","framework","zone","restrict","trace","inch","equivalent","solid","enterprise","elderly","owe","governor","uniform","port","pitch","arrival","contemporary","gate","ease","beer","specialist","assure","profile","mood","episode","crack","numerous","submit","symptom","virtually","era","coverage","tension","cable","sensitive","nervous","input","isolate","prisoner","eliminate","tight","wet","secondary","welfare","recruit","exclude","string","cloud","persuade","inspire","grand","hence","crew","phenomenon","pupil","false","assist","restore","formula","alter","perceive","routine","sink","stare","anymore","hero","supporter","convert","steady","meter","truck","nose","beside","sail","disaster","pace","heavily","devote","terrorist","justify","vital","fascinate","external","spare","whenever","depression","guilty","underlie","mom","distinction","satisfaction","incorporate","pour","sweep","obligation","sir","evaluate","anger","pub","perception","naturally","currency","database","initially","territory","stream","rarely","height","apparent","western","expansion","constantly","muscle","scare","badly","everyday","boundary","ratio","essay","scream","withdraw","pollution","disorder","furniture","symbol","apartment","demonstration","analyst","platform","steel","cake","transform","wound","restriction","foundation","designer","strain","innovation","album","singer","trail","trap","loose","extension","wealth","gradually","tank","evil","remarkable","tune","grass","invitation","transition","frighten","bid","breed","extraordinary","brilliant","adviser","stem","reverse","mode","mirror","awful","pose","adjust","creative","nowadays","poem","agricultural","competitor","alcohol","festival","vegetable","van","confident","planet","curve","knee","overcome","web","depth","entrance","log","giant","god","portion","substance","extensive","interpret","independence","sugar","inner","harm","consult","pink","shadow","strip","smooth","intervention","impress","exam","vice","radical","similarly","behave","loud","dimension","subsequent","infection","jacket","efficiency","dirty","statistic","regularly","resort","iron","broadcast","membership","bread","blind","pure","bloody","ally","quantity","bend","mature","briefly","alarm","disturb","sustain","flood","poverty","crazy","cite","newly","parallel","gender","sponsor","boot","accurate","dealer","button","burden","desert","mate","occasionally","shareholder","bowl","discovery","resistance","bath","frequency","criticize","tap","philosophy","lip","attribute","apologize","approval","grab","entitle","lend","involvement","exposure","conventional","digital","translate","edit","formation","deposit","pleasant","overseas","advocate","establishment","summary","rough","pen","recovery","seal","tube","tower","characterize","specify","exact","spin","operator","infant","dig","drag","mount","wrap","anticipate","dependent","specialize","angle","chicken","anxiety","virus","precisely","rival","offense","detect","teenager","admire","moderate","surgery","musician","significance","shower","illegal","charity","universal","cigarette","constitute","adequate","consultant","historian","cousin","visual","stupid","keen","ethnic","twin","clinical","eastern","forecast","segment","custom","adapt","sand","cap","prompt","charm","react","lecture","venture","compound","rescue","mess","preference","comprehensive","incentive","league","dialog","cream","rapid","cancel","regret","dismiss","margin","beneath","opponent","resist","capability","absolute","correspond","stroke","dare","barrier","rid","divorce","ruin","bury","counsel","tendency","frequent","motor","survival","counter","possess","permission","valley","float","mad","greatly","visible","electric","impressive","evolution","awareness","violent","slave","wealthy","architecture","acceptable","journal","coal","measurement","random","successfully","depress","illustration","burst","privilege","buyer","mutual","rail","motivate","laboratory","mortgage","promotion","passion","champion","fulfill","dust","dedicate","roughly","skirt","province","march","evaluation","compromise","accomplish","weakness","announcement","salt","glance","opera","contest","brush","embarrass","gallery","genetic","aggressive","chest","format","literary","govern","embrace","praise","silent","pump","publisher","celebration","golf","compensation","classical","weigh","versus","deficit","modify","flash","friendship","profession","literally","equation","gesture","entertain","fantastic","assign","inflation","historic","injure","remote","therapy","orange","twist","personnel","imagination","disagree","throat","insight","tackle","forever","exceed","expenditure","joy","pregnant","reliable","gear","poet","fortune","ceremony","pile","pig","mixture","automatically","scholar","psychological","dramatically","stake","creature","partnership","participation","clause","penalty","chamber","fancy","poetry","chat","clothing","evolve","sake","shelf","boost","tail","possession","abortion","curious","wooden","boom","tale","democratic","maintenance","consequently","pot","cow","strengthen","whilst","constraint","fold","bin","undergo","potentially","scope","pretend","diversity","allege","pride","intense","inquiry","resign","craft","strict","concrete","shell","damn","distinct","humor","limitation","indication","stability","wise","neglect","compose","jail","shelter","mere","carbon","regulate","cheese","trigger","pipe","destruction","guitar","flag","piano","magic","mystery","ski","whisper","rear","menu","species","moon","presumably","bless","airline","amendment","grandmother","jury","cooperation","civilian","composition","coin","regardless","scan","bunch","racial","greet","hopefully","sanction","trick","paragraph","maker","chocolate","stimulate","belt","potato","narrative","tissue","barely","invent","tourism","pro","stair","hesitate","shine","motivation","romantic","firmly","interior","stomach","nowhere","pray","championship","servant","immigrant","excess","complexity","liability","surprisingly","extract","implementation","bias","differently","catalog","continuous","golden","stamp","guideline","envelope","knife","biological","consume","luxury","weekly","wherever","bite","printer","firstly","anxious","adventure","fence","exhaust","attraction","ocean","quietly","castle","veteran","reflection","nerve","determination","altogether","fiction","carpet","cluster","confusion","hurry","logic","controversial","raw","grammar","revise","hint","hook","bell","liquid","panic","uncle","rice","slope","happiness","genuine","vessel","verb","reckon","silly","transportation","harbor","comedy","chase","storage","universe","horrible","sheep","lover","rat","portrait","innocent","substitute","supplement","adjustment","reasonably","filter","flexible","abstract","tent","precise","distant","stranger","shade","grain","situate","summarize","leap","snap","probability","leather","uncertainty","swear","refugee","shore","monthly","comprise","stir","excitement","sigh","pregnancy","experimental","institutional","slice","wander","empire","subsequently","gentle","attendance","ownership","qualification","suspend","functional","voluntary","pale","stain","athlete","organic","tongue","server","structural","fool","alongside","unite","gently","compute","wipe","weird","gaze","fade","cough","hypothesis","royal","theoretical","curtain","mayor","darkness","aunt","tournament","registration","fragment","listener","tender","density","ugly","module","faithfully","autumn","cheek","attachment","holder","grin","noun","fortunate","alright","lazy","hello","hunger","insure","ashamed","found","thirst","dominate"]
@@ -0,0 +1 @@
1
+ ["11ty","3ds","3dsmax","aarch64","actions","adobe","adobeaftereffects","adobeillustrator","adobephotoshop","adobepremierepro","adobexd","adonis","adonisjs","ae","aerospike","aframe","aftereffects","ain","airflow","akka","algolia","align","almalinux","alpine","alpinejs","amazonwebservices","anaconda","android","androidstudio","angular","angularjs","angularmaterial","ansible","ansys","antdesign","apache","apacheairflow","apachecouchdb","apachegradle","apachegroovy","apachekafka","apachemaven","apachespark","apachesubversion","apex","apl","apollo","apollographql","appcelerator","apple","applesafari","appwrite","archlinux","arduino","argocd","arm64","artix","artixlinux","astro","atlassianbamboo","atlassianbitbucket","atlassianconfluence","atlassianjira","atlassiantrello","atom","autodesk","awk","aws","axios","azure","azurecosmosdb","azuredevops","azuresqldatabase","babel","babeljs","babylon","babylonjs","backbone","backbonejs","bal","ballerina","bamboo","bash","bazel","beats","behance","bevy","bevyengine","biome","biomejs","bitbucket","blazor","blender","bootstrap","bourneagainshell","bower","browserstack","buildtoolbazel","bulma","bulmacss","bun","cairo","cairographics","cakephp","canva","capacitor","capacitorjs","cascadingstylesheets3","cassandra","centos","ceylon","ceylonlang","chakra","chakraui","chartjs","chrome","circleci","cjs","clarity","clickhouse","clion","clojure","clojurescript","cloudflare","cloudflareworkers","cloudrun","cmake","cobol","codeac","codeacio","codecov","codeigniter","codepen","codespaces","coffeescript","components","composer","confluence","consul","contao","corejs","cosmosdb","couchbase","couchdb","cpanel","cplusplus","cpp","crystal","crystallang","csharp","csr","css3","cucumber","cucumberjs","cypress","cypressio","d3js","dart","datadog","datagrip","dataspell","datatables","dbeaver","debian","delphi","deno","denojs","deta","detaspace","developer","devicon","devops","digitalocean","discloud","discord","discordjs","django","djangorest","docker","doctrine","dot","dotnet","dotnetcore","dovecot","dreamweaver","dropwizard","drupal","dto","duckdb","dyalog","dynamodb","dynatrace","eclipse","eclipseceylon","eclipsevertx","ecmascript","ecto","editingmacros","ef","elasticsearch","electron","electronjs","eleventy","elexirlang","elixir","elm","elmlang","emacs","embarcadero","embeddedc","ember","emberjs","entity","entityframeworkcore","envoy","envoyproxy","erlang","eslint","expo","expressjs","extensiblemarkuplanguage","extensions","facebook","fastapi","fastify","fauna","faunadb","feathers","feathersjs","fedora","fiber","figma","filamentphp","filezilla","firebase","firebird","firefox","flask","flutter","forgejo","fortran","framer","framermotion","framework7","fsharp","fusion","gardener","gatling","gatsby","gatsbyjs","gazebo","gcc","gentoo","ghost","gimp","git","gitbook","github","githubactions","githubcodespaces","gitkraken","gitlab","gitpod","gitter","gleam","glitch","gnu","gnucompilercollection","godot","gofiber","gohugo","goland","golang","google","googlechrome","googlecloud","googlecolab","googlecolaboratory","googledart","gradle","gradlebuildtool","grafana","grails","groovy","groovylang","grpc","grpcio","grunt","gruntjs","gulp","gulpjs","hadoop","handlebars","handlebarsjs","hardhat","harvester","harvesterhci","hashicorp","haskell","haxe","helm","heroku","hibernate","homebrew","hoppscotch","html5","htmx","hudson","hugo","hyper","hypertext","hypertextmarkdownlanguage5","hyperv","ibmspss","ide","ie10","ifthisthenthat","ifttt","illustrator","inertia","inertiajs","influxdb","ini","inkscape","insomnia","intellij","intellijidea","intellijsoftware","internetexplorer10","io","ionic","jaeger","jaegertracing","jamstack","jasmine","jasminejs","java","javascript","jeet","jekyll","jenkins","jest","jestjs","jetbrains","jetpackcompose","jetstream","jhipster","jira","jiraalign","jquery","jqueryjs","js","jsx","jule","julelang","julia","julialang","junit","jupyter","jupyternotebook","k3os","k3s","k6","kaggle","kaldi","kali","kalilinux","karate","karatelabs","karma","karmajs","karmarunner","kdeneon","keras","kibana","knex","knexjs","knockout","knockoutjs","kotlin","kotlinlang","kraken","krakenjs","ktor","kubeflow","kubernetes","labview","laminas","lang","laravel","laraveljetstream","latex","leetcode","lesscss","libgdx","linkedin","linux","linuxmint","liquibase","livewire","llvm","lodash","logstash","love2d","lua","lualang","lumen","magento","mapbox","mariadb","markdown","markup","materialize","materializecss","materialui","matlab","matplotlib","mattermost","maven","max","maya","md","memcached","mercurial","meteor","meteorjs","microsoft","microsoftazure","microsoftdiskoperatingsystem","microsoftsqlserver","minitab","mithril","mjs","mobx","mobxjs","mocha","modeling","modx","moleculer","moleculerjs","mongodb","mongoose","mongoosejs","monogame","moodle","mozillafirefox","msdos","msql","mssql","mui","mvn","my","mysql","mystructuredquerylanguage","nano","nats","neo4j","neorg","neovim","nest","nestjs","netbeans","netbox","netcore","netlify","networkx","newrelic","nextjs","nginx","ngrok","ngrx","nhibernate","nim","nimble","nimlang","nixos","nodejs","nodemon","nodemonjs","nodepackagemanager","nodered","nodewebkit","nomad","norg","notation","npm","npmjs","npss","nuget","numpy","nuxt","nuxtjs","nw","nwjs","objectivec","ocaml","oh","ohmyz","ohmyzsh","okta","omz","openal","openapi","opencl","opencv","opengl","opengraphicslibrary","openstack","opensuse","opentelemetry","oracle","oracledatabase","ory","os","overflow","p5","p5js","packer","pandas","passport","passportjs","performant","perl","pfsense","phalcon","phoenix","photon","photonengine","photoshop","php","phpstorm","pixi","pixijs","playwright","plotly","pm2","pnpm","podman","polygon","portainer","postcss","postgres","postgresql","postman","powershell","premierepro","preprocessor","primeng","prisma","processing","processingpy","processwire","programming","prolog","prometheus","protractor","protractorjs","protractortest","proxmox","ps","pug","pugjs","pulsar","pulumi","puppeteer","purescript","putty","pwa","py","pycharm","pypi","pyscript","pytest","python","pytorch","qodana","qt","qtest","quarkus","quasar","qwik","rabbitmq","racket","rad","radstudio","rails","railway","rancher","raspberrypi","reactbootstrap","reactive","reactjs","reactnative","reactnavigation","reactrouter","readthedocs","realm","rect","rectlang","redhat","redis","redux","reduxjs","reflex","remix","remotedictionaryserver","ren","renpy","replit","rexx","rider","rlang","robotoperatingsystem","rocksdb","rocky","rockylinux","rollup","rollupjs","ros","rpi","rspec","rstudio","ruby","rubylang","rubymine","rubyonrails","rust","rustlang","rx","rxjs","safari","salesforce","sanity","sass","scala","scalalang","scalingo","scikit","scikitlearn","scss","sdl","secureshell","selenium","sema","sentry","sequelize","sequelizejs","sh","shopware","shotgrid","simpledirectmedialayer","sketch","sklearn","slack","socketio","solidity","soliditylang","solidjs","sonar","sonarqube","sourceengine","sourcetree","spa","spack","spicedb","splunk","springframework","spss","spyder","sqlalchemy","sqldeveloper","sqlite","ssr","stack","stackblitz","stackoverflow","stata","stencil","stenciljs","storybook","storybookjs","streamlit","styled","styledcomponents","stylus","styluslang","subversion","sulu","supabase","surrealdb","svelte","sveltejs","svgo","swagger","swi","swift","swiper","symfony","tailwindcss","talos","tauri","teleport","tensorflow","terraform","terramate","tex","thealgorithms","three","threedsmax","threejs","thymeleaf","titaniumsdk","tmux","tomcat","toml","tortoisegit","towergit","towergitclient","traefikmesh","traefikproxy","travis","travisci","trello","trpc","ts","tsx","turbo","twilio","twitter","typescript","typo3","ubuntu","uml","unified","unifiedmodelinglanguage","unity","unix","unrealengine","uwebservergatewayinterface","uwsgi","v8","vaadin","vagrant","vala","vault","vb","ve","veevalidate","vercel","vertx","viimproved","vim","virtual","visualbasic","visualstudio","visualstudiocode","vite","vitejs","vitess","vitest","vmwarevsphere","vs","vscode","vscodium","vsphere","vue","vuejs","vuestorefront","vuetify","vulkan","vyper","vyperlang","waku","wasm","web3","web3js","webassembly","webflow","webgpu","weblate","webpack","webpackjs","webstorm","windows11","windows8","wolfram","wolframlanguage","woocommerce","wordpress","workers","xamarin","xcode","xd","yarn","yesitis","yii","yugabytedb","yunohost","zend","zig","ziglang","zsh","zustand"]
@@ -0,0 +1,19 @@
1
+ export declare const BUILTIN_DICTIONARIES: {
2
+ /** Base: 2801 everyday high-frequency words (includes function words like the/and). */
3
+ readonly everyday: readonly string[];
4
+ /** Add-on: 963 academic words. Combine with everyday. */
5
+ readonly academic: readonly string[];
6
+ /** Add-on: common software / technical-writing terms (api, deploy, schema ...). */
7
+ readonly tech: readonly string[];
8
+ /** Add-on: framework / library / tool names (vue, vite, webpack, docker ...). */
9
+ readonly frameworks: readonly string[];
10
+ };
11
+ /** Name of a built-in dictionary. */
12
+ export type DictionaryName = keyof typeof BUILTIN_DICTIONARIES;
13
+ /** List the names of every built-in dictionary. */
14
+ export declare function listDictionaries(): DictionaryName[];
15
+ /**
16
+ * Get a built-in dictionary's word list by name.
17
+ * Throws a clear error when the name is unknown.
18
+ */
19
+ export declare function getDictionary(name: string): readonly string[];
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BUILTIN_DICTIONARIES = void 0;
7
+ exports.listDictionaries = listDictionaries;
8
+ exports.getDictionary = getDictionary;
9
+ /**
10
+ * Built-in dictionaries. Callers pick one by name instead of supplying their
11
+ * own word list.
12
+ *
13
+ * `everyday` is the base. `academic`, `tech` and `frameworks` are ADD-ONS —
14
+ * each holds only its own extra words, meant to be combined onto `everyday`,
15
+ * e.g. combineDictionaries("everyday", "academic") or `--dict everyday,tech`.
16
+ * (An add-on used alone will flag function words; always pair it with everyday.)
17
+ *
18
+ * Each dictionary is a plain array of base-form words. See ./ATTRIBUTION.md for
19
+ * the data sources and licences.
20
+ */
21
+ const everyday_json_1 = __importDefault(require("./everyday.json"));
22
+ const academic_json_1 = __importDefault(require("./academic.json"));
23
+ const tech_json_1 = __importDefault(require("./tech.json"));
24
+ const frameworks_json_1 = __importDefault(require("./frameworks.json"));
25
+ exports.BUILTIN_DICTIONARIES = {
26
+ /** Base: 2801 everyday high-frequency words (includes function words like the/and). */
27
+ everyday: everyday_json_1.default,
28
+ /** Add-on: 963 academic words. Combine with everyday. */
29
+ academic: academic_json_1.default,
30
+ /** Add-on: common software / technical-writing terms (api, deploy, schema ...). */
31
+ tech: tech_json_1.default,
32
+ /** Add-on: framework / library / tool names (vue, vite, webpack, docker ...). */
33
+ frameworks: frameworks_json_1.default,
34
+ };
35
+ /** List the names of every built-in dictionary. */
36
+ function listDictionaries() {
37
+ return Object.keys(exports.BUILTIN_DICTIONARIES);
38
+ }
39
+ /**
40
+ * Get a built-in dictionary's word list by name.
41
+ * Throws a clear error when the name is unknown.
42
+ */
43
+ function getDictionary(name) {
44
+ const words = exports.BUILTIN_DICTIONARIES[name];
45
+ if (!words) {
46
+ throw new Error(`Unknown dictionary "${name}". Available: ${listDictionaries().join(", ")}`);
47
+ }
48
+ return words;
49
+ }
@@ -0,0 +1 @@
1
+ ["api","endpoint","schema","payload","header","json","xml","yaml","html","css","http","https","url","uri","graphql","webhook","cors","ajax","cookie","oauth","jwt","token","auth","authentication","authorization","login","logout","signin","signup","sso","query","migration","dataset","nullable","datetime","timestamp","uuid","sql","orm","crud","cache","dump","backup","snapshot","dedup","deduplicate","pagination","paginate","cursor","offset","mutation","resolver","frontend","backend","fullstack","ui","ux","render","hydration","dom","viewport","layout","navigation","breadcrumb","dropdown","modal","tooltip","placeholder","widget","checkbox","datepicker","stylesheet","responsive","browser","client","repo","repository","codebase","merge","rebase","diff","lint","linter","compile","bundle","dependency","plugin","sdk","cli","runtime","compiler","debug","debugger","breakpoint","stacktrace","changelog","readme","deploy","deployment","rollout","rollback","revert","staging","prod","dev","env","config","configuration","configure","infrastructure","infra","container","node","pod","hostname","localhost","dns","cdn","proxy","gateway","firewall","ssl","tls","ssh","vpc","bucket","queue","cron","scheduler","pipeline","ci","cd","scaffold","serverless","lambda","microservice","monolith","validate","validation","verify","verification","mock","stub","fixture","assertion","regression","monitoring","alert","logging","metrics","telemetry","observability","dashboard","throughput","latency","timeout","retry","fallback","idempotent","idempotency","runbook","checklist","acceptance","blocker","fetch","parse","serialize","deserialize","sync","async","asynchronous","callback","throttle","debounce","toggle","disable","deprecate","refactor","override","instantiate","initialize","populate","persist","ingest","sanitize","normalize","encode","decode","hash","encrypt","decrypt","traverse","iterate","append","prepend","upsert","insert","delete","spec","docs","doc","documentation","wiki","backlog","milestone","walkthrough","onboarding","handoff","workflow","metadata","param","parameter","boolean","integer","array","enum","regex","namespace","prefix","suffix","slug","default","optional","duplicate","middleware","websocket","polling","ratelimit","batch","chunk","setup","cleanup","lookup","template","script","console","stale","legacy","pending","invalid","disabled","downstream","upstream"]
@@ -0,0 +1,8 @@
1
+ /** Build a fast, lower-cased look-up set from any word list. */
2
+ export declare function buildDictionary(words: Iterable<string>): Set<string>;
3
+ /**
4
+ * Find a lower-cased word in the dictionary, trying its base-form candidates
5
+ * in order. Returns the matched dictionary entry, or null. Deterministic:
6
+ * candidates are tried in a fixed order, so the first hit is always the same.
7
+ */
8
+ export declare function findInDictionary(word: string, dict: ReadonlySet<string>): string | null;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildDictionary = buildDictionary;
4
+ exports.findInDictionary = findInDictionary;
5
+ /**
6
+ * Dictionary building and single-word look-up. Both functions are pure.
7
+ */
8
+ const base_form_1 = require("./base-form");
9
+ /** Build a fast, lower-cased look-up set from any word list. */
10
+ function buildDictionary(words) {
11
+ const set = new Set();
12
+ for (const word of words) {
13
+ const trimmed = word.trim().toLowerCase();
14
+ if (trimmed)
15
+ set.add(trimmed);
16
+ }
17
+ return set;
18
+ }
19
+ /**
20
+ * Find a lower-cased word in the dictionary, trying its base-form candidates
21
+ * in order. Returns the matched dictionary entry, or null. Deterministic:
22
+ * candidates are tried in a fixed order, so the first hit is always the same.
23
+ */
24
+ function findInDictionary(word, dict) {
25
+ for (const form of (0, base_form_1.possibleBaseForms)(word)) {
26
+ if (dict.has(form))
27
+ return form;
28
+ }
29
+ return null;
30
+ }
@@ -0,0 +1,14 @@
1
+ export declare function splitWords(text: string): string[];
2
+ /**
3
+ * Split a word written in camelCase / PascalCase into its parts, so a code
4
+ * identifier is not mistaken for one unknown word:
5
+ *
6
+ * getUserById -> ["get", "User", "By", "Id"]
7
+ * backgroundColor -> ["background", "Color"]
8
+ * HTTPServer -> ["HTTP", "Server"]
9
+ *
10
+ * Only words that mix upper and lower case are split. A plain word, an
11
+ * all-capitals word (AWS), or a lower-case word is returned unchanged.
12
+ * Original case is kept so callers can still judge each part.
13
+ */
14
+ export declare function splitCamelCase(word: string): string[];
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitWords = splitWords;
4
+ exports.splitCamelCase = splitCamelCase;
5
+ /**
6
+ * Split a string into word-like pieces. One job only: break text into words.
7
+ * It does not lower-case, judge, or look anything up.
8
+ *
9
+ * - Letter runs become words ("well-known" splits into "well" and "known"
10
+ * because the hyphen is not part of a word).
11
+ * - Number runs ("3", "3.14", "1,000") become their own pieces.
12
+ * - Original case is kept so callers can spot proper nouns later.
13
+ */
14
+ const WORD_RE = /[A-Za-z]+|[0-9]+(?:[.,][0-9]+)*/g;
15
+ function splitWords(text) {
16
+ return text.match(WORD_RE) ?? [];
17
+ }
18
+ /**
19
+ * Split a word written in camelCase / PascalCase into its parts, so a code
20
+ * identifier is not mistaken for one unknown word:
21
+ *
22
+ * getUserById -> ["get", "User", "By", "Id"]
23
+ * backgroundColor -> ["background", "Color"]
24
+ * HTTPServer -> ["HTTP", "Server"]
25
+ *
26
+ * Only words that mix upper and lower case are split. A plain word, an
27
+ * all-capitals word (AWS), or a lower-case word is returned unchanged.
28
+ * Original case is kept so callers can still judge each part.
29
+ */
30
+ function splitCamelCase(word) {
31
+ if (!(/[a-z]/.test(word) && /[A-Z]/.test(word)))
32
+ return [word];
33
+ return word
34
+ .replace(/([a-z0-9])([A-Z])/g, "$1 $2") // getUser -> get User
35
+ .replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2") // HTTPServer -> HTTP Server
36
+ .split(" ");
37
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * easyen — check how much of a text is covered by a given vocabulary.
3
+ *
4
+ * The package is built from small, pure, single-purpose functions. The main
5
+ * entry is `checkCoverage`, but every step is exported so you can compose
6
+ * your own pipeline.
7
+ *
8
+ * import { checkCoverage } from "easyen";
9
+ *
10
+ * const result = checkCoverage(text, "everyday");
11
+ * if (result.ratio < 0.98) {
12
+ * console.log("could be simpler:", result.hardWords);
13
+ * }
14
+ */
15
+ import { checkCoverage } from "./coverage";
16
+ export { checkCoverage };
17
+ export { combineDictionaries } from "./coverage";
18
+ export { checkSentences } from "./sentences";
19
+ export type { SentenceCheck, SentenceOptions, LongSentence, } from "./sentences";
20
+ export type { CheckOptions, CoverageResult, WordResult, HardWord, DictionarySource, } from "./coverage";
21
+ export { BUILTIN_DICTIONARIES, listDictionaries, getDictionary, } from "./dictionaries";
22
+ export type { DictionaryName } from "./dictionaries";
23
+ export { pipe } from "./pipe";
24
+ export { normalizeApostrophes, expandContractions } from "./normalize";
25
+ export { splitWords, splitCamelCase } from "./extract";
26
+ export { isNumber, isCapitalized, isNumberWord, isSingleLetter, isAllCapitals, } from "./classify";
27
+ export { possibleBaseForms } from "./base-form";
28
+ export { buildDictionary, findInDictionary } from "./dictionary";
29
+ export { IRREGULARS } from "./irregulars";
30
+ declare const _default: {
31
+ checkCoverage: typeof checkCoverage;
32
+ };
33
+ export default _default;
package/dist/index.js ADDED
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * easyen — check how much of a text is covered by a given vocabulary.
4
+ *
5
+ * The package is built from small, pure, single-purpose functions. The main
6
+ * entry is `checkCoverage`, but every step is exported so you can compose
7
+ * your own pipeline.
8
+ *
9
+ * import { checkCoverage } from "easyen";
10
+ *
11
+ * const result = checkCoverage(text, "everyday");
12
+ * if (result.ratio < 0.98) {
13
+ * console.log("could be simpler:", result.hardWords);
14
+ * }
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.IRREGULARS = exports.findInDictionary = exports.buildDictionary = exports.possibleBaseForms = exports.isAllCapitals = exports.isSingleLetter = exports.isNumberWord = exports.isCapitalized = exports.isNumber = exports.splitCamelCase = exports.splitWords = exports.expandContractions = exports.normalizeApostrophes = exports.pipe = exports.getDictionary = exports.listDictionaries = exports.BUILTIN_DICTIONARIES = exports.checkSentences = exports.combineDictionaries = exports.checkCoverage = void 0;
18
+ // Main pipeline
19
+ const coverage_1 = require("./coverage");
20
+ Object.defineProperty(exports, "checkCoverage", { enumerable: true, get: function () { return coverage_1.checkCoverage; } });
21
+ var coverage_2 = require("./coverage");
22
+ Object.defineProperty(exports, "combineDictionaries", { enumerable: true, get: function () { return coverage_2.combineDictionaries; } });
23
+ // Second signal: sentence length
24
+ var sentences_1 = require("./sentences");
25
+ Object.defineProperty(exports, "checkSentences", { enumerable: true, get: function () { return sentences_1.checkSentences; } });
26
+ // Built-in dictionaries (pick one by name)
27
+ var dictionaries_1 = require("./dictionaries");
28
+ Object.defineProperty(exports, "BUILTIN_DICTIONARIES", { enumerable: true, get: function () { return dictionaries_1.BUILTIN_DICTIONARIES; } });
29
+ Object.defineProperty(exports, "listDictionaries", { enumerable: true, get: function () { return dictionaries_1.listDictionaries; } });
30
+ Object.defineProperty(exports, "getDictionary", { enumerable: true, get: function () { return dictionaries_1.getDictionary; } });
31
+ // Individual steps (composable / testable on their own)
32
+ var pipe_1 = require("./pipe");
33
+ Object.defineProperty(exports, "pipe", { enumerable: true, get: function () { return pipe_1.pipe; } });
34
+ var normalize_1 = require("./normalize");
35
+ Object.defineProperty(exports, "normalizeApostrophes", { enumerable: true, get: function () { return normalize_1.normalizeApostrophes; } });
36
+ Object.defineProperty(exports, "expandContractions", { enumerable: true, get: function () { return normalize_1.expandContractions; } });
37
+ var extract_1 = require("./extract");
38
+ Object.defineProperty(exports, "splitWords", { enumerable: true, get: function () { return extract_1.splitWords; } });
39
+ Object.defineProperty(exports, "splitCamelCase", { enumerable: true, get: function () { return extract_1.splitCamelCase; } });
40
+ var classify_1 = require("./classify");
41
+ Object.defineProperty(exports, "isNumber", { enumerable: true, get: function () { return classify_1.isNumber; } });
42
+ Object.defineProperty(exports, "isCapitalized", { enumerable: true, get: function () { return classify_1.isCapitalized; } });
43
+ Object.defineProperty(exports, "isNumberWord", { enumerable: true, get: function () { return classify_1.isNumberWord; } });
44
+ Object.defineProperty(exports, "isSingleLetter", { enumerable: true, get: function () { return classify_1.isSingleLetter; } });
45
+ Object.defineProperty(exports, "isAllCapitals", { enumerable: true, get: function () { return classify_1.isAllCapitals; } });
46
+ var base_form_1 = require("./base-form");
47
+ Object.defineProperty(exports, "possibleBaseForms", { enumerable: true, get: function () { return base_form_1.possibleBaseForms; } });
48
+ var dictionary_1 = require("./dictionary");
49
+ Object.defineProperty(exports, "buildDictionary", { enumerable: true, get: function () { return dictionary_1.buildDictionary; } });
50
+ Object.defineProperty(exports, "findInDictionary", { enumerable: true, get: function () { return dictionary_1.findInDictionary; } });
51
+ var irregulars_1 = require("./irregulars");
52
+ Object.defineProperty(exports, "IRREGULARS", { enumerable: true, get: function () { return irregulars_1.IRREGULARS; } });
53
+ exports.default = { checkCoverage: coverage_1.checkCoverage };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Irregular inflected forms -> base (dictionary) form.
3
+ *
4
+ * Rules alone cannot turn "went" into "go" or "children" into "child".
5
+ * This small hand-made map covers the most common irregular words so the
6
+ * lemmatizer does not wrongly mark them as "out of vocabulary".
7
+ *
8
+ * Keep keys lower-case. You can extend this map freely; nothing else needs
9
+ * to change.
10
+ */
11
+ export declare const IRREGULARS: Readonly<Record<string, string>>;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IRREGULARS = void 0;
4
+ /**
5
+ * Irregular inflected forms -> base (dictionary) form.
6
+ *
7
+ * Rules alone cannot turn "went" into "go" or "children" into "child".
8
+ * This small hand-made map covers the most common irregular words so the
9
+ * lemmatizer does not wrongly mark them as "out of vocabulary".
10
+ *
11
+ * Keep keys lower-case. You can extend this map freely; nothing else needs
12
+ * to change.
13
+ */
14
+ exports.IRREGULARS = {
15
+ // be / have / do
16
+ is: "be", am: "be", are: "be", was: "be", were: "be", been: "be", being: "be",
17
+ has: "have", had: "have", having: "have",
18
+ does: "do", did: "do", done: "do", doing: "do",
19
+ // common irregular verbs (past / past participle)
20
+ went: "go", gone: "go", going: "go",
21
+ said: "say", saying: "say",
22
+ made: "make", making: "make",
23
+ came: "come", coming: "come",
24
+ took: "take", taken: "take", taking: "take",
25
+ knew: "know", known: "know",
26
+ got: "get", gotten: "get", getting: "get",
27
+ saw: "see", seen: "see", seeing: "see",
28
+ gave: "give", given: "give", giving: "give",
29
+ found: "find", finding: "find",
30
+ thought: "think", thinking: "think",
31
+ told: "tell", telling: "tell",
32
+ became: "become", becoming: "become",
33
+ left: "leave", leaving: "leave",
34
+ felt: "feel", feeling: "feel",
35
+ brought: "bring", bringing: "bring",
36
+ began: "begin", begun: "begin", beginning: "begin",
37
+ kept: "keep", keeping: "keep",
38
+ held: "hold", holding: "hold",
39
+ wrote: "write", written: "write", writing: "write",
40
+ stood: "stand", standing: "stand",
41
+ heard: "hear", hearing: "hear",
42
+ met: "meet", meeting: "meet",
43
+ ran: "run", running: "run",
44
+ paid: "pay", paying: "pay",
45
+ sat: "sit", sitting: "sit",
46
+ spoke: "speak", spoken: "speak", speaking: "speak",
47
+ led: "lead", leading: "lead",
48
+ grew: "grow", grown: "grow", growing: "grow",
49
+ drew: "draw", drawn: "draw", drawing: "draw",
50
+ flew: "fly", flown: "fly", flying: "fly",
51
+ drove: "drive", driven: "drive", driving: "drive",
52
+ broke: "break", broken: "break", breaking: "break",
53
+ chose: "choose", chosen: "choose", choosing: "choose",
54
+ ate: "eat", eaten: "eat", eating: "eat",
55
+ fell: "fall", fallen: "fall", falling: "fall",
56
+ bought: "buy", buying: "buy",
57
+ caught: "catch", catching: "catch",
58
+ taught: "teach", teaching: "teach",
59
+ sold: "sell", selling: "sell",
60
+ sent: "send", sending: "send",
61
+ built: "build", building: "build",
62
+ spent: "spend", spending: "spend",
63
+ lost: "lose", losing: "lose",
64
+ won: "win", winning: "win",
65
+ sang: "sing", sung: "sing", singing: "sing",
66
+ swam: "swim", swimming: "swim",
67
+ threw: "throw", thrown: "throw", throwing: "throw",
68
+ wore: "wear", worn: "wear", wearing: "wear",
69
+ woke: "wake", woken: "wake", waking: "wake",
70
+ rose: "rise", risen: "rise", rising: "rise",
71
+ shook: "shake", shaken: "shake", shaking: "shake",
72
+ hid: "hide", hidden: "hide", hiding: "hide",
73
+ bit: "bite", bitten: "bite", biting: "bite",
74
+ fed: "feed", feeding: "feed",
75
+ lit: "light", lighting: "light",
76
+ put: "put", putting: "put",
77
+ let: "let", letting: "let",
78
+ cut: "cut", cutting: "cut",
79
+ // irregular plurals
80
+ children: "child",
81
+ men: "man", women: "woman",
82
+ feet: "foot", teeth: "tooth",
83
+ geese: "goose", mice: "mouse",
84
+ people: "person",
85
+ lives: "life", knives: "knife", wives: "wife",
86
+ leaves: "leaf", wolves: "wolf", shelves: "shelf",
87
+ halves: "half", thieves: "thief", loaves: "loaf",
88
+ selves: "self",
89
+ // irregular function-word variants (articles, pronouns, determiners).
90
+ // These have no suffix rule, so they must be mapped by hand.
91
+ an: "a",
92
+ me: "i", my: "i", mine: "i", myself: "i",
93
+ him: "he", his: "he", himself: "he",
94
+ her: "she", hers: "she", herself: "she",
95
+ them: "they", their: "they", theirs: "they", themselves: "they",
96
+ us: "we", our: "we", ours: "we", ourselves: "we",
97
+ your: "you", yours: "you", yourself: "you",
98
+ its: "it", itself: "it",
99
+ these: "this", those: "that",
100
+ whom: "who",
101
+ // irregular comparatives / superlatives
102
+ better: "good", best: "good",
103
+ worse: "bad", worst: "bad",
104
+ more: "much", most: "much",
105
+ further: "far", furthest: "far", farther: "far", farthest: "far",
106
+ less: "little", least: "little",
107
+ elder: "old", eldest: "old",
108
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * String-level cleaning steps. Each function does exactly one transform and
3
+ * is pure: same input always gives the same output, no side effects.
4
+ */
5
+ /** Turn curly apostrophes (’) into straight ones ('). */
6
+ export declare function normalizeApostrophes(text: string): string;
7
+ /**
8
+ * Expand the common English contractions so their base words can be matched.
9
+ * Assumes apostrophes are already straight (run `normalizeApostrophes` first).
10
+ */
11
+ export declare function expandContractions(text: string): string;