diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml new file mode 100644 index 0000000..7400a93 --- /dev/null +++ b/.github/workflows/phpcs.yml @@ -0,0 +1,41 @@ +name: PHPCS + +on: + pull_request: + paths: + - '**.php' + +jobs: + phpcs: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '7.4' + tools: composer + + - name: Get changed PHP files + id: changed-files + uses: tj-actions/changed-files@v45 + with: + files: '**.php' + separator: ' ' + + - name: Install Composer dependencies + if: steps.changed-files.outputs.any_changed == 'true' + run: composer install --no-interaction --no-progress + + - name: Run PHPCS on changed files + if: steps.changed-files.outputs.any_changed == 'true' + env: + PHP_FILES: ${{ steps.changed-files.outputs.added_files }} ${{ steps.changed-files.outputs.copied_files }} ${{ steps.changed-files.outputs.modified_files }} ${{ steps.changed-files.outputs.renamed_files }} + run: | + if [ -n "$(echo "$PHP_FILES" | xargs)" ]; then + composer phpcs -- $PHP_FILES + else + echo "No existing PHP files to lint (only deletions in this PR)." + fi diff --git a/.github/workflows/pr-build-zip.yml b/.github/workflows/pr-build-zip.yml new file mode 100644 index 0000000..7b68dad --- /dev/null +++ b/.github/workflows/pr-build-zip.yml @@ -0,0 +1,28 @@ +name: Build Testable ZIP + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + branches: [master] + workflow_dispatch: + +jobs: + zip: + uses: themegrill/.github/.github/workflows/pr-build-zip.yml@master + with: + node-version: '20.x' + php-version: '7.4' + package-manager: npm + # package-lock.json isn't committed in this repo (.gitignore), so `npm ci` + # (the default install here) has nothing to install from. + install-command: npm install + composer-install: true + build-command: npm run build + zip-glob: 'dist/*.zip' + artifacts-bucket: themegrill-pr-artifacts + public-base-url: https://themegrill-pr-artifacts.s3.amazonaws.com + s3-region: us-east-1 + secrets: + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} + ARTIFACTS_KEY: ${{ secrets.ARTIFACTS_KEY }} + ARTIFACTS_SECRET: ${{ secrets.ARTIFACTS_SECRET }} diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..d373ccb --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +omit=optional diff --git a/Gruntfile.js b/Gruntfile.js index b42096a..67faca9 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -29,7 +29,15 @@ module.exports = function( grunt ){ // Minify all .js files. uglify: { options: { - preserveComments: /(?:^!|@(?:license|preserve|cc_on))/ + // Keep output ES5 for legacy-browser support. + compress: { + arrows: false + }, + // `preserveComments` was removed in grunt-contrib-uglify 2.x+; + // this is the option UglifyJS itself understands. + output: { + comments: /(?:^!|@(?:license|preserve|cc_on))/ + } }, frontend: { files: [{ @@ -91,6 +99,7 @@ module.exports = function( grunt ){ options: { type: 'wp-theme', domainPath: 'languages', + potComments: 'Copyright (C) {year} ThemeGrill\nThis file is distributed under the GNU General Public License, version 3 (GPLv3).', potHeaders: { 'report-msgid-bugs-to': 'themegrill@gmail.com', 'language-team': 'ThemeGrill =5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "composer-plugin-api": "^2.2", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.1.0 || ^4.0" }, "require-dev": { - "composer/composer": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0" + "composer/composer": "^2.2", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev", + "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, "autoload": { "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -46,17 +50,16 @@ "authors": [ { "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" + "email": "opensource@frenck.dev", + "homepage": "https://frenck.dev", + "role": "Open source developer" }, { "name": "Contributors", - "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", "keywords": [ "PHPCodeSniffer", "PHP_CodeSniffer", @@ -76,93 +79,192 @@ "tests" ], "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "security": "https://github.com/PHPCSStandards/composer-installer/security/policy", + "source": "https://github.com/PHPCSStandards/composer-installer" }, - "time": "2022-02-04T12:51:07+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-05-06T08:26:05+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.2.0", + "name": "phpcompatibility/php-compatibility", + "version": "9.3.5", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ba816f2e1bacc16278792c78b67c730dfff064a6" + "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ba816f2e1bacc16278792c78b67c730dfff064a6", - "reference": "ba816f2e1bacc16278792c78b67c730dfff064a6", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" + }, + "conflict": { + "squizlabs/php_codesniffer": "2.6.2" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0" + "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." }, + "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Greg Sherwood", + "name": "Wim Godden", + "homepage": "https://github.com/wimg", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "http://www.squizlabs.com/php-codesniffer", + "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", + "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", "keywords": [ + "compatibility", "phpcs", "standards" ], "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" }, - "time": "2017-12-12T21:36:10+00:00" + "time": "2019-12-27T09:44:58+00:00" }, { - "name": "wimg/php-compatibility", - "version": "9.3.5", + "name": "phpcompatibility/phpcompatibility-paragonie", + "version": "1.3.4", "source": { "type": "git", - "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", - "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" + "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", - "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", "shasum": "" }, "require": { - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" + "phpcompatibility/php-compatibility": "^9.0" }, - "conflict": { - "squizlabs/php_codesniffer": "2.6.2" + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "paragonie/random_compat": "dev-master", + "paragonie/sodium_compat": "dev-master" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "lead" + } + ], + "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.", + "homepage": "http://phpcompatibility.com/", + "keywords": [ + "compatibility", + "paragonie", + "phpcs", + "polyfill", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", + "security": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/security/policy", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" + }, + "funding": [ + { + "url": "https://github.com/PHPCompatibility", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" + } + ], + "time": "2025-09-19T17:43:28+00:00" + }, + { + "name": "phpcompatibility/phpcompatibility-wp", + "version": "2.1.8", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "shasum": "" + }, + "require": { + "phpcompatibility/php-compatibility": "^9.0", + "phpcompatibility/phpcompatibility-paragonie": "^1.0", + "squizlabs/php_codesniffer": "^3.3" }, "require-dev": { - "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" + "dealerdirect/phpcodesniffer-composer-installer": "^1.0" }, "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." }, "type": "phpcodesniffer-standard", @@ -173,9 +275,172 @@ "authors": [ { "name": "Wim Godden", - "homepage": "https://github.com/wimg", "role": "lead" }, + { + "name": "Juliette Reinders Folmer", + "role": "lead" + } + ], + "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.", + "homepage": "http://phpcompatibility.com/", + "keywords": [ + "compatibility", + "phpcs", + "standards", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", + "security": "https://github.com/PHPCompatibility/PHPCompatibilityWP/security/policy", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" + }, + "funding": [ + { + "url": "https://github.com/PHPCompatibility", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" + } + ], + "time": "2025-10-18T00:05:59+00:00" + }, + { + "name": "phpcsstandards/phpcsextra", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", + "reference": "39467533fdb742446d68c1d10ac33d625ee0311c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/39467533fdb742446d68c1d10ac33d625ee0311c", + "reference": "39467533fdb742446d68c1d10ac33d625ee0311c", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "phpcsstandards/phpcsutils": "^1.2.3", + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", + "phpcsstandards/phpcsdevtools": "^1.2.1", + "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors" + } + ], + "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", + "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSExtra" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-07-27T11:13:17+00:00" + }, + { + "name": "phpcsstandards/phpcsutils", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", + "reference": "5f35d9408c54d7b529501f3c688b6eae562aea1f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/5f35d9408c54d7b529501f3c688b6eae562aea1f", + "reference": "5f35d9408c54d7b529501f3c688b6eae562aea1f", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" + }, + "require-dev": { + "ext-filter": "*", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "autoload": { + "classmap": [ + "PHPCSUtils/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ { "name": "Juliette Reinders Folmer", "homepage": "https://github.com/jrfnl", @@ -183,43 +448,162 @@ }, { "name": "Contributors", - "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" + "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors" } ], - "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", - "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", + "description": "A suite of utility functions for use with PHP_CodeSniffer", + "homepage": "https://phpcsutils.com/", "keywords": [ - "compatibility", + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", "phpcs", - "standards" + "phpcs3", + "phpcs4", + "standards", + "static analysis", + "tokens", + "utility" ], "support": { - "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", - "source": "https://github.com/PHPCompatibility/PHPCompatibility" + "docs": "https://phpcsutils.com/", + "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", + "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSUtils" }, - "abandoned": "phpcompatibility/php-compatibility", - "time": "2019-12-27T09:44:58+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-07-27T10:28:41+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.13.6", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-08-06T00:17:32+00:00" }, { "name": "wp-coding-standards/wpcs", - "version": "0.14.0", + "version": "3.4.1", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "8cadf48fa1c70b2381988e0a79e029e011a8f41c" + "reference": "ec2ff942335f33683a5957a85d138753876a05cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/8cadf48fa1c70b2381988e0a79e029e011a8f41c", - "reference": "8cadf48fa1c70b2381988e0a79e029e011a8f41c", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/ec2ff942335f33683a5957a85d138753876a05cf", + "reference": "ec2ff942335f33683a5957a85d138753876a05cf", "shasum": "" }, "require": { - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2" + "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", + "php": ">=7.2", + "phpcsstandards/phpcsextra": "^1.5.1", + "phpcsstandards/phpcsutils": "^1.2.3", + "squizlabs/php_codesniffer": "^3.13.5" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^10.0.0@dev", + "phpcsstandards/phpcsdevtools": "^1.2.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3" + "ext-iconv": "For improved results", + "ext-mbstring": "For improved results" }, "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", @@ -229,30 +613,36 @@ "authors": [ { "name": "Contributors", - "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors" + "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors" } ], "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", "keywords": [ "phpcs", "standards", + "static analysis", "wordpress" ], "support": { - "issues": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues", - "source": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards", - "wiki": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki" + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" }, - "time": "2017-11-01T15:10:46+00:00" + "funding": [ + { + "url": "https://opencollective.com/php_codesniffer", + "type": "custom" + } + ], + "time": "2026-07-27T11:53:23+00:00" } ], - "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/languages/flash.pot b/languages/flash.pot index 873c707..4f22176 100644 --- a/languages/flash.pot +++ b/languages/flash.pot @@ -1,50 +1,37 @@ -# Copyright (C) 2022 Flash -# This file is distributed under the same license as the Flash package. +# Copyright (C) 2026 ThemeGrill +# This file is distributed under the GNU General Public License, version 3 (GPLv3). msgid "" msgstr "" -"Project-Id-Version: Flash\n" +"Project-Id-Version: Flash 1.4.12\n" +"Report-Msgid-Bugs-To: themegrill@gmail.com\n" +"POT-Creation-Date: 2026-09-22 08:56:27+00:00\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2022-09-13 07:40+0000\n" -"Report-Msgid-Bugs-To: themegrill@gmail.com\n" -"X-Poedit-Basepath: ..\n" -"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: *.js\n" -"X-Poedit-SourceCharset: UTF-8\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: 2026-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: ThemeGrill on %s" msgstr "" +#: inc/template-tags.php:59 inc/template-tags.php:67 #. translators: used between list items, there is a space after the comma -#: inc/template-tags.php:59, inc/template-tags.php:67 msgid ", " msgstr "" +#: inc/template-tags.php:77 template-parts/content-page.php:37 #. translators: %s: Name of current post -#: inc/template-tags.php:77, template-parts/content-page.php:37 msgid "Edit %s" msgstr "" -#: searchform.php:12 -msgctxt "label" -msgid "Search for:" +#: template-parts/content-none.php:14 +msgid "Nothing Found" msgstr "" -#: searchform.php:13 -msgctxt "placeholder" -msgid "Search …" +#: template-parts/content-none.php:21 +msgid "Ready to publish your first post? Get started here." msgstr "" -#: searchform.php:15 -msgctxt "submit button" -msgid "Search" +#: template-parts/content-none.php:25 +msgid "" +"Sorry, but nothing matched your search terms. Please try again with some " +"different keywords." msgstr "" -#: template-parts/content-none.php:14 -msgid "Nothing Found" +#: template-parts/content-none.php:31 +msgid "" +"It seems we can’t find what you’re looking for. Perhaps " +"searching can help." msgstr "" -#: template-parts/content-none.php:31 -msgid "It seems we can’t find what you’re looking for. Perhaps searching can help." +#: template-parts/content-page.php:25 template-parts/content.php:67 +msgid "Pages:" msgstr "" -#: template-parts/content-none.php:25 -msgid "Sorry, but nothing matched your search terms. Please try again with some different keywords." +#. Theme URI of the plugin/theme +msgid "https://themegrill.com/themes/flash" msgstr "" -#: template-parts/content-none.php:21 -msgid "Ready to publish your first post? Get started here." +#. Description of the plugin/theme +msgid "" +"Flash is free responsive multipurpose WordPress theme – truly a versatile " +"theme perfect for any type of website you want. Like never before, it " +"provides multiple pre-built demos which can be imported in seconds using " +"ThemeGrill Demo Importer Plugin. The theme fully integrates with Flash " +"Toolkit and SiteOrigin’s Page Builder Plugin that makes theme more " +"user-friendly and easy. Additionally, theme features multiple blog layouts, " +"WooCommerce support, multiple header styles, multiple color options etc." msgstr "" -#: template-parts/content-page.php:25, template-parts/content.php:67 -msgid "Pages:" +#. Author of the plugin/theme +msgid "ThemeGrill" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://themegrill.com" +msgstr "" + +#. Template Name of the plugin/theme +msgid "Pagebuilder" +msgstr "" + +#: comments.php:33 +#. translators: %s: post title +msgctxt "comments title" +msgid "One Thought on “%s”" msgstr "" + +#: comments.php:37 +#. translators: 1: number of comments, 2: post title +msgctxt "comments title" +msgid "%1$s Reply to “%2$s”" +msgid_plural "%1$s Thoughts on “%2$s”" +msgstr[0] "" +msgstr[1] "" + +#: searchform.php:12 +msgctxt "label" +msgid "Search for:" +msgstr "" + +#: searchform.php:13 +msgctxt "placeholder" +msgid "Search …" +msgstr "" + +#: searchform.php:15 +msgctxt "submit button" +msgid "Search" +msgstr "" \ No newline at end of file diff --git a/package.json b/package.json index f23b86d..d71dd10 100644 --- a/package.json +++ b/package.json @@ -14,15 +14,15 @@ "browser-sync": "^2.24.4", "eslint": "^4.19.1", "eslint-config-wordpress": "^2.0.0", - "grunt": "^0.4.5", + "grunt": "^1.6.3", "grunt-checktextdomain": "~1.0.0", - "grunt-contrib-compress": "^1.2.0", + "grunt-contrib-compress": "^2.0.0", "grunt-contrib-cssmin": "^0.14.0", - "grunt-contrib-jshint": "~0.11.3", + "grunt-contrib-jshint": "^3.2.0", "grunt-contrib-sass": "^1.0.0", - "grunt-contrib-uglify": "^0.10.1", - "grunt-contrib-watch": "~0.6.1", - "grunt-wp-i18n": "~0.5.3", + "grunt-contrib-uglify": "^5.2.2", + "grunt-contrib-watch": "^1.1.0", + "grunt-wp-i18n": "^1.0.4", "gulp": "^4.0.2", "gulp-autoprefixer": "^5.0.0", "gulp-eslint": "^4.0.2", @@ -30,6 +30,7 @@ "gulp-notify": "^3.2.0", "gulp-phpcs": "^2.2.0", "gulp-plumber": "^1.2.0", + "gulp-rename": "^2.1.0", "gulp-rtlcss": "^1.2.0", "gulp-sass": "^5.1.0", "gulp-stylelint": "^7.0.0", @@ -39,11 +40,11 @@ "gulp-zip": "^4.1.0", "node-bourbon": "^4.2.3", "stylelint": "^9.2.1", - "stylelint-config-wordpress": "^12.0.0" + "stylelint-config-wordpress": "^13.0.0" }, "engines": { - "node": ">=8.9.3", - "npm": ">=5.5.1" + "node": ">=20.0.0", + "npm": ">=9.0.0" }, "scripts": { "styles": "gulp styles", @@ -53,6 +54,7 @@ "build": "npm run styles && npm run uglify && npm run makepot && npm run compress" }, "dependencies": { + "grunt-cli": "^1.4.3", "gulp-line-ending-corrector": "^1.0.3", "sass": "^1.77.0" } diff --git a/phpcs.xml b/phpcs.xml index de148b8..400cda9 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -26,40 +26,27 @@ */vendor/* */node_modules/* + + */inc/kirki/* + - + - + - - - - - - - - - - - - - - - + + + - - + +