{
    "name": "tomasnorre/crawler",
    "description": "Crawler extension for TYPO3",
    "license": "GPL-3.0",
    "type": "typo3-cms-extension",
    "authors": [
        {
            "name": "Tomas Norre Mikkelsen",
            "email": "tomasnorre@gmail.com",
            "role": "Developer"
        }
    ],
    "homepage": "https://github.com/tomasnorre/crawler",
    "support": {
        "docs": "https://docs.typo3.org/p/tomasnorre/crawler/main/en-us/",
        "issues": "https://github.com/tomasnorre/crawler/issues",
        "source": "https://github.com/tomasnorre/crawler/",
        "chat": "https://typo3.slack.com/archives/C087NGBKM"
    },
    "require": {
        "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
        "ext-json": "*",
        "ext-pdo": "*",
        "beberlei/assert": "^3.3",
        "guzzlehttp/guzzle": "^6.4.1 || ^7.2",
        "psr/http-message": "^2.0",
        "psr/log": "^1.0 || ^2.0 || ^3.0",
        "symfony/console": "^6.4 || ^7.0",
        "typo3/cms-backend": "^12.4",
        "typo3/cms-core": "^12.4",
        "typo3/cms-frontend": "^12.4",
        "typo3/cms-info": "^12.4",
        "typo3/cms-seo": "^12.4"
    },
    "require-dev": {
        "codeception/codeception": "^5.0",
        "codeception/module-asserts": "^3.0",
        "codeception/module-filesystem": "^3.0",
        "codeception/module-phpbrowser": "^3.0",
        "codeception/module-webdriver": "^4.0",
        "infection/infection": "^0.26",
        "nikic/php-parser": "^4.13",
        "phpspec/prophecy-phpunit": "^2.0",
        "phpstan/extension-installer": "^1.2",
        "phpstan/phpstan": "^1.9",
        "phpstan/phpstan-deprecation-rules": "^1.0",
        "phpunit/phpunit": "^10.5",
        "rector/rector": "^1.0",
        "roave/security-advisories": "dev-latest",
        "saschaegerer/phpstan-typo3": "^1.8",
        "sbuerk/typo3-cmscomposerinstallers-testingframework-bridge": "^0.1",
        "slam/phpstan-extensions": "^6.0",
        "ssch/typo3-rector": "^2.0",
        "ssch/typo3-rector-testing-framework": "*",
        "symfony/yaml": "^6.4 || ^7.0",
        "symplify/easy-coding-standard": "^12.2",
        "symplify/phpstan-rules": "^12.7",
        "tomasvotruba/cognitive-complexity": "^0.2",
        "tomasvotruba/type-coverage": "^0.3",
        "typo3/testing-framework": "^8.0"
    },
    "replace": {
        "aoepeople/crawler": "self.version",
        "typo3-ter/crawler": "self.version"
    },
    "suggest": {
        "typo3/cms-seo": "Enables the posibility to priorities your Crawler Queue + You have seo features in the CMS it self."
    },
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/symplify/phpstan-rules"
        }
    ],
    "minimum-stability": "dev",
    "prefer-stable": true,
    "autoload": {
        "psr-4": {
            "AOE\\Crawler\\": "Classes"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "AOE\\Crawler\\Tests\\": "Tests",
            "TYPO3\\CMS\\Core\\Tests\\": ".Build/vendor/typo3/cms-core/Tests"
        }
    },
    "config": {
        "allow-plugins": {
            "composer/package-versions-deprecated": true,
            "infection/extension-installer": true,
            "phpstan/extension-installer": true,
            "typo3/class-alias-loader": true,
            "typo3/cms-composer-installers": true,
            "sbuerk/typo3-cmscomposerinstallers-testingframework-bridge": true
        },
        "bin-dir": ".Build/bin",
        "preferred-install": {
            "*": "dist",
            "typo3/cms-core": "source"
        },
        "process-timeout": 0,
        "sort-packages": true,
        "vendor-dir": ".Build/vendor"
    },
    "extra": {
        "branch-alias": {
            "dev-main": "12.0.x-dev"
        },
        "typo3/cms": {
            "extension-key": "crawler",
            "web-dir": ".Build/Web"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "mkdir -p .Build/Web/typo3conf/ext/",
            "[ -L .Build/Web/typo3conf/ext/crawler ] || ln -snvf ../../../../. .Build/Web/typo3conf/ext/crawler",
            "export TYPO3_PATH_WEB=$PWD/.Build/Web",
            "@extension-create-libs"
        ],
        "analyse": [
            "[ -e .Build/bin/phpstan ] || composer update",
            ".Build/bin/phpstan analyse"
        ],
        "cs-fix": [
            "[ -e .Build/bin/ecs ] || composer update",
            ".Build/bin/ecs check"
        ],
        "extension-create-libs": [
            "@composer install -d Resources/Private/Php/Libraries"
        ],
        "prepare-release": [
            "@extension-create-libs",
            "rm -rf .devbox",
            "rm -rf Build",
            "rm -rf Tests/",
            "rm -f .gitignore",
            "rm -f .scrutinizer.yml",
            "rm -f infection.json.dist",
            "rm -f phpstan.neon",
            "rm -f phpstan-baseline.neon",
            "rm -f ecs.php",
            "rm -f rector-ci.php",
            "rm -f sonar-project.properties",
            "rm -f psalm.xml",
            "rm -f psalm-baseline.xml",
            "rm -f codeception.yml",
            "rm -f crowdin.yml"
        ],
        "phpstan-baseline": [
            "[ -e .Build/bin/phpstan ] || composer update",
            ".Build/bin/phpstan analyse --generate-baseline"
        ],
        "psalm": [
            "[ -e tools/psalm ] || phive install",
            "tools/psalm"
        ],
        "rector": [
            "[ -e .Build/bin/rector ] || composer update",
            ".Build/bin/rector process --dry-run --config rector-ci.php"
        ],
        "roave-bcb": [
            "docker run --rm -v `pwd`:/app nyholm/roave-bc-check --from=HEAD~1"
        ],
        "static": [
            "@analyse",
            "@psalm",
            "@cs-fix",
            "@rector"
        ],
        "test:acceptance": [
            "[ -e .Build/bin/codecept ] || composer update",
            ".Build/bin/codecept clean",
            ".Build/bin/codecept run --env=local"
        ],
        "test:all": [
            "@test:unit",
            "@test:functional",
            "@test:functional-sqlite",
            "@test:acceptance"
        ],
        "test:functional": [
            "@test:reset-vars",
            "@extension-create-libs",
            "@test:set-vars",
            "[ -e .Build/bin/phpunit ] || composer update",
            "TYPO3_PATH_WEB=$PWD/.Build/Web .Build/bin/phpunit -c Tests/FunctionalTests.xml"
        ],
        "test:functional-postgre": [
            "@test:reset-vars",
            "@extension-create-libs",
            "@test:set-vars",
            "[ -e .Build/bin/phpunit ] || composer update",
            "TYPO3_PATH_WEB=$PWD/.Build/Web typo3DatabaseDriver=pdo_pgsql .Build/bin/phpunit -c Tests/FunctionalTests.xml"
        ],
        "test:functional-sqlite": [
            "@test:reset-vars",
            "@extension-create-libs",
            "@test:set-vars",
            "[ -e .Build/bin/phpunit ] || composer update",
            "TYPO3_PATH_WEB=$PWD/.Build/Web typo3DatabaseDriver=pdo_sqlite .Build/bin/phpunit -c Tests/FunctionalTests.xml"
        ],
        "test:mutation": [
            "[ -e .Build/bin/infection ] || composer update",
            "XDEBUG_MODE=coverage .Build/bin/infection --threads=8 --filter=Classes"
        ],
        "test:reset-vars": [
            "export typo3DatabaseName=''",
            "export typo3DatabaseHost=''",
            "export typo3DatabaseUsername=''",
            "export typo3DatabasePassword=''",
            "export typo3DatabaseDriver=''"
        ],
        "test:set-vars": [
            "export typo3DatabaseName='crawler'",
            "export typo3DatabaseHost='127.0.0.1'",
            "export typo3DatabaseUsername='root'",
            "typo3DatabasePassword='root'"
        ],
        "test:unit": [
            "[ -e .Build/bin/phpunit ] || composer update",
            "TYPO3_PATH_WEB=.Build/Web .Build/bin/phpunit --colors -c Tests/UnitTests.xml"
        ]
    }
}
