From 21ecfaf21b7fda3e2098e0f5986c4353b8868257 Mon Sep 17 00:00:00 2001 From: Markus Poerschke Date: Wed, 22 Apr 2020 21:20:57 +0200 Subject: [PATCH] Enhance use of Makefile (#155) * Enhance use of Makefile * use Makefile in TravisCI, so that the same scripts are used on the developers machine and during the CI pipeline * move test scripts to Makefile, so they can be executed in parallel for a faster test-result * add "clean" target to remove generated files * Make composer binaries available in PATH and test examples --- .editorconfig | 2 +- .github/workflows/ci.yml | 68 --------- .travis.yml | 11 ++ CONTRIBUTING.md | 2 +- Makefile | 75 +++++++++ composer.json | 50 +++--- makefile | 22 --- src/Domain/ValueObject/Date.php | 14 +- src/Domain/ValueObject/Timestamp.php | 14 +- src/Domain/ValueObject/UniqueIdentifier.php | 6 +- website/yarn.lock | 159 +------------------- 11 files changed, 138 insertions(+), 285 deletions(-) delete mode 100644 .github/workflows/ci.yml create mode 100644 .travis.yml create mode 100644 Makefile delete mode 100644 makefile diff --git a/.editorconfig b/.editorconfig index f31bb957..c9f84ac5 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,7 +7,7 @@ indent_style = space indent_size = 4 charset = utf-8 -[makefile] +[Makefile] indent_style = tab [*.yml] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 24b07f0a..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,68 +0,0 @@ -on: - - push - - pull_request - -name: CI - -jobs: - coding-guidelines: - name: Coding Guidelines - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Run friendsofphp/php-cs-fixer - uses: docker://oskarstark/php-cs-fixer-ga - with: - args: --diff --dry-run - - tests: - name: Tests - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Install PHP 7.4 - uses: shivammathur/setup-php@v1 - with: - php-version: 7.4 - coverage: xdebug - extension-csv: json, mbstring - ini-values-csv: assert.exception=1, zend.assertions=1 - - name: Cache dependencies installed with composer - uses: actions/cache@v1 - with: - path: ~/.composer/cache - key: composer-${{ hashFiles('**/composer.json') }} - - name: Install composer dependencies - run: composer install - - name: Run tests with PHPUnit - run: php ./vendor/bin/phpunit --coverage-clover=coverage.xml - - name: Ensure that the examples are working - run: find examples/*.php | xargs php - - name: Send code coverage report to Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - run: bash <(curl -s https://codecov.io/bash) || true - - type-checker: - name: Type Checker - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Install PHP 7.4 - uses: shivammathur/setup-php@v1 - with: - php-version: 7.4 - extension-csv: json, mbstring - ini-values-csv: assert.exception=1, zend.assertions=1 - - name: Cache dependencies installed with composer - uses: actions/cache@v1 - with: - path: ~/.composer/cache - key: composer-${{ hashFiles('**/composer.json') }} - - name: Install composer dependencies - run: composer install - - name: Run vimeo/psalm - run: php ./vendor/bin/psalm --shepherd diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..4b79cab4 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,11 @@ +language: php + +php: + - '7.4' + +script: + - export PHPUNIT_FLAGS="--coverage-clover=coverage.xml" + - make -j -O test + +after_success: + - bash <(curl -s https://codecov.io/bash) || true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 60e015cb..9fb310ef 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,7 @@ This project uses the [PHP Coding Standards Fixer](http://cs.sensiolabs.org/). To fix or to check the code stlye download the tool and execute it on your command line: ``` -make fix-code-style +make fix ``` ## Documentation diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..f96365f8 --- /dev/null +++ b/Makefile @@ -0,0 +1,75 @@ +MAKEFLAGS += --warn-undefined-variables +SHELL := bash +PATH := $(PATH):$(CURDIR)/vendor/bin + +.PHONY: test +test: test-validate-composer test-code-style test-psalm test-phpunit test-examples test-composer-normalize + +.PHONY: test-code-style +test-code-style: dependencies + php-cs-fixer fix --dry-run --diff + +.PHONY: test-psalm +test-psalm: dependencies + psalm -m --no-progress + +.PHONY: test-phpunit +test-phpunit: dependencies + phpunit ${PHPUNIT_FLAGS} + +.PHONY: test-examples +EXAMPLE_FILES := $(wildcard examples/*.php) +test-examples: $(EXAMPLE_FILES) + +examples/example*.php: dependencies + php $@ > /dev/null + +.PHONY: test-validate-composer +test-validate-composer: + composer validate + +.PHONY: test-composer-normalize +test-composer-normalize: dependencies +test-composer-normalize: + composer normalize --dry-run --diff + +.PHONY: dependencies +dependencies: + composer install --no-interaction + +.PHONY: fix +fix: fix-code-style fix-composer + +.PHONY: fix-code-style +fix-code-style: dependencies +fix-code-style: + php-cs-fixer -- fix + +.PHONY: fix-composer +fix-composer: dependencies +fix-composer: + composer normalize --no-update-lock + +.PHONY: docs +docs: docs-dependencies docs-frontend-build + php couscous.phar generate + +.PHONY: docs-dependencies +docs-dependencies: + if [ ! -f couscous.phar ]; then php -r "copy('https://github.com/CouscousPHP/Couscous/releases/download/1.7.3/couscous.phar', 'couscous.phar');"; fi + +.PHONY: docs-preview +docs-preview: docs-dependencies docs-frontend-build + php couscous.phar preview + +.PHONY: docs-frontend-dependencies +docs-frontend-dependencies: + cd website && yarn + +.PHONY: docs-frontend-build +docs-frontend-build: docs-frontend-dependencies + cd website && yarn build + +.PHONY: clean +clean: + rm -rf vendor composer.lock .couscous website/node_modules website/template/static couscous.phar diff --git a/composer.json b/composer.json index f13628ea..0d9a9193 100644 --- a/composer.json +++ b/composer.json @@ -1,8 +1,15 @@ { "name": "eluceo/ical", "description": "The eluceo/iCal package offers an abstraction layer for creating iCalendars. You can easily create iCal files by using PHP objects instead of typing your *.ics file by hand. The output will follow RFC 5545 as best as possible.", - "license": "MIT", + "keywords": [ + "ical", + "php calendar", + "icalendar", + "ics", + "calendar" + ], "homepage": "https://github.com/markuspoerschke/iCal", + "license": "MIT", "authors": [ { "name": "Markus Poerschke", @@ -10,16 +17,15 @@ "role": "Developer" } ], - "keywords": [ - "ical", - "php calendar", - "icalendar", - "ics", - "calendar" - ], - "support": { - "issues": "https://github.com/markuspoerschke/iCal/issues", - "source": "https://github.com/markuspoerschke/iCal" + "require": { + "php": ">=7.4", + "ext-mbstring": "*" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.2", + "friendsofphp/php-cs-fixer": "^2.16", + "phpunit/phpunit": "^8", + "vimeo/psalm": "^3.7" }, "autoload": { "psr-4": { @@ -31,24 +37,8 @@ "Eluceo\\iCal\\": "tests/" } }, - "require": { - "php": ">=7.4", - "ext-mbstring": "*" - }, - "require-dev": { - "phpunit/phpunit": "^8", - "vimeo/psalm": "^3.7", - "friendsofphp/php-cs-fixer": "^2.16" - }, - "scripts": { - "test": [ - "@test:code-style", - "@test:psalm", - "@test:phpunit" - ], - "test:code-style": "php-cs-fixer fix --dry-run --diff", - "test:psalm": "psalm", - "test:phpunit": "phpunit", - "fix:code-style": "php-cs-fixer fix" + "support": { + "issues": "https://github.com/markuspoerschke/iCal/issues", + "source": "https://github.com/markuspoerschke/iCal" } } diff --git a/makefile b/makefile deleted file mode 100644 index ecb01695..00000000 --- a/makefile +++ /dev/null @@ -1,22 +0,0 @@ -test: dependencies - composer test - -dependencies: - composer install --no-interaction - -fix-code-style: dependencies - composer fix:code-style - -docs-dependencies: - if [ ! -f couscous.phar ]; then php -r "copy('https://github.com/CouscousPHP/Couscous/releases/download/1.7.3/couscous.phar', 'couscous.phar');"; fi - -docs-preview: docs-dependencies docs-frontend-build - php couscous.phar preview - -docs-frontend-dependencies: - cd website && yarn - -docs-frontend-build: docs-frontend-dependencies - cd website && yarn build - -.PHONY: test dependencies fix-code-style docs-dependencies docs-preview docs-frontend-dependencies docs-frontend-build diff --git a/src/Domain/ValueObject/Date.php b/src/Domain/ValueObject/Date.php index 5f304462..1bba3c4b 100644 --- a/src/Domain/ValueObject/Date.php +++ b/src/Domain/ValueObject/Date.php @@ -20,12 +20,16 @@ final class Date extends PointInTime { public static function fromDateTimeInterface(PhpDateTimeInterface $dateTime): self { - return new static( - PhpDateTimeImmutable::createFromFormat( - PhpDateTimeInterface::ATOM, - $dateTime->format(PhpDateTimeInterface::ATOM), $dateTime->getTimezone() - ) + $dateTime = PhpDateTimeImmutable::createFromFormat( + PhpDateTimeInterface::ATOM, + $dateTime->format(PhpDateTimeInterface::ATOM), $dateTime->getTimezone() ); + + if ($dateTime === false) { + throw new \RuntimeException('Unexpected date time value.'); + } + + return new static($dateTime); } public static function fromCurrentDay(): self diff --git a/src/Domain/ValueObject/Timestamp.php b/src/Domain/ValueObject/Timestamp.php index 753db638..18298c98 100644 --- a/src/Domain/ValueObject/Timestamp.php +++ b/src/Domain/ValueObject/Timestamp.php @@ -18,12 +18,16 @@ class Timestamp extends PointInTime { public static function fromDateTimeInterface(PhpDateTimeInterface $dateTime): self { - return new static( - PhpDateTimeImmutable::createFromFormat( - PhpDateTimeInterface::ATOM, - $dateTime->format(PhpDateTimeInterface::ATOM), $dateTime->getTimezone() - ) + $dateTime = PhpDateTimeImmutable::createFromFormat( + PhpDateTimeInterface::ATOM, + $dateTime->format(PhpDateTimeInterface::ATOM), $dateTime->getTimezone() ); + + if ($dateTime === false) { + throw new \RuntimeException('Unexpected date time value.'); + } + + return new static($dateTime); } public static function fromCurrentTime(): self diff --git a/src/Domain/ValueObject/UniqueIdentifier.php b/src/Domain/ValueObject/UniqueIdentifier.php index fc1b7564..f68cc5d6 100644 --- a/src/Domain/ValueObject/UniqueIdentifier.php +++ b/src/Domain/ValueObject/UniqueIdentifier.php @@ -25,6 +25,10 @@ public static function fromString(string $uid): self public static function create(): self { + if (function_exists('uuid_create') && defined('UUID_TYPE_RANDOM')) { + return static::fromString((string) uuid_create(UUID_TYPE_RANDOM)); + } + return static::fromString(uniqid()); } @@ -33,7 +37,7 @@ private function __construct(string $uid) $this->uid = $uid; } - public function __toString() + public function __toString(): string { return $this->uid; } diff --git a/website/yarn.lock b/website/yarn.lock index 22be144e..9c319c75 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -898,13 +898,6 @@ debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -915,11 +908,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -965,11 +953,6 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -1293,13 +1276,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -1575,13 +1551,6 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" @@ -1599,13 +1568,6 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - import-local@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -1664,7 +1626,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -2180,21 +2142,6 @@ minimist@^1.1.3, minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -2243,11 +2190,6 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - nan@^2.12.1, nan@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -2270,15 +2212,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -needle@^2.2.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz#3342dea100b7160960a450dc8c22160ac712a528" - integrity sha512-DUzITvPVDUy6vczKKYTnWc/pBZ0EnjMJnQ3y+Jo5zfKFimJs7S3HFCxCRZYB9FUZcrzUQr3WsmvZgddMEIZv6w== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" @@ -2336,22 +2269,6 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-sass@^4.13.0: version "4.13.1" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3" @@ -2382,14 +2299,6 @@ node-sass@^4.13.0: dependencies: abbrev "1" -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -2422,27 +2331,6 @@ normalize-url@1.9.1: query-string "^4.1.0" sort-keys "^1.0.0" -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -2450,7 +2338,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -2536,7 +2424,7 @@ os-tmpdir@^1.0.0: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4: +osenv@0: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -2903,16 +2791,6 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -3068,7 +2946,7 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -3107,7 +2985,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -3133,11 +3011,6 @@ sass-loader@^8.0.0: schema-utils "^2.6.1" semver "^6.3.0" -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -3163,7 +3036,7 @@ scss-tokenizer@^0.2.3: js-base64 "^2.1.8" source-map "^0.4.2" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -3505,11 +3378,6 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - style-loader@^1.0.1: version "1.1.3" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz#9e826e69c683c4d9bf9db924f85e9abb30d5e200" @@ -3551,19 +3419,6 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.2: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -3934,7 +3789,7 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==