Repository: hiteshchoudhary/apihub Branch: main Commit: e3a4414f1810 Files: 548 Total size: 8.7 MB Directory structure: gitextract_cp_asldb/ ├── .babelrc ├── .commitlintrc.json ├── .dockerignore ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── bug_report.yaml │ ├── code_coverage.yaml │ ├── config.yml │ ├── feature_request.yaml │ └── frontend_contribution.yaml ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .lintstagedrc ├── .prettierignore ├── .prettierrc ├── CONTRIBUTING.md ├── CONTRIBUTING_CODE_COVERAGE.md ├── CONTRIBUTING_FRONTEND.md ├── Dockerfile ├── LICENSE.md ├── README.md ├── docker-compose.prod.yml ├── docker-compose.yml ├── e2e/ │ ├── common.js │ ├── db.js │ ├── routes/ │ │ ├── apps/ │ │ │ └── todo.test.js │ │ ├── healthcheck.test.js │ │ └── seeds/ │ │ ├── chat-app.test.js │ │ ├── ecommerce.test.js │ │ ├── generated-credentials.test.js │ │ ├── social-media.test.js │ │ └── todo.test.js │ └── test-server.js ├── examples/ │ ├── apps/ │ │ ├── auth/ │ │ │ └── .gitkeep │ │ ├── chat-app/ │ │ │ └── web/ │ │ │ └── react-vite-tailwind/ │ │ │ ├── .eslintrc.cjs │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── postcss.config.js │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── api/ │ │ │ │ │ └── index.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ ├── Input.tsx │ │ │ │ │ ├── Loader.tsx │ │ │ │ │ ├── PrivateRoute.tsx │ │ │ │ │ ├── PublicRoute.tsx │ │ │ │ │ ├── Select.tsx │ │ │ │ │ └── chat/ │ │ │ │ │ ├── AddChatModal.tsx │ │ │ │ │ ├── ChatItem.tsx │ │ │ │ │ ├── GroupChatDetailsModal.tsx │ │ │ │ │ ├── MessageItem.tsx │ │ │ │ │ └── Typing.tsx │ │ │ │ ├── context/ │ │ │ │ │ ├── AuthContext.tsx │ │ │ │ │ └── SocketContext.tsx │ │ │ │ ├── index.css │ │ │ │ ├── interfaces/ │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── chat.ts │ │ │ │ │ └── user.ts │ │ │ │ ├── main.tsx │ │ │ │ ├── pages/ │ │ │ │ │ ├── chat.tsx │ │ │ │ │ ├── login.tsx │ │ │ │ │ └── register.tsx │ │ │ │ ├── utils/ │ │ │ │ │ └── index.ts │ │ │ │ └── vite-env.d.ts │ │ │ ├── tailwind.config.js │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.node.json │ │ │ └── vite.config.ts │ │ ├── ecommerce/ │ │ │ ├── .gitkeep │ │ │ └── web/ │ │ │ └── react-vite-redux-tailwind/ │ │ │ ├── .eslintrc.cjs │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── postcss.config.js │ │ │ ├── public/ │ │ │ │ └── locales/ │ │ │ │ ├── ar/ │ │ │ │ │ └── translation.json │ │ │ │ ├── en/ │ │ │ │ │ └── translation.json │ │ │ │ └── hn/ │ │ │ │ └── translation.json │ │ │ ├── src/ │ │ │ │ ├── App.tsx │ │ │ │ ├── RoutePaths.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ ├── ArrowButton.tsx │ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ │ ├── CarouselButtons.tsx │ │ │ │ │ │ ├── Checkbox.tsx │ │ │ │ │ │ ├── DateRangePicker.tsx │ │ │ │ │ │ ├── Drawer.tsx │ │ │ │ │ │ ├── Dropdown.tsx │ │ │ │ │ │ ├── ErrorMessage.tsx │ │ │ │ │ │ ├── FullPageLoadingSpinner.tsx │ │ │ │ │ │ ├── Hamburger.tsx │ │ │ │ │ │ ├── Image.tsx │ │ │ │ │ │ ├── Input.tsx │ │ │ │ │ │ ├── Link.tsx │ │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ │ ├── NavItem.tsx │ │ │ │ │ │ ├── NavList.tsx │ │ │ │ │ │ ├── RadioButtons.tsx │ │ │ │ │ │ ├── RoundedIcon.tsx │ │ │ │ │ │ ├── SearchInput.tsx │ │ │ │ │ │ ├── SelectionMenu.tsx │ │ │ │ │ │ ├── TabItem.tsx │ │ │ │ │ │ ├── Tabs.tsx │ │ │ │ │ │ ├── Text.tsx │ │ │ │ │ │ └── ToastMessage.tsx │ │ │ │ │ ├── business/ │ │ │ │ │ │ ├── AddressCard.tsx │ │ │ │ │ │ ├── AddressCardList.tsx │ │ │ │ │ │ ├── CardContainer.tsx │ │ │ │ │ │ ├── CartItem.tsx │ │ │ │ │ │ ├── CartItemList.tsx │ │ │ │ │ │ ├── CartSummary.tsx │ │ │ │ │ │ ├── CategoryCard.tsx │ │ │ │ │ │ ├── CompanyGurantee.tsx │ │ │ │ │ │ ├── CouponCard.tsx │ │ │ │ │ │ ├── CouponCardList.tsx │ │ │ │ │ │ ├── FooterSection.tsx │ │ │ │ │ │ ├── InvoiceAmountSummary.tsx │ │ │ │ │ │ ├── OrderCard.tsx │ │ │ │ │ │ ├── OrderItem.tsx │ │ │ │ │ │ ├── OrderItemList.tsx │ │ │ │ │ │ ├── OrderListFilters.tsx │ │ │ │ │ │ ├── OrderSummary.tsx │ │ │ │ │ │ ├── OrdersList.tsx │ │ │ │ │ │ ├── Payment.tsx │ │ │ │ │ │ ├── ProductCard.tsx │ │ │ │ │ │ ├── ProductFilters.tsx │ │ │ │ │ │ ├── ProductImagesView.tsx │ │ │ │ │ │ ├── ProductList.tsx │ │ │ │ │ │ ├── QuantityCounter.tsx │ │ │ │ │ │ └── Timer.tsx │ │ │ │ │ ├── icons/ │ │ │ │ │ │ ├── AccountIcon.tsx │ │ │ │ │ │ ├── AddIcon.tsx │ │ │ │ │ │ ├── CartIcon.tsx │ │ │ │ │ │ ├── CloseIcon.tsx │ │ │ │ │ │ ├── DeleteIcon.tsx │ │ │ │ │ │ ├── DownArrow.tsx │ │ │ │ │ │ ├── EditIcon.tsx │ │ │ │ │ │ ├── ErrorIcon.tsx │ │ │ │ │ │ ├── GeneralCategoryIcon.tsx │ │ │ │ │ │ ├── GoogleIcon.tsx │ │ │ │ │ │ ├── GuranteeIcon.tsx │ │ │ │ │ │ ├── HamburgerIcon.tsx │ │ │ │ │ │ ├── HeadphoneIcon.tsx │ │ │ │ │ │ ├── HidePasswordIcon.tsx │ │ │ │ │ │ ├── LeftArrow.tsx │ │ │ │ │ │ ├── LoadingSpinner.tsx │ │ │ │ │ │ ├── LogoutIcon.tsx │ │ │ │ │ │ ├── OrderIcon.tsx │ │ │ │ │ │ ├── RectangleIcon.tsx │ │ │ │ │ │ ├── SearchIcon.tsx │ │ │ │ │ │ ├── ShowPasswordIcon.tsx │ │ │ │ │ │ ├── SubtractIcon.tsx │ │ │ │ │ │ ├── TickIcon.tsx │ │ │ │ │ │ ├── TruckIcon.tsx │ │ │ │ │ │ └── UpArrow.tsx │ │ │ │ │ ├── modals/ │ │ │ │ │ │ ├── addaddressmodal/ │ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ │ └── AddAddressModalContainer.tsx │ │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ │ └── AddAddressModal.tsx │ │ │ │ │ │ ├── changepasswordmodal/ │ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ │ └── ChangePasswordModalContainer.tsx │ │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ │ └── ChangePasswordModal.tsx │ │ │ │ │ │ ├── deleteaddressmodal/ │ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ │ └── DeleteAddressModalContainer.tsx │ │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ │ └── DeleteAddressModal.tsx │ │ │ │ │ │ ├── feedbackmodal/ │ │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ │ └── FeedbackModal.tsx │ │ │ │ │ │ ├── forgotpasswordmodal/ │ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ │ └── ForgotPasswordModalContainer.tsx │ │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ │ └── ForgotPasswordModal.tsx │ │ │ │ │ │ └── logoutmodal/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── LogoutModalContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── LogoutModal.tsx │ │ │ │ │ └── widgets/ │ │ │ │ │ ├── about/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── AboutContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── About.tsx │ │ │ │ │ ├── allproductlist/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── AllProductListContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── AllProductList.tsx │ │ │ │ │ ├── banner/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── BannerContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── Banner.tsx │ │ │ │ │ ├── cart/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── CartContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── Cart.tsx │ │ │ │ │ ├── categorylist/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── CategoryListContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── CategoryList.tsx │ │ │ │ │ ├── checkout/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── CheckoutContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── Checkout.tsx │ │ │ │ │ ├── companyguranteelist/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── CompanyGuranteeListContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── CompanyGuranteeList.tsx │ │ │ │ │ ├── editaddresses/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── EditAddressesContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── EditAddresses.tsx │ │ │ │ │ ├── editprofile/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── EditProfileContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── EditProfile.tsx │ │ │ │ │ ├── exploreproductlist/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ExploreProductListContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ExploreProductList.tsx │ │ │ │ │ ├── featuredproductlist/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── FeaturedProductListContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── FeaturedProductList.tsx │ │ │ │ │ ├── footer/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── FooterContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── Footer.tsx │ │ │ │ │ ├── header/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── HeaderContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── Header.tsx │ │ │ │ │ ├── infoheader/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── InfoHeaderContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── InfoHeader.tsx │ │ │ │ │ ├── login/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── LoginContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── Login.tsx │ │ │ │ │ ├── myaccountoption/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── MyAccountOptionContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── MyAccountOption.tsx │ │ │ │ │ ├── myorderslist/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── MyOrdersListContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── MyOrdersList.tsx │ │ │ │ │ ├── orderdetail/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── OrderDetailContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── OrderDetail.tsx │ │ │ │ │ ├── productdetails/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ProductDetailsContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ProductDetails.tsx │ │ │ │ │ ├── relateditemslist/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── RelatedItemsListContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── RelatedItemsList.tsx │ │ │ │ │ ├── resetforgottenpassword/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ResetForgottenPasswordContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ResetForgottenPassword.tsx │ │ │ │ │ └── signup/ │ │ │ │ │ ├── container/ │ │ │ │ │ │ └── SignupContainer.tsx │ │ │ │ │ └── presentation/ │ │ │ │ │ └── Signup.tsx │ │ │ │ ├── constants.ts │ │ │ │ ├── data/ │ │ │ │ │ └── applicationData.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useBreakpointCheck.tsx │ │ │ │ │ ├── useCustomNavigate.tsx │ │ │ │ │ ├── useOnRefresh.tsx │ │ │ │ │ └── useOutsideClick.tsx │ │ │ │ ├── i18n.ts │ │ │ │ ├── index.css │ │ │ │ ├── layouts/ │ │ │ │ │ └── PageLayout.tsx │ │ │ │ ├── main.tsx │ │ │ │ ├── pages/ │ │ │ │ │ ├── about/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── AboutPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── AboutPage.tsx │ │ │ │ │ ├── cart/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── CartPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── CartPage.tsx │ │ │ │ │ ├── checkout/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── CheckoutPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── CheckoutPage.tsx │ │ │ │ │ ├── home/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── HomePageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── HomePage.tsx │ │ │ │ │ ├── login/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── LoginPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── LoginPage.tsx │ │ │ │ │ ├── manageaccount/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ManageAccountPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ManageAccountPage.tsx │ │ │ │ │ ├── orderdetail/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── OrderDetailPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── OrderDetailPage.tsx │ │ │ │ │ ├── orders/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── OrdersPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── OrdersPage.tsx │ │ │ │ │ ├── pagenotfound/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── PageNotFoundPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── PageNotFoundPage.tsx │ │ │ │ │ ├── paymentfeedback/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── PaymentFeedbackPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── PaymentFeedbackPage.tsx │ │ │ │ │ ├── productdetail/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ProductDetailPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ProductDetailPage.tsx │ │ │ │ │ ├── products/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ProductsPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ProductsPage.tsx │ │ │ │ │ ├── productsearch/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ProductSearchPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ProductSearchPage.tsx │ │ │ │ │ ├── resetforgottenpassword/ │ │ │ │ │ │ ├── container/ │ │ │ │ │ │ │ └── ResetForgottenPasswordPageContainer.tsx │ │ │ │ │ │ └── presentation/ │ │ │ │ │ │ └── ResetForgottenPasswordPage.tsx │ │ │ │ │ └── signup/ │ │ │ │ │ ├── container/ │ │ │ │ │ │ └── SignupPageContainer.tsx │ │ │ │ │ └── presentation/ │ │ │ │ │ └── SignupPage.tsx │ │ │ │ ├── protectedroutes/ │ │ │ │ │ └── ForLoggedInUsers.tsx │ │ │ │ ├── services/ │ │ │ │ │ ├── ApiError.ts │ │ │ │ │ ├── ApiRequest.ts │ │ │ │ │ ├── ApiResponse.ts │ │ │ │ │ ├── CountryApiRequest.ts │ │ │ │ │ ├── address/ │ │ │ │ │ │ ├── AddressService.ts │ │ │ │ │ │ └── AddressTypes.ts │ │ │ │ │ ├── auth/ │ │ │ │ │ │ ├── AuthService.ts │ │ │ │ │ │ └── AuthTypes.ts │ │ │ │ │ ├── cart/ │ │ │ │ │ │ ├── CartService.ts │ │ │ │ │ │ └── CartTypes.ts │ │ │ │ │ ├── category/ │ │ │ │ │ │ ├── CategoryService.ts │ │ │ │ │ │ └── CategoryTypes.ts │ │ │ │ │ ├── countryapi/ │ │ │ │ │ │ ├── CountryApiService.ts │ │ │ │ │ │ └── CountryApiTypes.ts │ │ │ │ │ ├── coupon/ │ │ │ │ │ │ ├── CouponService.ts │ │ │ │ │ │ └── CouponTypes.ts │ │ │ │ │ ├── order/ │ │ │ │ │ │ ├── OrderService.ts │ │ │ │ │ │ └── OrderTypes.ts │ │ │ │ │ ├── product/ │ │ │ │ │ │ ├── ProductService.ts │ │ │ │ │ │ └── ProductTypes.ts │ │ │ │ │ └── profile/ │ │ │ │ │ ├── ProfileService.ts │ │ │ │ │ └── ProfileTypes.ts │ │ │ │ ├── store/ │ │ │ │ │ ├── AuthSlice.ts │ │ │ │ │ ├── BreakpointSlice.ts │ │ │ │ │ ├── CartSlice.ts │ │ │ │ │ ├── LanguageSlice.ts │ │ │ │ │ ├── ToastMessageSlice.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── styles/ │ │ │ │ │ └── DateRangePicker.css │ │ │ │ ├── utils/ │ │ │ │ │ ├── asyncHandler.ts │ │ │ │ │ ├── breakpointsHelper.ts │ │ │ │ │ ├── commonHelper.ts │ │ │ │ │ ├── countryApiAsyncHandler.ts │ │ │ │ │ ├── dateTimeHelper.ts │ │ │ │ │ └── languageHelpers.ts │ │ │ │ └── vite-env.d.ts │ │ │ ├── tailwind.config.js │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.node.json │ │ │ └── vite.config.ts │ │ ├── social-media/ │ │ │ └── .gitkeep │ │ └── todo/ │ │ └── web/ │ │ └── react-vite-tailwind/ │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── api/ │ │ │ │ └── index.ts │ │ │ ├── components/ │ │ │ │ ├── Button.tsx │ │ │ │ ├── Header.tsx │ │ │ │ ├── Input.tsx │ │ │ │ ├── Loader.tsx │ │ │ │ ├── ModalContainer.tsx │ │ │ │ ├── Options.tsx │ │ │ │ └── todos/ │ │ │ │ ├── CreateTodoModal.tsx │ │ │ │ ├── DetailAndEditModal.tsx │ │ │ │ ├── TabsHeader.tsx │ │ │ │ └── TodoCard.tsx │ │ │ ├── context/ │ │ │ │ └── TodoContext.tsx │ │ │ ├── index.css │ │ │ ├── interfaces/ │ │ │ │ ├── api.ts │ │ │ │ └── todo.ts │ │ │ ├── main.tsx │ │ │ ├── utils/ │ │ │ │ └── index.ts │ │ │ └── vite-env.d.ts │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── kitchen-sink/ │ │ ├── cookies/ │ │ │ └── .gitkeep │ │ ├── httpmethods/ │ │ │ └── .gitkeep │ │ ├── images/ │ │ │ └── .gitkeep │ │ ├── redirects/ │ │ │ └── .gitkeep │ │ ├── requestinspections/ │ │ │ └── .gitkeep │ │ ├── responseinspections/ │ │ │ └── .gitkeep │ │ └── statuscodes/ │ │ └── web/ │ │ └── react-shadcn-tailwind-zustand/ │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── components.json │ │ ├── index.html │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── src/ │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── components/ │ │ │ │ └── ui/ │ │ │ │ ├── accordion.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── card.tsx │ │ │ │ ├── command.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── label.tsx │ │ │ │ ├── navigation-menu.tsx │ │ │ │ ├── popover.tsx │ │ │ │ ├── radio-group.tsx │ │ │ │ └── select.tsx │ │ │ ├── constants/ │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── index.css │ │ │ ├── layout/ │ │ │ │ ├── header/ │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── menuItem.ts │ │ │ │ ├── index.ts │ │ │ │ └── pageContainer/ │ │ │ │ ├── PageContainer.tsx │ │ │ │ └── index.ts │ │ │ ├── lib/ │ │ │ │ └── utils.ts │ │ │ ├── main.tsx │ │ │ ├── pages/ │ │ │ │ ├── codesList/ │ │ │ │ │ ├── CodesList.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── StatusAccordian.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── findCode/ │ │ │ │ │ ├── FindCode.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── ComboBox.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── home/ │ │ │ │ │ ├── Home.tsx │ │ │ │ │ ├── assets/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── home.css │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── quiz/ │ │ │ │ ├── Quiz.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── QuestionsCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── router/ │ │ │ │ ├── index.ts │ │ │ │ ├── router.tsx │ │ │ │ └── routes.ts │ │ │ ├── services/ │ │ │ │ ├── codesList.ts │ │ │ │ └── types.ts │ │ │ ├── store/ │ │ │ │ └── store.ts │ │ │ └── vite-env.d.ts │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ └── public/ │ ├── books/ │ │ └── .gitkeep │ ├── cats/ │ │ └── .gitkeep │ ├── dogs/ │ │ └── .gitkeep │ ├── meals/ │ │ └── .gitkeep │ ├── quotes/ │ │ └── .gitkeep │ ├── randomjokes/ │ │ └── .gitkeep │ ├── randomproducts/ │ │ └── .gitkeep │ ├── randomusers/ │ │ └── .gitkeep │ ├── stocks/ │ │ └── .gitkeep │ └── youtube/ │ └── .gitkeep ├── nodemon.json ├── package.json ├── playwright.config.js ├── prepare.js ├── public/ │ ├── assets/ │ │ └── templates/ │ │ ├── html_response.html │ │ └── xml_response.xml │ ├── images/ │ │ └── .gitkeep │ └── temp/ │ └── .gitkeep └── src/ ├── app.js ├── constants.js ├── controllers/ │ ├── apps/ │ │ ├── auth/ │ │ │ └── user.controllers.js │ │ ├── chat-app/ │ │ │ ├── chat.controllers.js │ │ │ └── message.controllers.js │ │ ├── ecommerce/ │ │ │ ├── address.controllers.js │ │ │ ├── cart.controllers.js │ │ │ ├── category.controllers.js │ │ │ ├── coupon.controllers.js │ │ │ ├── order.controllers.js │ │ │ ├── product.controllers.js │ │ │ └── profile.controllers.js │ │ ├── social-media/ │ │ │ ├── bookmark.controllers.js │ │ │ ├── comment.controllers.js │ │ │ ├── follow.controllers.js │ │ │ ├── like.controllers.js │ │ │ ├── post.controllers.js │ │ │ └── profile.controllers.js │ │ └── todo/ │ │ └── todo.controllers.js │ ├── healthcheck.controllers.js │ ├── kitchen-sink/ │ │ ├── cookie.controllers.js │ │ ├── httpmethod.controllers.js │ │ ├── image.controllers.js │ │ ├── redirect.controllers.js │ │ ├── requestinspection.controllers.js │ │ ├── responseinspection.controllers.js │ │ └── statuscode.controllers.js │ └── public/ │ ├── book.controllers.js │ ├── cat.controllers.js │ ├── dog.controllers.js │ ├── meal.controllers.js │ ├── quote.controllers.js │ ├── randomjoke.controllers.js │ ├── randomproduct.controllers.js │ ├── randomuser.controllers.js │ ├── stock.controllers.js │ └── youtube.controllers.js ├── db/ │ └── index.js ├── index.js ├── json/ │ ├── books.json │ ├── cats.json │ ├── dogs.json │ ├── meals.json │ ├── nse-stocks.json │ ├── quotes.json │ ├── randomjoke.json │ ├── randomproduct.json │ ├── randomuser.json │ ├── status-codes.json │ └── youtube/ │ ├── channel.json │ ├── comments.json │ ├── playlistitems.json │ ├── playlists.json │ └── videos.json ├── logger/ │ ├── morgan.logger.js │ └── winston.logger.js ├── middlewares/ │ ├── auth.middlewares.js │ ├── error.middlewares.js │ └── multer.middlewares.js ├── models/ │ └── apps/ │ ├── auth/ │ │ └── user.models.js │ ├── chat-app/ │ │ ├── chat.models.js │ │ └── message.models.js │ ├── ecommerce/ │ │ ├── address.models.js │ │ ├── cart.models.js │ │ ├── category.models.js │ │ ├── coupon.models.js │ │ ├── order.models.js │ │ ├── product.models.js │ │ └── profile.models.js │ ├── social-media/ │ │ ├── bookmark.models.js │ │ ├── comment.models.js │ │ ├── follow.models.js │ │ ├── like.models.js │ │ ├── post.models.js │ │ └── profile.models.js │ └── todo/ │ └── todo.models.js ├── passport/ │ └── index.js ├── routes/ │ ├── apps/ │ │ ├── auth/ │ │ │ └── user.routes.js │ │ ├── chat-app/ │ │ │ ├── chat.routes.js │ │ │ └── message.routes.js │ │ ├── ecommerce/ │ │ │ ├── address.routes.js │ │ │ ├── cart.routes.js │ │ │ ├── category.routes.js │ │ │ ├── coupon.routes.js │ │ │ ├── order.routes.js │ │ │ ├── product.routes.js │ │ │ └── profile.routes.js │ │ ├── social-media/ │ │ │ ├── bookmark.routes.js │ │ │ ├── comment.routes.js │ │ │ ├── follow.routes.js │ │ │ ├── like.routes.js │ │ │ ├── post.routes.js │ │ │ └── profile.routes.js │ │ └── todo/ │ │ └── todo.routes.js │ ├── healthcheck.routes.js │ ├── kitchen-sink/ │ │ ├── cookie.routes.js │ │ ├── httpmethod.routes.js │ │ ├── image.routes.js │ │ ├── redirect.routes.js │ │ ├── requestinspection.routes.js │ │ ├── responseinspection.routes.js │ │ └── statuscode.routes.js │ └── public/ │ ├── book.routes.js │ ├── cat.routes.js │ ├── dog.routes.js │ ├── meal.routes.js │ ├── quote.routes.js │ ├── randomjoke.routes.js │ ├── randomproduct.routes.js │ ├── randomuser.routes.js │ ├── stock.routes.js │ └── youtube.routes.js ├── seeds/ │ ├── _constants.js │ ├── chat-app.seeds.js │ ├── ecommerce.seeds.js │ ├── social-media.seeds.js │ ├── todo.seeds.js │ └── user.seeds.js ├── socket/ │ └── index.js ├── swagger.yaml ├── utils/ │ ├── ApiError.js │ ├── ApiResponse.js │ ├── asyncHandler.js │ ├── helpers.js │ └── mail.js └── validators/ ├── apps/ │ ├── auth/ │ │ └── user.validators.js │ ├── chat-app/ │ │ ├── chat.validators.js │ │ └── message.validators.js │ ├── ecommerce/ │ │ ├── address.validators.js │ │ ├── cart.validators.js │ │ ├── category.validators.js │ │ ├── coupon.validators.js │ │ ├── order.validators.js │ │ ├── product.validators.js │ │ └── profile.validators.js │ ├── social-media/ │ │ ├── comment.validators.js │ │ ├── post.validators.js │ │ └── profile.validators.js │ └── todo/ │ └── todo.validators.js ├── common/ │ └── mongodb.validators.js ├── kitchen-sink/ │ ├── cookie.validators.js │ ├── redirect.validators.js │ ├── responseinspection.validators.js │ └── statuscode.validators.js └── validate.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .babelrc ================================================ { "presets": ["@babel/preset-env"], "plugins": ["@babel/plugin-syntax-import-assertions"] } ================================================ FILE: .commitlintrc.json ================================================ { "extends": ["@commitlint/config-conventional"], "rules": { "type-enum": [ 2, "always", [ "ci", "chore", "docs", "feat", "fix", "perf", "refactor", "revert", "style", "assets", "test" ] ] } } ================================================ FILE: .dockerignore ================================================ /.vscode /node_modules ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yaml ================================================ name: 🐞 Bug report description: Create a report to help us improve title: "BUG:
{getChatObjectMetadata(chat, user!).title}
{message.sender?.username}
) : null} {message?.attachments?.length > 0 ? ({message.content}
{message.attachments?.length > 0 ? (
{getChatObjectMetadata(currentChat.current, user!).title}
{ getChatObjectMetadata(currentChat.current, user!) .description }