SYMBOL INDEX (126 symbols across 38 files) FILE: app/(dashboard)/dashboard/activity/loading.tsx function ActivityPageSkeleton (line 3) | function ActivityPageSkeleton() { FILE: app/(dashboard)/dashboard/activity/page.tsx function getRelativeTime (line 30) | function getRelativeTime(date: Date) { function formatAction (line 44) | function formatAction(action: ActivityType): string { function ActivityPage (line 71) | async function ActivityPage() { FILE: app/(dashboard)/dashboard/general/page.tsx type ActionState (line 16) | type ActionState = { type AccountFormProps (line 22) | type AccountFormProps = { function AccountForm (line 28) | function AccountForm({ function AccountFormWithData (line 64) | function AccountFormWithData({ state }: { state: ActionState }) { function GeneralPage (line 75) | function GeneralPage() { FILE: app/(dashboard)/dashboard/layout.tsx function DashboardLayout (line 9) | function DashboardLayout({ FILE: app/(dashboard)/dashboard/page.tsx type ActionState (line 23) | type ActionState = { function SubscriptionSkeleton (line 30) | function SubscriptionSkeleton() { function ManageSubscription (line 40) | function ManageSubscription() { function TeamMembersSkeleton (line 75) | function TeamMembersSkeleton() { function TeamMembers (line 96) | function TeamMembers() { function InviteTeamMemberSkeleton (line 180) | function InviteTeamMemberSkeleton() { function InviteTeamMember (line 190) | function InviteTeamMember() { function SettingsPage (line 272) | function SettingsPage() { FILE: app/(dashboard)/dashboard/security/page.tsx type PasswordState (line 11) | type PasswordState = { type DeleteState (line 19) | type DeleteState = { function SecurityPage (line 25) | function SecurityPage() { FILE: app/(dashboard)/layout.tsx function UserMenu (line 21) | function UserMenu() { function Header (line 81) | function Header() { function Layout (line 99) | function Layout({ children }: { children: React.ReactNode }) { FILE: app/(dashboard)/page.tsx function HomePage (line 5) | function HomePage() { FILE: app/(dashboard)/pricing/page.tsx function PricingPage (line 9) | async function PricingPage() { function PricingCard (line 53) | function PricingCard({ FILE: app/(dashboard)/pricing/submit-button.tsx function SubmitButton (line 7) | function SubmitButton() { FILE: app/(dashboard)/terminal.tsx function Terminal (line 6) | function Terminal() { FILE: app/(login)/actions.ts function logActivity (line 29) | async function logActivity( function signOut (line 224) | async function signOut() { FILE: app/(login)/login.tsx function Login (line 13) | function Login({ mode = 'signin' }: { mode?: 'signin' | 'signup' }) { FILE: app/(login)/sign-in/page.tsx function SignInPage (line 4) | function SignInPage() { FILE: app/(login)/sign-up/page.tsx function SignUpPage (line 4) | function SignUpPage() { FILE: app/api/stripe/checkout/route.ts function GET (line 9) | async function GET(request: NextRequest) { FILE: app/api/stripe/webhook/route.ts function POST (line 7) | async function POST(request: NextRequest) { FILE: app/api/team/route.ts function GET (line 3) | async function GET() { FILE: app/api/user/route.ts function GET (line 3) | async function GET() { FILE: app/layout.tsx function RootLayout (line 18) | function RootLayout({ FILE: app/not-found.tsx function NotFound (line 4) | function NotFound() { FILE: components/ui/avatar.tsx function Avatar (line 8) | function Avatar({ function AvatarImage (line 24) | function AvatarImage({ function AvatarFallback (line 37) | function AvatarFallback({ FILE: components/ui/button.tsx function Button (line 38) | function Button({ FILE: components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<"div">) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<"... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<"div">) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<"div"... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) { FILE: components/ui/dropdown-menu.tsx function DropdownMenu (line 9) | function DropdownMenu({ function DropdownMenuPortal (line 15) | function DropdownMenuPortal({ function DropdownMenuTrigger (line 23) | function DropdownMenuTrigger({ function DropdownMenuContent (line 34) | function DropdownMenuContent({ function DropdownMenuGroup (line 54) | function DropdownMenuGroup({ function DropdownMenuItem (line 62) | function DropdownMenuItem({ function DropdownMenuCheckboxItem (line 85) | function DropdownMenuCheckboxItem({ function DropdownMenuRadioGroup (line 111) | function DropdownMenuRadioGroup({ function DropdownMenuRadioItem (line 122) | function DropdownMenuRadioItem({ function DropdownMenuLabel (line 146) | function DropdownMenuLabel({ function DropdownMenuSeparator (line 166) | function DropdownMenuSeparator({ function DropdownMenuShortcut (line 179) | function DropdownMenuShortcut({ function DropdownMenuSub (line 195) | function DropdownMenuSub({ function DropdownMenuSubTrigger (line 201) | function DropdownMenuSubTrigger({ function DropdownMenuSubContent (line 225) | function DropdownMenuSubContent({ FILE: components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: components/ui/label.tsx function Label (line 8) | function Label({ FILE: components/ui/radio-group.tsx function RadioGroup (line 9) | function RadioGroup({ function RadioGroupItem (line 22) | function RadioGroupItem({ FILE: lib/auth/middleware.ts type ActionState (line 6) | type ActionState = { type ValidatedActionFunction (line 12) | type ValidatedActionFunction, T> = ( function validatedAction (line 17) | function validatedAction, T>( type ValidatedActionWithUserFunction (line 31) | type ValidatedActionWithUserFunction, T> = ( function validatedActionWithUser (line 37) | function validatedActionWithUser, T>( type ActionWithTeamFunction (line 56) | type ActionWithTeamFunction = ( function withTeam (line 61) | function withTeam(action: ActionWithTeamFunction) { FILE: lib/auth/session.ts constant SALT_ROUNDS (line 7) | const SALT_ROUNDS = 10; function hashPassword (line 9) | async function hashPassword(password: string) { function comparePasswords (line 13) | async function comparePasswords( type SessionData (line 20) | type SessionData = { function signToken (line 25) | async function signToken(payload: SessionData) { function verifyToken (line 33) | async function verifyToken(input: string) { function getSession (line 40) | async function getSession() { function setSession (line 46) | async function setSession(user: NewUser) { FILE: lib/db/migrations/0000_soft_the_anarchist.sql type "activity_logs" (line 1) | CREATE TABLE IF NOT EXISTS "activity_logs" ( type "invitations" (line 10) | CREATE TABLE IF NOT EXISTS "invitations" ( type "team_members" (line 20) | CREATE TABLE IF NOT EXISTS "team_members" ( type "teams" (line 28) | CREATE TABLE IF NOT EXISTS "teams" ( type "users" (line 42) | CREATE TABLE IF NOT EXISTS "users" ( FILE: lib/db/queries.ts function getUser (line 7) | async function getUser() { function getTeamByStripeCustomerId (line 39) | async function getTeamByStripeCustomerId(customerId: string) { function updateTeamSubscription (line 49) | async function updateTeamSubscription( function getUserWithTeam (line 67) | async function getUserWithTeam(userId: number) { function getActivityLogs (line 81) | async function getActivityLogs() { function getTeamForUser (line 102) | async function getTeamForUser() { FILE: lib/db/schema.ts type User (line 115) | type User = typeof users.$inferSelect; type NewUser (line 116) | type NewUser = typeof users.$inferInsert; type Team (line 117) | type Team = typeof teams.$inferSelect; type NewTeam (line 118) | type NewTeam = typeof teams.$inferInsert; type TeamMember (line 119) | type TeamMember = typeof teamMembers.$inferSelect; type NewTeamMember (line 120) | type NewTeamMember = typeof teamMembers.$inferInsert; type ActivityLog (line 121) | type ActivityLog = typeof activityLogs.$inferSelect; type NewActivityLog (line 122) | type NewActivityLog = typeof activityLogs.$inferInsert; type Invitation (line 123) | type Invitation = typeof invitations.$inferSelect; type NewInvitation (line 124) | type NewInvitation = typeof invitations.$inferInsert; type TeamDataWithMembers (line 125) | type TeamDataWithMembers = Team & { type ActivityType (line 131) | enum ActivityType { FILE: lib/db/seed.ts function createStripeProducts (line 6) | async function createStripeProducts() { function seed (line 42) | async function seed() { FILE: lib/db/setup.ts function question (line 11) | function question(query: string): Promise { function checkStripeCLI (line 25) | async function checkStripeCLI() { function getPostgresURL (line 80) | async function getPostgresURL(): Promise { function setupLocalPostgres (line 98) | async function setupLocalPostgres() { function getStripeSecretKey (line 150) | async function getStripeSecretKey(): Promise { function createStripeWebhook (line 158) | async function createStripeWebhook(): Promise { function generateAuthSecret (line 181) | function generateAuthSecret(): string { function writeEnvFile (line 186) | async function writeEnvFile(envVars: Record) { function main (line 196) | async function main() { FILE: lib/payments/stripe.ts function createCheckoutSession (line 14) | async function createCheckoutSession({ function createCustomerPortalSession (line 49) | async function createCustomerPortalSession(team: Team) { function handleSubscriptionChange (line 117) | async function handleSubscriptionChange( function getStripePrices (line 149) | async function getStripePrices() { function getStripeProducts (line 167) | async function getStripeProducts() { FILE: lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: middleware.ts function middleware (line 7) | async function middleware(request: NextRequest) {