{
    "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": {
            "automattic/jetpack-autoloader": true,
            "dealerdirect/phpcodesniffer-composer-installer": true,
            "php-http/discovery": true,
            "phpstan/extension-installer": true
        },
        "process-timeout": 0
    },
    "prefer-stable": true,
    "minimum-stability": "stable",
    "require": {
        "php": ">=7.4",
        "ext-json": "*"
    },
    "require-dev": {
        "automattic/vipwpcs": "^3",
        "behat/behat": "^3.14",
        "codeception/module-asserts": "^3",
        "codeception/module-cli": "^2",
        "codeception/module-db": "^3",
        "codeception/module-filesystem": "^3",
        "codeception/module-phpbrowser": "^3",
        "codeception/module-rest": "^3",
        "codeception/module-sequence": "^3",
        "codeception/module-webdriver": "^3",
        "codeception/util-universalframework": "^1",
        "dealerdirect/phpcodesniffer-composer-installer": "^1",
        "friendsofphp/php-cs-fixer": "^3.49",
        "knplabs/github-api": "^3.16",
        "lucatume/wp-browser": "^4",
        "nyholm/psr7": "^1.8",
        "overtrue/phplint": "^9.1",
        "phpcompatibility/php-compatibility": "^9.3",
        "phpmd/phpmd": "^2.15",
        "phpmetrics/phpmetrics": "^2.9",
        "phpstan/extension-installer": "^1.3",
        "phpstan/phpstan": "^1.10",
        "phpunit/phpunit": "^10",
        "publishpress/publishpress-phpcs-standards": "dev-main",
        "spatie/ray": "^1.41",
        "squizlabs/php_codesniffer": "^3.8",
        "symfony/http-client": "^7.1",
        "symfony/process": "^6.4",
        "szepeviktor/phpstan-wordpress": "^1.3",
        "wp-cli/i18n-command": "^2.6",
        "wp-cli/wp-cli-bundle": "^2.10",
        "wp-coding-standards/wpcs": "^3",
        "publishpress/translations": "^1"
    },
    "scripts": {
        "term": "dev-workspace/run",
        "build:full": [
            "@build:js",
            "@translate:compile",
            "@build"
        ],
        "build": "@build:zip",
        "build:zip": "dev-workspace/run build zip",
        "build:dir": "dev-workspace/run build dir",
        "build:clean": "dev-workspace/run build clean",
        "build:js-prod": "dev-workspace/run cross-env NODE_ENV=production npx webpack --progress",
        "build:js-dev": "dev-workspace/run cross-env NODE_ENV=development npx webpack --progress",
        "build:js": [
            "@build:js-prod",
            "@build:js-dev"
        ],
        "profile:js": "dev-workspace/run cross-env NODE_ENV=production npx webpack --profile",
        "watch:js": "dev-workspace/run cross-env NODE_ENV=development npx webpack --watch --progress",
        "get:version": "dev-workspace/run /scripts/build version",
        "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-8.5"
        ],
        "check:php-5.6": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 5.6 ./post-expirator.php",
        "check:php-7.2": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 7.2 ./post-expirator.php",
        "check:php-7.4": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 7.4",
        "check:php-8.0": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.0",
        "check:php-8.1": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.1",
        "check:php-8.2": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.2",
        "check:php-8.3": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.3",
        "check:php-8.4": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.4",
        "check:php-8.5": "dev-workspace/run phpcs --standard=.phpcs-php-compatibility.xml --runtime-set testVersion 8.5",
        "check:lint": "dev-workspace/run phplint --no-cache",
        "check:cs": "dev-workspace/run phpcs",
        "check:stan": "dev-workspace/run phpstan",
        "check:longpath": "dev-workspace/run composer build:dir && dev-workspace/run longpath dist/post-expirator",
        "check:pot-diff": "dev-workspace/run 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": "dev-workspace/run 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:php": [
            "dev-workspace/run php-cs-fixer fix .",
            "dev-workspace/run phpcbf --standard=.phpcs.xml"
        ],
        "metrics": "dev-workspace/run phpmetrics --report-html=metrics --exclude=vendor,lib/vendor,tests,dist,dev-workspace,.claude,.cursor,.github,.wordpress-org,.git,.zed,docs,languages.",
        "up": [
            "@test:up",
            "@wp:up",
            "@env:info"
        ],
        "down": [
            "@test:down",
            "@wp:down"
        ],
        "stop": [
            "@wp:stop",
            "@test:stop"
        ],
        "env:info": [
            "@wp:info",
            "@test:info"
        ],
        "refresh": [
            "@wp:refresh",
            "@test:refresh"
        ],
        "clean": [
            "@wp:clear",
            "@test:clean"
        ],
        "logs": [
            "@wp:logs",
            "@test:logs"
        ],
        "wp:logs": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash -c 'cd dev-workspace && set -a && source ../.env && set +a && docker compose -f docker/compose.yaml --profile dev logs --tail=100'"
        ],
        "test:logs": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash -c 'cd dev-workspace && set -a && source ../.env && set +a && docker compose -f docker/compose.yaml --profile test logs --tail=100'"
        ],
        "wpcli:tests": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/tests-wp-cli.sh wp_test_cli $@"
        ],
        "wpcli:dev": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/tests-wp-cli.sh wp_dev_cli $@"
        ],
        "wp:up": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh up dev",
            "@wp:info"
        ],
        "wp:stop": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh stop dev"
        ],
        "wp:down": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh down dev"
        ],
        "wp:restart": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh restart dev"
        ],
        "wp:clear": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh cleanup dev",
            "@wp:clear-cache"
        ],
        "wp:clear-logs": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "rm -f dev-workspace/.cache/logs/db_dev/"
        ],
        "wp:clear-cache": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "rm -rf dev-workspace/.cache/wp_dev",
            "rm -rf dev-workspace/.cache/db_dev"
        ],
        "wp:refresh": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh refresh dev"
        ],
        "wp:info": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh info dev"
        ],
        "lib:install": "dev-workspace/run composer install $@",
        "lib:update": "dev-workspace/run composer update $@",
        "lib:update:lib": "dev-workspace/run composer update --working-dir=./lib $@",
        "sync:local": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/local-sync.sh --watch"
        ],
        "sync:local:once": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/local-sync.sh"
        ],
        "sync:local:stop": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "pkill -f local-sync.sh || true"
        ],
        "sync:remote": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/sync-plugin-remote.sh --watch"
        ],
        "sync:remote:once": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/sync-plugin-remote.sh --once"
        ],
        "sync:remote:stop": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "pkill -f sync-plugin-remote.sh || true"
        ],
        "test": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/tests-run.sh $@"
        ],
        "test:up": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh up test",
            "@test:info"
        ],
        "test:driver": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "source ./.env && $CHROMEDRIVER_BINARY --port=$CHROMEDRIVER_PORT"
        ],
        "test:down": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh down test"
        ],
        "test:restart": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh restart test"
        ],
        "test:stop": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh stop test"
        ],
        "test:clean": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh cleanup test",
            "@test:clean-cache",
            "composer codecept clean"
        ],
        "test:clean-logs": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "rm -f dev-workspace/.cache/logs/db_test/"
        ],
        "test:clean-cache": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "rm -rf dev-workspace/.cache/wp_test",
            "rm -rf dev-workspace/.cache/db_test"
        ],
        "test:db-export": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/tests-db-export.sh $@"
        ],
        "test:db-import": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/tests-db-import.sh $@"
        ],
        "test:db-logs": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/tests-db-logs.sh $@"
        ],
        "test:info": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh info test"
        ],
        "test:refresh": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/env.sh refresh test"
        ],
        "test:snippets": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "composer codecept gherkin:snippets $@"
        ],
        "test:steps": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "composer codecept gherkin:steps $@"
        ],
        "test:all": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "vendor/bin/codecept run Unit",
            "vendor/bin/codecept run Integration"
        ],
        "test:coverage": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "vendor/bin/codecept run --coverage --coverage-html $@"
        ],
        "test:unit": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "vendor/bin/codecept run Unit $@"
        ],
        "test:integration": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "vendor/bin/codecept run Integration $@"
        ],
        "test:acceptance": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "vendor/bin/codecept run Acceptance $@"
        ],
        "test:end-to-end": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "vendor/bin/codecept run EndToEnd $@"
        ],
        "test:debug": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "php -d xdebug.mode=debug -d xdebug.start_with_request=yes vendor/bin/codecept run $@"
        ],
        "codecept": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "./vendor/bin/codecept $@"
        ],
        "docker:cleanup": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "docker system prune -f"
        ],
        "info:versions": "dev-workspace/run bash ./dev-workspace/scripts/dependency-versions.sh",
        "set:version": "dev-workspace/run php ./dev-workspace/scripts/plugin-bump-version.php \"$@\"",
        "pre-release": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash ./dev-workspace/scripts/pre-release.sh \"$@\""
        ],
        "pr-link": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash ./dev-workspace/scripts/pr-link.sh"
        ],
        "deploy": "dev-workspace/run node ./dev-workspace/scripts/custom-deploy/index.mjs",
        "pre-commit-check": [
            "@check",
            "@test:unit",
            "@test:integration"
        ],
        "after-pr-merge": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/after-pr-merge.sh"
        ],
        "container:build": [
            "@container:build:wp",
            "@container:build:wpcli"
        ],
        "container:build:wp": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "docker compose -f dev-workspace/docker/compose.yaml --env-file .env build wp"
        ],
        "container:build:wpcli": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "docker compose -f dev-workspace/docker/compose.yaml --env-file .env build wpcli"
        ],
        "container:push": [
            "@container:push:wp",
            "@container:push:wpcli"
        ],
        "container:push:wp": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/push-wp.sh"
        ],
        "container:push:wpcli": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "bash dev-workspace/scripts/push-wpcli.sh"
        ],
        "container:pull": [
            "dev-workspace/scripts/ensure-not-container.sh",
            "rm -f dev-workspace/.cache/.last_image_update_check",
            "bash dev-workspace/scripts/services-pull-images.sh"
        ],
        "translate": "dev-workspace/run vendor/bin/publishpress-translate --languages=de_DE,fi,fil,id_ID,ja,ko_KR,nl_NL,ru_RU,yor",
        "translate:dry-run": "dev-workspace/run vendor/bin/publishpress-translate --dry-run",
        "translate:download": "dev-workspace/run vendor/bin/publishpress-translate --download",
        "translate:upload": "dev-workspace/run vendor/bin/publishpress-translate --upload",
        "translate:custom": "dev-workspace/run vendor/bin/publishpress-translate --languages",
        "translate:force": "dev-workspace/run vendor/bin/publishpress-translate --force",
        "translate:force-custom": "dev-workspace/run vendor/bin/publishpress-translate --force --languages",
        "translate:compile": [
            "@translate:mo",
            "@translate:json",
            "@translate:php"
        ],
        "translate:pot": "dev-workspace/run 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",
        "translate:mo": "dev-workspace/run wp i18n make-mo ./languages ./languages --allow-root",
        "translate:json": "dev-workspace/run bash ./dev-workspace/scripts/lang-make-json.sh",
        "translate:php": "dev-workspace/run wp i18n make-php ./languages --allow-root",
        "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": {
        "term": "Run a command inside the dev-workspace container or open a new terminal",
        "build": "Build the plugin zip package",
        "build:all": "Build JavaScript, language files, and the plugin",
        "build:zip": "Build the distributable zip package",
        "build:dir": "Build the plugin in a directory",
        "build:clean": "Clean the build directory",
        "build:js-prod": "Build JavaScript in production mode",
        "build:js-dev": "Build JavaScript in development mode",
        "build:js": "Build JavaScript in production and development mode",
        "profile:js": "Generate a profile of the JavaScript build",
        "translate:pot": "Generate the POT file from PHP and JSX",
        "translate:mo": "Generate MO files from language files",
        "translate:json": "Generate JSON translation files for JavaScript",
        "translate:php": "Generate PHP language files (WP 6.5+)",
        "translate:compile": "Generate all language files (POT, MO, JSON, PHP)",
        "watch:js": "Watch JavaScript files for changes and rebuild",
        "get:version": "Get the plugin version",
        "check": "Run PHP compatibility, lint, coding standards, long path checks",
        "check:php": "Check PHP compatibility for all supported versions",
        "check:php-5.6": "Check PHP 5.6 compatibility (main file only)",
        "check:php-7.4": "Check PHP 7.4 compatibility",
        "check:php-8.0": "Check PHP 8.0 compatibility",
        "check:php-8.1": "Check PHP 8.1 compatibility",
        "check:php-8.2": "Check PHP 8.2 compatibility",
        "check:php-8.3": "Check PHP 8.3 compatibility",
        "check:php-8.4": "Check PHP 8.4 compatibility",
        "check:php-8.5": "Check PHP 8.5 compatibility",
        "check:lint": "Check PHP syntax with phplint",
        "check:cs": "Check PHP coding standards with PHPCS",
        "check:stan": "Run PHPStan static analysis",
        "check:longpath": "Check for long paths in the build",
        "check:pot-diff": "Compare POT file with main branch",
        "check:pot-diff-md": "Compare POT file with main branch (Markdown)",
        "fix:php": "Fix PHP coding standards (CS-Fixer and phpcbf)",
        "sync:local": "Watch and sync plugin files to local dev site",
        "sync:local:once": "Sync plugin files once to local dev site",
        "test:driver": "Start the ChromeDriver server",
        "test:clean": "Clean test environment, cache, and Codeception",
        "test:clean-cache": "Remove test cache files",
        "test:clean-logs": "Remove test database logs",
        "test:db-export": "Export test database to SQL file",
        "test:db-import": "Import SQL file into test database",
        "test:db-logs": "Show test database logs",
        "test:down": "Stop and remove test containers",
        "test:info": "Show test environment information",
        "test:refresh": "Refresh the test environment",
        "test:restart": "Restart the test environment",
        "test:stop": "Stop the test environment",
        "test:up": "Start the test environment",
        "test:all": "Run unit and integration tests",
        "wp:up": "Start the WordPress dev environment",
        "wp:stop": "Stop the WordPress dev environment",
        "wp:down": "Stop and remove WordPress dev containers",
        "wp:restart": "Restart the WordPress dev environment",
        "wp:clear": "Clean WordPress dev environment and cache",
        "wp:clear-logs": "Remove WordPress dev database logs",
        "wp:clear-cache": "Remove WordPress dev cache files",
        "wp:refresh": "Refresh the WordPress dev environment",
        "wp:info": "Show WordPress dev environment information",
        "lib:install": "Run composer install in dev-workspace",
        "lib:update": "Run composer update in dev-workspace",
        "lib:update:lib": "Run composer update for lib directory",
        "wpcli:tests": "Run WP-CLI in the test environment",
        "wpcli:dev": "Run WP-CLI in the WordPress dev environment",
        "test:snippets": "Show unimplemented Gherkin snippets",
        "test:steps": "Show all Gherkin steps",
        "test": "Run tests (optional: suite or arguments)",
        "test:debug": "Run tests with Xdebug",
        "codecept": "Run Codeception commands",
        "docker:cleanup": "Remove unused Docker resources",
        "config:phpcs": "Configure PHP CodeSniffer installed paths",
        "info:versions": "Show main tool versions",
        "set:version": "Set the plugin version",
        "pre-release": "Create release branch and pull request",
        "pr-link": "Get the PR URL for the release branch",
        "deploy": "Run the interactive deployment wizard",
        "up": "Start both test and WordPress dev environments",
        "down": "Stop and remove both environments",
        "stop": "Stop both environments without removing containers",
        "env:info": "Show info for both environments",
        "refresh": "Refresh both environments",
        "clean": "Clean both environments",
        "logs": "Show logs for both environments",
        "wp:logs": "Show WordPress dev Docker logs",
        "test:logs": "Show test Docker logs",
        "test:coverage": "Generate test coverage report",
        "test:unit": "Run unit tests",
        "test:integration": "Run integration tests",
        "test:acceptance": "Run acceptance tests",
        "test:end-to-end": "Run end-to-end tests",
        "sync:local:stop": "Stop the local sync process",
        "sync:remote": "Watch and sync plugin files to remote dev site",
        "sync:remote:once": "Sync plugin files once to remote dev site",
        "sync:remote:stop": "Stop the remote sync process",
        "pre-commit-check": "Run checks, unit and integration tests",
        "after-pr-merge": "Run post-merge tasks",
        "metrics": "Generate PHP metrics report",
        "container:build": "Build wp and wpcli Docker images",
        "container:build:wp": "Build the WordPress dev Docker image",
        "container:build:wpcli": "Build the WP-CLI Docker image",
        "container:push": "Push wp and wpcli images to registry",
        "container:push:wp": "Push WordPress dev image to registry",
        "container:push:wpcli": "Push WP-CLI image to registry",
        "container:pull": "Pull latest Docker images",
        "translate": "Run PublishPress Translate commands",
        "translate:dry-run": "Run PublishPress Translate commands with dry-run mode",
        "translate:download": "Run PublishPress Translate commands to download translations",
        "translate:upload": "Run PublishPress Translate commands to upload translations",
        "translate:custom": "Run PublishPress Translate commands to manage custom languages",
        "translate:force": "Run PublishPress Translate commands to force translations",
        "translate:force-custom": "Run PublishPress Translate commands to force translations for custom languages"
    },
    "extra": {
        "plugin-slug": "post-expirator",
        "plugin-name": "publishpress-future",
        "plugin-folder": "post-expirator",
        "version-constant": "PUBLISHPRESS_FUTURE_VERSION"
    }
}
