gitextract_byn377yl/ ├── .gitignore ├── jsconfig.json ├── package.json ├── server.js └── src/ ├── app.js ├── controllers/ │ ├── authController.js │ ├── cartController.js │ ├── notFound.js │ ├── orderController.js │ └── productController.js ├── database/ │ └── database.js ├── db/ │ └── db.js ├── middlewares/ │ └── verifyToken.js ├── repositories/ │ ├── databaseRepository.js │ └── userRepository.js ├── routes/ │ ├── authRouter.js │ ├── cartRoute.js │ ├── orderRoute.js │ ├── productRoute.js │ └── router.js ├── schemas/ │ ├── cartSchema.js │ ├── idSchema.js │ ├── productSchema.js │ ├── productUpdateSchema.js │ ├── userLoginSchema.js │ ├── userSignupSchema.js │ └── verifyEmailSchema.js ├── services/ │ ├── auth/ │ │ ├── loginService.js │ │ ├── refreshTokenService.js │ │ ├── refreshVerifyEmailService.js │ │ ├── signupService.js │ │ └── verifyEmailService.js │ ├── cart/ │ │ ├── getCartService.js │ │ └── setCartService.js │ ├── emailService.js │ ├── order/ │ │ ├── addOrderService.js │ │ └── getOrderService.js │ └── product/ │ ├── addProductService.js │ ├── deleteProductService.js │ ├── getProductsService.js │ └── updateProductService.js └── utils/ ├── appError.js ├── errorsHandle.js ├── generateOTP.js ├── generateToken.js ├── rateLimit.js └── storeRefreshToken.js