Releases
v2.0.0
Compare
Sorry, something went wrong.
No results found
Added
CorsService error tracking with getErrors(), hasErrors(), clearErrors()
CorsService::setDebugMode() for detailed error logging
CorsService input validation (validateOptions, validateNormalizedOptions)
CorsService options normalization (case, duplicates, wildcard pattern conversion)
CorsService Vary header support with varyHeader()
PSR-15 CorsMiddleware preflight handling toggle (handle_preflight)
PSR-15 CorsMiddleware error handling toggle (handle_errors)
PSR-15 CorsMiddleware excluded path filtering (excluded_paths)
PSR-15 CorsMiddleware exception handling (graceful 500 responses)
PSR-15 CorsMiddleware fluent setters (setPaths, setExcludedPaths, setHandlePreflight, setHandleErrors)
Laravel service provider with auto-discovery (CorsServiceProvider)
Laravel facade (CorsFacade) and base Facade class with runtime-safe fallback
Laravel CorsHelper static proxy
Laravel-native CorsMiddleware with Symfony-to-PSR-7 conversion
Default config file config/cors.php (wildcard origins, methods, 86400 max-age)
IDE helper stubs in _ide_helper.php for static analysis
PHPStan configuration (phpstan.neon) at level 6
Pest test suite with 106 tests (153 assertions)
.gitignore and phpunit.xml configuration
Changed
CorsService::setOptions() now accepts snake_case and camelCase option keys
CorsMiddleware constructor accepts $config array instead of $paths
CorsMiddleware uses typed properties throughout
composer.json: moved effectra/http-message to require (production dependency)
composer.json: added dev dependencies for testing, static analysis, and Laravel integration
composer.json: added extra.laravel for package auto-discovery
Fixed
CorsMiddleware::process() now delegates to shouldHandle() instead of shouldRun()
CorsService proper origin format validation via isValidOrigin()
You can’t perform that action at this time.