Commit Graph
68 Commits
Author SHA1 Message Date
xixu-me 689ea2ebee Add Apache software download acceleration support
Added Apache as a supported platform in the documentation and configuration. Updated both English and Chinese README files with instructions and examples for accelerating Apache software downloads via Xget, and registered the Apache platform in the platforms.js config.
2025-08-08 18:52:00 +08:00
xixu-me 6f0914e001 Add AOSP, CPAN, and CTAN platform support
Added support and documentation for AOSP (Android Open Source Project), CPAN (Perl), and CTAN (TeX/LaTeX) mirrors in both English and Chinese README files. Updated src/config/platforms.js to include these platforms. No functional changes to request handling logic.
2025-08-08 18:44:39 +08:00
xixu-me 1878b5dce4 Ensure Content-Length header for HEAD requests
Adds special handling for HEAD requests to guarantee the Content-Length header is present. If the initial HEAD response lacks this header, a GET request is performed to retrieve or calculate the correct Content-Length value.
2025-08-08 17:33:09 +08:00
xixu-me ae67123de3 Remove PyTorch platform support and related tests
This commit removes all code, documentation, and tests related to the PyTorch platform. PyTorch is no longer listed as a supported platform in the configuration, README files, or test suites.
2025-08-07 14:53:47 +08:00
xixu-me 3c7ed0a985 Improve PyTorch wheel index URL rewriting and tests
Refactors PyTorch path transformation logic and enhances URL rewriting for PyTorch wheel index pages to handle both absolute and relative links. Removes unnecessary cache skipping for PyTorch index pages and adds dedicated tests for PyTorch URL rewriting and path transformation.
2025-08-07 14:44:33 +08:00
xixu-me e5bff20908 Improve PyTorch pip index handling and caching
Added special handling for PyTorch pip index requests to skip cache and set shorter cache duration for index pages. Updated URL rewriting logic to correctly rewrite PyTorch download URLs in HTML responses. Refactored code to distinguish between npm and PyTorch URL rewriting and clarified path transformation for PyTorch in the config.
2025-08-07 14:29:42 +08:00
xixu-me 7336649595 Add PyTorch platform support and URL rewriting
Introduces PyTorch platform support with URL rewriting for wheel index pages in src/index.js. Updates documentation in both English and Chinese READMEs to reflect new PyTorch installation URLs and verification steps. Adds comprehensive tests for PyTorch proxying, URL transformation, and error handling in test/index.test.js and new test/pytorch.test.js.
2025-08-07 14:07:09 +08:00
xixu-me b4af10603a Add PyTorch platform support and documentation
Introduces PyTorch as a supported platform in the configuration, updates test utilities and test cases for PyTorch URLs, and adds detailed usage and acceleration instructions for PyTorch in both English and Chinese README files.
2025-08-07 13:51:28 +08:00
xixu-me 056ff7dd46 Add environment-based config and improve error handling
Introduces a createConfig function to generate configuration from environment variables, enabling dynamic overrides for deployment environments. Refactors request validation and error responses to use the new config and a standardized error response helper. Updates caching logic to only cache GET and HEAD requests, and rewrites response body handling for platform-specific URL rewrites. Sets package type to 'module' in package.json.
2025-08-06 13:43:20 +08:00
xixu-me e8394d54d9 Remove APKMirror support and update F-Droid docs
Removed all references and documentation for APKMirror from the README and dropped APKMirror from the supported platforms in platforms.js. Expanded and improved the F-Droid mirror documentation, including usage examples and developer integration instructions.
2025-07-31 15:56:02 +08:00
xixu-me f06712efb6 Add F-Droid and APKMirror platform support
Added F-Droid and APKMirror to the supported platforms in both the documentation and the platform configuration. Updated the README with usage instructions, examples, and automation scripts for accelerating Android app downloads from F-Droid and APKMirror.
2025-07-31 15:08:12 +08:00
xixu-me 3bc67f3e9b Add openSUSE platform support and tests
Added openSUSE to the supported platforms in the documentation and configuration. Updated README with openSUSE usage instructions and examples. Introduced tests to verify openSUSE path transformation logic.
2025-07-31 14:40:48 +08:00
xixu-me ee9d44911c Add CRAN platform support and documentation
Added CRAN (R package repository) support to the platform configuration and updated the README with usage instructions and examples for CRAN. Introduced tests for CRAN path transformation and configuration in a new test/cran.test.js file.
2025-07-31 14:09:47 +08:00
xixu-me f0d449fdec Add Rust crates.io support and path transformation
Added Rust crates.io platform support in the documentation and platforms config. Implemented special path transformation logic for crates.io API endpoints in transformPath. Added tests to verify correct path transformation for various crates.io API routes.
2025-07-31 13:23:30 +08:00
xixu-me d6347ce264 Add arXiv platform support and documentation
Added arXiv as a supported platform in the platforms configuration and updated the README with usage instructions, badge, and examples for accelerating arXiv paper downloads.
2025-07-28 21:30:53 +08:00
xixu-me bdbac4a1c0 Add support for more package and OS platforms
Expanded documentation and platform config to include RubyGems, Go modules, NuGet, Packagist, and major Linux distributions (Debian, Ubuntu, Fedora, Rocky Linux, Arch Linux). Updated README with usage instructions and examples for these new platforms.
2025-07-28 20:27:09 +08:00
xixu-me e3ca1bc667 Add Maven and Gradle support and documentation
Added Maven and Gradle badges, usage instructions, and conversion examples to the README. Updated platforms.js to include Maven and Gradle platform URLs for enhanced package management support.
2025-07-28 19:54:44 +08:00
xixu-me 09b1a3ec40 Add Gitea, Codeberg, and SourceForge platform support
Extended platform support by adding Gitea, Codeberg, and SourceForge to the configuration and documentation. Updated tests to cover new platforms and their path transformations, and enhanced README with usage examples and badges for the new platforms.
2025-07-28 18:49:06 +08:00
xixu-me ef4362ea50 Remove Docker Hub specific support and code
Eliminated Docker Hub-specific configuration, path/scope transforms, and related documentation. Deleted src/config/docker.js and its tests, removed Docker Hub from supported platforms, and refactored code to use generic container registry logic. This simplifies the codebase by dropping special handling for Docker Hub library images.
2025-07-28 17:24:03 +08:00
xixu-me 75338601db Update imports and Docker request handling logic
Changed import statements to use explicit .js extensions for ES module compatibility. Updated Docker request detection to include '/cr/' paths and improved logic to avoid duplicating '/v2' prefix when constructing target paths.
2025-07-28 17:18:46 +08:00
xixu-me eef204ab49 Add Docker Hub support with path and scope handling
Introduces Docker Hub-specific configuration and utilities, including path and scope transformation for library images. Updates the main logic to handle Docker Hub authentication and path rewriting. Adds tests for Docker Hub path, scope, and authentication header parsing. Updates documentation to reflect Docker Hub support and usage examples.
2025-07-28 17:04:07 +08:00
xixu-me 7e2fc46e88 Refactor container registry support and docs
Updated README to clarify container registry usage and examples, including new supported registries and configuration instructions. Removed NVIDIA NGC from supported registries in code and tests. Standardized test cases and examples to use 'nginxinc/nginx-unprivileged' for container registry paths, improving consistency across documentation and tests.
2025-07-25 19:47:44 +08:00
xixu-me ba5b728b2f Remove Docker Hub registry support and references
Eliminates support for Docker Hub ('cr-docker') from platform configuration, request handling logic, and all related tests. Updates terminology and test cases to use other container registries (e.g., GHCR) and removes Docker-specific path and scope transformations. This simplifies container registry support and focuses on currently supported platforms.
2025-07-25 19:02:40 +08:00
xixu-me 46288a92da Refactor Docker registry request handling
Simplifies Docker authentication and registry path handling by removing redundant logic and enforcing /cr/ prefix for Docker registry requests. Updates allowed HTTP methods for Git and Docker, streamlines DockerHub library image path transformation, and improves unauthorized response handling.
2025-07-25 18:07:00 +08:00
xixu-me af22287f2f Refactor Docker authentication handling logic
Moves Docker authentication handling to the beginning of request processing for priority and clarity. Improves error handling and response formatting for Docker auth endpoint, and removes duplicate logic from later in the function.
2025-07-25 17:53:42 +08:00
xixu-me 61f0d21439 Improve Docker registry proxy authentication and routing
Enhances Docker registry proxy logic to better handle authentication challenges, support DELETE method, and improve path transformations for Docker Hub library images. Adds more robust handling for /v2/auth endpoint, upstream authentication checks, and anonymous token fetching for public repositories. Also refines error messaging and routing for Docker requests.
2025-07-25 17:27:50 +08:00
xixu-me 9cc2baee1e Refactor Docker registry 401 authentication handling
Simplifies and improves handling of 401 Unauthorized responses for Docker registry requests by passing through the authentication challenge with a modified WWW-Authenticate header, allowing the Docker client to handle authentication. Removes token fetching logic and ensures relevant headers are preserved in the response.
2025-07-25 16:52:02 +08:00
xixu-me c0a5f43f4c Refactor Docker registry authentication handling
Simplifies unauthorized response structure and updates the service name in the WWW-Authenticate header. Refactors Docker registry path handling to require /cr/ prefix for all requests, removes special handling for /v2/auth, and improves token fetching logic for public repositories. Unauthorized errors now return a more helpful message when authentication fails.
2025-07-25 16:37:56 +08:00
xixu-me a723f1b18f Improve Docker registry and auth endpoint handling
Adds special handling for the Docker /v2/auth endpoint, allowing requests without the /cr/ prefix. Refines anonymous token retrieval for Docker Hub public images and ensures proper scope extraction for manifests and blobs. If anonymous access fails, the original authentication challenge is passed through instead of returning a custom unauthorized response.
2025-07-25 16:31:12 +08:00
xixu-me 7a619e0edc Improve Docker registry authentication handling
Enhanced the unauthorized response to include proper headers and JSON error details. Added logic to attempt anonymous token retrieval for public Docker images and retry requests with the token if available, improving support for unauthenticated access.
2025-07-25 16:24:17 +08:00
xixu-me 7355cd3fce Improve Docker registry path validation
Updates Docker request handling to allow both /cr/ and /v2/cr/ prefixes, and clarifies path normalization for Docker registry API consistency.
2025-07-25 16:14:31 +08:00
xixu-me 3e3eab5867 Add Docker registry proxy support and tests
Implements Docker registry request detection, authentication handling, and proxy logic in src/index.js. Adds comprehensive tests for Docker registry support, including API version checks, URL transformation, authentication, HTTP methods, error handling, header preservation, and platform support in test/docker-registry.test.js.
2025-07-25 16:08:02 +08:00
xixu-me f755f9ebbc Pass 401 challenge for Docker authentication
When handling Docker authentication, the 401 challenge response is now passed through to the client to support proper authentication flows.
2025-07-25 15:07:56 +08:00
xixu-me 3661da22c7 Add Docker request handling to proxy logic
Introduces detection and special handling for Docker API requests, including protocol compliance and header management. Docker requests are now proxied similarly to Git operations, with caching and header logic adjusted to avoid interfering with protocol-sensitive requests.
2025-07-25 14:54:19 +08:00
xixu-me a6d7991c35 Refactor platform config and error handling logic
Removes transformPath from CONFIG and imports it directly where needed. Updates platform configuration to use a simpler mapping. Improves error handling by checking for Error instances before accessing message properties.
2025-07-25 14:28:27 +08:00
xixu-me df16d0806a Refactor platform config and unify path transformation
Simplifies PLATFORMS to map platform keys to base URLs and introduces a unified transformPath function for path normalization. Updates usage in src/index.js and refactors tests to validate the new structure and container registry support.
2025-07-25 14:16:26 +08:00
xixu-me b147ea7052 Add npm registry URL rewriting and improve formatting
Introduces logic to rewrite npm registry tarball URLs in JSON responses to route through the proxy endpoint, ensuring package names are preserved. Also improves code formatting and consistency across source and test files, and adds related test cases for npm URL rewriting.
2025-07-25 09:36:03 +08:00
xixu-me 6d30820daa Prioritize specific platform paths in detection logic
Platforms are now sorted by path length in descending order before matching, ensuring that more specific paths (e.g., conda/community) are matched before general ones (e.g., conda). This prevents incorrect platform detection when similar prefixes exist.
2025-07-24 20:04:21 +08:00
xixu-me dc40cacf81 Redirect invalid platforms to GitHub repo
Requests to the root path or with invalid/missing platforms now redirect to the GitHub repository instead of returning a 400 error. This improves user experience by guiding users to the project homepage for more information.
2025-07-24 19:50:36 +08:00
xixu-me cef0e26ed8 Add PyPI files proxy support and URL rewriting
Introduces a new 'pypi-files' platform configuration for proxying files from files.pythonhosted.org. Updates platform detection logic for better flexibility and rewrites PyPI simple index HTML responses to route file URLs through the proxy.
2025-07-24 19:27:28 +08:00
xixu-me 4115f931a3 Update PyPI URLs to use pypi.org domain
Changed all references from files.pythonhosted.org to pypi.org in both the README and the PyPI platform configuration. This aligns documentation and configuration with the current official PyPI domain.
2025-07-24 15:32:47 +08:00
xixu-me 11076bb7ea Refactor conda channel support and update docs
Added explicit support for conda community channels in platform config and request handling. Updated README with improved conda usage instructions, new .condarc and environment.yml examples, and clarified download/configuration steps. Removed Vitest test dependencies and test files from the project.
2025-07-24 14:49:21 +08:00
xixu-me 613253c1ad Add conda platform support and update documentation
Added conda registry configuration to the platforms config and updated the README to document conda support, including usage examples, URL conversion, and configuration for conda and mamba. This enhances the service by enabling accelerated downloads and proxying for Anaconda and Miniconda packages.
2025-07-24 11:56:49 +08:00
xixu-me 5296a2c4b9 Add PyPI support to documentation and platform config
Extended the README with instructions and examples for accelerating PyPI (Python package) downloads and pip configuration. Added PyPI platform configuration to src/config/platforms.js to enable proxying of files.pythonhosted.org URLs.
2025-07-24 11:51:01 +08:00
xixu-me 535f07a993 Add npm registry support and documentation
Added npm registry as a supported platform in the codebase and updated the README with usage instructions, examples, and configuration details for npm package acceleration. This enhances the tool's capabilities to accelerate npm package downloads and metadata retrieval.
2025-07-24 11:46:47 +08:00
xixu-me a2fe270445 Redirect root path to GitHub repository
Replaces serving the homepage for the root path with a 302 redirect to the project's GitHub repository. Simplifies the logic and improves user navigation.
2025-07-23 16:59:17 +08:00
xixu-me fc95a5128b Update homepage URL in request handler
Changed the HOME_PAGE_URL from the GitHub Pages site to the main GitHub repository URL in the root path handler.
2025-07-23 16:32:43 +08:00
xixu-me 9f119f21c3 Serve external homepage and remove local homepage
Replaces the local homepage HTML with a redirect to an external static homepage at https://xixu-me.github.io/Xget-page/. Removes the now-unused homepage.js file and updates tests to reflect the new homepage behavior.
2025-07-22 21:49:06 +08:00
xixu-me 8581195d4d Refactor config and update homepage styles
Refactored src/config/index.js to export a structured CONFIG object with application and security settings, and moved platform definitions to a separate import. Updated src/homepage.js to improve and align styles, enhance section structure, and synchronize UI/UX with the new config and design direction.
2025-07-22 19:56:00 +08:00
xixu-me 8b94068fdf Add modern homepage HTML generator for Xget
Replaces previous config export with a new `generateHomepage` function that returns a complete, modern, Chinese-language HTML homepage for Xget. The page includes sections for features, supported platforms, usage examples, a URL converter, and responsive design, with embedded CSS and JavaScript for interactivity.
2025-07-22 19:54:56 +08:00