Reads PRODUCT_VERSION from init.php and plugin versions from config.php,
then updates uptelligence_vendors to reflect what is actually deployed.
Supports --dry-run and --path options. 7 tests, 16 assertions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Idempotent seeder using updateOrCreate for 4 licensed products
(66analytics, 66biolinks, 66pusher, 66socialproof) and 13 plugins.
All entries use placeholder version 0.0.0 pending sync from Task 4.
Also fixes Pest.php to use Tests\TestCase (loads Boot provider) so
database-dependent tests can run migrations via RefreshDatabase.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add automated version checking for AltumCode products and plugins:
- isAltumPlatform() routes altum vendors before OSS checks
- checkAltumProduct() fetches latest_release_version from product info.php
- checkAltumPlugin() looks up plugin versions from dev.altumcode.com
- In-memory cache avoids redundant HTTP calls for multiple plugins
14 Pest tests covering all paths (43 assertions).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add phpunit.xml and tests/Pest.php for standalone test execution.
Apply Laravel Pint formatting fixes across all source files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add package name validation with strict regex patterns
- Convert all Process::run() calls to array syntax
- Support Composer and NPM package name formats
- Add comprehensive shell injection tests (20 attack patterns)
- Update security docs and changelog
Fixes P2 shell injection vulnerability from security audit.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>