p. public login(...): Promise<any> {     return from(ctx.prisma.query.user({ where: { email } })).pipe(         switchMap(             (user: User) => {                 if (!user) {                     throw new Error(`No such user found for email: ${email}`);                 }                 return from(bcrypt.compare(password, user.password)).pipe(                     map(                         (valid: boolean) => {                             if (!valid) {                                 throw new Error("Invalid password");                             }                              return {                                 token: jwt.sign({ userId: user.id }, process.env.APP_SECRET),                                 user,                             };                         }                     )                 );             }         )     ).toPromise(); }