{
    "name": "eclipxe/cfdiutils",
    "description": "PHP Common utilities for Mexican CFDI 3.2, 3.3 & 4.0",
    "keywords": ["cfdi", "cfdi33", "cfdi40", "mexico", "electronic invoice"],
    "homepage": "https://github.com/eclipxe13/CfdiUtils",
    "support": {
        "source": "https://github.com/eclipxe13/CfdiUtils",
        "issues": "https://github.com/eclipxe13/CfdiUtils/issues",
        "docs": "https://cfdiutils.readthedocs.io/",
        "chat": "https://discord.gg/aFGYXvX"
    },
    "license": "MIT",
    "authors": [
        {
            "name": "Carlos C Soto",
            "email": "eclipxe13@gmail.com",
            "homepage": "https://eclipxe.com.mx/"
        }
    ],
    "config": {
        "preferred-install": {
            "*": "dist"
        },
        "optimize-autoloader": true
    },
    "require": {
        "php": ">=7.3 <8.4",
        "ext-libxml": "*",
        "ext-dom": "*",
        "ext-xsl": "*",
        "ext-simplexml": "*",
        "ext-mbstring": "*",
        "ext-openssl": "*",
        "ext-iconv": "*",
        "ext-json": "*",
        "symfony/process": "^5.4.47|^6.4.15|^7.1.8",
        "eclipxe/xmlresourceretriever": "^1.3.0",
        "eclipxe/xmlschemavalidator": "^3.0.2"
    },
    "suggest": {
        "ext-bcmath": "Allows calculate totals and taxes on Pagos 2.0",
        "ext-soap": "Allows consume the CFDI Status SAT Web Service",
        "genkgo/xsl": "Allows usage of Genkgo/Xsl transformations"
    },
    "require-dev": {
        "ext-bcmath": "*",
        "ext-curl": "*",
        "ext-soap": "*",
        "genkgo/xsl": "^1.0.8",
        "phpunit/phpunit": "^9.5",
        "squizlabs/php_codesniffer": "^3.6",
        "friendsofphp/php-cs-fixer": "^3.0",
        "phpstan/phpstan": "^2.1"
    },
    "autoload": {
        "psr-4": {
            "CfdiUtils\\": "src/CfdiUtils/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "CfdiUtils\\Development\\": "development/",
            "CfdiUtilsTests\\": "tests/CfdiUtilsTests/"
        }
    },
    "scripts": {
        "dev:build": [
            "@dev:fix-style",
            "@dev:test",
            "@dev:docs"
        ],
        "dev:check-style": [
            "@php vendor/bin/php-cs-fixer fix --dry-run --verbose",
            "@php vendor/bin/phpcs --colors -sp"
        ],
        "dev:fix-style": [
            "@php vendor/bin/php-cs-fixer fix --verbose",
            "@php vendor/bin/phpcbf --colors -sp"
        ],
        "dev:docs": [
            "node_modules/markdownlint-cli/markdownlint.js *.md docs/",
            "mkdocs build --strict --site-dir build/docs"
        ],
        "dev:test": [
            "@dev:check-style",
            "@php vendor/bin/phpunit --testdox --verbose --stop-on-failure",
            "@php vendor/bin/phpstan analyse --no-progress"
        ],
        "dev:coverage": [
            "@php -dzend_extension=xdebug.so -dxdebug.mode=coverage vendor/bin/phpunit --coverage-html build/coverage/html/"
        ]
    },
    "scripts-descriptions": {
        "dev:build": "DEV: run dev:fix-style dev:tests and dev:docs, run before pull request",
        "dev:check-style": "DEV: search for code style errors using php-cs-fixer and phpcs",
        "dev:fix-style": "DEV: fix code style errors using php-cs-fixer and phpcbf",
        "dev:docs": "DEV: search for code style errors unsing markdownlint and build docs using mkdocs",
        "dev:test": "DEV: run dev:check-style, phpunit and phpstan",
        "dev:coverage": "DEV: run phpunit with xdebug and storage coverage in build/coverage/html/"
    }
}
