Commit Graph
73 Commits
Author SHA1 Message Date
Yusuf İpek ce4d0a6e3a fix: correct Cryptomus signature generation to use base64 encoding
- Updated signature algorithm to match Cryptomus API requirements (MD5(base64(JSON) + API_KEY))
- Removed unnecessary key sorting that was incompatible with Cryptomus specification
- Simplified payment flow to redirect immediately to payment URL instead of showing intermediate success state
2025-11-17 17:32:58 +03:00
Yusuf İpek ea792a8a7f feat: add package pruning system with configurable grace periods
- Implemented automatic pruning of stale packages across all platform sync endpoints (Arch, AUR, Debian, Ubuntu, Fedora, Homebrew, Winget)
- Added `last_seen_at` tracking to mark packages as seen during sync runs and identify inactive packages
- Introduced `PRUNE_GRACE_DAYS` and `PRUNE_HARD_DELETE_DAYS` environment variables for configurable soft-delete and hard-delete thresholds
2025-11-13 01:54:23 +03:00
Yusuf İpek 560e78cb96 feat: add AUR repository support for Arch Linux packages
- Extended database schema and models to include 'aur' as a valid repository type alongside 'official' and 'third-party'
- Added repository filter UI in package browser for Arch platform to distinguish between official and AUR packages
- Enhanced init-db script with migration system to track and apply schema changes automatically
2025-11-12 20:43:50 +03:00
Yusuf İpek cce1098282 refactor: remove unused server-side sync scripts
- Deleted cron-setup.sh for automated sync scheduling
- Removed init-backend.sh database initialization script
- Removed server-sync.sh for platform synchronization
2025-11-12 00:35:37 +03:00
Yusuf İpek 1cb13f5314 refactor: make type and repository filters Debian/Ubuntu specific
- Removed type and repository filters from non-Debian/Ubuntu platforms (Arch, Fedora, macOS, Windows)
- Conditionally render type filter UI only for Debian/Ubuntu platforms
- Set type and repository to null in package fetchers for platforms that don't support these classifications
2025-11-12 00:22:33 +03:00
Yusuf İpek 4fb96f3dbc refactor: extract GitHub API rate limit handling into reusable method
- Consolidated duplicate fetch logic into githubFetch() helper with automatic retry
- Added header-based rate limit detection using x-ratelimit-* headers
- Implemented GITHUB_RL_STRICT mode for proactive rate limit management
2025-11-11 22:11:02 +03:00
Yusuf İpek 34fa6b5a87 fix: handle both gzipped and plain text package list responses
- Added magic number detection (0x1f 0x8b) to identify gzipped content
- Removed unnecessary gunzip options that were causing decompression issues
- Added fallback to treat non-gzipped responses as plain text
2025-11-11 20:26:34 +03:00
Yusuf İpek db91b8d96a feat: add API endpoints for Debian and Ubuntu package syncing
- Implemented /api/sync-debian and /api/sync-ubuntu routes with authentication and status tracking
- Added GET endpoints to check sync status and POST endpoints to trigger package fetches
- Included concurrent sync prevention and async error handling for long-running operations
2025-11-11 20:19:48 +03:00
Yusuf İpek 87f28e4da9 fix: correct SQL parameter index and improve API URL handling
- Fixed SQL UPDATE query parameter mismatch ($4 → $3) in Homebrew package fetcher
- Enhanced API_BASE_URL configuration to handle empty strings and trailing slashes, defaulting to '/api' for relative paths
2025-11-11 18:50:33 +03:00
Yusuf İpek 0b01191193 feat: add schema application to database initialization script
- Read and execute schema.sql file after database creation
- Handle idempotent schema application by ignoring duplicate object errors
- Maintain graceful error handling for non-critical schema conflicts
2025-11-11 18:26:11 +03:00
Yusuf İpek 263f19d065 feat: add database initialization script command 2025-11-11 18:05:00 +03:00
Yusuf İpek cc82888c74 chore: remove debug endpoints and update configuration
- Removed debug-packages and test-sync API endpoints no longer needed
- Extracted sync status management into shared lib/sync/status module
- Updated Next.js config to remove deprecated experimental appDir flag
- Added port specification to production start script for consistency
2025-11-11 17:19:34 +03:00
Yusuf İpek b37373e807 feat: add authentication and configuration for sync operations
- Implemented SyncAuth to control sync access with server-only mode and secret key authorization
- Consolidated environment variables into single .env.example with improved sync configuration
- Protected all sync API endpoints (ubuntu, fedora, arch, homebrew, winget) with authentication checks
2025-11-11 16:41:37 +03:00
Yusuf İpek 6d39c9b48e feat: add cryptocurrency donation support with Cryptomus integration
- Added support modal component with payment creation flow and multi-language translations
- Integrated heart icon button in header to open donation modal
- Refactored PackageBrowser to accept packages as props and simplified filtering logic
2025-11-11 16:37:32 +03:00
Yusuf İpek 40a34d7133 fix: correct Windows package installation script generation
- Fixed package identifier usage: now uses `name` field (winget ID) instead of `id` field throughout Windows script
- Enhanced error handling with exit code checking and consistent [OK]/[ERROR] prefixes for better visibility
- Standardized PowerShell string quotes to single quotes for consistency
2025-11-11 16:26:51 +03:00
Yusuf İpek 299e951368 feat: add comprehensive Windows PowerShell script usage instructions
- Enhanced ScriptPreview with detailed Windows-specific installation steps including execution policy handling and winget availability checks
- Added localization support for all script preview UI elements and Windows usage instructions
- Improved script generator with automatic unblocking, admin privilege warnings, and winget validation
2025-11-11 16:13:29 +03:00
Yusuf İpek a462c18cc6 feat: add Homebrew package sync API with progress tracking
- Implemented API endpoint to fetch and store Homebrew formulae and casks from formulae.brew.sh
- Added real-time progress tracking for both fetch and storage operations with batch processing
- Created background sync process with status monitoring and duplicate detection
2025-11-10 20:14:56 +03:00
Yusuf İpek 2b93adcba5 feat: add Fedora package sync API endpoint
- Implemented API route with progress tracking for fetching and storing Fedora packages
- Created FedoraPackageFetcher service to scrape packages.fedoraproject.org with rate limiting
- Added batch processing and duplicate detection for efficient database storage
2025-11-10 20:06:23 +03:00
Yusuf İpek fdd5d9ef63 feat: add architecture sync script and cheerio dependency
- Added sync:arch npm script to synchronize architecture documentation
- Installed cheerio for HTML parsing capabilities
- Alphabetized package.json dependencies for better maintainability
2025-11-10 19:47:07 +03:00
Yusuf İpek 08f35aedbc feat: add multiple package sync sources and API integration
- Added undici dependency and implemented three package fetcher variants (simple text parsing, v2 with better error handling, and official repository sync)
- Integrated real API calls in PlatformSelector and PackageBrowser components with fallback to mock data
- Extended sync API route to support multiple data sources (debian-simple, ubuntu-simple, debian-official-v2, etc.) with platform initialization
2025-11-10 19:12:46 +03:00
Yusuf İpek 596bba0832 feat: add PostgreSQL database support and development scripts
- Added pg and @types/pg dependencies for PostgreSQL integration
- Created database testing and backend initialization scripts
- Changed dev server port to 3002 to avoid conflicts
2025-11-10 18:02:08 +03:00
Yusuf İpek e82366e5e8 feat: add internationalization support to package browser UI
- Integrated locale context throughout PackageBrowser, PlatformSelector, SelectionManager, and RepoHubApp components
- Replaced all hardcoded UI strings with translation keys (t() function calls)
- Updated RepoHubApp to wrap content in LocaleProvider for i18n support
2025-11-10 17:44:04 +03:00
Yusuf İpek bb854ea4d0 Initalize the project with front-end 2025-11-10 17:40:17 +03:00