gitextract_1rmw6cng/ ├── .dockerignore ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ ├── docker.yml │ ├── docs.yml │ └── tests.yml ├── .gitignore ├── .npmrc ├── .prettierrc ├── Dockerfile ├── LICENSE ├── README.md ├── __tests__/ │ ├── __mocks__/ │ │ └── bun-sqlite.ts │ ├── api/ │ │ ├── auth.test.ts │ │ ├── crossSeed.test.ts │ │ ├── files.test.ts │ │ ├── instances.test.ts │ │ ├── integrations.test.ts │ │ └── qbittorrent.test.ts │ ├── hooks/ │ │ ├── useInstance.test.tsx │ │ └── usePagination.test.tsx │ ├── reporter.ts │ ├── server/ │ │ ├── crossSeedCache.test.ts │ │ ├── crossSeedMatcher.test.ts │ │ ├── crossSeedScheduler.test.ts │ │ ├── crossSeedWorker.test.ts │ │ ├── fetch.test.ts │ │ ├── logger.test.ts │ │ ├── rateLimit.test.ts │ │ └── url.test.ts │ ├── themes/ │ │ └── themes.test.ts │ └── utils/ │ ├── fileTree.test.ts │ ├── format.test.ts │ ├── pagination.test.ts │ ├── ratioThresholds.test.ts │ └── search.test.ts ├── docs/ │ ├── .vitepress/ │ │ ├── config.ts │ │ └── theme/ │ │ ├── custom.css │ │ └── index.ts │ ├── guide/ │ │ ├── configuration.md │ │ ├── docker.md │ │ ├── features.md │ │ ├── getting-started.md │ │ └── network-agent/ │ │ └── index.md │ └── index.md ├── eslint.config.js ├── index.html ├── net-agent/ │ ├── Dockerfile │ ├── README.md │ ├── go.mod │ └── main.go ├── package.json ├── src/ │ ├── App.tsx │ ├── api/ │ │ ├── auth.ts │ │ ├── crossSeed.ts │ │ ├── files.ts │ │ ├── instances.ts │ │ ├── integrations.ts │ │ ├── netAgent.ts │ │ ├── qbittorrent.ts │ │ └── stats.ts │ ├── components/ │ │ ├── AddTorrentModal.tsx │ │ ├── AuthForm.tsx │ │ ├── CategoryTagManager.tsx │ │ ├── ContextMenu.tsx │ │ ├── CrossSeedManager.tsx │ │ ├── DateSettingsPopup.tsx │ │ ├── FileBrowser.tsx │ │ ├── FilterBar.tsx │ │ ├── Header.tsx │ │ ├── InstanceManager.tsx │ │ ├── Layout.tsx │ │ ├── LogViewer.tsx │ │ ├── NetworkTools.tsx │ │ ├── OrphanManager.tsx │ │ ├── RSSManager.tsx │ │ ├── RatioThresholdPopup.tsx │ │ ├── SearchPanel.tsx │ │ ├── SettingsPanel.tsx │ │ ├── Statistics.tsx │ │ ├── StatusBar.tsx │ │ ├── ThemeManager.tsx │ │ ├── ThemeSwitcher.tsx │ │ ├── TorrentDetailsPanel.tsx │ │ ├── TorrentList.tsx │ │ ├── TorrentRow.tsx │ │ ├── ViewSelector.tsx │ │ ├── columns.ts │ │ ├── settings/ │ │ │ ├── AdvancedTab.tsx │ │ │ ├── BehaviorTab.tsx │ │ │ ├── BitTorrentTab.tsx │ │ │ ├── ConnectionTab.tsx │ │ │ ├── DownloadsTab.tsx │ │ │ ├── RSSTab.tsx │ │ │ ├── SpeedTab.tsx │ │ │ ├── WebUITab.tsx │ │ │ └── index.ts │ │ └── ui/ │ │ ├── Checkbox.tsx │ │ ├── MultiSelect.tsx │ │ ├── Select.tsx │ │ ├── Toggle.tsx │ │ └── index.ts │ ├── contexts/ │ │ ├── InstanceProvider.tsx │ │ ├── PaginationProvider.tsx │ │ ├── ThemeContext.ts │ │ ├── ThemeProvider.tsx │ │ ├── instanceContext.ts │ │ └── paginationContext.ts │ ├── hooks/ │ │ ├── useClickOutside.ts │ │ ├── useCrossSeed.ts │ │ ├── useInstance.ts │ │ ├── usePagination.ts │ │ ├── useRSSManager.ts │ │ ├── useStats.ts │ │ ├── useSyncMaindata.ts │ │ ├── useTheme.ts │ │ ├── useTorrentDetails.ts │ │ ├── useTorrents.ts │ │ ├── useTransferInfo.ts │ │ └── useUpdateCheck.ts │ ├── index.css │ ├── main.tsx │ ├── mobile/ │ │ ├── MobileApp.tsx │ │ ├── MobileCrossSeedManager.tsx │ │ ├── MobileFileBrowser.tsx │ │ ├── MobileInstancePicker.tsx │ │ ├── MobileLogViewer.tsx │ │ ├── MobileNetworkTools.tsx │ │ ├── MobileOrphanManager.tsx │ │ ├── MobileRSSManager.tsx │ │ ├── MobileSearchPanel.tsx │ │ ├── MobileStatistics.tsx │ │ ├── MobileStats.tsx │ │ ├── MobileThemeManager.tsx │ │ ├── MobileThemeSwitcher.tsx │ │ ├── MobileTools.tsx │ │ ├── MobileTorrentDetail.tsx │ │ └── MobileTorrentList.tsx │ ├── server/ │ │ ├── db/ │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── middleware/ │ │ │ └── auth.ts │ │ ├── routes/ │ │ │ ├── auth.ts │ │ │ ├── crossSeed.ts │ │ │ ├── files.ts │ │ │ ├── instances.ts │ │ │ ├── integrations.ts │ │ │ ├── proxy.ts │ │ │ ├── stats.ts │ │ │ └── tools.ts │ │ └── utils/ │ │ ├── crossSeedCache.ts │ │ ├── crossSeedMatcher.ts │ │ ├── crossSeedScheduler.ts │ │ ├── crossSeedWorker.ts │ │ ├── crypto.ts │ │ ├── fetch.ts │ │ ├── logger.ts │ │ ├── qbt.ts │ │ ├── rateLimit.ts │ │ ├── statsRecorder.ts │ │ ├── torznab.ts │ │ └── url.ts │ ├── themes/ │ │ └── index.ts │ ├── types/ │ │ ├── preferences.ts │ │ ├── qbittorrent.ts │ │ ├── rss.ts │ │ ├── torrentDetails.ts │ │ └── views.ts │ └── utils/ │ ├── colorUtils.ts │ ├── customViews.ts │ ├── dateSettings.ts │ ├── fileTree.ts │ ├── format.ts │ ├── markdown.tsx │ ├── pagination.ts │ ├── ratioThresholds.ts │ └── search.ts ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── tsconfig.server.json ├── vite.config.ts └── vitest.config.ts