gitextract_33v7gf8m/ ├── .dockerignore ├── .eslintrc.json ├── .github/ │ ├── actions/ │ │ ├── build-setup/ │ │ │ └── action.yml │ │ ├── format/ │ │ │ └── action.yml │ │ └── lint/ │ │ └── action.yml │ └── workflows/ │ ├── ci.yml │ ├── code-style.yml │ └── release.yaml ├── .gitignore ├── .idea/ │ ├── .gitignore │ ├── aws.xml │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── dataSources.xml │ ├── git_toolbox_blame.xml │ ├── git_toolbox_prj.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── jsLibraryMappings.xml │ ├── misc.xml │ ├── modules.xml │ ├── prettier.xml │ ├── recipe-buddy-v2.iml │ ├── recipe-buddy.iml │ ├── runConfigurations/ │ │ ├── Front_and_Back.xml │ │ ├── Front_end_dev__back_end_docker.xml │ │ └── recipe_buddy__Compose_Deployment.xml │ ├── sqldialects.xml │ └── vcs.xml ├── .prettierrc.cjs ├── Dockerfile ├── LICENSE ├── README.md ├── SECURITY.md ├── components.json ├── drizzle.config.ts ├── knip.json ├── next.config.js ├── package.json ├── postcss.config.cjs ├── scripts/ │ └── run.sh ├── src/ │ ├── app/ │ │ ├── (dashboard)/ │ │ │ ├── recipes/ │ │ │ │ ├── [id]/ │ │ │ │ │ ├── loading.tsx │ │ │ │ │ ├── page.tsx │ │ │ │ │ └── recipeForm.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── loading.tsx │ │ │ │ └── page.tsx │ │ │ └── settings/ │ │ │ ├── layout.tsx │ │ │ ├── loading.tsx │ │ │ └── page.tsx │ │ ├── (setup)/ │ │ │ └── setup/ │ │ │ └── page.tsx │ │ ├── api/ │ │ │ ├── auth/ │ │ │ │ └── [...nextauth]/ │ │ │ │ └── route.ts │ │ │ └── trpc/ │ │ │ └── [trpc]/ │ │ │ └── route.ts │ │ ├── layout.tsx │ │ └── page.tsx │ ├── components/ │ │ ├── card-skeleton.tsx │ │ ├── delete-recipe-button.tsx │ │ ├── empty-placeholder.tsx │ │ ├── grocy-product-combobox.tsx │ │ ├── grocy-status.tsx │ │ ├── grocy-unit-combobox.tsx │ │ ├── header.tsx │ │ ├── icons.tsx │ │ ├── ingredient-group-combobox.tsx │ │ ├── ingredient-note-dialog.tsx │ │ ├── ingredient-table.tsx │ │ ├── main-nav.tsx │ │ ├── mobile-nav.tsx │ │ ├── mode-toggle.tsx │ │ ├── new-recipe-dialog.tsx │ │ ├── new-user-dialog.tsx │ │ ├── recipe-card.tsx │ │ ├── recipe-title-input.tsx │ │ ├── shell.tsx │ │ ├── sign-in-button.tsx │ │ ├── site-footer.tsx │ │ ├── theme-provider.tsx │ │ ├── ui/ │ │ │ ├── accordion.tsx │ │ │ ├── alert.tsx │ │ │ ├── avatar.tsx │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── command.tsx │ │ │ ├── dialog.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── popover.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── sonner.tsx │ │ │ ├── table.tsx │ │ │ └── textarea.tsx │ │ ├── user-account-nav.tsx │ │ ├── user-avatar.tsx │ │ └── user-table.tsx │ ├── config/ │ │ ├── dashboard.ts │ │ └── site.ts │ ├── env.js │ ├── hooks/ │ │ └── use-lock-body.ts │ ├── lib/ │ │ ├── logger.ts │ │ ├── routes.ts │ │ ├── session.ts │ │ └── utils.ts │ ├── server/ │ │ ├── api/ │ │ │ ├── modules/ │ │ │ │ ├── grocy/ │ │ │ │ │ ├── procedures/ │ │ │ │ │ │ ├── checkGrocyConnection.ts │ │ │ │ │ │ ├── createRecipeInGrocy.ts │ │ │ │ │ │ ├── createRecipeInGrocySchema.ts │ │ │ │ │ │ ├── getGrocyProducts.ts │ │ │ │ │ │ └── getGrocyQuantityUnits.ts │ │ │ │ │ └── service/ │ │ │ │ │ ├── client.ts │ │ │ │ │ └── getGrocyProducts.ts │ │ │ │ ├── recipes/ │ │ │ │ │ ├── procedures/ │ │ │ │ │ │ ├── deleteRecipe.ts │ │ │ │ │ │ ├── getById.ts │ │ │ │ │ │ ├── listRecipes.ts │ │ │ │ │ │ ├── scrapeRecipe.ts │ │ │ │ │ │ └── scrapeRecipeSchema.ts │ │ │ │ │ └── service/ │ │ │ │ │ ├── deleteRecipe.ts │ │ │ │ │ ├── schemas.ts │ │ │ │ │ └── scraper.ts │ │ │ │ └── users/ │ │ │ │ ├── procedures/ │ │ │ │ │ ├── checkIsSetup.ts │ │ │ │ │ ├── createUser.ts │ │ │ │ │ ├── createUserSchema.ts │ │ │ │ │ ├── listUsers.ts │ │ │ │ │ └── setupUser.ts │ │ │ │ └── service/ │ │ │ │ ├── checkIsSetup.ts │ │ │ │ └── createUser.ts │ │ │ ├── root.ts │ │ │ ├── routers/ │ │ │ │ ├── grocy.ts │ │ │ │ ├── recipe.ts │ │ │ │ └── user.ts │ │ │ └── trpc.ts │ │ ├── auth.ts │ │ └── db/ │ │ ├── drizzle/ │ │ │ ├── 0000_rare_sauron.sql │ │ │ ├── 0001_worthless_aqueduct.sql │ │ │ └── meta/ │ │ │ ├── 0000_snapshot.json │ │ │ ├── 0001_snapshot.json │ │ │ └── _journal.json │ │ ├── drizzle-migrate.mjs │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── schema.ts │ │ └── tsconfig.json │ ├── styles/ │ │ └── globals.css │ ├── trpc/ │ │ ├── react.tsx │ │ ├── server.ts │ │ └── shared.ts │ └── types/ │ └── index.d.ts ├── tailwind.config.js └── tsconfig.json