Skip to content

feat!: full NHTSA vPIC API coverage with typed DTOs - #2

Merged
mattsplat merged 1 commit into
masterfrom
feat/vpic-full-api
Aug 30, 2026
Merged

mattsplat merged 1 commit into
masterfrom
feat/vpic-full-api

Conversation

@mattsplat

Copy link
Copy Markdown
Owner

Rewrite the package from the single VinDecode class into complete coverage of the NHTSA vPIC vehicle API.

  • Mattsplat\VinDecode\Vpic: one method per documented vPIC endpoint (VIN decoding, WMI, manufacturers, makes, models, vehicle types, variables, equipment plant codes, parts, Canadian specifications)
  • Mattsplat\VinDecode\Client: Guzzle-backed HTTP wrapper, injectable
  • Immutable typed DTOs for every response; Response envelope wrapper
  • VpicException / VpicRequestException
  • PHPUnit suite with fixtures captured from the live API, PHPStan level 8, Laravel Pint, GitHub Actions CI (PHP 8.1-8.4)
  • Package hygiene: LICENSE (MIT), CHANGELOG, CONTRIBUTING, SECURITY, docs/ guides

BREAKING CHANGE: root namespace is now Mattsplat\VinDecode\ and minimum PHP is 8.1. The old VinDecode\VinDecode class is kept as a deprecated shim.

Claude-Session: https://claude.ai/code/session_01P1vn4Bg2KpSFyRQcnq78Cc

Rewrite the package from the single VinDecode class into complete coverage
of the NHTSA vPIC vehicle API.

- Mattsplat\VinDecode\Vpic: one method per documented vPIC endpoint (VIN
  decoding, WMI, manufacturers, makes, models, vehicle types, variables,
  equipment plant codes, parts, Canadian specifications)
- Mattsplat\VinDecode\Client: Guzzle-backed HTTP wrapper, injectable
- Immutable typed DTOs for every response; Response envelope wrapper
- VpicException / VpicRequestException
- PHPUnit suite with fixtures captured from the live API, PHPStan level 8,
  Laravel Pint, GitHub Actions CI (PHP 8.1-8.4)
- Package hygiene: LICENSE (MIT), CHANGELOG, CONTRIBUTING, SECURITY, docs/ guides

BREAKING CHANGE: root namespace is now Mattsplat\VinDecode\ and minimum PHP
is 8.1. The old VinDecode\VinDecode class is kept as a deprecated shim.

Claude-Session: https://claude.ai/code/session_01P1vn4Bg2KpSFyRQcnq78Cc
@mattsplat
mattsplat merged commit 978080a into master Aug 30, 2026
3 of 4 checks passed
@mattsplat
mattsplat deleted the feat/vpic-full-api branch August 30, 2026 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant