{
	"name": "eliashaeussler/typo3-warming",
	"description": "Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.",
	"license": "GPL-2.0-or-later",
	"type": "typo3-cms-extension",
	"authors": [
		{
			"name": "Elias Häußler",
			"email": "elias@haeussler.dev",
			"homepage": "https://haeussler.dev",
			"role": "Maintainer"
		}
	],
	"support": {
		"issues": "https://github.com/eliashaeussler/typo3-warming/issues",
		"chat": "https://typo3.slack.com/archives/C0400CSGWAY",
		"source": "https://github.com/eliashaeussler/typo3-warming.git",
		"docs": "https://docs.typo3.org/p/eliashaeussler/typo3-warming/main/en-us/",
		"rss": "https://github.com/eliashaeussler/typo3-warming/releases.atom"
	},
	"require": {
		"php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
		"ext-json": "*",
		"cuyz/valinor": "^2.0",
		"eliashaeussler/cache-warmup": "^5.0",
		"eliashaeussler/sse": "^2.0",
		"eliashaeussler/typo3-sitemap-locator": "^1.0",
		"guzzlehttp/guzzle": "^7.10",
		"guzzlehttp/promises": "^2.0",
		"mteu/typo3-typed-extconf": "^1.0",
		"psr/event-dispatcher": "^1.0",
		"psr/http-message": "^1.1 || ^2.0",
		"psr/http-server-handler": "^1.0",
		"psr/http-server-middleware": "^1.0",
		"psr/log": "^3.0",
		"symfony/console": "^7.2 || ^8.0",
		"symfony/dependency-injection": "^7.2 || ^8.0",
		"symfony/expression-language": "^7.2 || ^8.0",
		"symfony/options-resolver": "^7.2 || ^8.0",
		"typo3/cms-backend": "~13.4.5 || ~14.3.0",
		"typo3/cms-core": "~13.4.5 || ~14.3.0",
		"typo3/cms-extbase": "~13.4.5 || ~14.3.0",
		"typo3/cms-fluid": "~13.4.5 || ~14.3.0",
		"typo3/cms-frontend": "~13.4.5 || ~14.3.0"
	},
	"require-dev": {
		"armin/editorconfig-cli": "^2.2",
		"codeception/codeception": "^5.3.4",
		"codeception/lib-web": "^2.1.0",
		"codeception/module-asserts": "^3.0",
		"codeception/module-cli": "^2.0",
		"codeception/module-db": "^3.2",
		"codeception/module-webdriver": "^4.0.3",
		"eliashaeussler/deep-closure-comparator": "^1.1",
		"eliashaeussler/php-cs-fixer-config": "^3.1",
		"eliashaeussler/phpstan-config": "^4.0",
		"eliashaeussler/rector-config": "^4.0",
		"eliashaeussler/transient-logger": "^2.0",
		"eliashaeussler/typo3-codeception-helper": "^2.0",
		"eliashaeussler/typo3-vendor-bundler": "^4.0",
		"eliashaeussler/version-bumper": "^3.3 || ^4.0",
		"ergebnis/composer-normalize": "^2.52",
		"guzzlehttp/psr7": "^2.7",
		"helmich/typo3-typoscript-lint": "^3.3",
		"php-webdriver/webdriver": "^1.15",
		"phpstan/extension-installer": "^1.4",
		"phpstan/phpstan-phpunit": "^2.0",
		"phpstan/phpstan-symfony": "^2.0",
		"phpunit/phpcov": "^10.0 || ^11.0 || ^12.0 || ^13.0",
		"phpunit/phpunit": "^11.5 || ^12.0 || ^13.0",
		"psy/psysh": "^0.12.1",
		"saschaegerer/phpstan-typo3": "^3.0",
		"shipmonk/composer-dependency-analyser": "^1.8",
		"ssch/typo3-rector": "^3.14",
		"symfony/config": "^7.2 || ^8.0",
		"symfony/css-selector": "^7.2 || ^8.0",
		"symfony/event-dispatcher": "^7.2 || ^8.0",
		"symfony/event-dispatcher-contracts": "^3.4.2",
		"typo3/cms-belog": "~13.4.5 || ~14.3.0",
		"typo3/cms-install": "~13.4.5 || ~14.3.0",
		"typo3/cms-seo": "~13.4.5 || ~14.3.0",
		"typo3/cms-tstemplate": "~13.4.5 || ~14.3.0",
		"typo3/coding-standards": "^0.8.0",
		"typo3/testing-framework": "^9.0.3",
		"webmozart/assert": "^1.11 || ^2.0"
	},
	"conflict": {
		"cuyz/valinor": "2.1.2 || 2.2.0 || 2.2.1"
	},
	"autoload": {
		"psr-4": {
			"EliasHaeussler\\Typo3Warming\\": "Classes/"
		}
	},
	"autoload-dev": {
		"psr-4": {
			"EliasHaeussler\\Typo3Warming\\Tests\\": "Tests/"
		}
	},
	"config": {
		"allow-plugins": {
			"codeception/c3": true,
			"eliashaeussler/typo3-vendor-bundler": true,
			"eliashaeussler/version-bumper": true,
			"ergebnis/composer-normalize": true,
			"php-http/discovery": false,
			"phpstan/extension-installer": true,
			"typo3/class-alias-loader": true,
			"typo3/cms-composer-installers": true
		},
		"bin-dir": ".Build/bin",
		"sort-packages": true,
		"vendor-dir": ".Build/vendor"
	},
	"extra": {
		"typo3/cms": {
			"extension-key": "warming",
			"web-dir": ".Build/web"
		},
		"version-bumper": {
			"config-file": "Build/release/version-bumper.yaml"
		}
	},
	"scripts": {
		"post-autoload-dump": [
			"rm -rf config",
			"cp -r Build/environment/config .",
			"[ -f .Build/bin/codecept ] && codecept build || true"
		],
		"check": [
			"@check:deps",
			"@check:refactor",
			"@check:static",
			"@check:style"
		],
		"check:deps": "composer-dependency-analyser --config Build/checks/composer-dependency-analyser.php",
		"check:refactor": [
			"@check:refactor:php"
		],
		"check:refactor:php": "@refactor:php --dry-run",
		"check:static": [
			"@php Build/checks/phpstan-bootstrap.php",
			"phpstan analyse -c Build/checks/phpstan.php"
		],
		"check:style": [
			"@check:style:composer",
			"@check:style:editorconfig",
			"@check:style:php",
			"@check:style:typoscript"
		],
		"check:style:composer": "@fix:composer --dry-run",
		"check:style:editorconfig": "ec --finder-config Build/checks/.editorconfig-lint.php",
		"check:style:php": "@fix:php --dry-run",
		"check:style:typoscript": "typoscript-lint -c Build/checks/typoscript-lint.yml --fail-on-warnings",
		"ci": [
			"@composer validate --strict",
			"@composer audit",
			"@check:deps",
			"@check:refactor",
			"@check:static --error-format github",
			"@check:style",
			"mkdir -p Build/docs/result",
			"@docs:build --no-progress --fail-on-log"
		],
		"docs": [
			"@docs:cleanup",
			"@docs:build",
			"@docs:open"
		],
		"docs:build": "docker compose -f Build/docs/docker-compose.yml run --rm build",
		"docs:cleanup": "rm -rf Build/docs/result",
		"docs:open": "open Build/docs/result/Index.html",
		"fix": [
			"@fix:composer",
			"@fix:editorconfig",
			"@fix:php"
		],
		"fix:composer": "@composer normalize",
		"fix:editorconfig": "@check:style:editorconfig --fix",
		"fix:php": "php-cs-fixer fix --config Build/checks/.php-cs-fixer.php",
		"refactor": [
			"@refactor:php"
		],
		"refactor:php": "rector process -c Build/checks/rector.php",
		"test": [
			"@test:functional",
			"@test:unit"
		],
		"test:acceptance": [
			".ddev/commands/web/init-typo3",
			"codecept run --steps"
		],
		"test:acceptance:coverage": [
			"@test:acceptance --coverage --coverage-html",
			"mkdir -p Build/tests/coverage/php",
			"cp Build/tests/log/acceptance-reports/coverage.serialized Build/tests/coverage/php/acceptance.cov"
		],
		"test:coverage": [
			"@putenv XDEBUG_MODE=coverage",
			"@test:acceptance:coverage",
			"@test:functional:coverage",
			"@test:unit:coverage",
			"@test:merge-coverage"
		],
		"test:functional": "@test:functional:coverage --no-coverage",
		"test:functional:coverage": "phpunit -c Build/tests/phpunit.functional.xml",
		"test:merge-coverage": "phpcov merge --html Build/tests/coverage/html/_merged --clover Build/tests/coverage/clover.xml --text php://stdout Build/tests/coverage/php",
		"test:unit": "@test:unit:coverage --no-coverage",
		"test:unit:coverage": "phpunit -c Build/tests/phpunit.unit.xml"
	}
}
