{
  "name": "pedro-mendonca/gp-project-icon",
  "description": "This GlotPress plugin allows you to add icons to your projects.",
  "license": "GPL-2.0-or-later",
  "type": "wordpress-plugin",
  "authors": [
    {
      "name": "Pedro Mendonça",
      "email": "ped.gaspar@gmail.com",
      "homepage": "https://pedromendonca.pt"
    }
  ],
  "funding": [
    {
      "type": "github",
      "url": "https://github.com/sponsors/pedro-mendonca"
    }
  ],
  "require": {
    "php": ">=7.4"
  },
  "require-dev": {
    "dealerdirect/phpcodesniffer-composer-installer": "^1.0.0",
    "ergebnis/composer-normalize": "^2.44.0",
    "johnbillion/wp-compat": "^0.2.3",
    "pedro-mendonca/glotpress-stubs": "^4.0.1",
    "phpcompatibility/phpcompatibility-wp": "^2.1.5",
    "phpmd/phpmd": "^2.15.0",
    "phpstan/extension-installer": "^1.4.3",
    "sirbrillig/phpcs-variable-analysis": "^2.11.19",
    "szepeviktor/phpstan-wordpress": "^1.3.5",
    "wp-coding-standards/wpcs": "^3.1.0"
  },
  "autoload": {
    "classmap": [
      "includes/"
    ]
  },
  "archive": {
    "exclude": [
      "!/vendor"
    ]
  },
  "config": {
    "allow-plugins": {
      "dealerdirect/phpcodesniffer-composer-installer": true,
      "ergebnis/composer-normalize": true,
      "phpstan/extension-installer": true
    },
    "optimize-autoloader": true
  },
  "scripts": {
    "build": [
      "@lint",
      "@build:css",
      "@build:js"
    ],
    "build:css": "npm run build:css",
    "build:js": "npm run build:js",
    "compat:php": "phpcs -v --standard=phpcompat.xml.dist",
    "format:php": "phpcbf -v --standard=phpcs.xml.dist",
    "i18n": [
      "@i18n:pot",
      "@i18n:po",
      "@i18n:json"
    ],
    "i18n:json": "wp i18n make-json languages --no-purge",
    "i18n:po": "wp i18n update-po languages/gp-project-icon.pot languages",
    "i18n:pot": "wp i18n make-pot . languages/gp-project-icon.pot",
    "lint": [
      "@lint:php",
      "@compat:php",
      "@lint:phpstan",
      "@lint:css",
      "@lint:js",
      "@lint:md:docs",
      "@lint:pkg-json"
    ],
    "lint:css": "npm run lint:css",
    "lint:js": "npm run lint:js",
    "lint:md:docs": "npm run lint:md:docs",
    "lint:php": "phpcs -v --standard=phpcs.xml.dist",
    "lint:phpmd": "phpmd . text phpmd.xml.dist",
    "lint:phpstan": "phpstan analyse -c phpstan.neon.dist --memory-limit=1G",
    "lint:pkg-json": "npm run lint:pkg-json",
    "phpcs-i": "phpcs -i",
    "scripts-list": "composer run-script --list",
    "zip": [
      "composer install --no-dev",
      "composer archive --file=gp-project-icon --format=zip",
      "composer install"
    ]
  },
  "scripts-descriptions": {
    "build": "Build all CSS and JS.",
    "build:css": "Compile SCSS to CSS and build minified CSS.",
    "build:js": "Run npm UglifyJS to build minified JS.",
    "compat:php": "Runs the PHPCompatibilityWP code sniffer.",
    "format:php": "Runs the PHP code sniffer and automatically fix errors.",
    "lint": "Runs all available code linting (PHP_CodeSniffer, JS and MD lint).",
    "lint:css": "Run npm CSS linter.",
    "lint:js": "Run npm JS linter.",
    "lint:md:docs": "Run npm MD linter.",
    "lint:php": "Runs the PHP code sniffer.",
    "lint:phpmd": "Runs the PHPMD code static analysis.",
    "lint:phpstan": "Runs the PHPStan code static analysis.",
    "lint:pkg-json": "Run npm package.json linter.",
    "phpcs-i": "Log PHPCS debug information.",
    "scripts-list": "List all Composer scripts.",
    "zip": "Build production zip archive."
  }
}
