{
    "name": "publishpress/publishpress-future",
    "type": "wordpress-plugin",
    "license": "GPL-2.0-or-later",
    "description": "",
    "authors": [
        {
            "name": "PublishPress",
            "email": "help@publishpress.com",
            "homepage": "https://publishpress.com",
            "role": "Developer"
        },
        {
            "name": "Aaron Axelsen",
            "homepage": "http://postexpirator.tuxdocs.net/"
        }
    ],
    "config": {
        "preferred-install": {
            "*": "dist"
        },
        "allow-plugins": {
            "dealerdirect/phpcodesniffer-composer-installer": true,
            "phpstan/extension-installer": true,
            "automattic/jetpack-autoloader": true,
            "php-http/discovery": true
        },
        "process-timeout": 0
    },
    "prefer-stable": true,
    "minimum-stability": "stable",
    "require": {
        "php": ">=7.4",
        "ext-json": "*"
    },
    "require-dev": {
        "lucatume/wp-browser": "^4",
        "codeception/module-asserts": "^3",
        "codeception/module-phpbrowser": "^3",
        "codeception/module-webdriver": "^3",
        "codeception/module-db": "^3",
        "codeception/module-filesystem": "^3",
        "codeception/module-cli": "^2",
        "codeception/util-universalframework": "^1",
        "codeception/module-rest": "^3",
        "codeception/module-sequence": "^3",
        "dealerdirect/phpcodesniffer-composer-installer": "^1",
        "phpcompatibility/php-compatibility": "^9.3",
        "wp-coding-standards/wpcs": "^3",
        "phpmd/phpmd": "^2.15",
        "squizlabs/php_codesniffer": "^3.8",
        "overtrue/phplint": "^9.1",
        "wp-cli/i18n-command": "^2.6",
        "wp-cli/wp-cli-bundle": "^2.10",
        "friendsofphp/php-cs-fixer": "^3.49",
        "phpstan/phpstan": "^1.10",
        "szepeviktor/phpstan-wordpress": "^1.3",
        "phpstan/extension-installer": "^1.3",
        "behat/behat": "^3.14",
        "automattic/vipwpcs": "^3",
        "publishpress/publishpress-phpcs-standards": "dev-main",
        "spatie/ray": "^1.41",
        "phpunit/phpunit": "^10",
        "symfony/process": "^6.4",
        "knplabs/github-api": "^3.16",
        "symfony/http-client": "^7.1",
        "nyholm/psr7": "^1.8"
    },
    "scripts": {
        "build:all": [
            "@build:js",
            "@build:lang",
            "@build"
        ],
        "build": "/scripts/pbuild build",
        "build:up": [
            "@build",
            "@dbox:up"
        ],
        "build:dir": "/scripts/pbuild build-dir",
        "build:clean": "/scripts/pbuild clean",
        "build:js-prod": "cross-env NODE_ENV=production npx webpack --progress",
        "build:js-dev": "cross-env NODE_ENV=development npx webpack --progress",
        "build:js": [
            "@build:js-prod",
            "@build:js-dev"
        ],
        "profile:js": "cross-env NODE_ENV=production npx webpack --profile",
        "watch:js": "cross-env NODE_ENV=development npx webpack --watch --progress",
        "get:version": "/scripts/pbuild version",
        "build:lang-pot": "wp i18n make-pot . ./languages/post-expirator.pot --domain=post-expirator --exclude=dev-workspace,.wordpress-org,.github,dist,tests,lib,tmp,doc,*.js,*.js.map --allow-root",
        "build:lang-mo": "wp i18n make-mo ./languages ./languages --allow-root",
        "build:lang-json": "bash ./dev-workspace/scripts/lang-make-json.sh",
        "build:lang-php": "wp i18n make-php ./languages --allow-root",
        "build:lang": [
            "@build:lang-pot",
            "@build:lang-mo",
            "@build:lang-json",
            "@build:lang-php"
        ],
        "cleanup:gh-workflows": "user=publishpress repo=publishpress-future; gh api repos/$user/$repo/actions/runs --paginate -q '.workflow_runs[] | select(.head_branch != \"master\") | \"\\(.id)\"' | xargs -n1 -I % gh api --silent repos/$user/$repo/actions/runs/% -X DELETE",
        "check": [
            "@check:php",
            "@check:lint",
            "@check:cs",
            "@check:longpath"
        ],
        "check:php": [
            "@check:php-5.6",
            "@check:php-7.2",
            "@check:php-7.4",
            "@check:php-8.0",
            "@check:php-8.1",
            "@check:php-8.2",
            "@check:php-8.3",
            "@check:php-8.4"
        ],
        "check:php-5.6": "phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 5.6 ./post-expirator.php",
        "check:php-7.4": "phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 7.4",
        "check:php-8.0": "phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.0",
        "check:php-8.1": "phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.1",
        "check:php-8.2": "phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.2",
        "check:php-8.3": "phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.3",
        "check:php-8.4": "phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.4",
        "check:lint": "phplint --no-cache",
        "check:cs": "phpcs",
        "check:stan": "phpstan",
        "check:longpath": "bash -c \"if [ ! -d 'dist/post-expirator' ]; then composer build:dir; fi && longpath dist/post-expirator/\"",
        "check:pot-diff": "php dev-workspace/scripts/php/bin/pptk pot:diff https://raw.githubusercontent.com/publishpress/PublishPress-Future/refs/heads/main/languages/post-expirator.pot ./languages/post-expirator.pot",
        "check:pot-diff-md": "php dev-workspace/scripts/php/bin/pptk pot:diff https://raw.githubusercontent.com/publishpress/PublishPress-Future/refs/heads/main/languages/post-expirator.pot ./languages/post-expirator.pot -m",
        "fix:cs": "phpcbf --standard=.phpcs.xml",
        "fix:php": [
            "php-cs-fixer fix .",
            "@fix:cs"
        ],
        "prepare": [
            "@build:lang",
            "@build:js"
        ],
        "dbox:up": "/scripts/pdropbox upload && /scripts/pdropbox share",
        "dbox:list": "/scripts/pdropbox list",
        "dbox:remove": "/scripts/pdropbox remove",
        "dbox:unlink": "/scripts/pdropbox unlink",
        "test:driver": "source ./.env && $CHROMEDRIVER_BINARY --port=$CHROMEDRIVER_PORT",
        "up": [
            "@test:up",
            "@dev:up",
            "@dev:info",
            "@test:info"
        ],
        "down": [
            "@test:down",
            "@dev:down"
        ],
        "wp:tests": "bash dev-workspace/scripts/tests-wp-cli.sh wp_test_cli $@",
        "wp:dev": "bash dev-workspace/scripts/tests-wp-cli.sh wp_dev_cli $@",
        "dev:up": [
            "bash dev-workspace/scripts/env.sh up dev",
            "@dev:info"
        ],
        "dev:stop": "bash dev-workspace/scripts/env.sh stop dev",
        "dev:down": "bash dev-workspace/scripts/env.sh down dev",
        "dev:restart": "bash dev-workspace/scripts/env.sh restart dev",
        "dev:clean": [
            "bash dev-workspace/scripts/env.sh cleanup dev",
            "@dev:clean-cache"
        ],
        "dev:clean-logs": "rm -f dev-workspace/.cache/logs/db_dev/",
        "dev:clean-cache": "rm -rf dev-workspace/.cache/wp_dev && rm -rf dev-workspace/.cache/db_dev",
        "dev:refresh": "bash dev-workspace/scripts/env.sh refresh dev",
        "dev:info": "bash dev-workspace/scripts/env.sh info dev",
        "sync:local": "bash dev-workspace/scripts/local-sync.sh",
        "sync:local:watch": "bash dev-workspace/scripts/local-sync.sh --watch",
        "test:db-export": "bash dev-workspace/scripts/tests-db-export.sh $@",
        "test:db-import": "bash dev-workspace/scripts/tests-db-import.sh $@",
        "test:up": [
            "bash dev-workspace/scripts/env.sh up test",
            "@test:info"
        ],
        "test:down": "bash dev-workspace/scripts/env.sh down test",
        "test:restart": "bash dev-workspace/scripts/env.sh restart test",
        "test:stop": "bash dev-workspace/scripts/env.sh stop test",
        "test:clean": [
            "bash dev-workspace/scripts/env.sh cleanup test",
            "@test:clean-cache",
            "composer codecept clean"
        ],
        "test:clean-logs": "rm -f dev-workspace/.cache/logs/db_test/",
        "test:clean-cache": "rm -rf dev-workspace/.cache/wp_test && rm -rf dev-workspace/.cache/db_test",
        "test:db-logs": "bash dev-workspace/scripts/tests-db-logs.sh $@",
        "test:info": "bash dev-workspace/scripts/env.sh info test",
        "test:refresh": "bash dev-workspace/scripts/env.sh refresh test",
        "test:snippets": "composer codecept gherkin:snippets $@",
        "test:steps": "composer codecept gherkin:steps $@",
        "test": "vendor/bin/codecept run $@",
        "test:all": [
            "vendor/bin/codecept run Unit",
            "vendor/bin/codecept run Integration"
        ],
        "test:debug": "php -d xdebug.mode=debug -d xdebug.start_with_request=yes vendor/bin/codecept run $@",
        "codecept": "./vendor/bin/codecept $@",
        "docker:cleanup": "docker system prune -f",
        "info:versions": "bash ./dev-workspace/scripts/dependency-versions.sh",
        "set:version": "php ./dev-workspace/scripts/plugin-bump-version.php \"$@\"",
        "pre-release": "bash ./dev-workspace/scripts/pre-release.sh \"$@\"",
        "pr-link": "bash ./dev-workspace/scripts/pr-link.sh",
        "config:phpcs": "phpcs --config-set installed_paths \"../../phpcsstandards/phpcsutils,../../phpcsstandards/phpcsextra,../../automattic/vipwpcs,../../phpcompatibility/php-compatibility,../../sirbrillig/phpcs-variable-analysis,../../publishpress/publishpress-phpcs-standards/standards,../../wp-coding-standards/wpcs\"",
        "post-install-cmd": [
            "@config:phpcs"
        ],
        "post-update-cmd": [
            "@config:phpcs"
        ],
        "pre-autoload-dump": "@composer dumpautoload --working-dir=./lib",
        "pre-update-cmd": "@composer update --working-dir=./lib",
        "pre-install-cmd": "@composer install --working-dir=./lib"
    },
    "scripts-descriptions": {
        "build": "Builds the plugin",
        "build:up": "Builds the plugin and uploads it to Dropbox",
        "build:dir": "Builds the plugin in a directory",
        "build:clean": "Cleans up the build directory",
        "build:js-prod": "Builds the JavaScript files in production mode",
        "build:js-dev": "Builds the JavaScript files in development mode",
        "build:js": "Builds the JavaScript files in production mode",
        "profile:js": "Generates a profile of the JavaScript build",
        "watch:js": "Watches the JavaScript files for changes",
        "get:version": "Gets the version of the plugin",
        "build:lang-pot": "Generates the POT file for translations of PHP and JSX files",
        "build:lang-mo": "Generates the MO files for translation files",
        "build:lang-json": "Generates the JSON files for translations on Javascript scripts",
        "build:lang-php": "Generates the PHP language files for performant translations (WP 6.5+)",
        "build:lang": "Generates the language files for translations",
        "cleanup:gh-workflows": "Cleans up the GitHub workflows",
        "check": "Runs all the checks",
        "check:php": "Checks the PHP compatibility for all versions",
        "check:php-5.6": "Checks the PHP compatibility for PHP 5.6 in the main file only",
        "check:php-7.4": "Checks the PHP compatibility for PHP 7.4",
        "check:php-8.0": "Checks the PHP compatibility for PHP 8.0",
        "check:php-8.1": "Checks the PHP compatibility for PHP 8.1",
        "check:php-8.2": "Checks the PHP compatibility for PHP 8.2",
        "check:php-8.3": "Checks the PHP compatibility for PHP 8.3",
        "check:lint": "Checks the PHP files for syntax errors",
        "check:cs": "Checks the PHP files for coding standards",
        "check:stan": "Checks the PHP files for static analysis",
        "check:longpath": "Checks the PHP files for long paths",
        "check:pot-diff": "Checks the POT file for differences in the main branch",
        "check:pot-diff-md": "Checks the POT file for differences in the main branch and outputs the results in Markdown format",
        "fix:cs": "Fixes the PHP files for coding standards",
        "fix:php": "Fixes the PHP files",
        "prepare": "Prepares the plugin by building language files and JavaScript",
        "dbox:up": "Uploads the built package to Dropbox and generates a sharable URL",
        "dbox:list": "Lists the package in Dropbox",
        "dbox:remove": "Removes the built package from Dropbox",
        "dbox:unlink": "Unlinks the Dropbox account",
        "test:driver": "Starts the ChromeDriver server",
        "test:clean": "Cleans up the test environment removing the containers, networks, and volumes",
        "test:clean-cache": "Cleans up the test environment cache files",
        "test:clean-logs": "Cleans up the Codeception logs",
        "test:db-export": "Exports the WordPress database to a SQL file",
        "test:db-import": "Imports a SQL file into the WordPress test database",
        "test:db-logs": "Shows database logs for the test environment",
        "test:down": "Stops the test environment removing the containers",
        "test:info": "Gets the test environment information",
        "test:refresh": "Refreshes the test environment",
        "test:restart": "Restarts the test environment",
        "test:stop": "Stops the test environment",
        "test:up": "Starts the test environment",
        "dev:up": "Starts the development environment and displays info",
        "dev:stop": "Stops the development environment",
        "dev:down": "Stops and removes the development environment containers",
        "dev:restart": "Restarts the development environment",
        "dev:clean": "Cleans up the development environment and cache",
        "dev:clean-logs": "Cleans up the development environment logs",
        "dev:clean-cache": "Cleans up the development environment cache files",
        "dev:refresh": "Refreshes the development environment",
        "dev:info": "Gets the development environment information",
        "wp:tests": "Runs WP-CLI commands within the WordPress test environment",
        "wp:dev": "Runs WP-CLI commands within the WordPress development environment",
        "test:snippets": "Show all the gherkin snippets that are not implemented",
        "test:steps": "Show all the gherkin steps for the suite",
        "test": "Runs tests with custom arguments or specific files",
        "test:debug": "Runs tests in debug mode. Make sure you have xdebug installed",
        "codecept": "Runs Codeception commands",
        "docker:cleanup": "Cleans up the Docker system",
        "config:phpcs": "Configures the PHP CodeSniffer installed paths",
        "info:versions": "Gets the version of the main tools available",
        "set:version": "Sets the version of the plugin",
        "pre-release": "Creates a release branch and a pull request for the release",
        "pr-link": "Gets the pull request URL for the release branch",
        "up": "Starts both test and development environments and displays their information.",
        "down": "Stops both test and development environments."
    },
    "extra": {
        "plugin-slug": "post-expirator",
        "plugin-name": "publishpress-future",
        "plugin-folder": "post-expirator",
        "version-constant": "PUBLISHPRESS_FUTURE_VERSION"
    }
}
