Skip to content

v2.0.0

Latest

Choose a tag to compare

@BMTmohammedtaha BMTmohammedtaha released this 26 Jul 20:08

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()