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.
- package/LICENSE +21 -0
- package/README.EN.md +22 -0
- package/README.md +20 -0
- package/SKILL.md +106 -0
- package/dist/base-form.d.ts +6 -0
- package/dist/base-form.js +98 -0
- package/dist/classify.d.ts +22 -0
- package/dist/classify.js +50 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +108 -0
- package/dist/coverage.d.ts +64 -0
- package/dist/coverage.js +120 -0
- package/dist/dictionaries/academic.json +1 -0
- package/dist/dictionaries/everyday.json +1 -0
- package/dist/dictionaries/frameworks.json +1 -0
- package/dist/dictionaries/index.d.ts +19 -0
- package/dist/dictionaries/index.js +49 -0
- package/dist/dictionaries/tech.json +1 -0
- package/dist/dictionary.d.ts +8 -0
- package/dist/dictionary.js +30 -0
- package/dist/extract.d.ts +14 -0
- package/dist/extract.js +37 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +53 -0
- package/dist/irregulars.d.ts +11 -0
- package/dist/irregulars.js +108 -0
- package/dist/normalize.d.ts +11 -0
- package/dist/normalize.js +38 -0
- package/dist/pipe.d.ts +8 -0
- package/dist/pipe.js +13 -0
- package/dist/sentences.d.ts +23 -0
- package/dist/sentences.js +36 -0
- package/package.json +75 -0
|
@@ -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[];
|
package/dist/extract.js
ADDED
|
@@ -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
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -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;
|