Standardized terminology by changing 'Cloudflare Worker' to 'Cloudflare Workers' across documentation, workflow comments, and code. Expanded deployment instructions in README to include Cloudflare Pages and EdgeOne Pages, clarified secrets setup, and improved deployment notes for self-hosting.
Update request handling to redirect root, invalid platform prefixes, and platform prefixes without resource paths to the homepage. Adjust tests to expect 302 redirects instead of 404 or 400 responses for these cases.
This commit converts the entire Xget application from a Cloudflare Worker
to a Cloudflare Page, enabling static asset hosting while maintaining all
existing functionality.
Changes:
- Add functions/[[path]].js: Catch-all Pages Function handler
- Add public/index.html: Landing page with Xget information
- Update src/index.js: Export handleRequest for Pages Function import
- Update wrangler.toml: Configure for Pages deployment
- Update package.json: Change scripts to use Pages commands
- Update vitest.config.js: Include functions/ in coverage
- Update .github/workflows/depoly.yml: Deploy to Pages
- Update documentation: CLAUDE.md, README.md, README.en.md
The conversion maintains full backward compatibility with existing tests
and functionality. All caching strategies, security headers, and protocol
handling remain unchanged.
Enhances cache logic to ensure compatibility with non-Cloudflare environments by checking for cache API availability. Refactors cache key construction to always use GET method, adds error handling for cache operations, and ensures only GET requests are cached. Improves robustness and prevents runtime errors when cache API is unavailable.
Added Podman deployment instructions and badges to both English and Chinese README files. Updated several badge colors for consistency. Introduced new scripts for badge color fixes. Updated dependencies in package.json and package-lock.json. Added scripts/README.md and scripts/fix-badge-colors.js for badge management.
Added GitHub Gist ('gist') to the supported platforms in the configuration, updated documentation in both English and Chinese READMEs, and included related tests to ensure correct path transformation and base URL.
Updated the request handling logic in src/index.js to include isGitLFS in conditions for setting request body, copying headers, and returning responses. This ensures proper handling of Git LFS operations alongside Git, Docker, and AI requests.
Introduces detection and handling for Git LFS (Large File Storage) operations, including LFS-specific endpoints, headers, and user agents. Updates request validation, header management, and cache logic to properly support LFS requests and ensure real-time data synchronization. Adds comprehensive integration and unit tests for LFS scenarios, and documents the new behavior in CLAUDE.md.
This commit adds support for Docker Hub (registry-1.docker.io) as a container registry platform with special authentication handling for official images.
Changes:
- Add 'cr-docker' platform pointing to https://registry-1.docker.io in platforms.js
- Implement special authentication scope handling for Docker Hub official images
- Docker Hub stores official images (nginx, redis, etc.) as library/nginx, library/redis
- Single-component image names are automatically prefixed with 'library/' for authentication
- Multi-component names (user/image) are passed through unchanged
- Add comprehensive tests for Docker Hub support
This resolves the issue where pulling public images from Docker Hub would prompt for authentication incorrectly. The library prefix is now automatically added to the authentication scope for single-name images, allowing proper anonymous access to public official images.
Test coverage:
- Official images (single-name): /cr/docker/v2/nginx/manifests/latest
- User images (namespaced): /cr/docker/v2/nginxinc/nginx-unprivileged/manifests/latest
- GET and HEAD request methods verified
All Docker Hub specific tests pass.
Added Siray to the list of supported AI inference providers in documentation and configuration. This enables API acceleration for Siray via the platform configuration.
Enhances caching strategy to only cache 200 responses (not 206), supports serving range requests from cached full content, and avoids compression for media files to ensure proper byte-range support. Adds comprehensive tests for range request caching, media file handling, cache key management, and performance metrics.
Introduces Jenkins plugin and update center mirror support in README and platform config. Updates transformPath logic for Jenkins endpoints and adds comprehensive tests for Jenkins path handling and URL construction.
Added Google Hosted Libraries (ghl), unpkg, Skypack, and esm.sh to the supported platforms in both the README and the configuration file. Updated documentation with usage examples and badge links for these CDNs to improve clarity and user guidance.
Introduces a GitHub Actions workflow to automatically translate README.md to English using DeepL, update language links, and add a translation disclaimer. Also enables the 'arxiv' platform in the platforms configuration.
Introduces Kaggle as a supported platform in the configuration and health check. Implements special path transformation logic for Kaggle API endpoints in transformPath, and adds comprehensive tests to verify correct path handling for various Kaggle API routes.
Added 'civitai' to the PLATFORMS config and updated tests to include Civitai path transformations. This enables handling of Civitai URLs in the platform configuration and ensures correct path transformation logic.
Renamed several AI provider keys and references (e.g., 'ip-google' to 'ip-gemini', 'ip-mistral' to 'ip-mistralai', etc.) in the codebase, documentation, and tests for improved clarity and alignment with provider branding. Updated README usage examples and provider tables to match the new keys.
Expanded README with detailed documentation and usage examples for AI inference provider acceleration, including a new badge, platform table entries, and code samples for Python and JavaScript. Updated src/config/platforms.js to use the correct Hugging Face inference API endpoint.
Expanded and reordered the list of AI inference providers in the platform configuration to include new providers such as ip-github, ip-nvidia, ip-braintrust, ip-jina, ip-voyageai, ip-burncloud, and ip-poe. Updated the corresponding test to match the new provider list and order.
Introduces isAIInferenceRequest to detect AI inference API requests and updates request validation, caching, and header logic to support AI endpoints. Ensures proper content type and User-Agent headers for AI requests and skips caching for these operations, similar to Git and Docker requests.
Added major AI/ML inference providers to the PLATFORMS config. Introduced comprehensive tests to ensure all providers are defined, their paths are transformed correctly, and valid URLs are constructed.
Added Homebrew, Homebrew API, and Homebrew Bottles platform support in the configuration. Updated the README with Homebrew usage instructions and examples. Introduced comprehensive tests for Homebrew path transformations to ensure correct behavior.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.