UNPKG

just-exercise-parser

Version:

A TypeScript library for parsing, normalizing, and generating standardized exercise names

567 lines (566 loc) 15.4 kB
{ "templates": { "standard": "${special} ${equipment} ${positions} ${modifiers} ${variations} ${others} ${movements} ${version}", "minimal": "${equipment} ${movements}", "equipment_focus": "${equipment} ${variations} ${movements}" }, "components": { "special": [ "alternating", "pregnancy" ], "positions": [ "in-place", "standing", "floor", "seated", "(?:side\\W+lying|lying\\W+side|lying|side)", "incline", "decline", "flat", "(?:half\\W+)?kneeling", "prone", "supine", "(?:split\\W)stance" ], "variations": [ "unilateral", "bilateral", "(?:wide|narrow|underhand|overhand|hammer|close|reverse|neutral|parallel|conventional|hook|standard|stance|snatch|grip)(?:\\W+(?:wide|narrow|underhand|overhand|hammer|close|reverse|neutral|parallel|conventional|standard|stance|snatch|grip)){0,3}\\b(?!.*?\\bcurl\\b)", "sumo", "deficit", "elevated", "slow", "paused", "tempo", "explosive", "isometric", "eccentric" ], "modifiers": [ "(?:single\\W+)leg", "(?:single\\W)arm", "weighted", "assisted", "banded", "chained", "partial", "(?:full(?:\\W(?:range|rom))?)(?!.*?curl)", "strict", "kipping", "bulgarian", "romanian", "hack", "jefferson", "goblet", "zercher" ], "equipment": [ "(?:stability|exercise)\\W+ball", "barbell", "(?:bench(?!\\W+(?:press|pull|dip|squat)))", "bottle\\W+weight", "(?:captain'?s?\\W+)?chair", "stool", "suspender", "box", "trx", "dumbbell", "kettlebell", "cable", "(?:resistance|loop|band){2}", "loop", "band", "bodyweight", "(?:smith\\W+)?machine", "(?:trap|ez)\\W+bar", "(?:medicine\\W+)ball", "(?:long\\W+|short\\W+)?lever" ], "bodyParts": [ "chest", "back", "shoulder", "bicep", "tricep", "quad", "hamstring", "glute", "calf", "core", "abs", "oblique", "hip", "forearm", "trap", "deltoid", "lat" ], "movements": [ "(?:half|deep)?(?:\\W+)?squat", "(?:romanian)?(?:\\W+)?deadlift", "(?:push\\W?)(?:pull)", "press", "row", "curl", "extension", "(?:calf\\W+)?(?:[a-z]{1,2}\\W+)?raise", "fly", "jump", "lunge", "crunch", "twist", "(?:plank)(?:\\W+position)?", "hold", "stretch" ], "version": [ "version \\[.*\\]", "version (?:i{1,3}|iv|v|vi{1,3}|ix|x)", "anjaneyasana (?:i{1,3}|iv|v|vi{1,3}|ix|x)" ], "others": [] }, "replacements": [ { "pattern": "[^\\w™&+']+", "replacement": " " }, { "pattern": "\\bdb\\b", "replacement": "dumbbell" }, { "pattern": "\\bbb\\b", "replacement": "barbell" }, { "pattern": "\\bkb\\b", "replacement": "kettlebell" }, { "pattern": "\\brbs?\\b", "replacement": "resistance-band" }, { "pattern": "\\bresistance\\W+bands?\\b", "replacement": "resistance-band" }, { "pattern": "\\bloop\\W+bands?\\b", "replacement": "loop-band" }, { "pattern": "\\bw\\W+raises?\\b", "replacement": "w-raise" }, { "pattern": "\\by\\W+raises?\\b", "replacement": "y-raise" }, { "pattern": "\\byw\\W+raises?\\b", "replacement": "yw-raise" }, { "pattern": "\\bsb\\b", "replacement": "stability ball" }, { "pattern": "\\bmb\\b", "replacement": "medicine ball" }, { "pattern": "\\brom\\b", "replacement": "range-of-motion" }, { "pattern": "\\bohps?\\b", "replacement": "overhead press" }, { "pattern": "\\bdls?\\b", "replacement": "deadlift" }, { "pattern": "\\brdls?\\b", "replacement": "romanian deadlift" }, { "pattern": "\\bw(?:/|\\\\)\\b", "replacement": "with" }, { "pattern": "\\bwo\\b", "replacement": "without" }, { "pattern": "\\W(?:alt)\\W", "replacement": "alternating" }, { "pattern": "\\bincl\\b", "replacement": "incline" }, { "pattern": "\\bdecl\\b", "replacement": "decline" }, { "pattern": "\\buni\\b", "replacement": "unilateral" }, { "pattern": "\\btwo\\W+arms?\\b", "replacement": "two-arm" }, { "pattern": "\\btwo\\W+legs?\\b", "replacement": "two-leg" }, { "pattern": "\\bsingle\\W+arms?(?:\\W+unilateral\\b|\\b)", "replacement": "single-arm" }, { "pattern": "\\bsingle\\W+legs?(?:\\W+unilateral\\b|\\b)", "replacement": "single-leg" }, { "pattern": "\\blong\\W+lever\\b", "replacement": "long-lever" }, { "pattern": "\\bshort\\W+lever\\b", "replacement": "short-lever" }, { "pattern": "\\barms\\W+(?:to|on|at)\\W+(?:the\\W+)?sides?\\b", "replacement": "arms-to-the-sides" }, { "pattern": "\\barm\\W+(?:to|on|at)\\W+sides?\\b", "replacement": "arm-to-the-side" }, { "pattern": "\\bside\\W+to\\W+side\\b", "replacement": "side-to-side" }, { "pattern": "\\bstanding\\W+up\\b", "replacement": "standing" }, { "pattern": "\\bpadded\\W+stool\\b", "replacement": "stool" }, { "pattern": "\\bwith\\W+chair\\b", "replacement": "chair" }, { "pattern": "\\bon\\W+spot\\b", "replacement": "in-place" }, { "pattern": "\\barms?\\W+circles?\\b", "replacement": "arm circles" }, { "pattern": "\\bbottle\\W+(?:weights?|weighted)\\b", "replacement": "bottle weight" }, { "pattern": "\\batt?$", "replacement": "attachment" }, { "pattern": "\\brope\\W+attachment\\b", "replacement": "rope-attachment" }, { "pattern": "\\b(?:sit\\W+walls?|wall\\W+sits?)\\b", "replacement": "wall-sit" }, { "pattern": "\\bfigure\\W+(?:fours?|4s?)\\b", "replacement": "figure-4" }, { "pattern": "\\b(?:forward\\W+lean|lean\\W+forward)\\b", "replacement": "forward-lean" }, { "pattern": "\\b(?:backward\\W+lean|lean\\W+backward)\\b", "replacement": "backward-lean" }, { "pattern": "\\bfull\\W+range\\W+of\\W+motion\\b", "replacement": "full-range" }, { "pattern": "\\b(?:handle|band)\\W+(?:band|handle)\\b", "replacement": "banded-handle" }, { "pattern": "\\belevanted\\b", "replacement": "elevated" }, { "pattern": "\\bdumbell\\b", "replacement": "dumbbell" }, { "pattern": "\\bdumbel\\b", "replacement": "dumbbell" }, { "pattern": "\\bkettle\\W+bell\\b", "replacement": "kettlebell" }, { "pattern": "\\bkettelbell\\b", "replacement": "kettlebell" }, { "pattern": "\\bpush\\W+pull\\b", "replacement": "push-pull" }, { "pattern": "\\bside\\W+lying\\b", "replacement": "side-lying" }, { "pattern": "\\blying\\W+side\\b", "replacement": "lying-side" }, { "pattern": "\\b(?:single|one)\\W+arm\\b", "replacement": "single-arm" }, { "pattern": "\\b(?:single|one)\\W+leg\\b", "replacement": "single-leg" }, { "pattern": "\\bin\\W+out\\b", "replacement": "in-out" }, { "pattern": "\\bin\\W+out\\W+in\\b", "replacement": "in-out-in" }, { "pattern": "\\bpull\\W+ups?\\b", "replacement": "pull-up" }, { "pattern": "\\bchin\\W+ups?\\b", "replacement": "chin-up" }, { "pattern": "\\bpush\\W+ups?\\b", "replacement": "push-up" }, { "pattern": "\\bsit\\W+ups?\\b", "replacement": "sit-up" }, { "pattern": "\\bside\\W+steps?\\b", "replacement": "side-step" }, { "pattern": "\\bfull\\W+range\\b", "replacement": "full-range" }, { "pattern": "\\bagainst\\W+(?:the|a)?(?:\\W+)?wall\\b", "replacement": "against-wall" }, { "pattern": "\\bv\\W+bar\\b", "replacement": "v-bar" }, { "pattern": "\\bbent\\W+over\\b", "replacement": "bent-over" }, { "pattern": "\\b(?:ez|sz)(?:\\W+bar(?:bell)?)?\\b", "replacement": "ez-bar" }, { "pattern": "\\bstep\\W+up\\b", "replacement": "step-up" }, { "pattern": "\\bhammer\\W+grip\\b", "replacement": "hammer-grip" }, { "pattern": "\\bsnatch\\W+grip\\b", "replacement": "snatch-grip" }, { "pattern": "\\bhook\\W+grip\\b", "replacement": "hook-grip" }, { "pattern": "\\bconventional\\W+grip\\b", "replacement": "conventional-grip" }, { "pattern": "\\bwide\\W+grip\\b", "replacement": "wide-grip" }, { "pattern": "\\bneutral\\W+grip\\b", "replacement": "neutral-grip" }, { "pattern": "\\b(?:close|narrow)\\W+grip\\b", "replacement": "close-grip" }, { "pattern": "\\breverse\\W+grip\\b", "replacement": "reverse-grip" }, { "pattern": "\\bclean\\W+grip\\b", "replacement": "clean-grip" }, { "pattern": "\\breverse\\W+close\\W+grip\\b", "replacement": "reverse-close-grip" }, { "pattern": "\\bparallel\\W+grip\\b", "replacement": "parallel-grip" }, { "pattern": "\\bparallel\\W+bar\\b", "replacement": "parallel-bar" }, { "pattern": "\\bfront\\W+foot\\b", "replacement": "front-foot" }, { "pattern": "\\bback\\W+foot\\b", "replacement": "back-foot" }, { "pattern": "\\bfront\\W+leg\\b", "replacement": "front-leg" }, { "pattern": "\\bback\\W+back\\b", "replacement": "back-leg" }, { "pattern": "\\bstaggered\\W+stance\\b", "replacement": "staggered-stance" }, { "pattern": "\\bbent\\W+knee\\b", "replacement": "bent-knee" }, { "pattern": "\\bbent\\W+leg\\b", "replacement": "bent-leg" }, { "pattern": "\\brear\\W+delt\\b", "replacement": "rear-delt" }, { "pattern": "\\bfront\\W+delt\\b", "replacement": "front-delt" }, { "pattern": "\\btoes\\W+up\\b", "replacement": "toes-up" }, { "pattern": "\\bpalms\\W+up\\b", "replacement": "palms-up" }, { "pattern": "\\bpalms\\W+down\\b", "replacement": "palms-down" }, { "pattern": "\\bbehind\\W+back\\b", "replacement": "behind-back" }, { "pattern": "\\bforward\\W+backward\\b", "replacement": "forward-backward" }, { "pattern": "\\bfull\\W+squat\\b", "replacement": "full-squat" }, { "pattern": "\\bhalf\\W+squat\\b", "replacement": "half-squat" }, { "pattern": "\\bquarter\\W+squat\\b", "replacement": "quarter-squat" }, { "pattern": "\\bvariation\\b", "replacement": "version" }, { "pattern": "\\bversion\\s+one\\b", "replacement": "version i" }, { "pattern": "\\bversion\\s+two\\b", "replacement": "version ii" }, { "pattern": "\\bversion\\s+three\\b", "replacement": "version iii" }, { "pattern": "\\bversion\\s+four\\b", "replacement": "version iv" }, { "pattern": "\\bversion\\s+five\\b", "replacement": "version v" }, { "pattern": "\\bversion$", "replacement": "variation" }, { "pattern": "\\b(?:on|with)\\W+a\\b", "replacement": " " }, { "pattern": "\\bon(?:\\W+the){0,1}\\b", "replacement": " " }, { "pattern": "\\bof\\b(?!(?:\\s+\\w+){0,5}\\s+(?:pose|dance)\\b)", "replacement": " " }, { "pattern": "\\bplus\\b", "replacement": "+" }, { "pattern": "\\b90\\W+to\\W+90\\b", "replacement": "90-to-90" }, { "pattern": "\\band\\b", "replacement": "&" } ] }