SYMBOL INDEX (108 symbols across 59 files) FILE: src/app/(dashboard)/recipes/[id]/loading.tsx function DashboardLoading (line 4) | function DashboardLoading() { FILE: src/app/(dashboard)/recipes/[id]/page.tsx function RecipePage (line 7) | async function RecipePage({ FILE: src/app/(dashboard)/recipes/[id]/recipeForm.tsx type RecipeFormProps (line 27) | type RecipeFormProps = { function RecipeForm (line 32) | function RecipeForm({ recipeId, grocyBaseUrl }: RecipeFormProps) { type RecipeWithIngredients (line 42) | type RecipeWithIngredients = RouterOutputs["recipe"]["get"] function RecipeFormInner (line 44) | function RecipeFormInner({ FILE: src/app/(dashboard)/recipes/layout.tsx function Layout (line 3) | function Layout({ children }: { children: ReactNode }) { FILE: src/app/(dashboard)/recipes/loading.tsx function DashboardLoading (line 6) | function DashboardLoading() { FILE: src/app/(dashboard)/recipes/page.tsx function DashboardPage (line 11) | function DashboardPage() { FILE: src/app/(dashboard)/settings/layout.tsx function Layout (line 3) | function Layout({ children }: { children: ReactNode }) { FILE: src/app/(dashboard)/settings/loading.tsx function DashboardSettingsLoading (line 5) | function DashboardSettingsLoading() { FILE: src/app/(dashboard)/settings/page.tsx function SettingsPage (line 15) | async function SettingsPage() { FILE: src/app/(setup)/setup/page.tsx function Page (line 33) | function Page() { FILE: src/app/layout.tsx function RootLayout (line 29) | async function RootLayout({ FILE: src/app/page.tsx function Home (line 7) | async function Home() { FILE: src/components/card-skeleton.tsx function CardSkeleton (line 4) | function CardSkeleton() { FILE: src/components/delete-recipe-button.tsx type DeleteRecipeButtonProps (line 7) | type DeleteRecipeButtonProps = { function DeleteRecipeButton (line 11) | function DeleteRecipeButton({ recipeId }: DeleteRecipeButtonProps) { FILE: src/components/empty-placeholder.tsx type EmptyPlaceholderProps (line 6) | interface EmptyPlaceholderProps extends React.HTMLAttributes) { FILE: src/components/theme-provider.tsx function ThemeProvider (line 7) | function ThemeProvider({ children, ...props }: ThemeProviderProps) { FILE: src/components/ui/button.tsx type ButtonProps (line 37) | interface ButtonProps FILE: src/components/ui/command.tsx type CommandDialogProps (line 26) | interface CommandDialogProps extends DialogProps {} FILE: src/components/ui/form.tsx type FormFieldContextValue (line 18) | type FormFieldContextValue< type FormItemContextValue (line 65) | type FormItemContextValue = { FILE: src/components/ui/input.tsx type InputProps (line 5) | interface InputProps FILE: src/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: src/components/ui/sonner.tsx type ToasterProps (line 6) | type ToasterProps = React.ComponentProps FILE: src/components/ui/textarea.tsx type TextareaProps (line 5) | interface TextareaProps FILE: src/components/user-account-nav.tsx type UserAccountNavProps (line 16) | interface UserAccountNavProps extends React.HTMLAttributes type CreateRecipeInGrocyCommand (line 47) | type CreateRecipeInGrocyCommand = z.infer< FILE: src/server/api/modules/grocy/service/getGrocyProducts.ts type GrocyProduct (line 10) | type GrocyProduct = z.infer FILE: src/server/api/modules/recipes/procedures/scrapeRecipeSchema.ts type ScrapeRecipe (line 7) | type ScrapeRecipe = z.infer FILE: src/server/api/modules/recipes/service/scraper.ts function getNodeListOfMetadataNodesFromUrl (line 13) | async function getNodeListOfMetadataNodesFromUrl(url: string) { function jsonObjectIsRecipe (line 29) | function jsonObjectIsRecipe(jsonObject: Record): boolean { function jsonObjectHasGraph (line 39) | function jsonObjectHasGraph(jsonObject: Record): boolean { function normalizeWhitespace (line 43) | function normalizeWhitespace(input: string): string { function escapeRealLineBreaksInString (line 50) | function escapeRealLineBreaksInString(input: string): string { function getSchemaRecipeFromNodeList (line 57) | function getSchemaRecipeFromNodeList(nodeList: NodeList) { function hydrateRecipe (line 108) | async function hydrateRecipe(url: string) { FILE: src/server/api/modules/users/procedures/createUserSchema.ts type CreateUser (line 9) | type CreateUser = z.infer FILE: src/server/api/modules/users/service/createUser.ts type CreateUserInput (line 5) | type CreateUserInput = { FILE: src/server/api/root.ts type AppRouter (line 18) | type AppRouter = typeof appRouter FILE: src/server/api/trpc.ts method errorFormatter (line 47) | errorFormatter({ shape, error }) { FILE: src/server/auth.ts type Session (line 19) | interface Session { type User (line 23) | interface User { method authorize (line 43) | async authorize(credentials) { method jwt (line 72) | jwt({ token, user }) { FILE: src/server/db/drizzle/0000_rare_sauron.sql type `recipe-buddy_ingredient` (line 1) | CREATE TABLE `recipe-buddy_ingredient` ( type `recipe-buddy_recipe` (line 8) | CREATE TABLE `recipe-buddy_recipe` ( type `recipe-buddy_user` (line 16) | CREATE TABLE `recipe-buddy_user` ( type `recipe-buddy_user_username_unique` (line 23) | CREATE UNIQUE INDEX `recipe-buddy_user_username_unique` ON `recipe-buddy... type `username_idx` (line 24) | CREATE INDEX `username_idx` ON `recipe-buddy_user` (`name`) FILE: src/server/db/schema.ts type Recipe (line 24) | type Recipe = InferSelectModel type InsertRecipe (line 25) | type InsertRecipe = InferInsertModel type Ingredient (line 42) | type Ingredient = InferSelectModel type InsertIngredient (line 43) | type InsertIngredient = InferInsertModel FILE: src/trpc/react.tsx function TRPCReactProvider (line 19) | function TRPCReactProvider(props: { FILE: src/trpc/shared.ts function getBaseUrl (line 7) | function getBaseUrl() { function getUrl (line 13) | function getUrl() { type RouterInputs (line 22) | type RouterInputs = inferRouterInputs type RouterOutputs (line 29) | type RouterOutputs = inferRouterOutputs FILE: src/types/index.d.ts type NavItem (line 3) | type NavItem = { type MainNavItem (line 9) | type MainNavItem = NavItem type SidebarNavItem (line 11) | type SidebarNavItem = { type SiteConfig (line 27) | type SiteConfig = { type DocsConfig (line 38) | type DocsConfig = { type MarketingConfig (line 43) | type MarketingConfig = { type DashboardConfig (line 47) | type DashboardConfig = { type SubscriptionPlan (line 52) | type SubscriptionPlan = {