1. Promise.all(files.forEach(async file => {
подумай или погугли, почему эта строчка содержит ошибку (или даже скорее ошибки)
2. const add = imagePath => {
лучше было бы если бы функция возвращала промис и, соответственно, использовала embedWatermarkWithCb
3. Tool.compress(folder, avatar).then(file => {
здесь надо ждать завершения промиса
» Там только осталось это решить
Нет, там всё плохо, и после решения этой проблемы посыпятся другие