diff --git a/bootstrap/loaders.php b/bootstrap/loaders.php index ad22bfd39..0216c4759 100644 --- a/bootstrap/loaders.php +++ b/bootstrap/loaders.php @@ -121,6 +121,7 @@ function pm_seed_db() { function pm_register_routes() { $routes = Router::get_routes(); + // dd($routes); WP_Router::register($routes); } diff --git a/changelog.txt b/changelog.txt index 6f862f19a..3a0e79eed 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,10 +1,5 @@ == Changelog == -= v2.6.17 - Dec 26, 2024 = - -**Improved:** Enhanced sanitization of user input to strengthen data security. -**Fix:** Resolved SQL security vulnerability to ensure system integrity.. - = v2.6.16 - Dec 10, 2024 = **Update:** WordPress 6.7.1 compatibility @@ -12,9 +7,7 @@ **Fix:** WP 6.7.1 translation loaded early error. **Fix:** Subscriber level data exposure security issue. - = v2.6.15 - Nov 18, 2024 = - **Update:** Tested upto 6.7 **Update:** Version bump & make stable frontend. @@ -869,4 +862,4 @@ * Post types are hidden from search = 0.1 = -Initial version released +Initial version released \ No newline at end of file diff --git a/composer.json b/composer.json index 3a4cd6457..d7b89932b 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ } ], "require": { - "php": ">=7.2", + "php": ">=5.6.37", "league/fractal": "^0.17.0", "a5hleyrich/wp-background-processing": "^1.0", "tareq1988/wp-eloquent": "dev-master", diff --git a/composer.lock b/composer.lock index b41ca8797..13109fa7b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,31 +4,24 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e36117ab3af2efa55804ee3f819c39bb", + "content-hash": "be55897275591c53f78d1a59f2396900", "packages": [ { "name": "a5hleyrich/wp-background-processing", - "version": "1.3.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/deliciousbrains/wp-background-processing.git", - "reference": "6d1e48165e461260075b9f161b3861c7278f71e7" + "reference": "2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/deliciousbrains/wp-background-processing/zipball/6d1e48165e461260075b9f161b3861c7278f71e7", - "reference": "6d1e48165e461260075b9f161b3861c7278f71e7", + "url": "https://api.github.com/repos/deliciousbrains/wp-background-processing/zipball/2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800", + "reference": "2cbee1abd1b49e1133cd8f611df4d4fc5a8b9800", "shasum": "" }, "require": { - "php": ">=7.0" - }, - "require-dev": { - "phpcompatibility/phpcompatibility-wp": "*", - "phpunit/phpunit": "^8.0", - "spryker/code-sniffer": "^0.17.18", - "wp-coding-standards/wpcs": "^2.3", - "yoast/phpunit-polyfills": "^1.0" + "php": ">=5.2" }, "suggest": { "coenjacobs/mozart": "Easily wrap this library with your own prefix, to prevent collisions when multiple plugins use this library" @@ -52,34 +45,26 @@ "description": "WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks.", "support": { "issues": "https://github.com/deliciousbrains/wp-background-processing/issues", - "source": "https://github.com/deliciousbrains/wp-background-processing/tree/1.3.1" + "source": "https://github.com/deliciousbrains/wp-background-processing/tree/1.0.2" }, - "time": "2024-02-28T13:39:06+00:00" + "time": "2020-07-31T07:00:11+00:00" }, { "name": "appsero/client", - "version": "v1.4.0", + "version": "v1.2.2", "source": { "type": "git", "url": "https://github.com/Appsero/client.git", - "reference": "43289d79f1d55de687f667b17a2834b986cc7b6e" + "reference": "5f9a275cdd94d756d2f5b05d9281719c6d638561" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Appsero/client/zipball/43289d79f1d55de687f667b17a2834b986cc7b6e", - "reference": "43289d79f1d55de687f667b17a2834b986cc7b6e", + "url": "https://api.github.com/repos/Appsero/client/zipball/5f9a275cdd94d756d2f5b05d9281719c6d638561", + "reference": "5f9a275cdd94d756d2f5b05d9281719c6d638561", "shasum": "" }, "require": { - "php": ">=5.6" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2", - "phpcompatibility/phpcompatibility-wp": "dev-master", - "phpunit/phpunit": "^8.5.31", - "squizlabs/php_codesniffer": "^3.7", - "tareq1988/wp-php-cs-fixer": "dev-master", - "wp-coding-standards/wpcs": "dev-develop" + "php": ">=5.3" }, "type": "library", "autoload": { @@ -106,107 +91,40 @@ ], "support": { "issues": "https://github.com/Appsero/client/issues", - "source": "https://github.com/Appsero/client/tree/v1.4.0" + "source": "https://github.com/Appsero/client/tree/v1.2.2" }, - "time": "2024-01-08T11:38:14+00:00" - }, - { - "name": "carbonphp/carbon-doctrine-types", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", - "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", - "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "conflict": { - "doctrine/dbal": "<3.7.0 || >=4.0.0" - }, - "require-dev": { - "doctrine/dbal": "^3.7.0", - "nesbot/carbon": "^2.71.0 || ^3.0.0", - "phpunit/phpunit": "^10.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "KyleKatarn", - "email": "kylekatarnls@gmail.com" - } - ], - "description": "Types to use Carbon in Doctrine", - "keywords": [ - "carbon", - "date", - "datetime", - "doctrine", - "time" - ], - "support": { - "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" - }, - "funding": [ - { - "url": "https://github.com/kylekatarnls", - "type": "github" - }, - { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" - }, - { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", - "type": "tidelift" - } - ], - "time": "2023-12-11T17:09:12+00:00" + "time": "2022-12-15T06:49:01+00:00" }, { "name": "doctrine/collections", - "version": "1.8.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1.3 || ^8.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0 || ^10.0", - "phpstan/phpstan": "^1.4.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", - "vimeo/psalm": "^4.22" + "doctrine/coding-standard": "~0.1@dev", + "phpunit/phpunit": "^5.7" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, "autoload": { - "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + "psr-0": { + "Doctrine\\Common\\Collections\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", @@ -214,10 +132,6 @@ "MIT" ], "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -226,6 +140,10 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -235,101 +153,48 @@ "email": "schmittjoh@gmail.com" } ], - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "homepage": "https://www.doctrine-project.org/projects/collections.html", + "description": "Collections Abstraction library", + "homepage": "http://www.doctrine-project.org", "keywords": [ "array", "collections", - "iterators", - "php" + "iterator" ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.8.0" - }, - "time": "2022-09-01T20:12:10+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + "source": "https://github.com/doctrine/collections/tree/master" }, - "time": "2024-01-30T19:34:25+00:00" + "time": "2017-01-03T10:49:41+00:00" }, { "name": "doctrine/inflector", - "version": "1.4.4", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": ">=5.3.2" }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "4.*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { - "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector", - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", @@ -337,10 +202,6 @@ "MIT" ], "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -349,6 +210,10 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -358,64 +223,41 @@ "email": "schmittjoh@gmail.com" } ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", "keywords": [ "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" + "pluralize", + "singularize", + "string" ], "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/1.4.4" + "source": "https://github.com/doctrine/inflector/tree/master" }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "time": "2021-04-16T17:34:40+00:00" + "time": "2015-11-06T14:35:42+00:00" }, { "name": "illuminate/container", - "version": "v5.8.36", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/illuminate/container.git", - "reference": "b42e5ef939144b77f78130918da0ce2d9ee16574" + "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/container/zipball/b42e5ef939144b77f78130918da0ce2d9ee16574", - "reference": "b42e5ef939144b77f78130918da0ce2d9ee16574", + "url": "https://api.github.com/repos/illuminate/container/zipball/c5b8a02a34a52c307f16922334c355c5eef725a6", + "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6", "shasum": "" }, "require": { - "illuminate/contracts": "5.8.*", - "illuminate/support": "5.8.*", - "php": "^7.1.3", - "psr/container": "^1.0" + "illuminate/contracts": "5.4.*", + "php": ">=5.6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.8-dev" + "dev-master": "5.4-dev" } }, "autoload": { @@ -439,31 +281,29 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2019-08-20T02:00:23+00:00" + "time": "2017-05-24T14:15:53+00:00" }, { "name": "illuminate/contracts", - "version": "v5.8.36", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", - "reference": "00fc6afee788fa07c311b0650ad276585f8aef96" + "reference": "67f642e018f3e95fb0b2ebffc206c3200391b1ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/00fc6afee788fa07c311b0650ad276585f8aef96", - "reference": "00fc6afee788fa07c311b0650ad276585f8aef96", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/67f642e018f3e95fb0b2ebffc206c3200391b1ab", + "reference": "67f642e018f3e95fb0b2ebffc206c3200391b1ab", "shasum": "" }, "require": { - "php": "^7.1.3", - "psr/container": "^1.0", - "psr/simple-cache": "^1.0" + "php": ">=5.6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.8-dev" + "dev-master": "5.4-dev" } }, "autoload": { @@ -487,41 +327,41 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2019-07-30T13:57:21+00:00" + "time": "2017-08-26T23:56:53+00:00" }, { "name": "illuminate/database", - "version": "v5.8.36", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/illuminate/database.git", - "reference": "ac9ae2d82b8a6137400f17b3eea258be3518daa9" + "reference": "405aa061a5bc8588cbf3a78fba383541a568e3fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/database/zipball/ac9ae2d82b8a6137400f17b3eea258be3518daa9", - "reference": "ac9ae2d82b8a6137400f17b3eea258be3518daa9", + "url": "https://api.github.com/repos/illuminate/database/zipball/405aa061a5bc8588cbf3a78fba383541a568e3fe", + "reference": "405aa061a5bc8588cbf3a78fba383541a568e3fe", "shasum": "" }, "require": { - "ext-json": "*", - "illuminate/container": "5.8.*", - "illuminate/contracts": "5.8.*", - "illuminate/support": "5.8.*", - "php": "^7.1.3" + "illuminate/container": "5.4.*", + "illuminate/contracts": "5.4.*", + "illuminate/support": "5.4.*", + "nesbot/carbon": "~1.20", + "php": ">=5.6.4" }, "suggest": { - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).", - "fzaninotto/faker": "Required to use the eloquent factory builder (^1.4).", - "illuminate/console": "Required to use the database commands (5.8.*).", - "illuminate/events": "Required to use the observers with Eloquent (5.8.*).", - "illuminate/filesystem": "Required to use the migrations (5.8.*).", - "illuminate/pagination": "Required to paginate the result set (5.8.*)." + "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", + "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", + "illuminate/console": "Required to use the database commands (5.4.*).", + "illuminate/events": "Required to use the observers with Eloquent (5.4.*).", + "illuminate/filesystem": "Required to use the migrations (5.4.*).", + "illuminate/pagination": "Required to paginate the result set (5.4.*)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.8-dev" + "dev-master": "5.4-dev" } }, "autoload": { @@ -551,32 +391,31 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2019-10-03T16:22:57+00:00" + "time": "2017-08-24T12:07:53+00:00" }, { "name": "illuminate/pagination", - "version": "v5.8.36", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/illuminate/pagination.git", - "reference": "391134bc87a47b3dfe5cf60df73e5e0080aec220" + "reference": "ae1540acf02c8b642666d6901c18d2deb5606b47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/pagination/zipball/391134bc87a47b3dfe5cf60df73e5e0080aec220", - "reference": "391134bc87a47b3dfe5cf60df73e5e0080aec220", + "url": "https://api.github.com/repos/illuminate/pagination/zipball/ae1540acf02c8b642666d6901c18d2deb5606b47", + "reference": "ae1540acf02c8b642666d6901c18d2deb5606b47", "shasum": "" }, "require": { - "ext-json": "*", - "illuminate/contracts": "5.8.*", - "illuminate/support": "5.8.*", - "php": "^7.1.3" + "illuminate/contracts": "5.4.*", + "illuminate/support": "5.4.*", + "php": ">=5.6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.8-dev" + "dev-master": "5.4-dev" } }, "autoload": { @@ -600,54 +439,50 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2019-03-18T14:45:00+00:00" + "time": "2017-07-24T13:37:02+00:00" }, { "name": "illuminate/support", - "version": "v5.8.36", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/illuminate/support.git", - "reference": "df4af6a32908f1d89d74348624b57e3233eea247" + "reference": "feab1d1495fd6d38970bd6c83586ba2ace8f299a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/df4af6a32908f1d89d74348624b57e3233eea247", - "reference": "df4af6a32908f1d89d74348624b57e3233eea247", + "url": "https://api.github.com/repos/illuminate/support/zipball/feab1d1495fd6d38970bd6c83586ba2ace8f299a", + "reference": "feab1d1495fd6d38970bd6c83586ba2ace8f299a", "shasum": "" }, "require": { - "doctrine/inflector": "^1.1", - "ext-json": "*", + "doctrine/inflector": "~1.1", "ext-mbstring": "*", - "illuminate/contracts": "5.8.*", - "nesbot/carbon": "^1.26.3 || ^2.0", - "php": "^7.1.3" + "illuminate/contracts": "5.4.*", + "paragonie/random_compat": "~1.4|~2.0", + "php": ">=5.6.4" }, - "conflict": { - "tightenco/collect": "<5.5.33" + "replace": { + "tightenco/collect": "self.version" }, "suggest": { - "illuminate/filesystem": "Required to use the composer class (5.8.*).", - "moontoast/math": "Required to use ordered UUIDs (^1.1).", - "ramsey/uuid": "Required to use Str::uuid() (^3.7).", - "symfony/process": "Required to use the composer class (^4.2).", - "symfony/var-dumper": "Required to use the dd function (^4.2).", - "vlucas/phpdotenv": "Required to use the env helper (^3.3)." + "illuminate/filesystem": "Required to use the composer class (5.2.*).", + "symfony/process": "Required to use the composer class (~3.2).", + "symfony/var-dumper": "Required to use the dd function (~3.2)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.8-dev" + "dev-master": "5.4-dev" } }, "autoload": { - "files": [ - "helpers.php" - ], "psr-4": { "Illuminate\\Support\\": "" - } + }, + "files": [ + "helpers.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -665,7 +500,70 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2019-12-12T14:16:47+00:00" + "time": "2017-08-15T13:25:41+00:00" + }, + { + "name": "kylekatarnls/update-helper", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/kylekatarnls/update-helper.git", + "reference": "429be50660ed8a196e0798e5939760f168ec8ce9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kylekatarnls/update-helper/zipball/429be50660ed8a196e0798e5939760f168ec8ce9", + "reference": "429be50660ed8a196e0798e5939760f168ec8ce9", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0.0", + "php": ">=5.3.0" + }, + "require-dev": { + "codeclimate/php-test-reporter": "dev-master", + "composer/composer": "2.0.x-dev || ^2.0.0-dev", + "phpunit/phpunit": ">=4.8.35 <6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "UpdateHelper\\ComposerPlugin" + }, + "autoload": { + "psr-0": { + "UpdateHelper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Update helper", + "support": { + "issues": "https://github.com/kylekatarnls/update-helper/issues", + "source": "https://github.com/kylekatarnls/update-helper/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2020-04-07T20:44:10+00:00" }, { "name": "league/fractal", @@ -737,66 +635,43 @@ }, { "name": "nesbot/carbon", - "version": "2.72.3", + "version": "1.39.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" + "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", - "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4be0c005164249208ce1b5ca633cd57bdd42ff33", + "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33", "shasum": "" }, "require": { - "carbonphp/carbon-doctrine-types": "*", - "ext-json": "*", - "php": "^7.1.8 || ^8.0", - "psr/clock": "^1.0", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" - }, - "provide": { - "psr/clock-implementation": "1.0" + "kylekatarnls/update-helper": "^1.1", + "php": ">=5.3.9", + "symfony/translation": "~2.6 || ~3.0 || ~4.0" }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", - "doctrine/orm": "^2.7 || ^3.0", - "friendsofphp/php-cs-fixer": "^3.0", - "kylekatarnls/multi-tester": "^2.0", - "ondrejmirtes/better-reflection": "*", - "phpmd/phpmd": "^2.9", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.99 || ^1.7.14", - "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", - "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", - "squizlabs/php_codesniffer": "^3.4" + "composer/composer": "^1.2", + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "^4.8.35 || ^5.7" }, "bin": [ - "bin/carbon" + "bin/upgrade-carbon" ], "type": "library", "extra": { - "branch-alias": { - "dev-3.x": "3.x-dev", - "dev-master": "2.x-dev" - }, + "update-helper": "Carbon\\Upgrade", "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] } }, "autoload": { "psr-4": { - "Carbon\\": "src/Carbon/" + "": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -807,164 +682,50 @@ { "name": "Brian Nesbitt", "email": "brian@nesbot.com", - "homepage": "https://markido.com" - }, - { - "name": "kylekatarnls", - "homepage": "https://github.com/kylekatarnls" + "homepage": "http://nesbot.com" } ], - "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", + "description": "A simple API extension for DateTime.", + "homepage": "http://carbon.nesbot.com", "keywords": [ "date", "datetime", "time" ], "support": { - "docs": "https://carbon.nesbot.com/docs", "issues": "https://github.com/briannesbitt/Carbon/issues", "source": "https://github.com/briannesbitt/Carbon" }, - "funding": [ - { - "url": "https://github.com/sponsors/kylekatarnls", - "type": "github" - }, - { - "url": "https://opencollective.com/Carbon#sponsor", - "type": "opencollective" - }, - { - "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", - "type": "tidelift" - } - ], - "time": "2024-01-25T10:35:09+00:00" - }, - { - "name": "psr/clock", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Clock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", - "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" - ], - "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" - }, - "time": "2022-11-25T14:36:26+00:00" + "time": "2019-10-14T05:51:36+00:00" }, { - "name": "psr/container", - "version": "1.1.2", + "name": "paragonie/random_compat", + "version": "v2.0.19", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241", + "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241", "shasum": "" }, "require": { - "php": ">=7.4.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } + "php": ">=5.2.0" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" - }, - "time": "2021-11-05T16:50:12+00:00" - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" + "require-dev": { + "phpunit/phpunit": "4.*|5.*" }, - "require": { - "php": ">=5.3.0" + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } + "files": [ + "lib/random.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -972,35 +733,37 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" } ], - "description": "Common interfaces for simple caching", + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" + "csprng", + "polyfill", + "pseudorandom", + "random" ], "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" }, - "time": "2017-10-23T01:57:42+00:00" + "time": "2020-10-15T10:06:57+00:00" }, { "name": "simshaun/recurr", - "version": "v4.0.5", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/simshaun/recurr.git", - "reference": "08b0b46879f598cd11dd42b4c1a9c221a0562749" + "reference": "d6f85ec8652366f45f6d1ba07292c9653939631a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simshaun/recurr/zipball/08b0b46879f598cd11dd42b4c1a9c221a0562749", - "reference": "08b0b46879f598cd11dd42b4c1a9c221a0562749", + "url": "https://api.github.com/repos/simshaun/recurr/zipball/d6f85ec8652366f45f6d1ba07292c9653939631a", + "reference": "d6f85ec8652366f45f6d1ba07292c9653939631a", "shasum": "" }, "require": { @@ -1008,7 +771,7 @@ "php": ">=5.5.0" }, "require-dev": { - "phpunit/phpunit": "~5.7" + "phpunit/phpunit": "~4.5" }, "type": "library", "extra": { @@ -1043,190 +806,46 @@ ], "support": { "issues": "https://github.com/simshaun/recurr/issues", - "source": "https://github.com/simshaun/recurr/tree/v4.0.5" - }, - "time": "2021-03-25T23:00:49+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.5.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/simshaun/recurr/tree/v4.0.2" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2019-11-18T17:48:08+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.29.0", + "version": "v1.19.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce", + "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" + "php": ">=5.3.3" }, "suggest": { "ext-mbstring": "For best performance" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "1.19-dev" + }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-01-29T20:11:03+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.29.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { "files": [ "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1234,10 +853,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -1247,16 +862,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0" }, "funding": [ { @@ -1272,52 +888,40 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2020-10-23T09:01:57+00:00" }, { "name": "symfony/translation", - "version": "v5.4.35", + "version": "v3.4.47", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "77d7d1e46f52827585e65e6cd6f52a2542e59c72" + "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/77d7d1e46f52827585e65e6cd6f52a2542e59c72", - "reference": "77d7d1e46f52827585e65e6cd6f52a2542e59c72", + "url": "https://api.github.com/repos/symfony/translation/zipball/be83ee6c065cb32becdb306ba61160d598b1ce88", + "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation-contracts": "^2.3" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/config": "<4.4", - "symfony/console": "<5.3", - "symfony/dependency-injection": "<5.0", - "symfony/http-kernel": "<5.0", - "symfony/twig-bundle": "<5.0", - "symfony/yaml": "<4.4" - }, - "provide": { - "symfony/translation-implementation": "2.3" + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/http-client-contracts": "^1.1|^2.0|^3.0", - "symfony/http-kernel": "^5.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.0", - "symfony/polyfill-intl-icu": "^1.21", - "symfony/service-contracts": "^1.1.2|^2|^3", - "symfony/yaml": "^4.4|^5.0|^6.0" + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -1326,9 +930,6 @@ }, "type": "library", "autoload": { - "files": [ - "Resources/functions.php" - ], "psr-4": { "Symfony\\Component\\Translation\\": "" }, @@ -1350,88 +951,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to internationalize your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v5.4.35" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-01-23T13:51:25+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v2.5.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/translation-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to translation", + "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/translation/tree/v3.4.47" }, "funding": [ { @@ -1447,7 +970,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2020-10-24T10:57:07+00:00" }, { "name": "tareq1988/wp-eloquent", @@ -1503,27 +1026,27 @@ "packages-dev": [ { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.2", + "version": "v0.7.1", "source": { "type": "git", "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" + "reference": "fe390591e0241955f22eb9ba327d137e501c771c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c", + "reference": "fe390591e0241955f22eb9ba327d137e501c771c", "shasum": "" }, "require": { "composer-plugin-api": "^1.0 || ^2.0", "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0" }, "require-dev": { "composer/composer": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0" + "phpcompatibility/php-compatibility": "^9.0", + "sensiolabs/security-checker": "^4.1.0" }, "type": "composer-plugin", "extra": { @@ -1544,10 +1067,6 @@ "email": "franck.nijhof@dealerdirect.com", "homepage": "http://www.frenck.nl", "role": "Developer / IT Manager" - }, - { - "name": "Contributors", - "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", @@ -1559,7 +1078,6 @@ "codesniffer", "composer", "installer", - "phpcbf", "phpcs", "plugin", "qa", @@ -1574,20 +1092,20 @@ "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" }, - "time": "2022-02-04T12:51:07+00:00" + "time": "2020-12-07T18:04:37+00:00" }, { "name": "fzaninotto/faker", - "version": "v1.9.2", + "version": "v1.9.1", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e" + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/848d8125239d7dbf8ab25cb7f054f1a630e68c2e", - "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", "shasum": "" }, "require": { @@ -1626,10 +1144,10 @@ ], "support": { "issues": "https://github.com/fzaninotto/Faker/issues", - "source": "https://github.com/fzaninotto/Faker/tree/v1.9.2" + "source": "https://github.com/fzaninotto/Faker/tree/v1.9.1" }, "abandoned": true, - "time": "2020-12-11T09:56:16+00:00" + "time": "2019-12-12T13:22:17+00:00" }, { "name": "phpcompatibility/php-compatibility", @@ -1695,28 +1213,28 @@ }, { "name": "phpcompatibility/phpcompatibility-paragonie", - "version": "1.3.2", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", - "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26" + "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/bba5a9dfec7fcfbd679cfaf611d86b4d3759da26", - "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b862bc32f7e860d0b164b199bd995e690b4b191c", + "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c", "shasum": "" }, "require": { "phpcompatibility/php-compatibility": "^9.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", + "dealerdirect/phpcodesniffer-composer-installer": "^0.5", "paragonie/random_compat": "dev-master", "paragonie/sodium_compat": "dev-master" }, "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || 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", @@ -1741,14 +1259,13 @@ "paragonie", "phpcs", "polyfill", - "standards", - "static analysis" + "standards" ], "support": { "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" }, - "time": "2022-10-25T01:46:02+00:00" + "time": "2019-11-04T15:17:54+00:00" }, { "name": "phpcompatibility/phpcompatibility-wp", @@ -1806,16 +1323,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.9.0", + "version": "3.5.8", "source": { "type": "git", - "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", "shasum": "" }, "require": { @@ -1825,11 +1342,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "bin": [ - "bin/phpcbf", - "bin/phpcs" + "bin/phpcs", + "bin/phpcbf" ], "type": "library", "extra": { @@ -1844,45 +1361,21 @@ "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" + "role": "lead" } ], "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", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", - "standards", - "static analysis" + "standards" ], "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" + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/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" - } - ], - "time": "2024-02-16T15:06:51+00:00" + "time": "2020-10-23T02:01:07+00:00" }, { "name": "wp-coding-standards/wpcs", @@ -1944,7 +1437,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.2" + "php": ">=5.6.37" }, "platform-dev": [], "plugin-api-version": "2.3.0" diff --git a/core/Notifications/Emails/New_Comment_Notification.php b/core/Notifications/Emails/New_Comment_Notification.php index fcc98eeaa..27d9b9c4a 100644 --- a/core/Notifications/Emails/New_Comment_Notification.php +++ b/core/Notifications/Emails/New_Comment_Notification.php @@ -75,7 +75,6 @@ public function trigger( $commentData, $request ) { ->where( 'entity_id', $request['commentable_id']) ->where( 'meta_key', 'title' ) ->first(); - $title = $filemeta->meta_value ?? ''; } diff --git a/core/Permissions/Create_Discuss.php b/core/Permissions/Create_Discuss.php index 2eda0f54a..c0b057b08 100644 --- a/core/Permissions/Create_Discuss.php +++ b/core/Permissions/Create_Discuss.php @@ -10,6 +10,7 @@ class Create_Discuss extends Abstract_Permission { public function check() { $project_id = $this->request->get_param( 'project_id' ); + // $pm_discussion_create_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_message' ); $pm_discussion_create_permission = apply_filters( 'pm_check_permission', pm_is_user_in_project( $project_id ), $project_id, 'create_message' ); if ( $pm_discussion_create_permission ) { diff --git a/core/Permissions/Delete_Task.php b/core/Permissions/Delete_Task.php index e8112ff85..898a41f59 100644 --- a/core/Permissions/Delete_Task.php +++ b/core/Permissions/Delete_Task.php @@ -14,13 +14,13 @@ public function check() { $task_id = $this->request->get_param( 'task_id' ); $task = Task::where( 'id', $task_id )->where( 'project_id', $project_id )->first(); - if ( isset( $task->created_by ) && (int) $task->created_by === $user_id ) { + if ( isset( $task->created_by ) && $task->created_by === $user_id ) { return true; } $pm_task_delete_permission = apply_filters( 'pm_check_permission', true, $project_id, 'create_task' ); - if ( ! $pm_task_delete_permission ) { + if ( !$pm_task_delete_permission ) { return false; } diff --git a/core/Permissions/Project_Manage_Capability.php b/core/Permissions/Project_Manage_Capability.php index fbf723f46..b9c5b19c4 100644 --- a/core/Permissions/Project_Manage_Capability.php +++ b/core/Permissions/Project_Manage_Capability.php @@ -13,7 +13,7 @@ public function check() { if ( empty( $project_id ) ) { $project_id = $this->request->get_param( 'project_id' ); } - + if ( empty( $user_id ) || empty( $project_id ) ) { return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); } @@ -25,7 +25,7 @@ public function check() { if ( pm_is_manager( $project_id, $user_id ) ) { return true; } - + return new \WP_Error( 'project', __( "You have no permission.", "wedevs-project-manager" ) ); } } diff --git a/cpm.php b/cpm.php index 00b8849a6..82c065afe 100644 --- a/cpm.php +++ b/cpm.php @@ -29,5 +29,4 @@ define( 'PM_BASENAME', plugin_basename(__FILE__) ); define( 'PM_PLUGIN_ASSEST', plugins_url( 'views/assets', __FILE__ ) ); - require __DIR__.'/bootstrap/start.php'; diff --git a/languages/wedevs-project-manager.php b/languages/wedevs-project-manager.php index ff1ad2bd1..20786b0c1 100644 --- a/languages/wedevs-project-manager.php +++ b/languages/wedevs-project-manager.php @@ -210,6 +210,7 @@ __( 'More', 'wedevs-project-manager' ), __( 'Overview', 'wedevs-project-manager' ), __( 'Activities', 'wedevs-project-manager' ), + __( 'Payments', 'wedevs-project-manager' ), __( 'Title', 'wedevs-project-manager' ), __( 'Choose task type', 'wedevs-project-manager' ), __( 'Write a comment...', 'wedevs-project-manager' ), @@ -415,6 +416,21 @@ __( 'Milestone name', 'wedevs-project-manager' ), __( 'Update Milestone', 'wedevs-project-manager' ), __( 'Milestone title required!', 'wedevs-project-manager' ), + __( 'GO', 'pm-pro' ), + __( 'Create Woo Order', 'pm-pro' ), + __( 'Adjust Manually', 'pm-pro' ), + __( 'Unpaid Hours', 'pm-pro' ), + __( 'Rate', 'pm-pro' ), + __( 'Manual Adjustment', 'pm-pro' ), + __( 'Purchase Date', 'pm-pro' ), + __( 'Status', 'pm-pro' ), + __( 'Select Status', 'pm-pro' ), + __( 'Ref. ID', 'pm-pro' ), + __( 'Update Manual Adjustment', 'pm-pro' ), + __( 'Submit', 'pm-pro' ), + __( 'Update', 'pm-pro' ), + __( 'Purchase date, Hours and Rate fields are required', 'pm-pro' ), + __( 'Dates fields are required', 'pm-pro' ), __( 'Upcoming Milestones', 'wedevs-project-manager' ), __( 'left -', 'wedevs-project-manager' ), __( 'Start time', 'wedevs-project-manager' ), @@ -445,6 +461,7 @@ __( 'Kanban board', 'wedevs-project-manager' ), __( 'Create', 'wedevs-project-manager' ), __( 'this email already exists with user name ', 'wedevs-project-manager' ), + __( 'Payments', 'pm-pro' ), __( 'Co-worker', 'wedevs-project-manager' ), __( 'Message: ', 'wedevs-project-manager' ), __( 'View Private', 'wedevs-project-manager' ), @@ -535,7 +552,7 @@ __( 'App Key', 'wedevs-project-manager' ), __( 'Secret', 'wedevs-project-manager' ), __( 'Cluster', 'wedevs-project-manager' ), - __( 'Overdue Task(s)', 'wedevs-project-manager' ), + __( 'Overdue Tasks(s)', 'wedevs-project-manager' ), __( 'View Full Report', 'wedevs-project-manager' ), __( 'Complete Task(s)', 'wedevs-project-manager' ), __( 'User Activities', 'wedevs-project-manager' ), diff --git a/libs/functions.php b/libs/functions.php index c0dd04e8a..94e7312df 100644 --- a/libs/functions.php +++ b/libs/functions.php @@ -1330,11 +1330,11 @@ function pm_access_capabilities( $cap = false ) { function pm_validate_assignee( $assignees){ - + if ( empty( $assignees ) ) { return []; } - + if ( !is_array( $assignees ) ) { return []; } @@ -1343,13 +1343,13 @@ function pm_validate_assignee( $assignees){ // Sanitize user_id and role_id $assignee['user_id'] = absint( $assignee['user_id'] ); $assignee['role_id'] = absint( $assignee['role_id'] ); - + // validate user_id exists $user = get_user_by( 'id', $assignee['user_id'] ); if ( ! $user ) { continue; } - + // validate role_id is a valid role in your system if ( ! get_role( $assignee['role_id'] ) ) { continue; @@ -1357,4 +1357,4 @@ function pm_validate_assignee( $assignees){ } return $assignees; -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9c29dbeed..b5e7740e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pmapi", - "version": "2.6.16", + "version": "2.6.7", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -6881,7 +6881,7 @@ "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "optional": true, "requires": { @@ -7030,7 +7030,7 @@ "detect-libc": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", - "integrity": "sha512-M2DlBIG+ImANd4hvyne5ijJ4AWf3HAKi7E8poBClIg9m++kiFscZ+lY6fyU75CkV+RwU9qASjILmKWFm1dD/EQ==", + "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=", "dev": true, "optional": true }, @@ -7804,9 +7804,9 @@ } }, "expand-template": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", - "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", + "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", "dev": true, "optional": true }, @@ -8311,6 +8311,11 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==" + }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", @@ -8450,7 +8455,7 @@ "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", "dev": true, "optional": true }, @@ -10884,8 +10889,7 @@ "lodash": { "version": "4.17.19", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "lodash.camelcase": { "version": "4.3.0", @@ -11184,9 +11188,9 @@ "dev": true }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", "dev": true, "optional": true }, @@ -11461,9 +11465,9 @@ "dev": true }, "nan": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", - "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", + "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", "dev": true, "optional": true }, @@ -11537,9 +11541,9 @@ "dev": true }, "node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.3.0.tgz", + "integrity": "sha512-zwm6vU3SsVgw3e9fu48JBaRBCJGIvAgysDsqtf5+vEexFE71bEOtaMWb5zr/zODZNzTPtQlqUUpC79k68Hspow==", "dev": true, "optional": true, "requires": { @@ -11557,30 +11561,63 @@ } }, "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "dev": true, "optional": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", "mkdirp": "^0.5.0", "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", "osenv": "0", - "request": "^2.87.0", + "request": "2", "rimraf": "2", "semver": "~5.3.0", "tar": "^2.0.0", "which": "1" }, "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1" + } + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true, + "optional": true + }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true, "optional": true } @@ -11882,7 +11919,7 @@ "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", "dev": true, "optional": true }, @@ -12061,8 +12098,7 @@ "dependencies": { "JSONStream": { "version": "1.3.3", - "resolved": false, - "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", + "bundled": true, "dev": true, "requires": { "jsonparse": "^1.2.0", @@ -12071,14 +12107,12 @@ }, "abbrev": { "version": "1.1.1", - "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "dev": true }, "agent-base": { "version": "4.2.0", - "resolved": false, - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", + "bundled": true, "dev": true, "requires": { "es6-promisify": "^5.0.0" @@ -12086,8 +12120,7 @@ }, "agentkeepalive": { "version": "3.4.1", - "resolved": false, - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", + "bundled": true, "dev": true, "requires": { "humanize-ms": "^1.2.1" @@ -12095,8 +12128,7 @@ }, "ansi-align": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "bundled": true, "dev": true, "requires": { "string-width": "^2.0.0" @@ -12104,14 +12136,12 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": false, - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bundled": true, "dev": true, "requires": { "color-convert": "^1.9.0" @@ -12119,32 +12149,27 @@ }, "ansicolors": { "version": "0.3.2", - "resolved": false, - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "bundled": true, "dev": true }, "ansistyles": { "version": "0.1.3", - "resolved": false, - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", + "bundled": true, "dev": true }, "aproba": { "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "dev": true }, "archy": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": false, - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "dev": true, "requires": { "delegates": "^1.0.0", @@ -12153,50 +12178,42 @@ }, "asap": { "version": "2.0.6", - "resolved": false, - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "bundled": true, "dev": true }, "asn1": { "version": "0.2.3", - "resolved": false, - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "dev": true }, "assert-plus": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "bundled": true, "dev": true }, "asynckit": { "version": "0.4.0", - "resolved": false, - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "dev": true }, "aws-sign2": { "version": "0.6.0", - "resolved": false, - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "dev": true }, "aws4": { "version": "1.7.0", - "resolved": false, - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -12205,8 +12222,7 @@ }, "bin-links": { "version": "1.1.2", - "resolved": false, - "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.0", @@ -12218,8 +12234,7 @@ }, "block-stream": { "version": "0.0.9", - "resolved": false, - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "dev": true, "requires": { "inherits": "~2.0.0" @@ -12227,14 +12242,12 @@ }, "bluebird": { "version": "3.5.1", - "resolved": false, - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "bundled": true, "dev": true }, "boom": { "version": "2.10.1", - "resolved": false, - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "dev": true, "requires": { "hoek": "2.x.x" @@ -12242,8 +12255,7 @@ }, "boxen": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "bundled": true, "dev": true, "requires": { "ansi-align": "^2.0.0", @@ -12257,8 +12269,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": false, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -12267,38 +12278,32 @@ }, "buffer-from": { "version": "1.0.0", - "resolved": false, - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "bundled": true, "dev": true }, "builtin-modules": { "version": "1.1.1", - "resolved": false, - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "builtins": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "bundled": true, "dev": true }, "byline": { "version": "5.0.0", - "resolved": false, - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", + "bundled": true, "dev": true }, "byte-size": { "version": "4.0.3", - "resolved": false, - "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==", + "bundled": true, "dev": true }, "cacache": { "version": "11.0.2", - "resolved": false, - "integrity": "sha512-hMiz7LN4w8sdfmKsvNs80ao/vf2JCGWWdpu95JyY90AJZRbZJmgE71dCefRiNf8OCqiZQDcUBfYiLlUNu4/j5A==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -12319,32 +12324,27 @@ }, "call-limit": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=", + "bundled": true, "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": false, - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "capture-stack-trace": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "bundled": true, "dev": true }, "caseless": { "version": "0.12.0", - "resolved": false, - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "dev": true }, "chalk": { "version": "2.4.1", - "resolved": false, - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -12354,20 +12354,17 @@ }, "chownr": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "bundled": true, "dev": true }, "ci-info": { "version": "1.1.3", - "resolved": false, - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", + "bundled": true, "dev": true }, "cidr-regex": { "version": "2.0.9", - "resolved": false, - "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", + "bundled": true, "dev": true, "requires": { "ip-regex": "^2.1.0" @@ -12375,14 +12372,12 @@ }, "cli-boxes": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "bundled": true, "dev": true }, "cli-columns": { "version": "3.1.2", - "resolved": false, - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", + "bundled": true, "dev": true, "requires": { "string-width": "^2.0.0", @@ -12391,8 +12386,7 @@ }, "cli-table3": { "version": "0.5.0", - "resolved": false, - "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", + "bundled": true, "dev": true, "requires": { "colors": "^1.1.2", @@ -12402,8 +12396,7 @@ }, "cliui": { "version": "4.1.0", - "resolved": false, - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "bundled": true, "dev": true, "requires": { "string-width": "^2.1.1", @@ -12413,14 +12406,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": false, - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -12430,14 +12421,12 @@ }, "clone": { "version": "1.0.4", - "resolved": false, - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "bundled": true, "dev": true }, "cmd-shim": { "version": "2.0.2", - "resolved": false, - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -12446,20 +12435,17 @@ }, "co": { "version": "4.6.0", - "resolved": false, - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "dev": true }, "code-point-at": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "color-convert": { "version": "1.9.1", - "resolved": false, - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "bundled": true, "dev": true, "requires": { "color-name": "^1.1.1" @@ -12467,21 +12453,18 @@ }, "color-name": { "version": "1.1.3", - "resolved": false, - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "bundled": true, "dev": true }, "colors": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", + "bundled": true, "dev": true, "optional": true }, "columnify": { "version": "1.5.4", - "resolved": false, - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "bundled": true, "dev": true, "requires": { "strip-ansi": "^3.0.0", @@ -12490,8 +12473,7 @@ }, "combined-stream": { "version": "1.0.6", - "resolved": false, - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "bundled": true, "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -12499,14 +12481,12 @@ }, "concat-map": { "version": "0.0.1", - "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "concat-stream": { "version": "1.6.2", - "resolved": false, - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "bundled": true, "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -12517,8 +12497,7 @@ }, "config-chain": { "version": "1.1.11", - "resolved": false, - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", + "bundled": true, "dev": true, "requires": { "ini": "^1.3.4", @@ -12527,8 +12506,7 @@ }, "configstore": { "version": "3.1.2", - "resolved": false, - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "bundled": true, "dev": true, "requires": { "dot-prop": "^4.1.0", @@ -12541,14 +12519,12 @@ }, "console-control-strings": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "copy-concurrently": { "version": "1.0.5", - "resolved": false, - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.1", @@ -12561,22 +12537,19 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "core-util-is": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true }, "create-error-class": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "bundled": true, "dev": true, "requires": { "capture-stack-trace": "^1.0.0" @@ -12584,8 +12557,7 @@ }, "cross-spawn": { "version": "5.1.0", - "resolved": false, - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { "lru-cache": "^4.0.1", @@ -12595,8 +12567,7 @@ }, "cryptiles": { "version": "2.0.5", - "resolved": false, - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "dev": true, "requires": { "boom": "2.x.x" @@ -12604,20 +12575,17 @@ }, "crypto-random-string": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "bundled": true, "dev": true }, "cyclist": { "version": "0.2.2", - "resolved": false, - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "bundled": true, "dev": true }, "dashdash": { "version": "1.14.1", - "resolved": false, - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -12625,16 +12593,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true } } }, "debug": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -12642,40 +12608,34 @@ "dependencies": { "ms": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true } } }, "debuglog": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "deep-extend": { "version": "0.5.1", - "resolved": false, - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "bundled": true, "dev": true }, "defaults": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "bundled": true, "dev": true, "requires": { "clone": "^1.0.2" @@ -12683,32 +12643,27 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "bundled": true, "dev": true }, "delegates": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true }, "detect-indent": { "version": "5.0.0", - "resolved": false, - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "bundled": true, "dev": true }, "detect-newline": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "bundled": true, "dev": true }, "dezalgo": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "bundled": true, "dev": true, "requires": { "asap": "^2.0.0", @@ -12717,8 +12672,7 @@ }, "dot-prop": { "version": "4.2.0", - "resolved": false, - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "bundled": true, "dev": true, "requires": { "is-obj": "^1.0.0" @@ -12726,20 +12680,17 @@ }, "dotenv": { "version": "5.0.1", - "resolved": false, - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "bundled": true, "dev": true }, "duplexer3": { "version": "0.1.4", - "resolved": false, - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "bundled": true, "dev": true }, "duplexify": { "version": "3.6.0", - "resolved": false, - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.0.0", @@ -12750,8 +12701,7 @@ }, "ecc-jsbn": { "version": "0.1.1", - "resolved": false, - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -12760,14 +12710,12 @@ }, "editor": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", + "bundled": true, "dev": true }, "encoding": { "version": "0.1.12", - "resolved": false, - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "bundled": true, "dev": true, "requires": { "iconv-lite": "~0.4.13" @@ -12775,8 +12723,7 @@ }, "end-of-stream": { "version": "1.4.1", - "resolved": false, - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "bundled": true, "dev": true, "requires": { "once": "^1.4.0" @@ -12784,14 +12731,12 @@ }, "err-code": { "version": "1.1.2", - "resolved": false, - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "bundled": true, "dev": true }, "errno": { "version": "0.1.7", - "resolved": false, - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "bundled": true, "dev": true, "requires": { "prr": "~1.0.1" @@ -12799,14 +12744,12 @@ }, "es6-promise": { "version": "4.2.4", - "resolved": false, - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "bundled": true, "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": false, - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "bundled": true, "dev": true, "requires": { "es6-promise": "^4.0.3" @@ -12814,14 +12757,12 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": false, - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": false, - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "^5.0.1", @@ -12835,32 +12776,27 @@ }, "extend": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "dev": true }, "extsprintf": { "version": "1.3.0", - "resolved": false, - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "bundled": true, "dev": true }, "figgy-pudding": { "version": "3.1.0", - "resolved": false, - "integrity": "sha512-Gi2vIue0ec6P/7LNpueGhLuvfF2ztuterl8YFBQn1yKgIS46noGxCbi+vviPdObNYtgUSh5FpHy5q0Cw9XhxKQ==", + "bundled": true, "dev": true }, "find-npm-prefix": { "version": "1.0.2", - "resolved": false, - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==", + "bundled": true, "dev": true }, "find-up": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "^2.0.0" @@ -12868,8 +12804,7 @@ }, "flush-write-stream": { "version": "1.0.3", - "resolved": false, - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "bundled": true, "dev": true, "requires": { "inherits": "^2.0.1", @@ -12878,14 +12813,12 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": false, - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "dev": true }, "form-data": { "version": "2.1.4", - "resolved": false, - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "dev": true, "requires": { "asynckit": "^0.4.0", @@ -12895,8 +12828,7 @@ }, "from2": { "version": "2.3.0", - "resolved": false, - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "bundled": true, "dev": true, "requires": { "inherits": "^2.0.1", @@ -12905,8 +12837,7 @@ }, "fs-minipass": { "version": "1.2.5", - "resolved": false, - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "dev": true, "requires": { "minipass": "^2.2.1" @@ -12914,8 +12845,7 @@ }, "fs-vacuum": { "version": "1.2.10", - "resolved": false, - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -12925,8 +12855,7 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": false, - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -12937,22 +12866,19 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "fs.realpath": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "fstream": { "version": "1.0.11", - "resolved": false, - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -12963,8 +12889,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": false, - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "dev": true, "requires": { "aproba": "^1.0.3", @@ -12979,8 +12904,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -12992,14 +12916,12 @@ }, "genfun": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=", + "bundled": true, "dev": true }, "gentle-fs": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.2", @@ -13014,28 +12936,24 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": false, - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "get-caller-file": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "getpass": { "version": "0.1.7", - "resolved": false, - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -13043,16 +12961,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true } } }, "glob": { "version": "7.1.2", - "resolved": false, - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -13065,8 +12981,7 @@ }, "global-dirs": { "version": "0.1.1", - "resolved": false, - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "bundled": true, "dev": true, "requires": { "ini": "^1.3.4" @@ -13074,8 +12989,7 @@ }, "got": { "version": "6.7.1", - "resolved": false, - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "bundled": true, "dev": true, "requires": { "create-error-class": "^3.0.0", @@ -13093,20 +13007,17 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": false, - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "har-schema": { "version": "1.0.5", - "resolved": false, - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "dev": true }, "har-validator": { "version": "4.2.1", - "resolved": false, - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "dev": true, "requires": { "ajv": "^4.9.1", @@ -13115,8 +13026,7 @@ "dependencies": { "ajv": { "version": "4.11.8", - "resolved": false, - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "dev": true, "requires": { "co": "^4.6.0", @@ -13127,20 +13037,17 @@ }, "has-flag": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "bundled": true, "dev": true }, "has-unicode": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true }, "hawk": { "version": "3.1.3", - "resolved": false, - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "dev": true, "requires": { "boom": "2.x.x", @@ -13151,26 +13058,22 @@ }, "hoek": { "version": "2.16.3", - "resolved": false, - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "bundled": true, "dev": true }, "hosted-git-info": { "version": "2.6.0", - "resolved": false, - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "bundled": true, "dev": true }, "http-cache-semantics": { "version": "3.8.1", - "resolved": false, - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "bundled": true, "dev": true }, "http-proxy-agent": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "bundled": true, "dev": true, "requires": { "agent-base": "4", @@ -13179,8 +13082,7 @@ }, "http-signature": { "version": "1.1.1", - "resolved": false, - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^0.2.0", @@ -13190,8 +13092,7 @@ }, "https-proxy-agent": { "version": "2.2.1", - "resolved": false, - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "bundled": true, "dev": true, "requires": { "agent-base": "^4.1.0", @@ -13200,8 +13101,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": false, - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "bundled": true, "dev": true, "requires": { "ms": "^2.0.0" @@ -13209,8 +13109,7 @@ }, "iconv-lite": { "version": "0.4.23", - "resolved": false, - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "bundled": true, "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -13218,14 +13117,12 @@ }, "iferr": { "version": "1.0.0", - "resolved": false, - "integrity": "sha512-0+ecqiP/cxgnNBIPi+TgJlaxE7sFp2N3kBFg17klQUdf24YKiaEV6b9QgEqOlD5vCVCE0U7OV9lPSN2OfS4zoQ==", + "bundled": true, "dev": true }, "ignore-walk": { "version": "3.0.1", - "resolved": false, - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "dev": true, "requires": { "minimatch": "^3.0.4" @@ -13233,20 +13130,17 @@ }, "import-lazy": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": false, - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": false, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "^1.3.0", @@ -13255,20 +13149,17 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.5", - "resolved": false, - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "dev": true }, "init-package-json": { "version": "1.10.3", - "resolved": false, - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "bundled": true, "dev": true, "requires": { "glob": "^7.1.1", @@ -13283,26 +13174,22 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "ip": { "version": "1.1.5", - "resolved": false, - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "bundled": true, "dev": true }, "ip-regex": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "^1.0.0" @@ -13310,8 +13197,7 @@ }, "is-ci": { "version": "1.1.0", - "resolved": false, - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "bundled": true, "dev": true, "requires": { "ci-info": "^1.0.0" @@ -13319,8 +13205,7 @@ }, "is-cidr": { "version": "2.0.6", - "resolved": false, - "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", + "bundled": true, "dev": true, "requires": { "cidr-regex": "^2.0.8" @@ -13328,8 +13213,7 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -13337,8 +13221,7 @@ }, "is-installed-globally": { "version": "0.1.0", - "resolved": false, - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "bundled": true, "dev": true, "requires": { "global-dirs": "^0.1.0", @@ -13347,20 +13230,17 @@ }, "is-npm": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "bundled": true, "dev": true }, "is-obj": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "bundled": true, "dev": true }, "is-path-inside": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "bundled": true, "dev": true, "requires": { "path-is-inside": "^1.0.1" @@ -13368,69 +13248,58 @@ }, "is-redirect": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "bundled": true, "dev": true }, "is-retry-allowed": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-typedarray": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isstream": { "version": "0.1.2", - "resolved": false, - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "dev": true }, "jsbn": { "version": "0.1.1", - "resolved": false, - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "dev": true, "optional": true }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": false, - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "bundled": true, "dev": true }, "json-schema": { "version": "0.2.3", - "resolved": false, - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "dev": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "dev": true, "requires": { "jsonify": "~0.0.0" @@ -13438,26 +13307,22 @@ }, "json-stringify-safe": { "version": "5.0.1", - "resolved": false, - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "bundled": true, "dev": true }, "jsonify": { "version": "0.0.0", - "resolved": false, - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "dev": true }, "jsonparse": { "version": "1.3.1", - "resolved": false, - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "bundled": true, "dev": true }, "jsprim": { "version": "1.4.1", - "resolved": false, - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "bundled": true, "dev": true, "requires": { "assert-plus": "1.0.0", @@ -13468,16 +13333,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true } } }, "latest-version": { "version": "3.1.0", - "resolved": false, - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "bundled": true, "dev": true, "requires": { "package-json": "^4.0.0" @@ -13485,14 +13348,12 @@ }, "lazy-property": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=", + "bundled": true, "dev": true }, "lcid": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "^1.0.0" @@ -13500,8 +13361,7 @@ }, "libcipm": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-yTWR7Ch7Mg891KZj+1yhcWhztO6tuAcBLdmCvBXv2pbCzV5/DOEDjDQdZmmYn5mFwI96kOSu+OIMRTmLsxrNZw==", + "bundled": true, "dev": true, "requires": { "bin-links": "^1.1.2", @@ -13521,8 +13381,7 @@ }, "libnpmhook": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", + "bundled": true, "dev": true, "requires": { "figgy-pudding": "^3.1.0", @@ -13531,8 +13390,7 @@ "dependencies": { "npm-registry-fetch": { "version": "3.1.1", - "resolved": false, - "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -13546,8 +13404,7 @@ }, "libnpx": { "version": "10.2.0", - "resolved": false, - "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", + "bundled": true, "dev": true, "requires": { "dotenv": "^5.0.1", @@ -13562,8 +13419,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "^2.0.0", @@ -13572,8 +13428,7 @@ }, "lock-verify": { "version": "2.0.2", - "resolved": false, - "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", + "bundled": true, "dev": true, "requires": { "npm-package-arg": "^5.1.2 || 6", @@ -13582,8 +13437,7 @@ }, "lockfile": { "version": "1.0.4", - "resolved": false, - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "bundled": true, "dev": true, "requires": { "signal-exit": "^3.0.2" @@ -13591,14 +13445,12 @@ }, "lodash._baseindexof": { "version": "3.1.0", - "resolved": false, - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", + "bundled": true, "dev": true }, "lodash._baseuniq": { "version": "4.6.0", - "resolved": false, - "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", + "bundled": true, "dev": true, "requires": { "lodash._createset": "~4.0.0", @@ -13607,20 +13459,17 @@ }, "lodash._bindcallback": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "bundled": true, "dev": true }, "lodash._cacheindexof": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", + "bundled": true, "dev": true }, "lodash._createcache": { "version": "3.1.2", - "resolved": false, - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", + "bundled": true, "dev": true, "requires": { "lodash._getnative": "^3.0.0" @@ -13628,62 +13477,52 @@ }, "lodash._createset": { "version": "4.0.3", - "resolved": false, - "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", + "bundled": true, "dev": true }, "lodash._getnative": { "version": "3.9.1", - "resolved": false, - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "bundled": true, "dev": true }, "lodash._root": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "bundled": true, "dev": true }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": false, - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "bundled": true, "dev": true }, "lodash.restparam": { "version": "3.6.1", - "resolved": false, - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "bundled": true, "dev": true }, "lodash.union": { "version": "4.6.0", - "resolved": false, - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "bundled": true, "dev": true }, "lodash.uniq": { "version": "4.5.0", - "resolved": false, - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "bundled": true, "dev": true }, "lodash.without": { "version": "4.4.0", - "resolved": false, - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", + "bundled": true, "dev": true }, "lowercase-keys": { "version": "1.0.1", - "resolved": false, - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "bundled": true, "dev": true }, "lru-cache": { "version": "4.1.3", - "resolved": false, - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -13692,8 +13531,7 @@ }, "make-dir": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "bundled": true, "dev": true, "requires": { "pify": "^3.0.0" @@ -13701,8 +13539,7 @@ }, "make-fetch-happen": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "bundled": true, "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -13720,14 +13557,12 @@ }, "meant": { "version": "1.0.1", - "resolved": false, - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -13735,14 +13570,12 @@ }, "mime-db": { "version": "1.33.0", - "resolved": false, - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "bundled": true, "dev": true }, "mime-types": { "version": "2.1.18", - "resolved": false, - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "bundled": true, "dev": true, "requires": { "mime-db": "~1.33.0" @@ -13750,14 +13583,12 @@ }, "mimic-fn": { "version": "1.2.0", - "resolved": false, - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -13765,14 +13596,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": false, - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "minipass": { "version": "2.3.3", - "resolved": false, - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.2", @@ -13781,16 +13610,14 @@ "dependencies": { "yallist": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "bundled": true, "dev": true } } }, "minizlib": { "version": "1.1.0", - "resolved": false, - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "bundled": true, "dev": true, "requires": { "minipass": "^2.2.1" @@ -13798,8 +13625,7 @@ }, "mississippi": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "bundled": true, "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -13816,8 +13642,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": false, - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -13825,8 +13650,7 @@ }, "move-concurrently": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.1", @@ -13839,20 +13663,17 @@ }, "ms": { "version": "2.1.1", - "resolved": false, - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "bundled": true, "dev": true }, "mute-stream": { "version": "0.0.7", - "resolved": false, - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "bundled": true, "dev": true }, "node-fetch-npm": { "version": "2.0.2", - "resolved": false, - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "bundled": true, "dev": true, "requires": { "encoding": "^0.1.11", @@ -13862,8 +13683,7 @@ }, "node-gyp": { "version": "3.7.0", - "resolved": false, - "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", + "bundled": true, "dev": true, "requires": { "fstream": "^1.0.0", @@ -13882,8 +13702,7 @@ "dependencies": { "nopt": { "version": "3.0.6", - "resolved": false, - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "bundled": true, "dev": true, "requires": { "abbrev": "1" @@ -13891,14 +13710,12 @@ }, "semver": { "version": "5.3.0", - "resolved": false, - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "dev": true }, "tar": { "version": "2.2.1", - "resolved": false, - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "dev": true, "requires": { "block-stream": "*", @@ -13910,8 +13727,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "requires": { "abbrev": "1", @@ -13920,8 +13736,7 @@ }, "normalize-package-data": { "version": "2.4.0", - "resolved": false, - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -13932,8 +13747,7 @@ }, "npm-audit-report": { "version": "1.3.1", - "resolved": false, - "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", + "bundled": true, "dev": true, "requires": { "cli-table3": "^0.5.0", @@ -13942,20 +13756,17 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": false, - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "bundled": true, "dev": true }, "npm-cache-filename": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=", + "bundled": true, "dev": true }, "npm-install-checks": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", + "bundled": true, "dev": true, "requires": { "semver": "^2.3.0 || 3.x || 4 || 5" @@ -13963,8 +13774,7 @@ }, "npm-lifecycle": { "version": "2.0.3", - "resolved": false, - "integrity": "sha512-0U4Iim5ix2NHUT672G7FBpldJX0N2xKBjJqRTAzioEJjb6I6KpQXq+y1sB5EDSjKaAX8VCC9qPK31Jy+p3ix5A==", + "bundled": true, "dev": true, "requires": { "byline": "^5.0.0", @@ -13979,14 +13789,12 @@ }, "npm-logical-tree": { "version": "1.2.1", - "resolved": false, - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==", + "bundled": true, "dev": true }, "npm-package-arg": { "version": "6.1.0", - "resolved": false, - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "^2.6.0", @@ -13997,8 +13805,7 @@ }, "npm-packlist": { "version": "1.1.10", - "resolved": false, - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "bundled": true, "dev": true, "requires": { "ignore-walk": "^3.0.1", @@ -14007,8 +13814,7 @@ }, "npm-pick-manifest": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", + "bundled": true, "dev": true, "requires": { "npm-package-arg": "^6.0.0", @@ -14017,8 +13823,7 @@ }, "npm-profile": { "version": "3.0.2", - "resolved": false, - "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.2 || 2", @@ -14027,8 +13832,7 @@ }, "npm-registry-client": { "version": "8.5.1", - "resolved": false, - "integrity": "sha512-7rjGF2eA7hKDidGyEWmHTiKfXkbrcQAsGL/Rh4Rt3x3YNRNHhwaTzVJfW3aNvvlhg4G62VCluif0sLCb/i51Hg==", + "bundled": true, "dev": true, "requires": { "concat-stream": "^1.5.2", @@ -14047,14 +13851,12 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": false, - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "bundled": true, "dev": true }, "ssri": { "version": "5.3.0", - "resolved": false, - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -14064,8 +13866,7 @@ }, "npm-registry-fetch": { "version": "1.1.0", - "resolved": false, - "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -14078,8 +13879,7 @@ "dependencies": { "cacache": { "version": "10.0.4", - "resolved": false, - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -14099,8 +13899,7 @@ "dependencies": { "mississippi": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "bundled": true, "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -14119,14 +13918,12 @@ }, "figgy-pudding": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==", + "bundled": true, "dev": true }, "make-fetch-happen": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", + "bundled": true, "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -14144,8 +13941,7 @@ }, "pump": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -14154,14 +13950,12 @@ }, "smart-buffer": { "version": "1.1.15", - "resolved": false, - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", + "bundled": true, "dev": true }, "socks": { "version": "1.1.10", - "resolved": false, - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "bundled": true, "dev": true, "requires": { "ip": "^1.1.4", @@ -14170,8 +13964,7 @@ }, "socks-proxy-agent": { "version": "3.0.1", - "resolved": false, - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", + "bundled": true, "dev": true, "requires": { "agent-base": "^4.1.0", @@ -14180,8 +13973,7 @@ }, "ssri": { "version": "5.3.0", - "resolved": false, - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -14191,8 +13983,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": false, - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "^2.0.0" @@ -14200,14 +13991,12 @@ }, "npm-user-validate": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=", + "bundled": true, "dev": true }, "npmlog": { "version": "4.1.2", - "resolved": false, - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "dev": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -14218,26 +14007,22 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "oauth-sign": { "version": "0.8.2", - "resolved": false, - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "once": { "version": "1.4.0", - "resolved": false, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1" @@ -14245,20 +14030,17 @@ }, "opener": { "version": "1.4.3", - "resolved": false, - "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=", + "bundled": true, "dev": true }, "os-homedir": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "^0.7.0", @@ -14268,14 +14050,12 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true }, "osenv": { "version": "0.1.5", - "resolved": false, - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "dev": true, "requires": { "os-homedir": "^1.0.0", @@ -14284,14 +14064,12 @@ }, "p-finally": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "dev": true, "requires": { "p-try": "^1.0.0" @@ -14299,8 +14077,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { "p-limit": "^1.1.0" @@ -14308,14 +14085,12 @@ }, "p-try": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "package-json": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "bundled": true, "dev": true, "requires": { "got": "^6.7.1", @@ -14326,8 +14101,7 @@ }, "pacote": { "version": "8.1.6", - "resolved": false, - "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -14359,8 +14133,7 @@ }, "parallel-transform": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "bundled": true, "dev": true, "requires": { "cyclist": "~0.2.2", @@ -14370,62 +14143,52 @@ }, "path-exists": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-is-inside": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "performance-now": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "dev": true }, "pify": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "bundled": true, "dev": true }, "prepend-http": { "version": "1.0.4", - "resolved": false, - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "bundled": true, "dev": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": false, - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "bundled": true, "dev": true }, "promise-retry": { "version": "1.1.1", - "resolved": false, - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "bundled": true, "dev": true, "requires": { "err-code": "^1.0.0", @@ -14434,16 +14197,14 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": false, - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "bundled": true, "dev": true } } }, "promzard": { "version": "0.3.0", - "resolved": false, - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", + "bundled": true, "dev": true, "requires": { "read": "1" @@ -14451,14 +14212,12 @@ }, "proto-list": { "version": "1.2.4", - "resolved": false, - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "bundled": true, "dev": true }, "protoduck": { "version": "5.0.0", - "resolved": false, - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", + "bundled": true, "dev": true, "requires": { "genfun": "^4.0.1" @@ -14466,20 +14225,17 @@ }, "prr": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "pump": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -14488,8 +14244,7 @@ }, "pumpify": { "version": "1.5.1", - "resolved": false, - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "bundled": true, "dev": true, "requires": { "duplexify": "^3.6.0", @@ -14499,8 +14254,7 @@ "dependencies": { "pump": { "version": "2.0.1", - "resolved": false, - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -14511,26 +14265,22 @@ }, "punycode": { "version": "1.4.1", - "resolved": false, - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "dev": true }, "qrcode-terminal": { "version": "0.12.0", - "resolved": false, - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "bundled": true, "dev": true }, "qs": { "version": "6.4.0", - "resolved": false, - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "dev": true }, "query-string": { "version": "6.1.0", - "resolved": false, - "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", + "bundled": true, "dev": true, "requires": { "decode-uri-component": "^0.2.0", @@ -14539,14 +14289,12 @@ }, "qw": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=", + "bundled": true, "dev": true }, "rc": { "version": "1.2.7", - "resolved": false, - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "dev": true, "requires": { "deep-extend": "^0.5.1", @@ -14557,16 +14305,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true } } }, "read": { "version": "1.0.7", - "resolved": false, - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "bundled": true, "dev": true, "requires": { "mute-stream": "~0.0.4" @@ -14574,8 +14320,7 @@ }, "read-cmd-shim": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2" @@ -14583,8 +14328,7 @@ }, "read-installed": { "version": "4.0.3", - "resolved": false, - "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", + "bundled": true, "dev": true, "requires": { "debuglog": "^1.0.1", @@ -14598,8 +14342,7 @@ }, "read-package-json": { "version": "2.0.13", - "resolved": false, - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "bundled": true, "dev": true, "requires": { "glob": "^7.1.1", @@ -14611,8 +14354,7 @@ }, "read-package-tree": { "version": "5.2.1", - "resolved": false, - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", + "bundled": true, "dev": true, "requires": { "debuglog": "^1.0.1", @@ -14624,8 +14366,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -14639,8 +14380,7 @@ }, "readdir-scoped-modules": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", + "bundled": true, "dev": true, "requires": { "debuglog": "^1.0.1", @@ -14651,8 +14391,7 @@ }, "registry-auth-token": { "version": "3.3.2", - "resolved": false, - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "bundled": true, "dev": true, "requires": { "rc": "^1.1.6", @@ -14661,8 +14400,7 @@ }, "registry-url": { "version": "3.1.0", - "resolved": false, - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "bundled": true, "dev": true, "requires": { "rc": "^1.0.1" @@ -14670,8 +14408,7 @@ }, "request": { "version": "2.81.0", - "resolved": false, - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "dev": true, "requires": { "aws-sign2": "~0.6.0", @@ -14700,32 +14437,27 @@ }, "require-directory": { "version": "2.1.1", - "resolved": false, - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "bundled": true, "dev": true }, "retry": { "version": "0.12.0", - "resolved": false, - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "bundled": true, "dev": true }, "rimraf": { "version": "2.6.2", - "resolved": false, - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "^7.0.5" @@ -14733,8 +14465,7 @@ }, "run-queue": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.1" @@ -14742,26 +14473,22 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": false, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "bundled": true, "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "dev": true }, "semver": { "version": "5.5.0", - "resolved": false, - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "dev": true }, "semver-diff": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "bundled": true, "dev": true, "requires": { "semver": "^5.0.3" @@ -14769,14 +14496,12 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "sha": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -14785,8 +14510,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -14794,38 +14518,32 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slash": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": false, - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "smart-buffer": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", + "bundled": true, "dev": true }, "sntp": { "version": "1.0.9", - "resolved": false, - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "dev": true, "requires": { "hoek": "2.x.x" @@ -14833,8 +14551,7 @@ }, "socks": { "version": "2.2.0", - "resolved": false, - "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", + "bundled": true, "dev": true, "requires": { "ip": "^1.1.5", @@ -14843,8 +14560,7 @@ }, "socks-proxy-agent": { "version": "4.0.1", - "resolved": false, - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "bundled": true, "dev": true, "requires": { "agent-base": "~4.2.0", @@ -14853,14 +14569,12 @@ }, "sorted-object": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=", + "bundled": true, "dev": true }, "sorted-union-stream": { "version": "2.1.3", - "resolved": false, - "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", + "bundled": true, "dev": true, "requires": { "from2": "^1.3.0", @@ -14869,8 +14583,7 @@ "dependencies": { "from2": { "version": "1.3.0", - "resolved": false, - "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", + "bundled": true, "dev": true, "requires": { "inherits": "~2.0.1", @@ -14879,14 +14592,12 @@ }, "isarray": { "version": "0.0.1", - "resolved": false, - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "bundled": true, "dev": true }, "readable-stream": { "version": "1.1.14", - "resolved": false, - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "bundled": true, "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -14897,16 +14608,14 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": false, - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "bundled": true, "dev": true } } }, "spdx-correct": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -14915,14 +14624,12 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": false, - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -14931,14 +14638,12 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": false, - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "bundled": true, "dev": true }, "sshpk": { "version": "1.14.2", - "resolved": false, - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "bundled": true, "dev": true, "requires": { "asn1": "~0.2.3", @@ -14954,22 +14659,19 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true } } }, "ssri": { "version": "6.0.0", - "resolved": false, - "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==", + "bundled": true, "dev": true }, "stream-each": { "version": "1.2.2", - "resolved": false, - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -14978,8 +14680,7 @@ }, "stream-iterate": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", + "bundled": true, "dev": true, "requires": { "readable-stream": "^2.1.5", @@ -14988,20 +14689,17 @@ }, "stream-shift": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "bundled": true, "dev": true }, "strict-uri-encode": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "bundled": true, "dev": true }, "string-width": { "version": "2.1.1", - "resolved": false, - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -15010,20 +14708,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": false, - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -15033,8 +14728,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "~5.1.0" @@ -15042,14 +14736,12 @@ }, "stringstream": { "version": "0.0.6", - "resolved": false, - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "bundled": true, "dev": true }, "strip-ansi": { "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -15057,20 +14749,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "strip-json-comments": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true }, "supports-color": { "version": "5.4.0", - "resolved": false, - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "bundled": true, "dev": true, "requires": { "has-flag": "^3.0.0" @@ -15078,8 +14767,7 @@ }, "tar": { "version": "4.4.4", - "resolved": false, - "integrity": "sha512-mq9ixIYfNF9SK0IS/h2HKMu8Q2iaCuhDDsZhdEag/FHv8fOaYld4vN7ouMgcSSt5WKZzPs8atclTcJm36OTh4w==", + "bundled": true, "dev": true, "requires": { "chownr": "^1.0.1", @@ -15093,16 +14781,14 @@ "dependencies": { "yallist": { "version": "3.0.2", - "resolved": false, - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "bundled": true, "dev": true } } }, "term-size": { "version": "1.2.0", - "resolved": false, - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "bundled": true, "dev": true, "requires": { "execa": "^0.7.0" @@ -15110,20 +14796,17 @@ }, "text-table": { "version": "0.2.0", - "resolved": false, - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "bundled": true, "dev": true }, "through": { "version": "2.3.8", - "resolved": false, - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "bundled": true, "dev": true }, "through2": { "version": "2.0.3", - "resolved": false, - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "bundled": true, "dev": true, "requires": { "readable-stream": "^2.1.5", @@ -15132,20 +14815,17 @@ }, "timed-out": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "bundled": true, "dev": true }, "tiny-relative-date": { "version": "1.3.0", - "resolved": false, - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==", + "bundled": true, "dev": true }, "tough-cookie": { "version": "2.3.4", - "resolved": false, - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "bundled": true, "dev": true, "requires": { "punycode": "^1.4.1" @@ -15153,8 +14833,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": false, - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.0.1" @@ -15162,33 +14841,28 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": false, - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "dev": true, "optional": true }, "typedarray": { "version": "0.0.6", - "resolved": false, - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "bundled": true, "dev": true }, "uid-number": { "version": "0.0.6", - "resolved": false, - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "dev": true }, "umask": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", + "bundled": true, "dev": true }, "unique-filename": { "version": "1.1.0", - "resolved": false, - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "bundled": true, "dev": true, "requires": { "unique-slug": "^2.0.0" @@ -15196,8 +14870,7 @@ }, "unique-slug": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "bundled": true, "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -15205,8 +14878,7 @@ }, "unique-string": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "bundled": true, "dev": true, "requires": { "crypto-random-string": "^1.0.0" @@ -15214,20 +14886,17 @@ }, "unpipe": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "bundled": true, "dev": true }, "unzip-response": { "version": "2.0.1", - "resolved": false, - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "bundled": true, "dev": true }, "update-notifier": { "version": "2.5.0", - "resolved": false, - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "bundled": true, "dev": true, "requires": { "boxen": "^1.2.1", @@ -15244,8 +14913,7 @@ }, "url-parse-lax": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "bundled": true, "dev": true, "requires": { "prepend-http": "^1.0.1" @@ -15253,26 +14921,22 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true }, "util-extend": { "version": "1.0.3", - "resolved": false, - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", + "bundled": true, "dev": true }, "uuid": { "version": "3.3.2", - "resolved": false, - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "bundled": true, "dev": true }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": false, - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -15281,8 +14945,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "bundled": true, "dev": true, "requires": { "builtins": "^1.0.3" @@ -15290,8 +14953,7 @@ }, "verror": { "version": "1.10.0", - "resolved": false, - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -15301,16 +14963,14 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": false, - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true } } }, "wcwidth": { "version": "1.0.1", - "resolved": false, - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "bundled": true, "dev": true, "requires": { "defaults": "^1.0.3" @@ -15318,8 +14978,7 @@ }, "which": { "version": "1.3.1", - "resolved": false, - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "bundled": true, "dev": true, "requires": { "isexe": "^2.0.0" @@ -15327,14 +14986,12 @@ }, "which-module": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "wide-align": { "version": "1.1.2", - "resolved": false, - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "dev": true, "requires": { "string-width": "^1.0.2" @@ -15342,8 +14999,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -15355,8 +15011,7 @@ }, "widest-line": { "version": "2.0.0", - "resolved": false, - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "bundled": true, "dev": true, "requires": { "string-width": "^2.1.1" @@ -15364,8 +15019,7 @@ }, "worker-farm": { "version": "1.6.0", - "resolved": false, - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "bundled": true, "dev": true, "requires": { "errno": "~0.1.7" @@ -15373,8 +15027,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": false, - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "^1.0.1", @@ -15383,8 +15036,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -15396,14 +15048,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "2.3.0", - "resolved": false, - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -15413,32 +15063,27 @@ }, "xdg-basedir": { "version": "3.0.0", - "resolved": false, - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "bundled": true, "dev": true }, "xtend": { "version": "4.0.1", - "resolved": false, - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "bundled": true, "dev": true }, "y18n": { "version": "4.0.0", - "resolved": false, - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": false, - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.0.0", - "resolved": false, - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "bundled": true, "dev": true, "requires": { "cliui": "^4.0.0", @@ -15457,16 +15102,14 @@ "dependencies": { "y18n": { "version": "3.2.1", - "resolved": false, - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true } } }, "yargs-parser": { "version": "9.0.2", - "resolved": false, - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { "camelcase": "^4.1.0" @@ -17442,9 +17085,9 @@ } }, "prebuild-install": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz", - "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.1.tgz", + "integrity": "sha512-3DX9L6pzwc1m1ksMkW3Ky2WLgPQUBiySOfXVl3WZyAeJSyJb4wtoH9OmeRGcubAWsMlLiL8BTHbwfm/jPQE9Ag==", "dev": true, "optional": true, "requires": { @@ -17468,7 +17111,7 @@ "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true } @@ -18707,9 +18350,9 @@ "dev": true }, "simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz", + "integrity": "sha512-RkE9rGPHcxYZ/baYmgJtOSM63vH0Vyq+ma5TijBcLla41SWlh8t6XYIGMR/oeZcmr+/G8k+zrClkkVrtnQ0esg==", "dev": true, "optional": true, "requires": { @@ -19540,9 +19183,9 @@ } }, "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", + "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", "dev": true, "optional": true, "requires": { @@ -22125,14 +21768,11 @@ "dev": true }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", "dev": true, - "optional": true, - "requires": { - "isexe": "^2.0.0" - } + "optional": true }, "which-module": { "version": "1.0.0", @@ -22141,9 +21781,9 @@ "dev": true }, "which-pm-runs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", - "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true, "optional": true }, diff --git a/package.json b/package.json index 06665506e..1bf7e98e1 100644 --- a/package.json +++ b/package.json @@ -92,8 +92,10 @@ "babel-preset-stage-2": "^6.24.1", "chart.js": "^2.7.1", "classnames": "^2.2.6", + "fsevents": "^2.3.2", "fullcalendar": "3.6.2", "jquery-timepicker": "^1.3.3", + "lodash": "^4.17.15", "moment": "^2.19.1", "moment-timezone": "^0.5.13", "nprogress": "^0.2.0", diff --git a/readme.md b/readme.md index 5e78028f1..f61ae660c 100644 --- a/readme.md +++ b/readme.md @@ -4,8 +4,9 @@ Navigate to the plugin directory and run the following commands 1. `git clone https://github.com/weDevsOfficial/wp-project-manager.git ` 2. `cd ` -3. `composer install` +3. For PHP-5.6 run `composer install` and for PHP-7 or later run `composer install --ignore-platform-reqs` 4. `composer dumpautoload -o` +5. `nvm use` 5. `npm install` 6. `npm run start` 7. Activate plugin diff --git a/readme.txt b/readme.txt index 0a0203693..7e64caced 100644 --- a/readme.txt +++ b/readme.txt @@ -1,7 +1,7 @@ === WP Project Manager - Task, team, and project management plugin featuring kanban board and gantt charts === Contributors: tareq1988, nizamuddinbabu, wedevs, asaquzzaman Donate Link: https://tareq.co/donate/ -Tags: project, project manager, project management, project management plugin, project manager tool +Tags: project, project manager, project management, kanban board, gantt charts, task manager, team collaboration tool Requires at least: 4.4 or higher Tested up to: 6.7.1 Requires PHP: 5.6 @@ -9,286 +9,260 @@ Stable tag: 2.6.17 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html -WP Project Manager simplifies tasks, projects & teamwork. Manage with Kanban, Gantt & integrations like GitHub, Bitbucket, Slack & BuddyPress - +The WP Project Manager makes task scheduling, project management, and team collaboration simpler than ever. Manage your projects with a Kanban board, Gantt charts, and different integrations like GitHub, Bitbucket, Slack & BuddyPress. + == Description == -Best Project Management Tool for WordPress - -Being one of the most advanced project management and task management tools for WordPress, [WP Project Manager](https://wedevs.com/wp-project-manager-pro) has some exceptional features that turn your project management experience to the next level. - -Super-charge your productivity by creating, organizing, and assigning tasks within a few clicks. +**Best Project Management Tool for WordPress** +Being one of the most advanced project management and task management tools for WordPress, [WP Project Manager comes](https://wedevs.com/wp-project-manager-pro) with some of the exceptional features that turn your project management experience of your teammates a joyful ride. Super-charge your productivity by creating, organizing, and assigning tasks within a few clicks. Its user-friendly interface and web-based task management feature enable the user to complete their to-dos quicker than ever. -[youtube [https://www.youtube.com/watch?v=GI4u8wXOxHg](https://www.youtube.com/watch?v=GI4u8wXOxHg)] - -Why wait, effortlessly manage projects, track time, and generate performance reports with this project management solution. +[youtube https://www.youtube.com/watch?v=GI4u8wXOxHg] +Effortlessly get your team to complete all the projects timely with its time tracking tool and generate an advanced performance report with its built-in reporting feature absolutely hassle-free. This cutting-edge innovative project management solution is termed as one of the more reliable open source Project Manager software for WordPress. +So now you can through your headache of being able to manage the project efficiently out of the window with this super-efficient project management application. Want to give it a try? Then try its 👉 [FREE OFFICIAL DEMO](https://pm.wedevsdemos.com/wp-login.php) -🎯 Key Features of WP Project Manager FREE 🎯 - -🗓 To-do List - -- Add as many to-do lists as you want with titles and description - -- Add tasks, assign users, assign a due date - -- See the progress bar on the list - -- Add comments, descriptions, and titles on individual to-do lists and to-do’s - -- Mark to-do as complete/incomplete - - -🎯 Milestone - -- 3 types of milestones are there, a) upcoming, b) completed, and c) late milestone - -- Assign messages and to-do lists on milestone - - -💬 Messages - -- Messages are used for discussing the project with co-workers of that project - -- You can add attachments to messages - -- Edit and stylize messages - -- Comments can be made for discussion or collaboration - +**🎯 Key Features of WP Project Manager FREE 🎯** -🗂 Files +**🗓 To-do List** -- File sharing feature for better understanding of workflow. +* Add as many to-do lists as you want with titles and description +* Add tasks, assign users, assign a due date +* See the progress bar on the list +* Add comments, descriptions, and titles on individual to-do lists and to-do’s +* Mark to-do as complete/incomplete -- Upload all files on messages and comments and navigate to individual attached threads. +**🎯 Milestone** -- Upload and share any file anytime in one place (Pro). +* 3 types of milestones are there, a) upcoming, b) completed and c) late milestone +* Assign messages and to-do list on milestone +**💬 Messages** -🔔 Dynamic Notification +* Messages are used for discussing the project with co-workers of that project +* You can add attachments to messages +* Edit and stylize messages +* Comments can be made for discussion or collaboration -- Email notification to keep the users updated about their assigned, upcoming, or outdated tasks. +**🗂 Files** -- Control who will receive which notification from settings (Pro). +* File sharing feature to ensure better understanding and workflow between co-workers. +* Upload all files on messages and comments and navigate to individual attached threads. +* Upload and share any file anytime in one place (Pro). +**🔔 Dynamic Notification** -🔄 Pusher Integration +* Email notification to keep the users updated about their assigned, upcoming or outdated tasks. +* Control who will receive which notification from settings (Pro). -- Get a real-time notification for your project management activities with push notifications. - -- You will receive notifications for assigning team members, mentioning in comments, creating tasks, and updating task status. +**🔄 Pusher Integration** +* Get a real-time notification for your project management activities with push notifications. +* You will receive notifications for assigning team members, mentioning in comments, creating tasks, and updating task status. 👉 [Learn more about all the functions and features from our documentation](https://wedevs.com/docs/wp-project-manager/). -💎💥🏆 === Powerful Pro Features of WP Project Manager ===🏆💥💎 - -👉 [Managing projects from the frontend](https://wedevs.com/docs/wp-project-manager/managing-projects-from-wp-project-manager-frontend/) (Pro) - -- Let your users be able to view your projects from the frontend - -- WP Project Manager lets you manage projects without going to the backend interface. - - -👉 [Kanban Board for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/kanban-board/) (Pro) - -- Create unlimited custom Kanban boards according to your need for better workflow visualization and project management. - -- Drag and drop tasks from one board to another anytime. - -- Create new tasks right from any board whenever you want with the WP Project Manager - - -👉 [Gantt Chart for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/gantt-chart/) (Pro) - -- Observe the duration of the tasks through horizontal bar graphs with the WP Project Manager - -- Change the beginning and finishing dates of the tasks or projects. - -- Assess dependencies among different tasks and subtasks with Gantt charts. - - -👉 [Time Tracker](https://wedevs.com/products/plugins/wp-project-manager-pro/time-tracker/) (Pro) - -- Timer with start, stop, or pause feature for every task. - -- Calculation and tracking of time spent on a task. - -- Payment for hourly charged workers is made easy. - +**💎💥🏆 === Powerful Pro Features of WP Project Manager ===🏆💥💎** -👉 [Invoice for Charging Clients](https://wedevs.com/products/plugins/wp-project-manager-pro/invoice/) (Pro) +**[👉 Managing projects from frontend](https://wedevs.com/docs/wp-project-manager/managing-projects-from-wp-project-manager-frontend/)** (Pro) -- Invoices will be automatically formatted based on your input in WP Project Manager. + * Let your users be able to view your projects from the frontend + * WP Project Manager lets you manage projects without going to the backend interface. -- Upon payment completion, the amount will be added to your account and the invoice will be automatically marked as paid. +**[👉 Kanban Board for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/kanban-board/)** (Pro) -- Invoices can be downloaded as pdf on WP Project Manager pro + * Create unlimited custom kanban boards according to your need for better workflow visualization and project management. + * Drag and drop tasks from one board to another anytime. + * Create new tasks right from any board whenever you want with WP Project Manager + * Get an exact idea of the current stages of all the tasks from one place in the WP Project Manager with the Kanban board. +**[👉 Gantt Chart for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/gantt-chart/)** (Pro) -👉 [Interactive calendar](https://wedevs.com/docs/wp-project-manager/managing-projects/calendar/) (Pro) + * Observe the duration of the tasks through horizontal bar graphs with WP Project Manager + * Change the beginning and finishing dates of the tasks or projects. + * Assess dependencies among different tasks and subtasks with Gantt charts. -- Check tasks progress with the WP Project Manager. +**[👉 Time Tracker](https://wedevs.com/products/plugins/wp-project-manager-pro/time-tracker/)** (Pro) -- Dynamic and interactive drag-and-drop functionality to assign tasks. + * Timer with start, stop or pause feature for every task. + * Calculation and tracking of time spent on a task. + * Payment for hourly charged workers is made easy. -- Daily, weekly, monthly, and user-specific views in the calendar. +**[👉 Invoice for Charging Clients](https://wedevs.com/products/plugins/wp-project-manager-pro/invoice/)** (Pro) + * Invoices will be automatically formatted based on your input in WP Project Manager. + * Upon payment completion, the amount will be added to your account and the invoice will be automatically marked as paid. + * Invoices can be downloaded as pdf on WP Project Manager pro -👉 [Stripe Gateway](https://wedevs.com/wp-project-manager-pro/extensions/invoice-stripe-gateway/) (Pro) +**[👉 Interactive calendar](https://wedevs.com/docs/wp-project-manager/managing-projects/calendar/)** (Pro) -- WP Project Manager lets your clients pay using Stripe gateway. + * Check tasks progress with WP Project Manager. + * Dynamic and interactive drag-and-drop functionality to assign tasks. + * Daily, weekly, monthly and user-specific view in the calendar. -- Automate the billing process with predefined project templates of the WP Project Manager. +**[👉 Stripe Gateway](https://wedevs.com/wp-project-manager-pro/extensions/invoice-stripe-gateway/)** (Pro) + * WP Project Manager lets your clients pay using stripe gateway. + * Automate the billing process with predefined project templates of the WP Project Manager. + +**[👉 BuddyPress for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/buddypress/)** (Pro) -👉 [BuddyPress for WordPress](https://wedevs.com/products/plugins/wp-project-manager-pro/buddypress/) (Pro) + * Create different tasks for different teams using WP Project Manager. + * Set administrative staff with access to all departments + * Set different permissions for different employee roles. + * Manage everything using WP Project Manager from the front end of your site. -- Create different tasks for different teams using WP Project Manager. +**[👉 SubTask for more simple task management system](https://wedevs.com/products/plugins/wp-project-manager-pro/sub-task/)** (Pro) -- Set administrative staff with access to all departments + * Break your long tasks into as many portions as you need. + * Assign several team members for several tasks. -- Set different permissions for different employee roles. +**[👉 WooCommerce Integration](https://wedevs.com/products/plugins/wp-project-manager-pro/woocommerce-order/)** (Pro) -- Manage everything using WP Project Manage. + * You can create a project automatically after the order or the payment is processed. + * Control which product will create what type of project and task. + * Add and manage user roles like co-workers, managers, and clients to the Projects and Tasks. -👉 [SubTask for a more simple task management system](https://wedevs.com/products/plugins/wp-project-manager-pro/sub-task/) (Pro) +**[👉 Advanced Files Management](https://wedevs.com/docs/wp-project-manager/managing-projects/files-wp-project-manager/)** (Pro) -- Break your long tasks into as many portions. + * Upload all files in one place. + * Create folders for different files using WP Project Manager. + * Link messages & task lists with files. + * Make files private. -- Assign several team members for several tasks. +**[👉 Slack Integration](https://wedevs.com/docs/wp-project-manager/integrations/slack/)** (Pro) -👉 [WooCommerce Integration](https://wedevs.com/products/plugins/wp-project-manager-pro/woocommerce-order/) (Pro) + * Integrate your WP Project Manager Pro with the best workspace communication tool - Slack + * Get instant notifications on your Slack channels when a new task, subtask, or comment is created or an existing one is modified. And also when a task is completed or a new co-worker is added. -- You can create a project automatically after the order or the payment is processed. +**[👉 GitHub and Bitbucket Integration](https://wedevs.com/docs/wp-project-manager/integrations/github-bitbucket/)** (Pro) -- Control which product will create what type of project and task. + * Connect your GitHub and Bitbucket account with WP Project Manager easily. + * When issues will be created on your GitHub and Bitbucket accounts, they will be added to your task list. So, your developer team can take action in time. -- Add and manage user roles like co-workers, managers, and clients to the Projects and Tasks. +**[👉 Advanced Reports with Insights](https://wedevs.com/docs/wp-project-manager/reports/view-reports/)** (Pro) + * To make your project management efficient, you need to have reports for tasks and user activities. It will help you to make the right decisions for your projects and team. + * You will get several predefined report cases depending on the user activities with the WP Project Manager. The reports are very much self-explanatory. You will get, -👉 [Advanced Files Management](https://wedevs.com/docs/wp-project-manager/managing-projects/files-wp-project-manager/) (Pro) - -- Upload all files in one place. - -- Create folders for different files using WP Project Manager. - -- Link messages & task lists with files. - -- Make files private. - - -👉 [Slack Integration](https://wedevs.com/docs/wp-project-manager/integrations/slack/) (Pro) - -- Integrate your WP Project Manager Pro with the best workspace communication tool - Slack - -- Get instant notifications on your Slack channels when a new task, subtask, or comment is created or an existing one is modified. And also when a task is completed or a new co-worker is added. - - -👉 [GitHub and Bitbucket Integration](https://wedevs.com/docs/wp-project-manager/integrations/github-bitbucket/) (Pro) - -- Connect your GitHub and Bitbucket accounts with the WP Project Manager easily. - -- When issues are created on your GitHub and Bitbucket accounts, they will be added to your task list. So, your developer team can take action in time. - - -👉 [Advanced Reports with Insights](https://wedevs.com/docs/wp-project-manager/reports/view-reports/) (Pro) - -- To make your project management efficient, you need to have reports for tasks and user activities. It will help you to make the right decisions for your projects and team. - -- You will get several predefined report cases depending on the user activities with the WP Project Manager. The reports are self-explanatory. You will get, - 1. Overdue Tasks - 2. Completed Task - 3. User Activities - 4. Task by Milestone - 5. Unassigned Tasks - 6. Summary - + **1. Overdue Tasks** + **2. Completed Task** + **3. User Activities** + **4. Task by Milestone** + **5. Unassigned Tasks** + **6. Summary** 👉 [GET WP PROJECT MANAGER PRO](https://wedevs.com/wp-project-manager-pro/pricing) -STANDOUT FUNCTIONALITIES OF WP PROJECT MANAGER +**STANDOUT FUNCTIONALITIES OF WP PROJECT MANAGER** = EFFICIENT TASK MANAGER WITH INTUITIVE INTERFACE = -The interface is interactive, and user-friendly, and improves overall efficiency by helping you complete projects in the least amount of time possible. +Manage all types of tasks and projects in the least time possible. The interactive user-friendly interface will not only give you a smooth experience but also assist you to boost overall efficiency. = TEAM COLLABORATION MADE EASY = -Increase collaboration efficiency with a WordPress team collaboration tool that supports file sharing, remote teamwork, and simultaneous work on the same task. +With a built-in discussion thread and file sharing option, make the most out of teamwork without any hassle. Easily work simultaneously with remote teams with this team collaboration tool for WordPress. + += BEST FIT FOR ANY KIND OF TEAMS = -= PRIVACY AND SECURITY = +No matter which team or organization you are running, WP Project Manager ensures the best outcome for all kinds of teams. This is why this plugin has become the favorite open source project management software for every team and individual. -Ensure privacy and permission among tasks and projects with user role customization and team permission features (Pro), making it easy to manage who can see or manage each project. += FULL CONTROL OVER PRIVACY AND SECURITY = + +No compromise with privacy and permission among the tasks or projects. With user role customization and team permission feature (Pro), manage who can see or who can manage which project very easily. = PERSONAL DASHBOARD FOR USERS = -Users can stay updated on tasks in an organized way through a personal dashboard. Access is limited to authorized projects and tasks. +Everyone gets their own dashboard to stay updated about tasks in the most organized way. From this personal board, a user will be able to access only the projects and tasks he is allowed to see. -So still wondering why WP Project Manager should be your first choice in task management plugins? +**So still wondering why WP Project Manager should be your first choice in task management plugins?** -👉 [Check out this complete comparison of WP Project Manager with other popular project management solutions. -](https://wedevs.com/wp-project-manager-pro/compare/)👉 [Learn more about all the functions and features from our documentation.](https://wedevs.com/docs/wp-project-manager/) +👉 [Check out this complete comparison of WP Project Manager with other popular project management solutions.](https://wedevs.com/wp-project-manager-pro/compare/) +👉 [Learn more about all the functions and features from our documentation.](https://wedevs.com/docs/wp-project-manager/) = SEE HOW WP PROJECT MANAGER HAS BEEN RECOGNIZED BY THE TOP SITES = + 1. [Top 20 WordPress Plugins for Freelancers to Improve Their Workflow](https://colorlib.com/wp/freelance-plugins-wordpress/) + 2. [9 Best WordPress Project Management Plugins](https://blog.hubspot.com/website/best-wordpress-project-management-plugins) + 3. [Top 8 Project Management Plugins For WordPress](https://www.elegantthemes.com/blog/tips-tricks/top-8-project-management-plugins-for-wordpress) + 4. [Top 9 Premium WordPress Project Management Plugins](https://www.hostinger.com/tutorials/wordpress-project-management#Top_9_Premium_WordPress_Project_Management_Plugins) + 5. [13 Best WordPress Project Management Plugins in 2022](https://wplift.com/best-wordpress-project-management-plugins) + += LEARN HOW YOU CAN LEVERAGE YOUR PRODUCTIVITY TOOL TO THE FULLEST = -1. [Top 20 WordPress Plugins for Freelancers to Improve Their Workflow](https://colorlib.com/wp/freelance-plugins-wordpress/) + 1. [How weDevs Has Been Using WP Project Manager Successfully For Collaboration](https://wedevs.com/145814/how-wedevs-has-been-using-wp-project-manager-successfully-for-collaboration/) -2. [9 Best WordPress Project Management Plugins](https://blog.hubspot.com/website/best-wordpress-project-management-plugins) + 2. [How Project Management Tools Help You Reach Milestones](https://wedevs.com/120384/how-project-management-tools-help-reach-milestones/) -3. [Top 8 Project Management Plugins For WordPress](https://www.elegantthemes.com/blog/tips-tricks/top-8-project-management-plugins-for-wordpress) + 3. [How WP Project Manager Makes Managing Milestones Even Better](https://wedevs.com/104306/manage-milestones-wordpress-project-manager/) + 4. [How To Use WordPress Project Manager To Build A Successful Remote Team Painlessly](https://wedevs.com/89644/how-to-use-wordpress-project-manager-to-build-a-successful-remote-team-painlessly/) -CONTRIBUTE + 5. [Create Project Automatically for Your WooCommerce Order & Save Time](https://wedevs.com/100764/create-projects-automatically-woocommerce-order/) -If you think you can help develop this plugin even better then you are always more than welcome to contribute to this project. Please fork the repository from [GitHub](https://github.com/weDevsOfficial/wp-project-manager). +**CONTRIBUTE** -OUR VALUABLE CONTRIBUTORS +If you think you can help develop this plugin even better then you can always more than welcome to contribute to this project. Please fork the repository from [Github](https://github.com/weDevsOfficial/wp-project-manager). -- French translation by Corentin Allard +**OUR VALUABLE CONTRIBUTORS** -- Dutch translation by eskamedia +* French translation by Corentin allard +* Dutch translation by eskamedia +* Brazilian Portuguese translation by Anderson +* German translation by Alexander Pfabel +* Spanish translation by Luigi Libet +* Indonesian translation by hirizh +* Polish translation by Jacek Synowiec -- Brazilian Portuguese translation by Anderson +**CHECKOUT OUR OTHER AWESOME PRODUCTS** -- German translation by Alexander Pfabel +* [Dokan – Multivendor Marketplace Plugin](https://wedevs.com/dokan/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=Dokan+Multivendor+Marketplace) +* [WP User Frontend Pro](https://wedevs.com/wp-user-frontend-pro/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=WP+User+Frontend+Pro) +* [WordPress ERP](https://wperp.com/?utm_medium=referral&utm_source=wporg&utm_campaign=Project+Manager+Readme&utm_content=WPERP) +* [WooCommerce Conversion Tracking](https://wedevs.com/woocommerce-conversion-tracking/) +* [weMail](https://getwemail.io/) +* [Appsero](https://appsero.com/) +* [Happy Addons](https://happyaddons.com/?utm_source=wedevs&utm_medium=menu) +* [wePos](https://wedevs.com/wepos) -- Spanish translation by Luigi Libet +== Privacy Policy == -- Indonesian translation by Hirizh +WP Project Manager uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements. -- Polish translation by Jacek Synowiec +Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure great user experience for all our users. +Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.** + +Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/). + +Additionally, read weDevs [privacy policy](https://wedevs.com/privacy-policy/) for a better idea. == Installation == -Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from the Plugins page. +Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page. == Frequently Asked Questions == -= Q. Why doesn’t it show up in frontend = -A. Currently all the project management options reside in the admin panel. No functionality shows up in the front end right now. += Q. Why doesn't it shows up in frontend = +A. Currently all the project management options resides in the admin panel. No functionality shows up in frontend right now. = Q. Who can create projects? = -A. Only Editors and admins can create projects and edit them. +A. Only Editors and Admin's can create projects and edit them. -= Q. Who can create a task list, to-do, messages, or milestones? = -A. Admins and every co-worker from a project can create these. += Q. Who can create tasklist, todo, messages or milestones? = +A. Admins and every co-workers from a project can create these. = Q. Can every member see every project? = A. Only admins (editor/administrator) can see all of them. Other user roles can only see their assigned projects. = Q. Can the WP Project Manager plugin be extended? = -A. Sure, lots of actions and filters are added by default, and will add more of them. +A. Sure, lots of actions and filters are added by default and will add more of them. = Q. Found a bug on WP Project Manager = -A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-project-manager/issues) on Git Hub. - +A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-project-manager/issues) on github. == Screenshots == @@ -326,40 +300,6 @@ A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-proj **Update:** Tested upto 6.7 **Update:** Version bump & make stable frontend. -= v2.6.14 - Nov 11, 2024 = - -**Fix:** Vulnerable security issue. -**Fix:** XSS attack while uploading svg file. -**Fix:** Sub task duplicating issue. - -= v2.6.13 - Mar 29, 2024 = - -**Fix:** New project's user creation issue. - -**Update:** PHP version support PHP-5.6 to PHP-7.2. - -= v2.6.12 - Mar 04, 2024 = - -**Update:** Version bump & make stable readme character. - -= v2.6.11 - Feb 29, 2024 = - -**Update:** Version bump & make stable readme character. - -= v2.6.10 - Feb 29, 2024 = - -**Fix:** Api discussion creation xss vulnerability for authentic users. - -= v2.6.9 - Feb 09, 2024 = - -**Update:** Version bump & make stable frontend. - -= v2.6.8 - Feb 09, 2024 = - -**Fix:** User role management api security block for unauthentic project users. -**Fix:** Project discussion create api security handling stuff. -**Fix:** Project modification api security block. - = v2.6.6 - Aug 10, 2023 = **Fix:** Search users, new users & more features string translation issue. @@ -380,11 +320,17 @@ A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-proj **Fix:** The email type settings field UI broken issue. **Fix:** Tasks title content not decoded properly & fix ux issue. -**Fix:** User task calender’s starting date data handling security issue. +**Fix:** User task calender's starting date data handling security issue. = v2.6.0 - Nov 30, 2022 = -**New:** Added pm pro version overview for lite users +**New:** Added pm pro version overview for lite + += v2.6.14 - Nov 11, 2024 = + +**Fix:** Vulnerable security issue. +**Fix:** XSS attack while uploading svg file. +**Fix:** Sub task duplicating issue. = v2.5.0 - July 15, 2022 = @@ -481,7 +427,7 @@ A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-proj **New** Introduce new library simshaun/recurr. **New** Added the remove format option in project manager text editor. -**Fixed** In text editor, after type ‘@’ the list of users exceeds outside of the modal. +**Fixed** In text editor, after type '@' the list of users exceeds outside of the modal. **Fix** Task assigned all users can change the task type. **Fix** User can not delete their own created task comments. **Fix** Remove the HTML tag from milestone title. @@ -519,6 +465,666 @@ A. Found any bugs? Please create an [issue](https://github.com/tareq1988/wp-proj * **Update** UI/UX for task due date from single task popup. * **Fix** Could not download files from the project. += v2.3.11 - Jun 16, 2020 = + +* **Fix** API end point is now working for all permalink. +* **Fix** My-task calendar missing current date task. +* **Fix** In my-task, The task is not updating after user closing the single task popup. +* **Fix** In My- task user can not select the date range during task create time. +* **Fix** User can not delete self created task-list. +* **Fix** In content text should not break in middle of the word (style change break-all to break-word). + += v2.3.10 - May 05, 2020 = + +* **Fix** Task load more is not working for co-worker. + += v2.3.9 - Apr 30, 2020 = + +* **New** New function for getting tasks, messages, milestones, discussions, projects, comments, files, users. +* **New** Project description shows upon clicking on the description button. +* **Update** Load more buttons showing twice after deleting completed task. +* **Fix** On My task overview graph showing error when there are no task. +* **Fix** Task assigned date is not showing in a single task popup. +* **Fix** Progress bar continue loading after clicking on Clear button on the task filter. + += v2.3.8 - Mar 12, 2020 = + +* **New** Add fileter for removing project unique title. +* **Fix** Fixing Multiside completable issues. +* **Update** Update query for fetching users to make Multi-site compatible. + += v2.3.7 - Feb 27, 2020 = + +* **Fix** In favorite project section 'all projects' were showing. +* **Fix** Task notification mails contain raw HTML. +* **Fix** Set 200 character limit when adding a new task. + += v2.3.6 - Feb 10, 2020 = + +* **New** Set date range picker in my-task section to filter tasks. +* **New** Set date range picker in my-task overview to filter activities. +* **New** Duplicate a task from the task list. +* **New** New components are, pm-button, pm-dropdown-menu, pm-triangle-box, pm-click-wrap, pm-popup-modal, pm-date-range-picker. +* **Update** Redesigned task-create form. +* **Update** Replace jQuery date picker to date range picker. +* **Update** Some features are moved from task create a form to a single task page. +* **Fix** Assigned manager in a project was not getting mail at project creation time. +* **Fix** Make Multi-site compatible for fetching co-workers. +* **Fix** Invisible tools menu for co-workers. +* **Fix** Co-workers could not edit their created task. +* **Fix** 'Inbox' task create form was showing for all pagination pages. +* **Fix** Showing invalid date after searching outstanding task. +* **Fix** Favorite project was not working. + += v2.3.5 - Dec 19, 2019 = + +* **New** Add privacy policy in the product description. +* **Fix** Sanitize data while updating task. +* **Fix** Add extra data validation on the database query. + += v2.3.4 - Nov 15, 2019 = + +* **Fix** Task label are inserted two times while updating the task. +* **Fix** Task update buttons can not be selected for the tooltip. +* **Update** Project assigned users has been removed from user search results. +* **Update** Add text limit on task title. + += v2.3.3 - Nov 10, 2019 = + +* **New** Integrate with Pusher for real time notification. +* **New** Include seeder for project, task-list and task. +* **New** Set filter in project fetch 'join' and 'where' query. +* **Fix** Task update popover menu used to break when task title was long. +* **Update** Reset button on task-list search. + += v2.3.2 - Oct 10, 2019 = + +* **Fix** Conflict with elementor. +* **Update** Toastr library. + += v2.3.1 - Sep 26, 2019 = + +* **New** User can create new task from my-task section. +* **New** Sorting my-task table column. +* **Update** My-tasks menu is not appear in front-end. +* **Update** Reduce loading executing time for project home page. +* **Update** Refactoring code for getting projects data. + += v2.3.0 - Sep 09, 2019 = + +* **New** Remove current task, outstanding task and completed task tabs from my tasks. +* **New** Advanced task filtering option according to current task, outstanding task and completed task in my tasks section. +* **New** pm_capabilities, pm_role_project, pm_role_project_capabilities, pm_role_project_users table for permission management. +* **Update** Change single task popup url from my-task to single task lists. +* **Fix** Progress load more is not working. + += v2.2.4 - Jul 22, 2019 = + +* **New** Task title field in task list search form. +* **Fix** Task sorting is not working. +* **Fix** Prevent sorting for default task list (Inbox). +* **Update** Showing 'more task' button even there is not task. + += v2.2.3 - Jul 15, 2019 = + +* **Update** Task list search query. +* **Fix** After drag and drop task is not updating from my-task calendar. +* **Fix** Milestone disapear after reloding the page. + += v2.2.2 - Jun 28, 2019 = + +* **New** Action hook in task list page 'pm_after_task_content'. +* **New** Event initiation after task user update 'after_update_single_task_user'. +* **New** Action hook before delete task list 'pm_before_delete_task_list'. +* **Update** User gets mail at task updating time even the task is not updated. +* **Update** Archived tasks will not appear on MyTask calendar. +* **Update** New tasks are listing in the descending order in the task lists. +* **Fix** User can remove administrator from manage capability permission. +* **Fix** Inbox task list does not appear at the top of the task lists. +* **Fix** compact(): undefined index variable problem for php 7.3 +* **Fix** Text domain 'pm' to 'wedevs-project-manager'. +* **Fix** Task lists menu is not activating while clicking pagination. + += v2.2.1 - Jun 14, 2019 = + +* **Fix** Fatal error undefined function. + += v2.2.0 - Jun 14, 2019 = + +* **New** Added my task menu from where individual users can check their completed, current and outstanding tasks. +* **Fix** Assigned users can not find the task description. +* **Fix** Add new user in project does not appear in task users dropdown at task create or edit time. +* **Fix** A newly added user in a project did not appear in the dropdown i.e in the list of users while adding, creating or editing a task. +* **Fix** User can not udpate task comment from single task popup. +* **Fix** A newly added user does not appear in project update form. + += v2.1.0 - May 18, 2019 = + +* **New** Trello Integration. +* **Fix** Fixed co-worker & client create task activities. +* **Fix** Removed usermap from global setting. +* **Fix** Removed unnecessary dashicons and added title to files. +* **Fix** Resolved conflict from setting header. +* **Fix** Fixed project edit form get closed when user click out side. + += v2.0.15 - May 02, 2019 = + +* **Fix** Load more Completed & Incompleted task. +* **Fix** Pagination slug of completed task. +* **Fix** Optimize task queries for retrieving task ids. +* **Fix** The naming of variable "$milestones" to "$milestone" at filter 'pm_milestone_show_query' + += v2.0.14 - April 11, 2019 = + +* **New** Included filter at task activity and after create comment. +* **Update** Remove search user minimum 3 character condition. +* **Update** Remove tooltip from list view and kanboard view button. +* **Update** Migrated from icomoon to Flaticon. +* **Fix** API authentication problem. +* **Fix** Some textdomain. + += v2.0.13 - March 04, 2019 = + +* **New** Set loading effect for 'Load more' task. +* **New** Set loading effect at task list page and list archive page nevigation. +* **New** Set loading effect at task list pagination. +* **New** New library v-tooltip +* **Fix** Any kinds of url added extra from tinymce text filed. +* **Fix** After project edit, the description is not updated real time. +* **Fix** Less file is not built to css file. +* **Update** Set target blank in tinymce posted url. + += v2.0.12 - Feb 15, 2019 = + +* **New** New filter welcome page redirect. +* **Fix** Task pagination did not work. +* **Fix** Close button did not work in new project form. +* **Fix** Milestone due date did not update. +* **Update** Set permission at user create time from project overview page. + += v2.0.11 - Feb 08, 2019 = + +* **New** Integrate with popper js. +* **New** Welcome page. +* **New** Premium page. +* **Fix** Change task list fetch query. +* **Fix** Change task fetch query. +* **Fix** File upload problem from discussion section. +* **Fix** After close single task the list page is refreshing. +* **Fix** Remove html tag from email content. +* **Fix** Color picker does not work. + += v2.0.10 - Dec 19, 2018 = + +* **Hotfix** Fatal error at page and post edit time. + += v2.0.9 - Dec 19, 2018 = + +* **New** Update user from overview page. +* **New** Move tasks from one list to another. +* **Update** Permission for project delete. +* **Fix** Project update time dialog-box close automatically. +* **Fix** Conflict with text editor and datepicker problem for task create. +* **Fix** Date-picker auto close, when select a date. +* **Fix** Coding standard according wordpress. + += v2.0.8 - Nov 29, 2018 = + +* **New** Project home page redesign. +* **New** Close single task popup with ESC button. +* **New** Single task popup is enable from activity page. +* **Update** Task filter form alignment. +* **Fix** Relative date for comments. +* **Fix** Tabindex for texteditor. +* **Fix** Latest activity for single task. +* **Fix** More task button missing from completed tasks. +* **Fix** Date picker auto hide problem. +* **Fix** Task list responsive issue. +* **Remove** Slicknav library. + += v2.0.7 - Nov 08, 2018 = + +* **New** Switch project with key binding cmd+j/clt+j. +* **New** Task list page redesign. +* **New** Single task list page redesign. +* **New** System default task list inbox. +* **New** All description fields with validation and sanitization at edit time. +* **New** Project title should be unique. +* **Fix** Task filter query. +* **Fix** Task and task-list sorting supported in mobile. + += v2.0.6 - Oct 02, 2018 = + +* **New** Set permission setting for user mail notification. +* **New** Task single page redesign. +* **New** Show activity in single task page. +* **New** Projects can mark as favourite by users. +* **New** Added completed_by and completed_at fields in pm_tasks database table. +* **New** Added status field in pm_broad database table. +* **New** Support for video file upload. +* **New** New user notification. +* **New** Advanced task filter from task list page. +* **New** Set deleted activity log in activity section. +* **Fix** Invalid time issue in activity page. +* **Fix** Overview graph for last 3o days activity +* **Fix** Get email notification when update discussion + += v2.0.5 - August 16, 2018 = + +* **New** Added filters for getting custom query in all transformers. +* **New** Project description in html format. +* **Fix** Undefined task title from activity. +* **Fix** Single task popup close automatically. +* **Fix** Activity count when delete an element. +* **Fix** Manage capability return false, when user role is not found. +* **Fix** Some translation issues. +* **Fix** Some compatibility issue on internet explorer. +* **Fix** Task assignee input field is not updating when assignee user field is Empty +* **Fix** Task list milestone input field is not updating when milestone is Empty + += v2.0.4 - July 27, 2018 = + + * **Fix** Download link for wedevs project manager php-5.6. + += v2.0.3 - July 27, 2018 = + + * **New** List drag, drop and reorder. + * **New** Task independently switch in task lists. + * **New** Added categry pagination. + * **Fix** Date format problem for task and overviews graph. + * **Update** Activity date format change. + * **Update** Load All Categories in select form. + * **Update** Load all HTTP request with GET and POST methods. + += v2.0.2 - July 23, 2018 = + + * **New** Create function for getting individual task. + * **New** Hook for all CRUD (Create, Read, Update and Delete) + * **Fix** Task complete and incomplete issues in microsoft edge browser. + * **Fix** Pagination set -1 for per page and its getting error. + * **Fix** Multisite installation and upgrade. + * **Fix** Translation for vue files. + * **Fix** Fetch project in single task page. + * **Fix** Reduce conflict with WPERP plugin. + * **Fix** JS make compitable with IE>8. + += v2.0.1 - Jun 29, 2018 = + + * **Fix:** Fix database migration problem upon updating the plugin. + += v2.0 - Jun 28, 2018 = + + * **BREAKING**: This **v2.0** release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a **database backup** is adviced. + * **New:** REST API added. Now you can access everything of project manager via the API. Creating of mobile apps would be much easier. + * **New:** Moved from custom post type to custom database tables, which performs a lot faster. + * **New:** We have re-written the Project Management UI, powered by [Vue.js](https://vuejs.org/). This introduces a SPA (Single Page Application) with blazing fast page loading and a snappier user experience. + * **Bug Fixes:** We have also squashed a lot pesky bugs under the hood. + += 1.6.16 - Jun 11, 2018 = + + * [fixed] Project title is overlaping on RTL language. + * [fixed] Could not select project category while creating/editing a project. + * [fixed] Single task is not re-rendering + += 1.6.15 - May 10, 2018 = + + * [fixed] Task list is not showing when using the Internet Explorer browser. + * [fixed] Projects dashboard display missing alignment. + * [Update] Improved plugins text domain. + += 1.6.14 - April 26, 2018 = + + * [fixed] Task is not showing after clicking on a task from the calendar. + * [fixed] Mail notificaation system not working. + * [fixed] Category menu selection while creating project not working on RLT. + * [fixed] RTL display missing alignment on milestone. + += 1.6.13 - April 12, 2018 = + + * [fixed] RTL display missing alignment. + * [fixed] Settings menu is not showing properly on projects header. + * [fixed] Project settings page translation not working. + += 1.6.12 - March 22, 2018 = + + * [fixed] Showing HTML markup in task descriptions when we enter plain text. + * [fixed] To-do list, Discussion, milestone, page translation not working. + * [fixed] Projects page translation not working. + * [update] Improved plugin strings. + += 1.6.11 - February 26, 2018 = + + * [fix] Notify users while commenting in a task. + * [fix] Trix-editor intregration with the WP ERP. + * [fix] Compatible with the Microsoft Edge browser. + * [fix] Task re-ordering. + * [fix] Project list and grid view compatible with all browsers. + += 1.6.10 - November 27, 2017 = + + * [new] Vuejs loading made compact. + * [new] Included vuejs in project file. + * [update] Included file download attributes. + * [update] Notify manager when updating comments. + * [fix] Navigate to a task from the calendar. + * [fix] User search problem fixed when creating a project. + * [fix] Text editor style problem fixed. + + += 1.6.9 - August 24, 2017 = + + * [fix] CPM free loader class active after loading WP all plugins + * [fix] All co-workers get mail after completed the task + * [new] weForms Upsell Class + += 1.6.8 - August 17, 2017 = + + * [fix] Prevent the loading trix-editor for all WP page. + * [fix] Text formating retained got from others editor. + * [fix] Creating second task does change the date of first task. + * [new] Add new component cpm-datepicker + += 1.6.7 - August 01, 2017 = + + * [new] Js Tiptip library has been added. + * [update] Condition applied when showing calendar on setting tast start date. + * [update] Date icon has been shown if no date was set. + * [update] Description icon has been shown if no description was set. + * [update] Co-Worker icon has been shown if no Co-Worker was set in the task. + * [fix] Double date picker shown at task date update time. + * [fix] Undefined index errors. + += 1.6.6 - July 31, 2017 = + + * [new] Task title update from single task page. + * [new] Task privacy update from single task page. + * [new] Task description update from single task page. + * [new] Task start and end date update from single task page. + * [new] Add user/co-worker/client from single task page. + * [fix] Unable to complete task. + * [fix] When complete a task then this completed task shown double in the to-do list. + * [fix] Double "New To-Do" button shown. + * [update] 'Get project id' function always return false. + * [update] Design change for single task page. + += 1.6.5 - July 6, 2017 = + + * [fix] Co-worker can not show the list corner menu. + * [fix] Co-Worker could not notifying when add or update project. + * [fix] Double "New To-Do" button shown and also cpm-new-todolist-form has shown when clicked "New To-Do" List button. + * [fix] Project create permission. + * [fix] Get complete and incomplete task query + * [fix] Change routing effect at todo-list page to another page + += 1.6.4 - June 22, 2017 = + + * [new] Task list view on the right corner in to-do list section. + * [update] Notify co-workers on task completion. + * [update] Task update action hook. + * [update] Style sheets updated. + * [update] Some javascript refactored. + * [fix] Wrong color is showing for a task on basis of task competion status. + * [fix] PHP warning on project overview. + * [fix] PHP warning on my task overview. + += 1.6.3 - June 07, 2017 = + + * [new] Drag and drop sortability added to the task + * [update] Task color scheme. + * [update] Activity graph color scheme in my task section. + * [update] Single task redirection in my task section. + * [update] Project duplication. + * [update] Project overview section. + * [fix] Grid/List view action on project listing is not working. + * [fix] Project overview graph is not working. + * [fix] Not all users of a project is being duplicated when duplicating a project. + * [fix] Notification is sent to the co-workers when a project is created. + * [fix] Unable to comment in a task when it is redirected from current task in my task. + * [fix] Unable to comment in a task when it is redirected from outstanding task in mytask. + * [fix] Unable to comment in a task when it is redirected from competed task in my task. + * [fix] User selection is not working in my task. + * [fix] Date section is not working in activity graph in my task. + * [fix] Red color is showing for current task in my task. + * [fix] Overview section in my task is not working + * [fix] Activity section in my task is not working + * [fix] Current task section in my task is not working + * [fix] Outstanding task section in my task is not working + * [fix] Completed task section in my task is not working + * [fix] File attachment is not working when commenting in the file section of a project. + * [fix] Unable to delete a comment in the file section of a project. + * [fix] Commenting in a discussion board is not working. + * [fix] Editing a comment in a discussion board is not working. + * [fix] Deleting a comment in a discussion board is not working. + * [fix] Javascript shows error when commenting, editing comments and deleting comments in discussion board. + += 1.6.2 - April 27, 2017 = + + * [new] Email template for mentioning users in a comment. [pro] + * [new] Moment js dependency added. + * [new] Compatibility for mentioning users in a comment. + * [update] Include filter for register project post type. + * [update] Include filter for register project taxonomy. + * [update] Change pagination position from left to right. + * [update] Pagination has been shown up and down of to-do lists content. + * [update] Single task url. + * [update] To-do lists progress bar. + * [update] Unnecessary parameters removed form wp_enqueue_script in cpm. + * [update] Array declaration according to lower version of php. + * [fix] Can’t use function return value in write context. + * [fix] Syntax error, unexpected '[' + * [fix] Filtering for to-do lists private view. + * [fix] Filtering problem for the visibility of to-do lists create button. + * [fix] List style problem in tiny-MCE comment box while commenting on discussion board. + * [fix] WP nonce problem in project discussion. + + += 1.6.1 - April 11, 2017 = + + * [fix] Load JS files only in todo list page + * [fix] Fix typo in todo list privacy checking capability + * [fix] Shortcode rendering in comments + * [fix] Remove users from notification panel outside of the project members + * [fix] Removed PHP array shorthand declaration + * [fix] Single task URL problem in My Task + += 1.6 - April 08, 2017 = + + * [new] Use js library Vue + * [new] Design layout changed for To-do Lists. + * [new] Real time update every action for To-do lists. + * [new] Two way data binding for to-do list edit + * [new] Two way data binding for task edit + * [new] Task lazy loading. + * [new] Vue routing for single To-do list + * [new] Real time pagination. + * [new] Completed and incomplete label added for corresponding tasks in single to-list. + * [update] Discussion editor changed from tricks to tinymce. + * [update] Real time change of progress bar. + * [update] Assign user to task options changed from choosen to Vue multiselect. + * [update] User avatar(gravatar) link changed form 404 to mm + * [fix] Remove comments link from overview. + * [fix] All functionalities for to-do list. + + += 1.5.1 - September 19, 2016 = + + * [new] Send Email Notification when a comment updates. + * [new] Add filter for how many letter to show when image name is long in files tab. + * [fix] Fixed conflict with buddypress. + * [fix] Fixed Project creation capability and update language files. + * [fix] Made Report print friendly. + * [fix] Files tab loading improvement. + * [fix] Show all comments in newly uploaded file view. + * [fix] Client view private discussion. + += 1.5 - August 20, 2016 = + + * [new] Report section new design (*pro*). + * [new] New Report item added (*pro*). + * [new] Files tab new design and add new feature in pro version (*pro*). + * [new] Add option for create document and connect to other online Docs (*pro*). + * [new] Add option to upload files / attachment direct to a project (*pro*). + * [fix] Duplicate mail send on project create. + * [fix] Change cpm_get_option function. + += 1.4.3 - May 30, 2016 = + + * [fix] Milestone input date and project redirect issue after create. + * [fix] Sorting completed milestone + * [fix] Image broken in emails + * [fix] File upload on first discussion problem fix. + * [fix] Task Done/Undone tick problem fix. + * [fix] New user create on project create or update problem fix. + * [fix] Department or personal projects show in ERP integration. + += 1.4.2 - April 6, 2016 = + + * [fix] Project permission problem in free version + += 1.4.1 - March 28, 2016 = + + * [new] Task list sticky option added as a replacement for sorting + * [new] Proper mime type icon set + * [new] Initial ERP integration added + * [fix] Front-end URL issue + += 1.4 - March 13, 2016 = + + * [new] UI Re-designed + * [new] Tasks now have a description field + * [tweak] As now we have description in tasks, previous tasks were updated. + * [tweak] Project post_type changed from `project` to `cpm_project` + * [tweak] Task post_type changed from `task` to `cpm_task` + * [tweak] Task List post_type changed from `task_list` to `cpm_task_list` + * [tweak] Milestone post_type changed from `milestone` to `cpm_milestone` + * [tweak] Message post_type changed from `message` to `cpm_message` + * [tweak] project_category taxonomy changed from `project_category` to `cpm_project_category` + += 1.3.8 - October 20, 2015 = + + * [fix] Front-end current task, outstanding task and completed task url problem fix + * [fix] Without login can access front-end problem fix + * [fix] Current task, outstanding task and completed task live update problem fix. + * [fix] Fetch outstanding and completed task problem fix + += 1.3.7 - October 15, 2015 = + + * [fix] Fix LogicException on autoloader + += 1.3.6 - October 15, 2015 = + + * [fix][pro] Add category for front-end + * [fix] Email notification subject issue fixed + += 1.3.5 - September 29, 2015 = + + * [fix] User role and items table weren't being created during install + += 1.3.4 - September 19, 2015 = + + * [fix] Pagination error fix in free version + * [fix] Project manage/create cap option brought back to free + * [fix] Version upgrader issue fixed + += 1.3.3 - September 15, 2015 = + + * [fix] Single project permission issue + += 1.3.2 - September 14, 2015 = + + * [fix] Project Duplication error + * [fix] New task assignmed email subject was missing + += 1.3.1 - September 11, 2015 = + + * [fix] File missing problem for front-end + * [fix] Plugin path in updater + += 1.3 - September 3, 2015 = + + * [improved] Free/Pro separation. Massive code change + * [improved] Email notification templates updated. Removed the settings from admin. + += 0.4.6 = + +* Fix: new project popup, some bug was still in the 0.4.5 version. + += 0.4.5 = + +* Fix: new project popup +* New: Pagination support on projects + += 0.4.4 = + +* Language files updated +* New action hooks and JS triggers added +* Settings API updated + += 0.4.3 = + +* new: Spanish translation +* new: German translation +* new: Indonesian translation +* fix: milestone datepicker issue +* fix: some typo fixes +* improved: comment count next to tasklists + += 0.4.2 = + +* bug fix: project activity/comments on frontend widget +* bug fix: project activity/comments on comment rss +* bug fix: number of milestones +* improved: plugin textdomain loading +* new: project task progressbar on project listing +* new: tasklist sorting +* new: task sorting +* new: Dutch translation language added +* new: Brazilian Portuguese language added + += 0.4.1 = + +* bug fix: attachment association problem on comment update +* bug fix: error on message update + += 0.4 = + +* improved: default email format changed to 'text/plain' from 'text/html' +* improved: toggle added on user notification selection +* improved: only date was showing on single message details, time added +* improved: some filters added on URLs +* bug fix: actual file url hidden on files tab for privacy +* bug fix: any user could edit any users message +* bug fix: any user could delete any users message +* new: admin settings page added +* new: email template added +* new: French translation added +* new: file upload size settings added + += 0.3.1 = + +* comment update bug fix +* project activity is now grouped by date +* "load more" button added on project activity +* some function documentation added. + += 0.3 = + +* Translation capability added +* Attachment security added. All files are now served via a proxy script + for security with permission checking. + += 0.2.1 = + +* Comments display error fix + += 0.2 = + +* Remove comments from listing publicly +* Post types are hidden from search + += 0.1 = +Initial version released + == Upgrade Notice == BREAKING CHANGE: v2.0 release is a major version and introduces breaking changes by re-writing the whole plugin. Please test the plugin before updating from v1.x. Taking a database backup is advised. diff --git a/routes/milestone.php b/routes/milestone.php index f3a1a5ef1..d475eb806 100644 --- a/routes/milestone.php +++ b/routes/milestone.php @@ -25,3 +25,12 @@ $router->post( 'projects/{project_id}/milestones/privacy/{milestone_id}', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@privacy' ) ->permission( ['WeDevs\PM\Core\Permissions\Edit_Milestone'] ); + + +$router->get( 'projects/{project_id}/payment-log?', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@payment_log' ) + ->permission( ['WeDevs\PM\Core\Permissions\Access_Project'] ); +$router->post( 'projects/{project_id}/create-order', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@create_order'); +$router->post( 'projects/{project_id}/delete-manual-order', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@delete_manual_order'); +$router->get( 'projects/{project_id}/get-status', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@get_status'); +$router->post( 'projects/{project_id}/get-manual-order', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@get_manual_order'); +$router->post( 'projects/{project_id}/update-manual-order', 'WeDevs/PM/Milestone/Controllers/Milestone_Controller@update_manual_order'); diff --git a/routes/user.php b/routes/user.php index 7c113e608..d1f47ef5d 100644 --- a/routes/user.php +++ b/routes/user.php @@ -8,14 +8,14 @@ $router->get( 'users', 'WeDevs/PM/User/Controllers/User_Controller@index' ) ->permission(['WeDevs\PM\Core\Permissions\Authentic']); $router->post( 'users', 'WeDevs/PM/User/Controllers/User_Controller@store' ) - ->permission(['WeDevs\PM\Core\Permissions\Authentic']); + ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); $router->get( 'users/{id}', 'WeDevs/PM/User/Controllers/User_Controller@show' ) ->permission(['WeDevs\PM\Core\Permissions\Authentic']); $router->get( 'users/search', 'WeDevs/PM/User/Controllers/User_Controller@search' ) ->permission(['WeDevs\PM\Core\Permissions\Authentic']); -//$router->put( 'users/{user_id}/roles', 'WeDevs/PM/User/Controllers/User_Controller@update_role' ) -// ->permission(['WeDevs\PM\Core\Permissions\Project_Manage_Capability']); +$router->put( 'users/{user_id}/roles', 'WeDevs/PM/User/Controllers/User_Controller@update_role' ) + ->permission(['WeDevs\PM\Core\Permissions\Authentic']); $router->post( 'save_users_map_name', 'WeDevs/PM/User/Controllers/User_Controller@save_users_map_name' ) ->permission(['WeDevs\PM\Core\Permissions\Authentic']); diff --git a/src/Activity/Controllers/Activity_Controller.php b/src/Activity/Controllers/Activity_Controller.php index e2991fcd7..bee165544 100644 --- a/src/Activity/Controllers/Activity_Controller.php +++ b/src/Activity/Controllers/Activity_Controller.php @@ -19,9 +19,9 @@ class Activity_Controller { public function index( WP_REST_Request $request ) { - $per_page = intval( $request->get_param( 'per_page' ) ); - $page = intval( $request->get_param( 'page' ) ); - $project_id = intval( $request->get_param( 'project_id' ) ); + $per_page = $request->get_param( 'per_page' ); + $page = $request->get_param( 'page' ); + $project_id = $request->get_param( 'project_id' ); $per_page = $per_page ? $per_page : 20; $page = $page ? intval($page) : 1; diff --git a/src/Category/Controllers/Category_Controller.php b/src/Category/Controllers/Category_Controller.php index f54c6225b..deb261dfb 100644 --- a/src/Category/Controllers/Category_Controller.php +++ b/src/Category/Controllers/Category_Controller.php @@ -21,10 +21,10 @@ class Category_Controller { public function index( WP_REST_Request $request ) { $type = sanitize_text_field( $request->get_param( 'type' ) ); - $per_page = intval( $request->get_param( 'per_page' ) ); + $per_page = $request->get_param( 'per_page' ); $per_page = $per_page ? $per_page : 20; - $page = intval( $request->get_param( 'page' ) ); + $page = $request->get_param( 'page' ); $page = $page ? $page : 1; Paginator::currentPageResolver(function () use ($page) { @@ -53,7 +53,7 @@ public function index( WP_REST_Request $request ) { } public function show( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $category = Category::findOrFail( $id ); $resource = new Item( $category, new Category_Transformer ); @@ -69,8 +69,8 @@ public static function add_category( $category ) { public function store( WP_REST_Request $request ) { $data = [ - 'title' => sanitize_text_field( $request->get_param( 'title' ) ), - 'description' => sanitize_text_field( $request->get_param( 'description' ) ), + 'title' => $request->get_param( 'title' ), + 'description' => $request->get_param( 'description' ), 'categorible_type' => sanitize_text_field( $request->get_param( 'categorible_type' ) ) ]; $data = array_filter( $data ); @@ -87,14 +87,13 @@ public function store( WP_REST_Request $request ) { } public function update( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $data = [ - 'title' => sanitize_text_field( $request->get_param( 'title' ) ), - 'description' => sanitize_text_field( $request->get_param( 'description' ) ), + 'title' => $request->get_param( 'title' ), + 'description' => $request->get_param( 'description' ), 'categorible_type' => sanitize_text_field( $request->get_param( 'categorible_type' ) ) ]; - $category = Category::findOrFail( $id ); $data = array_filter( $data ); @@ -110,7 +109,7 @@ public function update( WP_REST_Request $request ) { return $this->get_response( $resource, $message ); } public function destroy( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $category = Category::find( $id ); $category->projects()->detach(); diff --git a/src/Comment/Controllers/Comment_Controller.php b/src/Comment/Controllers/Comment_Controller.php index c66acf097..8d1370eb8 100644 --- a/src/Comment/Controllers/Comment_Controller.php +++ b/src/Comment/Controllers/Comment_Controller.php @@ -22,15 +22,15 @@ class Comment_Controller { use Transformer_Manager, Request_Filter, File_Attachment, Last_Activity; public function index( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $per_page = intval( $request->get_param( 'per_page' ) ); - $page = intval( $request->get_param( 'page' ) ); + $project_id = $request->get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); + $page = $request->get_param( 'page' ); $per_page = $per_page ? $per_page : pm_config('app.comment_per_page'); $page = $page ? $page : 1; $on = $request->get_param( 'on' ); - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $by = $request->get_param( 'by' ); if ( $on ) { @@ -90,7 +90,7 @@ public function store( WP_REST_Request $request ) { ); wp_die(); } - + $comment = Comment::create( $data ); if ( $type ) { @@ -185,5 +185,4 @@ public function destroy( WP_REST_Request $request ) { return $this->get_response(false, $message); } - } diff --git a/src/Discussion_Board/Controllers/Discussion_Board_Controller.php b/src/Discussion_Board/Controllers/Discussion_Board_Controller.php index 11438ef85..c78540967 100644 --- a/src/Discussion_Board/Controllers/Discussion_Board_Controller.php +++ b/src/Discussion_Board/Controllers/Discussion_Board_Controller.php @@ -26,11 +26,11 @@ class Discussion_Board_Controller { use Transformer_Manager, Request_Filter, File_Attachment; public function index( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $per_page = intval( $request->get_param( 'per_page' ) ); + $project_id = $request->get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); $per_page = $per_page ? $per_page : 15; - $page = intval( $request->get_param( 'page' ) ); + $page = $request->get_param( 'page' ); $page = $page ? $page : 1; Paginator::currentPageResolver(function () use ($page) { @@ -53,7 +53,7 @@ public function index( WP_REST_Request $request ) { public function show( WP_REST_Request $request ) { $project_id = intval( $request->get_param( 'project_id' ) ); $discussion_board_id = intval( $request->get_param( 'discussion_board_id' ) ); - + $discussion_board = Discussion_Board::with('metas')->where( 'id', $discussion_board_id )->where( 'project_id', $project_id ); $discussion_board = apply_filters( 'pm_discuss_show_query', $discussion_board, $project_id, $request ); $discussion_board = $discussion_board->first(); @@ -74,7 +74,7 @@ public function store( WP_REST_Request $request ) { $media_data = $request->get_file_params(); $milestone_id = intval( $request->get_param( 'milestone' ) ); $files = array_key_exists( 'files', $media_data ) ? $media_data['files'] : null; - + if( HelperFile::check_file_for_xss_code( $files ) ){ return wp_send_json( [ @@ -163,7 +163,7 @@ public function update( WP_REST_Request $request ) { } public function destroy( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $discussion_board_id = $request->get_param( 'discussion_board_id' ); $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) @@ -237,7 +237,7 @@ public function attach_users( WP_REST_Request $request ) { } public function detach_users( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $discussion_board_id = $request->get_param( 'discussion_board_id' ); $discussion_board = Discussion_Board::where( 'id', $discussion_board_id ) @@ -259,7 +259,7 @@ public function privacy( WP_REST_Request $request ) { $project_id = intval( $request->get_param( 'project_id' ) ); $discussion_board_id = intval($request->get_param( 'discussion_board_id' ) ); $privacy = intval( $request->get_param( 'is_private' ) ); - + $discuss = Discussion_Board::find( $discussion_board_id ); $discuss->update_model( [ 'is_private' => $privacy diff --git a/src/File/Controllers/File_Controller.php b/src/File/Controllers/File_Controller.php index 816ff167a..ff07c71a1 100644 --- a/src/File/Controllers/File_Controller.php +++ b/src/File/Controllers/File_Controller.php @@ -19,11 +19,11 @@ class File_Controller { use Transformer_Manager, Request_Filter; public function index( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $per_page = intval( $request->get_param( 'per_page' ) ); + $project_id = $request->get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); $per_page = $per_page ? $per_page : 200; - $page = intval( $request->get_param( 'page' ) ); + $page = $request->get_param( 'page' ); $page = $page ? $page : 1; Paginator::currentPageResolver(function () use ($page) { diff --git a/src/File/Helper/File.php b/src/File/Helper/File.php index 91a26e271..7bbb85882 100644 --- a/src/File/Helper/File.php +++ b/src/File/Helper/File.php @@ -55,13 +55,13 @@ public static function get_results( $params = [] ) { public static function check_file_for_xss_code( $files ) { if (isset($files['type']) && is_array($files['type'])) { - + foreach ($files['type'] as $index => $file_type) { - + if ($file_type === 'image/svg+xml') { $svg_tmp_name = $files['tmp_name'][$index]; $svg_content = file_get_contents($svg_tmp_name); - + if (self::contains_xss_code($svg_content)) { return true; } diff --git a/src/Imports/Controllers/Trello_Controller.php b/src/Imports/Controllers/Trello_Controller.php index fa05e969d..b01cdd5f4 100644 --- a/src/Imports/Controllers/Trello_Controller.php +++ b/src/Imports/Controllers/Trello_Controller.php @@ -19,7 +19,6 @@ public function index( WP_REST_Request $request ) { } public function test( WP_REST_Request $request ) { - $app_key = trim(sanitize_text_field($request->get_param('app_key'))); $app_token = trim(sanitize_text_field($request->get_param('app_token'))); $trello_helper = new Trello_helper($app_key,$app_token,'dev'); @@ -109,6 +108,4 @@ public function get_subcards(WP_REST_Request $request){ $trello_checklists = Import_helper::save_imported_checklists($trello_checklists); return $trello_checklists; } - - -} +} \ No newline at end of file diff --git a/src/Imports/Controllers/Trello_Controller_backup.php b/src/Imports/Controllers/Trello_Controller_backup.php index 8466ec7c1..ca6d29550 100644 --- a/src/Imports/Controllers/Trello_Controller_backup.php +++ b/src/Imports/Controllers/Trello_Controller_backup.php @@ -17,7 +17,6 @@ public function index( WP_REST_Request $request ) { } public function test( WP_REST_Request $request ) { - $app_key = trim(sanitize_text_field($request->get_param('app_key'))); $app_token = trim(sanitize_text_field( $request->get_param('app_token'))); $trello_helper = new Trello_helper($app_key,$app_token,'dev'); @@ -36,6 +35,5 @@ public function test( WP_REST_Request $request ) { $trello_tree['user_boards_lists_cards'] = $trello_cards; return $trello_tree ; - } -} +} \ No newline at end of file diff --git a/src/Milestone/Controllers/Milestone_Controller.php b/src/Milestone/Controllers/Milestone_Controller.php index c551e93d3..fa07d18a4 100644 --- a/src/Milestone/Controllers/Milestone_Controller.php +++ b/src/Milestone/Controllers/Milestone_Controller.php @@ -15,6 +15,8 @@ use Carbon\Carbon; use Illuminate\Database\Capsule\Manager as DB; use Illuminate\Pagination\Paginator; +use WeDevs\PM\Milestone\Transformers\Order_Status_Transformer; +use WeDevs\PM\Milestone\Transformers\Payment_Transformer; class Milestone_Controller { @@ -65,6 +67,176 @@ public function index( WP_REST_Request $request ) { return $this->get_response( $resource ); } + /** + * weLabs Modifications [Start] + * Get time log list + * REST endpoint: self.base_url + 'pm/v2/projects/'+self.project_id+'/payment-log?' + * URL query params: ?start_date=2023-12-20&end_date=2023-12-21 + */ + + public function payment_log(WP_REST_Request $request){ + + // $is_admin = $request->get_param('is_admin'); + $admin = $request->get_param('is_admin'); + $administrator = current_user_can('administrator'); + $is_admin = current_user_can('manage_options'); //$request->get_param('is_admin'); + $c_user = ''; + + if(empty($is_admin)){ + $c_user = wp_get_current_user(); + $c_user = $c_user->data; + $c_user = $c_user->ID; + } + + + $start_date = ''; + $end_date = ''; + $params = $request->get_params(); + if(isset($params['start_date'])){ + $start_date = $params['start_date']; + $start_date = date("Y-m-d", strtotime($start_date)); + $start_date = "'".$start_date."'"; + } + if(isset($params['end_date'])){ + $end_date = $params['end_date']; + $end_date = date("Y-m-d", strtotime($end_date)); + $end_date = "'".$end_date."'"; + } + + $project_id = $request->get_param('project_id'); + global $wpdb; + $invoice_by_woo = \WeLabs\Key4ceProjectMangerExtension\Helpers::INVOICE_BY_WOO; + $manual_adjustment = \WeLabs\Key4ceProjectMangerExtension\Helpers::MANUAL_ADJUSTMENT; + + $sql = "SELECT* FROM wp_pm_meta WHERE project_id = $project_id AND( meta_key LIKE '%{$invoice_by_woo}%' + or meta_key LIKE '%{$manual_adjustment}%')"; + + // if(!empty($c_user)){ + // $sql = "SELECT* FROM wp_pm_meta WHERE project_id = $project_id AND( meta_key LIKE '%{$invoice_by_woo}%' + // or meta_key LIKE '%{$manual_adjustment}%')"; + // } + + if(!empty($start_date) && !empty($end_date)){ + $sql = "SELECT* FROM wp_pm_meta WHERE project_id = $project_id AND( meta_key LIKE '%{$invoice_by_woo}%' + or meta_key LIKE '%{$manual_adjustment}%') + AND cast(created_at as date) >= $start_date + AND cast(created_at as date) <= $end_date"; + } + + $payments_data = $wpdb->get_results( $sql ); + + if(empty($admin) && $administrator && $is_admin){ + foreach($payments_data as $key => $data){ + $data->entity_type = 'yes'; + } + } + + $resource = new Collection($payments_data, new Payment_Transformer); + + return $this->get_response( $resource ); + } + + public function create_order(WP_REST_Request $request){ + $order_type = $request->get_param('orderType'); + $data = []; + + if($order_type === 'invoice_by_woo') { + $unpaid_hours = $request->get_param('unpaidHours'); + $hour_rate = $request->get_param('hourRate'); + $data['unpaid_hours'] = $unpaid_hours; + $data['rate'] = $hour_rate; + $data['project_id'] = $request->get_param('project_id'); + $data['order_type'] = $order_type; + } else { + $manual_date = $request->get_param('purchaseDate'); + $manual_hour = $request->get_param('adjustHours'); + $manual_rate = $request->get_param('adjustRate'); + // $manual_status = $request->get_param('assign_status'); + $manual_refID = $request->get_param('adjustRefID'); + $data['purchase_date'] = $manual_date; + $data['unpaid_hours'] = $manual_hour; + $data['rate'] = $manual_rate; + // $data['status'] = $manual_status; + $data['project_id'] = $request->get_param('project_id'); + $data['ref_id'] = $manual_refID; + $data['order_type'] = $order_type; + } + + $order_id = \WeLabs\Key4ceProjectMangerExtension\Helpers::create_order($data); + + $resource['success'] = 'unsuccessful'; + + if($order_id){ + $resource['success'] = 'successful'; + + wp_send_json( $resource ); + } + + wp_send_json( $resource ); + } + + public function delete_manual_order(WP_REST_Request $request){ + $pm_meta_id = $request->get_params('id'); + $pm_meta_id = $pm_meta_id['id']; + + \WeLabs\Key4ceProjectMangerExtension\Helpers::update_hour_on_manual_order_delete($pm_meta_id); + + $resource['success'] = 'successful'; + + wp_send_json( $resource ); + } + + public function get_status(WP_REST_Request $request){ + $order_statuses = array(); + $statuses = wc_get_order_statuses(); + + foreach($statuses as $key => $status){ + $data['key'] = $key; + $data['status'] = $status; + + array_push($order_statuses, $data); + } + + $resource = new Collection($order_statuses, new Order_Status_Transformer); + + return $this->get_response( $resource ); + } + + public function update_manual_order(WP_REST_Request $request){ + global $wpdb; + $r_params = $request->get_params(); + $manual_status = null; + $pm_meta_id = $request->get_param('orderId'); + $manual_date = $request->get_param('purchaseDate'); + $manual_hour = $request->get_param('adjustHours'); + $manual_rate = $request->get_param('adjustRate'); + $manual_refID = $request->get_param('adjustRefID'); + $data['purchase_date'] = $manual_date; + $data['unpaid_hours'] = $manual_hour; + $data['rate'] = $manual_rate; + // $data['status'] = $status; + $data['ref_id'] = $manual_refID; + + $pm_meta_id = \WeLabs\Key4ceProjectMangerExtension\Helpers::update_order($pm_meta_id, $data); + } + + public function get_manual_order(WP_REST_Request $request){ + global $wpdb; + $pm_meta_id = $request->get_param('id'); + $query = "SELECT * + FROM {$wpdb->prefix}pm_meta as pm_meta + WHERE pm_meta.id = $pm_meta_id"; + + $adjust_data = $wpdb->get_results( $query ); + $resource = new Collection($adjust_data, new Payment_Transformer); + + return $this->get_response( $resource ); + } + /*********** + * weLabs Modifications [End] + * *********** + */ + private function get_milestone_collection( $metas = [] ) { $milestones = []; @@ -173,7 +345,7 @@ public function update( WP_REST_Request $request ) { $data['is_private'] = $is_private == 'true' || $is_private === true ? 1 : 0; // Set project id from url parameter - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); // Set milestone id from url parameter $milestone_id = $request->get_param( 'milestone_id' ); @@ -214,7 +386,7 @@ public function update( WP_REST_Request $request ) { } public function destroy( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $milestone_id = $request->get_param( 'milestone_id' ); $milestone = Milestone::where( 'id', $milestone_id ) @@ -233,7 +405,7 @@ public function destroy( WP_REST_Request $request ) { return $this->get_response(false, $message); } public function privacy( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $milestone_id = $request->get_param( 'milestone_id' ); $privacy = $request->get_param( 'is_private' ); $milestone = Milestone::find( $milestone_id ); diff --git a/src/Milestone/Transformers/Order_Status_Transformer.php b/src/Milestone/Transformers/Order_Status_Transformer.php new file mode 100644 index 000000000..824576944 --- /dev/null +++ b/src/Milestone/Transformers/Order_Status_Transformer.php @@ -0,0 +1,16 @@ + $item, + ]; + } +} \ No newline at end of file diff --git a/src/Milestone/Transformers/Payment_Transformer.php b/src/Milestone/Transformers/Payment_Transformer.php new file mode 100644 index 000000000..08eb4e80f --- /dev/null +++ b/src/Milestone/Transformers/Payment_Transformer.php @@ -0,0 +1,231 @@ + $item->id, + 'order_no' => $this->get_order_id($item, $item->id), + 'status' => $this->get_order_status($item), + 'purchase_date' => $this->get_purchase_date($item), + 'date' => $this->get_date($item), + 'hour' => $this->get_order_purchased_hour($item), + 'rate' => $this->get_order_rate($item), + 'amount' => $this->get_order_amount($item), + 'ref_id' => $this->get_order_refID($item), + 'particulars' => $this->get_order_particulars($item), + 'status_name' => $this->get_order_status_name($item), + 'order_general_view' => $this->get_order_key($item), + 'is_admin_front_view' => $this->get_is_admin_front_view($item), + 'site_admin_url' => $this->get_site_admin_url(), + ]; + } + + protected function get_site_admin_url(){ + $admin_url = admin_url( 'admin.php?page=wc-orders&action=edit&id=' ); + + return $admin_url; + } + + protected function get_is_admin_front_view($item_data){ + $view = 'no'; + + if($item_data->entity_type === 'yes'){ + $view = 'yes'; + } + + return $view; + } + + protected function get_order_key($item_data){ + global $wpdb; + $order_key = ''; + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + + if($meta_value['order_type'] === 'invoice_by_woo'){ + $order_id = $meta_value['order_id']; + + $query = "SELECT * + FROM {$wpdb->prefix}wc_order_operational_data as operational_data + WHERE operational_data.order_id = $order_id"; + + $operational_data = $wpdb->get_results( $query ); + if(count($operational_data)){ + $operational_data = $operational_data[0]; + $order_key = $operational_data->order_key; + } + error_log("operational_data : ".json_encode($order_key)); + } + + return $order_key; + } + + protected function get_order_id($item_data, $item_id){ + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $order_id = ''; + + if($meta_value['order_type'] === 'invoice_by_woo'){ + $order_id = $meta_value['order_id']; + + return $order_id; + } + if($meta_value['order_type'] === 'manual_adjustment'){ + return $item_id; + } + } + + protected function get_order_status_name($item_data){ + $order_status = ''; + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $order_particulars = $meta_value['order_type']; + + if($order_particulars === 'invoice_by_woo'){ + $order_no = $meta_value['order_id']; + $order = wc_get_order( $order_no ); + + if($order){ + $order_status = $order->get_status(); + $order_status = 'wc-'.$order_status; + $stats = $order_status; + $statuses = wc_get_order_statuses(); + + foreach($statuses as $key => $status){ + if($key === $order_status){ + $stats = $status; + } + } + + return $stats; + } + } + if($order_particulars === 'manual_adjustment'){ + $stats = $meta_value['status']; + + if(!empty($stats)){ + $stats = 'Paid'; + } + + return $stats; + } + } + + protected function get_order_amount($item_data){ + $amount = 0; + $order = null; + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $order_type = $meta_value['order_type']; + + if( $order_type === 'invoice_by_woo' ) { + $order = wc_get_order( $meta_value['order_id'] ); + } + + if($order){ + $amount = $order->get_total(); + } + + if( $order_type === 'manual_adjustment' ) { + $amount = $meta_value['calculated_price']; + } + + $amount = wc_format_decimal( $amount, wc_get_price_decimals() ); + + return $amount; + } + + protected function get_order_rate($item_data){ + $rate = wc_format_decimal( 0, wc_get_price_decimals() ); + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + // $order = wc_get_order( $order_no ); + + $rate = $meta_value['rate']; + // $rate = floatval($rate); + + if(!empty($rate)){ + $rate = wc_format_decimal( $rate, wc_get_price_decimals() ); + } + + return $rate; + } + + protected function get_purchase_date($item_data){ + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $purchase_date = date("Y-m-d", strtotime($meta_value['purchase_date'])); + + return $purchase_date; + } + + protected function get_date($item_data){ + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $purchase_date = date("d-m-Y", strtotime($meta_value['purchase_date'])); + + return $purchase_date; + } + + protected function get_order_purchased_hour($item_data){ + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + + $purchased_hour = $meta_value['unpaid_hours']; + + return $purchased_hour; + + } + + protected function get_order_refID($item_data){ + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $ref_ID = $meta_value['ref_id']; + + return $ref_ID; + } + + protected function get_order_particulars($item_data){ + $particulars = ''; + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $order_particulars = $meta_value['order_type']; + + if($order_particulars === 'invoice_by_woo'){ + $particulars = 'Invoice by woo'; + } + if($order_particulars === 'manual_adjustment'){ + $particulars = 'Manual Adjustment'; + } + + return $particulars; + } + + protected function get_order_status($item_data){ + $order_status = ''; + $meta_value = $item_data->meta_value; + $meta_value = maybe_unserialize($meta_value); + $order_type = $meta_value['order_type']; + + if($order_type === 'manual_adjustment' ){ + $order_status = 'Paid'; + } + if($order_type === 'invoice_by_woo'){ + $order_id = $meta_value['order_id']; + $order = wc_get_order( $order_id ); + if($order){ + $order_status = $order->get_status(); + } + } + + return $order_status; + } +} \ No newline at end of file diff --git a/src/My_Task/Controllers/MyTask_Controller.php b/src/My_Task/Controllers/MyTask_Controller.php index c4a62bc77..1457955d7 100644 --- a/src/My_Task/Controllers/MyTask_Controller.php +++ b/src/My_Task/Controllers/MyTask_Controller.php @@ -22,9 +22,8 @@ class MyTask_Controller { use Transformer_Manager, Request_Filter; public function user_tasks_by_type ( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $taskType = sanitize_text_field( $request->get_param( 'task_type' ) ); - $today = date( 'Y-m-d', strtotime( current_time( 'mysql' ) ) ); $user = User::with( [ @@ -655,7 +654,7 @@ public function get_privacy_meta_value( $event_meta ) { } // public function user_calender_tasks_x( WP_REST_Request $request ) { - // $id = intval( $request->get_param( 'id' ) ); + // $id = $request->get_param( 'id' ); // $start = $request->get_param( 'start' ); // $end = $request->get_param( 'end' ); @@ -722,7 +721,7 @@ public function assigned_users () { } public function user_activities ( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $page = $request->get_param( 'mytask_activities_page' ); $per_page = $request->get_param( 'mytask_activities_per_page' ); $page = isset( $page ) ? $page : 1; diff --git a/src/Project/Controllers/Project_Controller.php b/src/Project/Controllers/Project_Controller.php index 7e602d469..ed1177ec0 100644 --- a/src/Project/Controllers/Project_Controller.php +++ b/src/Project/Controllers/Project_Controller.php @@ -25,12 +25,12 @@ class Project_Controller { use Transformer_Manager, Request_Filter, File_Attachment; public function index( WP_REST_Request $request ) { - $per_page = intval( $request->get_param( 'per_page' ) ); - $page = intval( $request->get_param( 'page' ) ); + $per_page = $request->get_param( 'per_page' ); + $page = $request->get_param( 'page' ); $status = $request->get_param( 'status' ); $category = $request->get_param( 'category' ); $project_transform = $request->get_param( 'project_transform' ); - + $per_page_from_settings = pm_get_setting( 'project_per_page' ); $per_page_from_settings = $per_page_from_settings ? $per_page_from_settings : 15; @@ -216,13 +216,11 @@ public function store( WP_REST_Request $request ) { add_option('projectId_git_bit_hash_'.$project->id , sha1(strtotime("now").$project->id)); // Establishing relationships $category_ids = intval( $request->get_param( 'categories' ) ); - if ( $category_ids ) { $project->categories()->sync( $category_ids ); } $assignees = pm_validate_assignee( $request->get_param( 'assignees' ) ); - $assignees[] = [ 'user_id' => wp_get_current_user()->ID, 'role_id' => 1, // 1 for manager @@ -265,7 +263,7 @@ public function update( WP_REST_Request $request ) { $project->assignees()->detach(); $this->assign_users( $project, $assignees ); } - + do_action( 'pm_project_update', $project, $request->get_params()); $resource = new Item( $project, new Project_Transformer ); $response = $this->get_response( $resource ); $response['message'] = pm_get_text('success_messages.project_updated'); @@ -324,7 +322,7 @@ public function delete_projects_all() { } public function destroy( WP_REST_Request $request ) { - $id = intval( $request->get_param('id') ); + $id = $request->get_param('id'); // Find the requested resource $project = Project::find( $id ); diff --git a/src/Role/Controllers/Role_Controller.php b/src/Role/Controllers/Role_Controller.php index 94eae01ae..a857b5b55 100644 --- a/src/Role/Controllers/Role_Controller.php +++ b/src/Role/Controllers/Role_Controller.php @@ -26,7 +26,7 @@ public function index( WP_REST_Request $request ) { } public function show( WP_REST_Request $request ) { - $id = intval( $request->get_param('id') ); + $id = $request->get_param('id'); $role = Role::where('status', 1)->find( $id ); $resource = new Item( $role, new Role_Transformer ); @@ -56,9 +56,9 @@ public function update( WP_REST_Request $request ) { } public function destroy( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $role = Role::find( $id ); $role->delete(); } -} +} \ No newline at end of file diff --git a/src/Search/Controllers/Search_Controller.php b/src/Search/Controllers/Search_Controller.php index 824904dad..25650c35c 100644 --- a/src/Search/Controllers/Search_Controller.php +++ b/src/Search/Controllers/Search_Controller.php @@ -19,7 +19,7 @@ class Search_Controller { public function search( WP_REST_Request $request ) { $string = sanitize_text_field( $request->get_param( 'query' ) ); - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $model = $request->get_param( 'model' ); //[milestone, discussion_board, task_list, task] $model = empty( $model ) ? '' : $model; @@ -34,7 +34,7 @@ public function search( WP_REST_Request $request ) { } public function searchTopBar( WP_REST_Request $request ) { - $string = sanitize_text_field ( $request->get_param( 'query' ) ); + $string = sanitize_text_field ( $request->get_param( 'query' ) ); $type = sanitize_text_field( $request->get_param( 'type' ) ); $model = $request->get_param( 'model' ); //[milestone, discussion_board, task_list, task] $model = empty( $model ) ? '' : $model; diff --git a/src/Settings/Controllers/Settings_Controller.php b/src/Settings/Controllers/Settings_Controller.php index 1a1b397d4..df41d3c2e 100644 --- a/src/Settings/Controllers/Settings_Controller.php +++ b/src/Settings/Controllers/Settings_Controller.php @@ -18,7 +18,7 @@ class Settings_Controller { use Request_Filter, Transformer_Manager; public function index( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $key = $request->get_param( 'key' ); if ( $project_id && $key ) { @@ -53,9 +53,9 @@ public function index( WP_REST_Request $request ) { public function store( WP_REST_Request $request ) { $data = $this->extract_non_empty_values( $request ); - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $settings = $request->get_param( 'settings' ); - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); if ( is_array( $settings ) ) { $settings_collection = []; @@ -114,7 +114,7 @@ public static function save_settings( $data, $project_id = 0, $id = 0 ) { } public function destroy( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $settings = Settings::where( 'id', $id ) ->first(); @@ -131,14 +131,14 @@ public function destroy( WP_REST_Request $request ) { public function pluck_without_project(WP_REST_Request $request) { $key = $request->get_param('key'); - return pm_get_setting( $key ); + return pm_get_setting( $kye ); } public function pluck_with_project(WP_REST_Request $request) { $project_id = $request->get_param('project_id'); $key = $request->get_param('key'); - return pm_get_setting( $key, $project_id ); + return pm_get_setting( $kye, $project_id ); } public function notice(WP_REST_Request $request) { diff --git a/src/Settings/Controllers/Task_Types_Controller.php b/src/Settings/Controllers/Task_Types_Controller.php index 02fefbad5..26a2ed0e7 100644 --- a/src/Settings/Controllers/Task_Types_Controller.php +++ b/src/Settings/Controllers/Task_Types_Controller.php @@ -19,9 +19,9 @@ class Task_Types_Controller { use Request_Filter, Transformer_Manager; public function index( WP_REST_Request $request ) { - $per_page = intval( $request->get_param( 'per_page' ) ); + $per_page = $request->get_param( 'per_page' ); $per_page = $per_page ? $per_page : 500; - $page = intval( $request->get_param( 'page' ) ); + $page = $request->get_param( 'page' ); $page = empty( $page ) ? 1 : $page; Paginator::currentPageResolver(function () use ($page) { @@ -66,7 +66,7 @@ public function store( WP_REST_Request $request ) { } public function update_task_type( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $title = $request->get_param( 'title' ); $description = $request->get_param( 'description' ); $type = $request->get_param( 'type' ); @@ -88,7 +88,7 @@ public function update_task_type( WP_REST_Request $request ) { } public function destroy_task_type( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $stored_type = Task_Types::where( 'id', $id ) ->first(); diff --git a/src/Task/Controllers/Task_Controller.php b/src/Task/Controllers/Task_Controller.php index 9f7a8d16e..216016de6 100644 --- a/src/Task/Controllers/Task_Controller.php +++ b/src/Task/Controllers/Task_Controller.php @@ -49,11 +49,11 @@ public static function getInstance() { } public function index( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $per_page = intval( $request->get_param( 'per_page' ) ); + $project_id = $request->get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); $per_page = $per_page ? $per_page : 5; - $page = intval( $request->get_param( 'page' ) ); - $search = sanitize_text_field( $request->get_param( 's' ) ); + $page = $request->get_param( 'page' ); + $search = $request->get_param( 's' ); Paginator::currentPageResolver(function () use ($page) { return $page; @@ -329,7 +329,6 @@ public function update( WP_REST_Request $request ) { return $this->task_update( $request->get_params() ); } - public static function task_update( $params ) { $task_id = intval( $params['task_id'] ); @@ -506,7 +505,7 @@ public static function delete_task( $data ) { public function destroy( WP_REST_Request $request ) { // Grab user inputs - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $task_id = $request->get_param( 'task_id' ); // Select the task @@ -597,7 +596,7 @@ public function detach_from_board( WP_REST_Request $request ) { } public function attach_users( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $task_id = $request->get_param( 'task_id' ); $user_ids = $request->get_param( 'users' ); @@ -622,7 +621,7 @@ public function attach_users( WP_REST_Request $request ) { } public function detach_users( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $task_id = $request->get_param( 'task_id' ); $user_ids = $request->get_param( 'users' ); @@ -662,7 +661,7 @@ public function reorder( WP_REST_Request $request ) { } public function privacy( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $task_id = $request->get_param( 'task_id' ); $privacy = $request->get_param( 'is_private' ); $task = Task::find( $task_id ); @@ -674,7 +673,6 @@ public function privacy( WP_REST_Request $request ) { } public function task_sorting( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); $list_id = intval( $request->get_param( 'list_id' ) ); $task_id = intval($request->get_param( 'task_id' ) ); @@ -738,13 +736,13 @@ function filter_query( $request ) { global $wpdb; - $status = sanitize_text_field($request->get_param('status')); - $due_date = sanitize_text_field($request->get_param('dueDate')); - $assignees = array_map('intval', (array) $request->get_param('users')); - $lists = array_map('intval', (array) $request->get_param('lists')); - $project_id = intval($request->get_param('project_id')); - $title = sanitize_text_field($request->get_param('title')); - + $status = $request->get_param('status'); + //$board_status = $request->get_param('board_status'); + $due_date = $request->get_param('dueDate'); + $assignees = $request->get_param('users'); + $lists = $request->get_param('lists'); + $project_id = $request->get_param('project_id'); + $title = $request->get_param('title'); $tb_lists = pm_tb_prefix() . 'pm_boards'; @@ -859,8 +857,8 @@ public function filter( WP_REST_Request $request ) { $ct_per_page = pm_get_setting( 'complete_tasks_per_page' ); $ct_per_page = empty( $per_page ) ? 20 : intval( $per_page ); - $page = intval($request->get_param('page')); - $project_id = intval($request->get_param('project_id')); + $page = $request->get_param('page'); + $project_id = $request->get_param('project_id'); Paginator::currentPageResolver(function () use ($page) { return $page; @@ -884,12 +882,11 @@ public function filter( WP_REST_Request $request ) { } $filter = [ - 'status' => sanitize_key( $request->get_param('status') ), - 'due_date' => sanitize_text_field( $request->get_param('dueDate') ), - 'users' => is_array( $request->get_param('users') ) ? array_map( 'intval', $request->get_param('users') ) : ( is_numeric( $request->get_param('users') ) ? intval( $request->get_param('users') ) : null ), - 'title' => sanitize_text_field( $request->get_param('title') ) + 'status' => $request->get_param('status'), + 'due_date' => $request->get_param('dueDate'), + 'users' => $request->get_param('users'), + 'title' => $request->get_param('title') ]; - //get total complete and incomplete tasks count $lists_tasks_count = ( new Task_List_Controller )->get_lists_tasks_count( $list_ids, $project_id, $filter ); @@ -932,9 +929,8 @@ public function filter( WP_REST_Request $request ) { public function activities( WP_REST_Request $request ) { - $current_page = intval( $request->get_param( 'activityPage' ) ); - $task_id = intval( $request->get_param( 'task_id' ) ); - + $current_page = $request->get_param( 'activityPage' ); + $task_id = $request->get_param( 'task_id' ); $per_page = 10; Paginator::currentPageResolver(function () use ($current_page) { @@ -1335,7 +1331,7 @@ public function load_more_tasks( WP_REST_Request $request ) { $task_ids = array_map( 'intval', (array)$request->get_param( 'task_ids' )); $project_id = intval( $request->get_param( 'project_id' ) ); $status = intval( $request->get_param( 'status' ) ); - + if ( (int) $status ) { $task_ids = $this->get_complete_task_ids( [$list_id], $project_id, $task_ids ); } else { diff --git a/src/Task/Helper/Task.php b/src/Task/Helper/Task.php index 8bc80beaf..265cc26fe 100644 --- a/src/Task/Helper/Task.php +++ b/src/Task/Helper/Task.php @@ -165,7 +165,6 @@ public function format_tasks( $tasks ) { 'meta' => [] ]; - foreach ( $tasks as $key => $task ) { $tasks[$key] = $this->fromat_task( $task ); } @@ -220,8 +219,6 @@ public function fromat_task( $task ) { 'creator' => [ 'data' => $this->user_info( $task->created_by ) ], 'updater' => [ 'data' => $this->user_info( $task->updated_by ) ], ]; - - $items = $this->set_with_items( $items, $task ); $items = $this->set_fixed_items( $items, $task ); diff --git a/src/Task_List/Controllers/Task_List_Controller.php b/src/Task_List/Controllers/Task_List_Controller.php index 295d3185d..5ec1c6455 100644 --- a/src/Task_List/Controllers/Task_List_Controller.php +++ b/src/Task_List/Controllers/Task_List_Controller.php @@ -45,8 +45,8 @@ public function index( WP_REST_Request $request ) { $task_tb = $wpdb->prefix . 'pm_tasks'; $list_tb = $wpdb->prefix . 'pm_boardables'; - $project_id = intval( $request->get_param( 'project_id' ) ); - $per_page = intval( $request->get_param( 'per_page' ) ); + $project_id = $request->get_param( 'project_id' ); + $per_page = $request->get_param( 'per_page' ); $status = $request->get_param( 'status' ); $list_id = $request->get_param( 'list_id' ); //must be a array $per_page_from_settings = pm_get_setting( 'list_per_page' ); @@ -55,7 +55,7 @@ public function index( WP_REST_Request $request ) { $with = $request->get_param( 'with' ); $with = explode( ',', $with ); - $page = intval( $request->get_param( 'page' ) ); + $page = $request->get_param( 'page' ); $page = $page ? $page : 1; if ( ! is_array( $status ) ) { @@ -85,7 +85,7 @@ public function index( WP_REST_Request $request ) { $tb_lists = pm_tb_prefix() . 'pm_boards'; $tb_boardable = pm_tb_prefix() . 'pm_boardables'; $tb_meta = pm_tb_prefix() . 'pm_meta'; - $title = sanitize_text_field( $request->get_param( 'title' ) ); + $title = $request->get_param( 'title' ); $is_archive = $request->get_param( 'is_archive' ); $task_lists = Task_List::select( $tb_lists . '.*' ) @@ -227,7 +227,7 @@ public function set_complete_task_in_lists( $lists, $complete_tasks ) { } public function listInbox ( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $tasks = Task::parent()->doesnthave('boardables')->where('project_id', $project_id)->get(); $resource = new Collection ( $tasks, new Task_Transformer ); @@ -237,13 +237,13 @@ public function listInbox ( WP_REST_Request $request ) { } public function show( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $task_list_id = intval( $request->get_param( 'task_list_id' ) ); + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); $with = $request->get_param( 'with' ); return $this->get_list( [ - 'project_id' => $project_id, - 'task_list_id' => $task_list_id, + 'project_id' => $request->get_param( 'project_id' ), + 'task_list_id' => $request->get_param( 'task_list_id' ), 'with' => $request->get_param( 'with' ) ] ); } @@ -350,8 +350,8 @@ public function store( WP_REST_Request $request ) { public function update( WP_REST_Request $request ) { $data = $this->extract_non_empty_values( $request ); - $project_id = intval( $request->get_param( 'project_id' ) ); - $task_list_id = intval( $request->get_param( 'task_list_id' ) ); + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); $milestone_id = $request->get_param( 'milestone' ); $data['description'] = $request->get_param('description'); $is_private = $request->get_param( 'privacy' ); @@ -411,8 +411,8 @@ public static function delete_tasklist( $data ) { public function destroy( WP_REST_Request $request ) { // Grab user inputs - $project_id = intval( $request->get_param( 'project_id' ) ); - $task_list_id = intval( $request->get_param( 'task_list_id' ) ); + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); // Select the task list to be deleted $task_list = Task_List::where( 'id', $task_list_id ) @@ -480,8 +480,8 @@ private function detach_all_relations( Task_List $task_list ) { } public function attach_users( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $task_list_id = intval( $request->get_param( 'task_list_id' ) ); + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); $task_list = Task_List::where( 'id', $task_list_id ) ->where( 'project_id', $project_id ) @@ -507,8 +507,8 @@ public function attach_users( WP_REST_Request $request ) { } public function detach_users( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $task_list_id = intval( $request->get_param( 'task_list_id' ) ); + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); $task_list = Task_List::where( 'id', $task_list_id ) ->where( 'project_id', $project_id ) @@ -524,8 +524,8 @@ public function detach_users( WP_REST_Request $request ) { } public function privacy( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $task_list_id = intval( $request->get_param( 'task_list_id' ) ); + $project_id = $request->get_param( 'project_id' ); + $task_list_id = $request->get_param( 'task_list_id' ); $privacy = $request->get_param( 'is_private' ); pm_update_meta( $task_list_id, $project_id, 'task_list', 'privacy', $privacy ); return $this->get_response( NULL); @@ -555,8 +555,8 @@ public function list_sorting( WP_REST_Request $request ) { public function list_search( WP_REST_Request $request ) { - $project_id = intval( $request->get_param( 'project_id' ) ); - $title = sanitize_text_field( $request->get_param( 'title' ) ); + $project_id = $request->get_param( 'project_id' ); + $title = $request->get_param( 'title' ); $is_archive = $request->get_param( 'is_archive' ); $task_lists = Task_List::where( function($q) use( $title, $project_id, $is_archive ) { diff --git a/src/User/Controllers/User_Controller.php b/src/User/Controllers/User_Controller.php index 49fc41df8..d13a2c031 100644 --- a/src/User/Controllers/User_Controller.php +++ b/src/User/Controllers/User_Controller.php @@ -21,12 +21,12 @@ class User_Controller { use Transformer_Manager, Request_Filter; public function index( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); - $per_page = intval( $request->get_param( 'per_page' ) ); + $per_page = $request->get_param( 'per_page' ); $per_page = $per_page ? $per_page : 15; - $page = intval( $request->get_param( 'page' ) ); + $page = $request->get_param( 'page' ); $page = $page ? $page : 1; Paginator::currentPageResolver(function () use ($page) { @@ -48,7 +48,7 @@ public function index( WP_REST_Request $request ) { } public function show( WP_REST_Request $request ) { - $id = intval( $request->get_param( 'id' ) ); + $id = $request->get_param( 'id' ); $user = User::find( $id ); $resource = new Item( $user, new User_Transformer ); @@ -120,21 +120,16 @@ public function search( WP_REST_Request $request ) { $users = $users->get(); } - - -// $user_collection = $users->getCollection(); -// $resource = new Collection( $user_collection, new User_Transformer ); $resource = new Collection( $users, new User_Transformer ); -// $resource->setPaginator( new IlluminatePaginatorAdapter( $users ) ); - return $this->get_response( $resource ); } public function update_role( WP_REST_Request $request ) { + // Extract user inputs $id = $request->get_param( 'user_id' ); - $project_id = intval( $request->get_param( 'project_id' ) ); + $project_id = $request->get_param( 'project_id' ); $role_ids = $request->get_param( 'role_ids' ); $role_ids = explode( ',', $role_ids ); diff --git a/views/assets/css/style.css b/views/assets/css/style.css index 86ca2e5cc..aab3b5a7a 100644 --- a/views/assets/css/style.css +++ b/views/assets/css/style.css @@ -5695,3 +5695,6 @@ a.pm-icon-tick.grey { }*/ +.pm-form-item.pm-project-role select { + min-width: 100px; +} \ No newline at end of file diff --git a/views/assets/src/components/common/content-date-picker.vue b/views/assets/src/components/common/content-date-picker.vue index 82e702c37..cf53bd896 100644 --- a/views/assets/src/components/common/content-date-picker.vue +++ b/views/assets/src/components/common/content-date-picker.vue @@ -24,6 +24,7 @@ jQuery( self.$el ).datepicker({ dateFormat: 'yy-mm-dd', + // dateFormat: 'dd-mm-yy', changeYear: true, changeMonth: true, numberOfMonths: 1, diff --git a/views/assets/src/components/common/date-picker.vue b/views/assets/src/components/common/date-picker.vue index e19f56885..8af9df27e 100644 --- a/views/assets/src/components/common/date-picker.vue +++ b/views/assets/src/components/common/date-picker.vue @@ -24,6 +24,7 @@ jQuery( self.$el ).datepicker({ dateFormat: 'yy-mm-dd', + // dateFormat: 'dd-mm-yy', changeYear: true, changeMonth: true, numberOfMonths: 1, diff --git a/views/assets/src/components/common/header.vue b/views/assets/src/components/common/header.vue index 29c7f0fc6..22508a698 100644 --- a/views/assets/src/components/common/header.vue +++ b/views/assets/src/components/common/header.vue @@ -1,6 +1,6 @@ - diff --git a/views/assets/src/components/common/menu.vue b/views/assets/src/components/common/menu.vue index be4f0733d..d4bd77473 100644 --- a/views/assets/src/components/common/menu.vue +++ b/views/assets/src/components/common/menu.vue @@ -1,22 +1,5 @@