если у вас древовидная структура, то так и описывайте, checkCondition(rule, value, {onTrue: nextCond, onFaulse: nextCond } это конечно оочень упрощенно но можно рекурсивно по всем правилам пройти
Но и тут можно спокойно все сделать. Если заказчик хочет через либо, то надо ее создать. Создание либо за деньги заказчика, паблишите в опенсорс и "делаете через либу". профит.