evaluate fonksiyonu içerisindeki kodları browser üzerinde çalıştırıp result'u nodejs üzerinden almaya yaramakta yani sizin tanımladığınız "i" değişkeni browser javascript tarafında olmadığı için o hatayı almaktasınız şu şekilde kullanırsanız düzelir;
await page.evaluate(x => boa(encode(vssvs(x))), i) gibi kullanabilirsiniz. x değeri i olmakta bu şekilde
evaluate içindeki async tanımını kaldırın gerek yok.