9c73b26cd1
ImageUploadRequest::__construct() unconditionally calls Image::make(...) ->orientate() on every uploaded image (asset photos, user avatars, company logos, etc.). Intervention\Image\Commands\ExifCommand throws NotSupportedException when ext-exif is unavailable; ImageUploadRequest catches NotReadableException but not NotSupportedException, so the exception surfaces to the user as an unhandled 500 for any image upload that carries an EXIF Orientation tag (i.e. virtually every smartphone photo). Add ext-exif to the require block so composer install fails fast instead of letting the gap surface as a runtime 500. --- Disclosure: drafted with a coding agent's help while investigating which PHP extensions a containerized Snipe-IT deployment needs but the package manifest doesn't declare. Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
141 lines
3.9 KiB
JSON
141 lines
3.9 KiB
JSON
{
|
|
"name": "grokability/snipe-it",
|
|
"description": "Open source asset management system built on Laravel.",
|
|
"keywords": [
|
|
"assets",
|
|
"asset-management",
|
|
"it-tools",
|
|
"inventory",
|
|
"laravel"
|
|
],
|
|
"license": "AGPL-3.0-or-later",
|
|
"type": "project",
|
|
"repositories": [
|
|
{
|
|
"type": "vcs",
|
|
"url": "https://github.com/grokability/laravel-scim-server"
|
|
}
|
|
],
|
|
"require": {
|
|
"php": "^8.2",
|
|
"ext-curl": "*",
|
|
"ext-exif": "*",
|
|
"ext-fileinfo": "*",
|
|
"ext-iconv": "*",
|
|
"ext-json": "*",
|
|
"ext-mbstring": "*",
|
|
"ext-pdo": "*",
|
|
"alek13/slack": "^2.0",
|
|
"arietimmerman/laravel-scim-server": "dev-scimv2_with_logging",
|
|
"bacon/bacon-qr-code": "^2.0",
|
|
"doctrine/cache": "^1.10",
|
|
"doctrine/dbal": "^3.1",
|
|
"doctrine/instantiator": "^1.3",
|
|
"eduardokum/laravel-mail-auto-embed": "^2.0",
|
|
"enshrined/svg-sanitize": "^0.22.0",
|
|
"erusev/parsedown": "^1.7",
|
|
"fakerphp/faker": "^1.24",
|
|
"guzzlehttp/guzzle": "^7.0.1",
|
|
"intervention/image": "^2.5",
|
|
"javiereguiluz/easyslugger": "^1.0",
|
|
"laravel-notification-channels/google-chat": "^3.0",
|
|
"laravel-notification-channels/microsoft-teams": "^1.2",
|
|
"laravel/framework": "^12.0",
|
|
"laravel/helpers": "^1.4",
|
|
"laravel/passport": "^12.0",
|
|
"laravel/slack-notification-channel": "^3.4",
|
|
"laravel/socialite": "^5.6",
|
|
"laravel/tinker": "^2.6",
|
|
"laravel/ui": "^4.0",
|
|
"league/csv": "^9.7",
|
|
"league/flysystem-aws-s3-v3": "^3.0",
|
|
"livewire/livewire": "^4.0",
|
|
"neitanod/forceutf8": "^2.0",
|
|
"nesbot/carbon": "^3.0",
|
|
"nunomaduro/collision": "^8.1",
|
|
"okvpn/clock-lts": "^1.0",
|
|
"onelogin/php-saml": "^3.4",
|
|
"onnov/detect-encoding": "^2.0",
|
|
"osa-eg/laravel-teams-notification": "^2.1",
|
|
"paragonie/constant_time_encoding": "^2.3",
|
|
"paragonie/sodium_compat": "^1.19",
|
|
"phpdocumentor/reflection-docblock": "^5.1",
|
|
"phpspec/prophecy": "^1.26",
|
|
"pragmarx/google2fa-laravel": "^1.3",
|
|
"rollbar/rollbar-laravel": "^8.0",
|
|
"spatie/laravel-backup": "^9.0",
|
|
"spatie/laravel-ignition": "^2.0",
|
|
"tabuna/breadcrumbs": "^4.2",
|
|
"tecnickcom/tc-lib-barcode": "^1.15",
|
|
"tecnickcom/tc-lib-pdf-font": "^2.6",
|
|
"tecnickcom/tcpdf": "^6.5",
|
|
"unicodeveloper/laravel-password": "^1.0",
|
|
"watson/validating": "^8.1"
|
|
},
|
|
"suggest": {
|
|
"ext-ldap": "*",
|
|
"ext-zip": "*",
|
|
"ext-exif": "*"
|
|
},
|
|
"require-dev": {
|
|
"fruitcake/laravel-debugbar": "^4.0",
|
|
"larastan/larastan": "^3.0",
|
|
"laravel/pint": "^1.29",
|
|
"laravel/telescope": "^5.11",
|
|
"mockery/mockery": "^1.4",
|
|
"nunomaduro/phpinsights": "^2.11",
|
|
"php-mock/php-mock-phpunit": "^2.10",
|
|
"phpunit/phpunit": "^11.0",
|
|
"squizlabs/php_codesniffer": "^3.5"
|
|
},
|
|
"extra": {
|
|
"laravel": {
|
|
"dont-discover": [
|
|
"rollbar/rollbar-laravel",
|
|
"laravel/telescope"
|
|
]
|
|
}
|
|
},
|
|
"autoload": {
|
|
"classmap": [
|
|
"database"
|
|
],
|
|
"psr-4": {
|
|
"App\\": "app/",
|
|
"Database\\Factories\\": "database/factories/",
|
|
"Database\\Seeders\\": "database/seeders/"
|
|
}
|
|
},
|
|
"autoload-dev": {
|
|
"classmap": [
|
|
"tests/TestCase.php"
|
|
],
|
|
"psr-4": {
|
|
"App\\": "app/",
|
|
"Tests\\": "tests/"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"post-autoload-dump": [
|
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
|
"@php artisan package:discover --ansi",
|
|
"@php artisan vendor:publish --force --tag=livewire:assets --ansi"
|
|
],
|
|
"post-create-project-cmd": [
|
|
"php artisan key:generate"
|
|
],
|
|
"coverage:herd:clover": "herd coverage vendor/bin/phpunit --coverage-clover tests/coverage/clover.xml",
|
|
"coverage:herd:html": "herd coverage vendor/bin/phpunit --coverage-html tests/coverage/html"
|
|
},
|
|
"config": {
|
|
"preferred-install": "dist",
|
|
"sort-packages": true,
|
|
"optimize-autoloader": true,
|
|
"discard-changes": true,
|
|
"process-timeout": 3000,
|
|
"allow-plugins": {
|
|
"dealerdirect/phpcodesniffer-composer-installer": true
|
|
}
|
|
}
|
|
}
|