{
    "$schema": "https://getcomposer.org/schema.json",
    "name": "laravel/laravel",
    "type": "project",
    "description": "The skeleton application for the Laravel framework.",
    "keywords": [
        "laravel",
        "framework"
    ],
    "license": "MIT",
    "require": {
        "php": "^8.3",
        "darkaonline/l5-swagger": "^11.0",
        "laravel/framework": "^13.0",
        "laravel/sanctum": "^4.0",
        "laravel/tinker": "^3.0",
        "minishlink/web-push": "^9.0",
        "php-open-source-saver/jwt-auth": "^2.9",
        "spatie/laravel-permission": "^7.2",
        "symfony/dom-crawler": "^7.4.17"
    },
    "require-dev": {
        "fakerphp/faker": "^1.23",
        "laravel/pail": "^1.2.5",
        "laravel/pint": "^1.27",
        "mockery/mockery": "^1.6",
        "nunomaduro/collision": "^8.6",
        "phpunit/phpunit": "^12.5.12"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "setup": [
            "composer install",
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
            "@php artisan key:generate",
            "@php artisan migrate --force",
            "npm install",
            "npm run build"
        ],
        "dev": [
            "Composer\\Config::disableProcessTimeout",
            "npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1 --timeout=0\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite --kill-others"
        ],
        "test": [
            "@php artisan config:clear --ansi",
            "@php artisan test"
        ],
        "quality:full": [
            "./vendor/bin/pint --test"
        ],
        "smoke:tech-assistance": [
            "@php artisan config:clear --ansi",
            "@php artisan test --filter=ServiceOrderEndToEndSmokeTest"
        ],
        "verify:ops-scripts": [
            "bash -n ops/production/mysql-backup.sh",
            "bash -n ops/production/mysql-restore-rehearsal.sh"
        ],
        "verify:production-config": [
            "@php artisan config:audit-production"
        ],
        "verify:schema-contract": [
            "@php artisan system:schema-readiness --json",
            "@php artisan system:schema-manifest --json"
        ],
        "verify:release": [
            "@verify:ops-scripts",
            "@php artisan config:clear --ansi",
            "@php artisan test"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi",
            "@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
            "@php artisan migrate --graceful --ansi"
        ],
        "pre-package-uninstall": [
            "Illuminate\\Foundation\\ComposerScripts::prePackageUninstall"
        ],
        "verify:production-config:evidence": [
            "@php artisan config:audit-production --json --evidence"
        ],
        "verify:tenant-workspace-session": [
            "@php artisan config:clear --ansi",
            "@php artisan test tests/Feature/Tenancy/TenantWorkspaceSessionTransitionTest.php"
        ],
        "verify:multitenant-runtime": [
            "@php artisan config:clear --ansi",
            "@php artisan test tests/Feature/Database/DatabaseSeederMultiTenantTest.php",
            "@php artisan test tests/Feature/Tenancy/TenantWorkspaceControllerTest.php",
            "@php artisan test tests/Feature/Tenancy/DemoMultiTenantSeederTest.php",
            "@php artisan test tests/Feature/Tenancy/TenantWorkspaceSessionTransitionTest.php",
            "@php artisan test tests/Feature/Tenancy/TenantRouteModelBindingMiddlewareOrderTest.php",
            "@php artisan test tests/Feature/Dashboard/DashboardTenantCapabilityIsolationTest.php",
            "@php artisan test tests/Unit/Services/DashboardServiceCapabilityTest.php",
            "@php artisan test tests/Feature/Purchasing/PurchasingFinancialConsolidationTest.php",
            "@php artisan test tests/Unit/Tenancy/TenantAuthorizationServiceTest.php",
            "@php artisan test tests/Feature/Wms/StockMapTenantReadModelTest.php"
        ],
        "e2e:prepare-delegated-admin": "@php artisan e2e:delegated-admin-fixtures --json",
        "e2e:check-delegated-admin": "@php artisan e2e:delegated-admin-fixtures --check --json",
        "tenancy:audit-user-identity": "@php artisan tenancy:audit-user-identity --json",
        "tenancy:prepare-global-user-cutover": [
            "@php artisan tenancy:audit-user-identity --strict --json",
            "@php artisan tenancy:audit-isolation --strict --json"
        ],
        "tenancy:audit-global-identities": "@php artisan tenancy:audit-user-identity --strict --json",
        "verify:multi-tenant-release": [
            "@php artisan config:clear --ansi",
            "@php artisan tenancy:audit-isolation --strict --json",
            "@php artisan tenancy:audit-user-identity --strict --json",
            "@php artisan test tests/Feature/Database/DatabaseSeederMultiTenantTest.php",
            "@php artisan test tests/Feature/Tenancy/DemoMultiTenantSeederTest.php",
            "@php artisan test tests/Feature/Tenancy/CoreTenantIsolationTest.php",
            "@php artisan test tests/Feature/Tenancy/TenantRouteModelBindingMiddlewareOrderTest.php",
            "@php artisan test tests/Feature/Auth/TenantSelfServiceOnboardingTest.php",
            "@php artisan test tests/Feature/Tenancy/TenantUserLifecycleManagementTest.php",
            "@php artisan test tests/Feature/Tenancy/TenantWorkspaceSwitchTest.php",
            "@php artisan test tests/Feature/Platform/MasterTenantHardDeleteTest.php",
            "@php artisan test tests/Feature/Tenancy/FinancialTenantIsolationTest.php",
            "@php artisan test tests/Feature/Platform/SaasBillingTest.php"
        ],
        "verify:pdv-release": [
            "@php artisan config:clear --ansi",
            "@php artisan test tests/Feature/Documentation/PdvSwaggerContractTest.php",
            "@php artisan test tests/Feature/Pos tests/Feature/Tabs tests/Feature/Devices tests/Feature/Fiscal",
            "@php artisan test tests/Feature/Tenancy/PdvReleaseSecurityMatrixTest.php tests/Feature/Wms/GenericInventoryReservationTest.php tests/Feature/Wms/StockMapPaginationTest.php tests/Feature/Wms/StockMapTenantReadModelTest.php tests/Feature/Wms/StockMovementHistoryPaginationTest.php tests/Feature/Wms/StockMovementSemanticOriginTest.php tests/Feature/Wms/StockMovementServiceTest.php tests/Feature/Operations/QueueFailureVisibilityTest.php tests/Feature/Operations/QueueWorkerHealthTest.php",
            "@php artisan test tests/Unit/Load/PdvOperationalLoadProfileTest.php"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "platform": {
            "php": "8.3.0"
        },
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "php-http/discovery": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}
