gitextract_a5817xvy/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── report_issue.yml │ │ └── request_feature.yml │ └── workflows/ │ └── release.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bun.lockb ├── components.json ├── electron-builder.yml ├── main/ │ ├── background.ts │ ├── helpers/ │ │ ├── create-window.ts │ │ ├── db/ │ │ │ ├── connectDB.ts │ │ │ ├── createDB.ts │ │ │ └── schema.ts │ │ ├── index.ts │ │ └── lastfm-service.ts │ └── preload.ts ├── package.json ├── renderer/ │ ├── components/ │ │ ├── ErrorBoundary.tsx │ │ ├── LoadingSkeletons.tsx │ │ ├── PageTransition.tsx │ │ ├── PageTransitionMinimal.tsx │ │ ├── main/ │ │ │ ├── lyrics.tsx │ │ │ ├── navbar.tsx │ │ │ └── player.tsx │ │ ├── themeProvider.tsx │ │ └── ui/ │ │ ├── actions.tsx │ │ ├── album.tsx │ │ ├── avatar.tsx │ │ ├── badge.tsx │ │ ├── button.tsx │ │ ├── carousel.tsx │ │ ├── command.tsx │ │ ├── context-menu.tsx │ │ ├── dialog.tsx │ │ ├── form.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── scroll-area.tsx │ │ ├── select.tsx │ │ ├── skeleton.tsx │ │ ├── slider.tsx │ │ ├── songs.tsx │ │ ├── sonner.tsx │ │ ├── spinner.tsx │ │ ├── switch.tsx │ │ ├── tabs.tsx │ │ └── tooltip.tsx │ ├── context/ │ │ └── playerContext.tsx │ ├── hooks/ │ │ ├── useDebounce.ts │ │ └── useScrollAreaRestoration.ts │ ├── lib/ │ │ ├── albumCache.ts │ │ ├── apiConfig.ts │ │ ├── helpers.ts │ │ ├── lastfm-client.ts │ │ ├── lastfm.ts │ │ ├── songCache.ts │ │ └── utils.ts │ ├── next-env.d.ts │ ├── next.config.js │ ├── pages/ │ │ ├── _app.tsx │ │ ├── albums/ │ │ │ └── [slug].tsx │ │ ├── albums.tsx │ │ ├── artists/ │ │ │ ├── [name].tsx │ │ │ └── index.tsx │ │ ├── home.tsx │ │ ├── playlists/ │ │ │ └── [slug].tsx │ │ ├── playlists.tsx │ │ ├── settings.tsx │ │ ├── setup.tsx │ │ └── songs.tsx │ ├── postcss.config.js │ ├── preload.d.ts │ ├── styles/ │ │ └── globals.css │ └── tsconfig.json ├── resources/ │ └── icon.icns ├── tsconfig.json └── vercel/ ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages/ │ ├── _app.tsx │ ├── api/ │ │ ├── config.ts │ │ ├── index.ts │ │ ├── lastfm/ │ │ │ ├── auth.ts │ │ │ ├── now-playing.ts │ │ │ ├── scrobble.ts │ │ │ ├── track-info.ts │ │ │ └── user-info.ts │ │ └── utils/ │ │ └── lastfm.ts │ └── index.tsx ├── tsconfig.json └── vercel.json