Compare commits
123 Commits
Author | SHA1 | Date |
---|---|---|
github-actions | 9b79699dcc | |
Guy Sartorelli | bb3eec1160 | |
github-actions | 5f04e466d2 | |
Guy Sartorelli | 20d61d7d87 | |
Michal Kleiner | b6ce505e12 | |
Michal Kleiner | 9fe83e948d | |
Michal Kleiner | 2e22bd4900 | |
Michal Kleiner | 32e7929f01 | |
Michal Kleiner | 27e0f8f517 | |
Guy Sartorelli | 72e4321696 | |
Steve Boyd | b6e00e9528 | |
Guy Sartorelli | d13bebf999 | |
Guy Sartorelli | ad33d32066 | |
Sabina Talipova | c39e588306 | |
Guy Sartorelli | f9dc2e537d | |
Sabina Talipova | 36d3718581 | |
Sabina Talipova | 24766e4e5a | |
Guy Sartorelli | 77bb69f74c | |
Maxime Rainville | b5e468a266 | |
Steve Boyd | f1f6abca67 | |
Nicolaas / Sunny Side Up | 4324836cb7 | |
Guy Sartorelli | 47769763db | |
Guy Sartorelli | 884a846167 | |
Guy Sartorelli | ff723b58ef | |
Guy Sartorelli | 18828ed094 | |
Steve Boyd | e8a41d96e5 | |
dependabot[bot] | 179e9d0cf2 | |
dependabot[bot] | 48c40a542e | |
dependabot[bot] | 0b32166a1a | |
dependabot[bot] | 013a5c34e7 | |
dependabot[bot] | fad0c2b4b4 | |
dependabot[bot] | 63024cb902 | |
Sabina Talipova | a6c7030274 | |
Steve Boyd | 6f18e92169 | |
Guy Sartorelli | 7eb81fd449 | |
Sabina Talipova | 495e7460db | |
Sabina Talipova | 55d52cb7dc | |
Maxime Rainville | dbd9099d3d | |
Guy Sartorelli | 6f5edab1ad | |
Guy Sartorelli | 1123d26477 | |
Maxime Rainville | 566a9e7d0e | |
Steve Boyd | 422647b724 | |
Steve Boyd | 774c8343c7 | |
Guy Sartorelli | 562e882072 | |
Steve Boyd | 9d4381554a | |
Guy Sartorelli | c5cd5c5ff3 | |
Steve Boyd | 31c81bf093 | |
Steve Boyd | 675d094731 | |
Steve Boyd | 03ee0d0559 | |
Guy Sartorelli | e2bf86414e | |
Steve Boyd | 0dd255303d | |
Guy Sartorelli | f93687a53d | |
Steve Boyd | 4cafa687ae | |
Mo Alsharaf | 1cf0f01a35 | |
Steve Boyd | c1c47583b1 | |
Steve Boyd | 3359ab477e | |
dependabot[bot] | 917c63467e | |
dependabot[bot] | 69cf355d9f | |
Guy Sartorelli | 9f7b0e2169 | |
Steve Boyd | 856660192b | |
Maxime Rainville | 5e313dd7fc | |
Steve Boyd | 3447883c3c | |
Guy Sartorelli | 141e8d0bf3 | |
Maxime Rainville | 46a637a6a8 | |
Steve Boyd | 7def6f8c2a | |
Maxime Rainville | 7fde3cf28a | |
Steve Boyd | 3f21112947 | |
Steve Boyd | ee8c5d3f91 | |
Steve Boyd | f816052f06 | |
Maxime Rainville | b544032a22 | |
Steve Boyd | 89f58ec573 | |
Steve Boyd | a821edf8d7 | |
dependabot[bot] | b3d8f8817c | |
dependabot[bot] | 53209b99db | |
dependabot[bot] | b3062f730b | |
dependabot[bot] | d47e361b29 | |
dependabot[bot] | 21aebc40fe | |
dependabot[bot] | aa019ea7ff | |
dependabot[bot] | 83d5efa50f | |
dependabot[bot] | d518cae006 | |
dependabot[bot] | aa93c7e661 | |
dependabot[bot] | b212d067f4 | |
Steve Boyd | c15888277d | |
Steve Boyd | fa031262fb | |
dependabot[bot] | b93a050100 | |
Daniel Hensby | c89a759af6 | |
dependabot[bot] | 63e500e083 | |
Jules | ebcfc483be | |
dependabot[bot] | 74945e0123 | |
dependabot[bot] | ce9ae1d0be | |
dependabot[bot] | 497e8eb6c5 | |
dependabot[bot] | 9c4b5586fe | |
Maxime Rainville | f3d7a396e3 | |
dependabot[bot] | 30cf99ebe2 | |
dependabot[bot] | 4944a14241 | |
Steve Boyd | c5f2b44895 | |
Garion Herman | 2aa90feb32 | |
Garion Herman | d632359853 | |
Steve Boyd | 85e97a83ed | |
Robbie Averill | b6a6b59aa8 | |
Steve Boyd | ad22d6b805 | |
Aaron Carlino | 49ac8de8f0 | |
Robbie Averill | 586fb516c6 | |
dependabot[bot] | 79f7ed77f8 | |
dependabot[bot] | c22ef1c9e9 | |
dependabot[bot] | 9180213d63 | |
Robbie Averill | 544571007b | |
Robbie Averill | 5920058287 | |
Robbie Averill | c190330521 | |
Dylan Wagstaff | 6bcf66c7d1 | |
Janzen Zarzoso | 1bd0418b62 | |
Robbie Averill | 680d300e65 | |
Robbie Averill | 051a945e7d | |
Robbie Averill | 97a91ba20c | |
Daniel Hensby | fec030f9f2 | |
Daniel Hensby | 13aed4953f | |
Daniel Hensby | 61841ebabc | |
Daniel Hensby | c3a343d263 | |
Robbie Averill | 5163c8d27e | |
Damian Mooyman | 06a1d3a907 | |
Dylan Wagstaff | d3de12fd59 | |
Robbie Averill | bc74fc019d | |
Robbie Averill | 86965e885d |
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"extends": "airbnb",
|
||||
"root": true,
|
||||
"rules": {
|
||||
"init-declarations": 1
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
name: CI
|
||||
uses: silverstripe/gha-ci/.github/workflows/ci.yml@v1
|
|
@ -0,0 +1,15 @@
|
|||
name: Deploy Userhelp Docs
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '5'
|
||||
- '4'
|
||||
paths:
|
||||
- 'docs/en/userguide/**'
|
||||
jobs:
|
||||
deploy:
|
||||
name: deploy-userhelp-docs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Run build hook
|
||||
run: curl -X POST -d {} https://api.netlify.com/build_hooks/${{ secrets.NETLIFY_BUILD_HOOK }}
|
|
@ -0,0 +1,16 @@
|
|||
name: Dispatch CI
|
||||
|
||||
on:
|
||||
# At 11:30 AM UTC, only on Wednesday and Thursday
|
||||
schedule:
|
||||
- cron: '30 11 * * 3,4'
|
||||
|
||||
jobs:
|
||||
dispatch-ci:
|
||||
name: Dispatch CI
|
||||
# Only run cron on the silverstripe account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'silverstripe') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Dispatch CI
|
||||
uses: silverstripe/gha-dispatch-ci@v1
|
|
@ -0,0 +1,17 @@
|
|||
name: Keepalive
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# The 4th of every month at 10:50am UTC
|
||||
schedule:
|
||||
- cron: '50 10 4 * *'
|
||||
|
||||
jobs:
|
||||
keepalive:
|
||||
name: Keepalive
|
||||
# Only run cron on the silverstripe account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'silverstripe') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Keepalive
|
||||
uses: silverstripe/gha-keepalive@v1
|
|
@ -0,0 +1,17 @@
|
|||
name: Update JS
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# Run on a schedule of once per quarter
|
||||
schedule:
|
||||
- cron: '0 0 1 */3 *'
|
||||
|
||||
jobs:
|
||||
update-js:
|
||||
name: Update JS
|
||||
# Only run cron on the silverstripe account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'silverstripe') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update JS
|
||||
uses: silverstripe/gha-update-js@v1
|
|
@ -1,10 +1,7 @@
|
|||
# sass-lint config to match the AirBNB style guide
|
||||
# See silverstripe-admin
|
||||
files:
|
||||
include: '**/client/src/**/*.scss'
|
||||
ignore:
|
||||
- 'client/src/styles/legacy/*'
|
||||
- 'src/**/*'
|
||||
include: client/src/**/*.scss'
|
||||
options:
|
||||
formatter: stylish
|
||||
merge-default-rules: false
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
inherit: true
|
||||
|
||||
checks:
|
||||
php:
|
||||
code_rating: true
|
||||
duplication: true
|
||||
|
||||
filter:
|
||||
paths: [src/*, tests/*]
|
55
.travis.yml
55
.travis.yml
|
@ -1,55 +0,0 @@
|
|||
language: php
|
||||
|
||||
dist: precise
|
||||
|
||||
addons:
|
||||
firefox: "31.0"
|
||||
|
||||
env:
|
||||
global:
|
||||
- COMPOSER_ROOT_VERSION=4.1.x-dev
|
||||
- DISPLAY=":99"
|
||||
- XVFBARGS=":99 -ac -screen 0 1024x768x16"
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- php: 5.6
|
||||
env: DB=MYSQL RECIPE_VERSION=4.2.x-dev PHPCS_TEST=1 PHPUNIT_TEST=1
|
||||
- php: 7.0
|
||||
env: DB=PGSQL RECIPE_VERSION=4.2.x-dev PHPUNIT_TEST=1
|
||||
- php: 7.1
|
||||
env: DB=MYSQL RECIPE_VERSION=4.2.x-dev PHPUNIT_COVERAGE_TEST=1
|
||||
- php: 7.1
|
||||
env: DB=MYSQL RECIPE_VERSION=4.2.x-dev BEHAT_TEST=1
|
||||
- php: 7.2
|
||||
env: DB=MYSQL RECIPE_VERSION=4.x-dev PHPUNIT_TEST=1
|
||||
|
||||
before_script:
|
||||
# Init PHP
|
||||
- phpenv rehash
|
||||
- phpenv config-rm xdebug.ini
|
||||
|
||||
# Install composer dependencies
|
||||
- composer validate
|
||||
- composer require --no-update silverstripe/recipe-cms:"$RECIPE_VERSION"
|
||||
- if [[ $DB == PGSQL ]]; then composer require --no-update silverstripe/postgresql:2.1.x-dev; fi
|
||||
- composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile
|
||||
|
||||
# Start behat services
|
||||
- if [[ $BEHAT_TEST ]]; then echo 'SS_BASE_URL=http://localhost:8080/' >> .env; fi
|
||||
- if [[ $BEHAT_TEST ]]; then mkdir artifacts; fi
|
||||
- if [[ $BEHAT_TEST ]]; then sh -e /etc/init.d/xvfb start; sleep 3; fi
|
||||
- if [[ $BEHAT_TEST ]]; then (vendor/bin/selenium-server-standalone > artifacts/selenium.log 2>&1 &); fi
|
||||
- if [[ $BEHAT_TEST ]]; then (vendor/bin/serve --bootstrap-file vendor/silverstripe/cms/tests/behat/serve-bootstrap.php &> artifacts/serve.log &); fi
|
||||
|
||||
script:
|
||||
- if [[ $PHPUNIT_TEST ]]; then vendor/bin/phpunit; fi
|
||||
- if [[ $PHPUNIT_COVERAGE_TEST ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi
|
||||
- if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs src/ tests/; fi
|
||||
- if [[ $BEHAT_TEST ]]; then vendor/bin/behat @contentreview; fi
|
||||
|
||||
after_success:
|
||||
- if [[ $PHPUNIT_COVERAGE_TEST ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi
|
||||
|
||||
after_failure:
|
||||
- php ./framework/tests/behat/travis-upload-artifacts.php --if-env BEHAT_TEST,ARTIFACTS_BUCKET,ARTIFACTS_KEY,ARTIFACTS_SECRET --target-path $TRAVIS_REPO_SLUG/$TRAVIS_BUILD_ID/$TRAVIS_JOB_ID --artifacts-base-url https://s3.amazonaws.com/$ARTIFACTS_BUCKET/ --artifacts-path ./artifacts/
|
|
@ -1,14 +1,15 @@
|
|||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[silverstripe-contentreview.master]
|
||||
[o:silverstripe:p:silverstripe-contentreview:r:master]
|
||||
file_filter = lang/<lang>.yml
|
||||
source_file = lang/en.yml
|
||||
source_lang = en
|
||||
type = YML
|
||||
type = YML
|
||||
|
||||
[silverstripe-contentreview.master-js]
|
||||
[o:silverstripe:p:silverstripe-contentreview:r:master-js]
|
||||
file_filter = client/lang/src/<lang>.json
|
||||
source_file = client/lang/src/en.json
|
||||
source_lang = en
|
||||
type = KEYVALUEJSON
|
||||
type = KEYVALUEJSON
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
# Content Review module
|
||||
|
||||
[![Build status](https://travis-ci.org/silverstripe/silverstripe-contentreview.png?branch=master)](https://travis-ci.org/silverstripe/silverstripe-contentreview)
|
||||
[![Code quality](https://scrutinizer-ci.com/g/silverstripe/silverstripe-contentreview/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/silverstripe/silverstripe-contentreview/?branch=master)
|
||||
[![Code coverage](https://codecov.io/gh/silverstripe/silverstripe-contentreview/branch/master/graph/badge.svg)](https://codecov.io/gh/silverstripe/silverstripe-contentreview)
|
||||
[![CI](https://github.com/silverstripe/silverstripe-contentreview/actions/workflows/ci.yml/badge.svg)](https://github.com/silverstripe/silverstripe-contentreview/actions/workflows/ci.yml)
|
||||
[![Silverstripe supported module](https://img.shields.io/badge/silverstripe-supported-0071C4.svg)](https://www.silverstripe.org/software/addons/silverstripe-commercially-supported-module-list/)
|
||||
|
||||
This module helps keep your website content accurate and up-to-date, which keeps your users happy.
|
||||
|
||||
|
@ -16,9 +15,9 @@ There are two types of roles with this module.
|
|||
|
||||
## Requirements
|
||||
|
||||
* SilverStripe ^4.0
|
||||
* Silverstripe ^4.0
|
||||
|
||||
**Note:** For SilverStripe 3.x, please use the [3.x release line](https://github.com/silverstripe/silverstripe-contentreview/tree/3).
|
||||
**Note:** For Silverstripe 3.x, please use the [3.x release line](https://github.com/silverstripe/silverstripe-contentreview/tree/3).
|
||||
|
||||
## Features
|
||||
|
32
behat.yml
32
behat.yml
|
@ -2,26 +2,28 @@ default:
|
|||
suites:
|
||||
contentreview:
|
||||
paths:
|
||||
- %paths.modules.contentreview%/tests/behat/features
|
||||
- "%paths.modules.contentreview%/tests/behat/features"
|
||||
contexts:
|
||||
- SilverStripe\Framework\Tests\Behaviour\FeatureContext
|
||||
- SilverStripe\Framework\Tests\Behaviour\CmsFormsContext
|
||||
- SilverStripe\Framework\Tests\Behaviour\CmsUiContext
|
||||
- SilverStripe\Admin\Tests\Behat\Context\AdminContext
|
||||
- SilverStripe\BehatExtension\Context\BasicContext
|
||||
- SilverStripe\BehatExtension\Context\EmailContext
|
||||
- SilverStripe\CMS\Tests\Behaviour\LoginContext
|
||||
- SilverStripe\CMS\Tests\Behaviour\ThemeContext
|
||||
- SilverStripe\CMS\Tests\Behaviour\FixtureContext:
|
||||
# Note: double indent for args is intentional
|
||||
- %paths.modules.contentreview%/tests/behat/features/files/
|
||||
- SilverStripe\BehatExtension\Context\LoginContext
|
||||
- SilverStripe\Framework\Tests\Behaviour\CmsFormsContext
|
||||
- SilverStripe\Framework\Tests\Behaviour\CmsUiContext
|
||||
- SilverStripe\ContentReview\Tests\Behat\Context\FeatureContext
|
||||
- SilverStripe\ContentReview\Tests\Behat\Context\FixtureContext
|
||||
-
|
||||
SilverStripe\ContentReview\Tests\Behat\Context\FixtureContext:
|
||||
- "%paths.modules.contentreview%/tests/behat/files/"
|
||||
|
||||
extensions:
|
||||
SilverStripe\BehatExtension\MinkExtension:
|
||||
default_session: selenium2
|
||||
javascript_session: selenium2
|
||||
selenium2:
|
||||
browser: firefox
|
||||
default_session: facebook_web_driver
|
||||
javascript_session: facebook_web_driver
|
||||
facebook_web_driver:
|
||||
browser: chrome
|
||||
wd_host: "http://127.0.0.1:9515"
|
||||
|
||||
SilverStripe\BehatExtension\Extension:
|
||||
screenshot_path: %paths.base%/artifacts/screenshots
|
||||
bootstrap_file: "vendor/silverstripe/cms/tests/behat/serve-bootstrap.php"
|
||||
screenshot_path: "%paths.base%/artifacts/screenshots"
|
||||
bootstrap_file: vendor/silverstripe/framework/tests/behat/serve-bootstrap.php
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sources":["webpack:///./client/src/styles/ContentReviewForm.scss?a3bd","webpack:///./bundle.scss?6663"],"names":[],"mappings":"AAEA,wBACE,uDACA,wBACA,qBACA,YACA,sBACA,UACA,oBACA,WCDD,4DDKG,4BCAH","file":"styles/contentreview.css","sourcesContent":["// The bell button, shows up next to the major actions (save, publish, etc) when\n// viewing a page in the CMS\n.content-review__button {\n background: url(\"images/icon-bell.png\") center center no-repeat;\n background-position: 0 0;\n display: inline-block;\n height: 20px;\n margin: 6px 4px 0 12px;\n padding: 0;\n text-indent: -9999px;\n width: 20px;\n\n &:hover,\n &:focus {\n background-position: 0 -20px;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/styles/ContentReviewForm.scss",".content-review__button {\n background: url(\"../images/icon-bell.png\") center center no-repeat;\n background-position: 0 0;\n display: inline-block;\n height: 20px;\n margin: 6px 4px 0 12px;\n padding: 0;\n text-indent: -9999px;\n width: 20px;\n}\n\n.content-review__button:hover,\n.content-review__button:focus {\n background-position: 0 -20px;\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./bundle.scss"],"sourceRoot":""}
|
|
@ -1,5 +1,5 @@
|
|||
// This file was generated by silverstripe/cow from client/lang/src/en.json.
|
||||
// See https://github.com/tractorcow/cow for details
|
||||
// This file was generated by silverstripe/tx-translator from client/lang/src/en.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/sk.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('sk', {
|
||||
"ContentReview.CONTENT_DUE_FOR_REVIEW": "Obsah určený na kontrolu"
|
||||
});
|
||||
}
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"ContentReview.CONTENT_DUE_FOR_REVIEW": "Content due for review"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"ContentReview.CONTENT_DUE_FOR_REVIEW": "Obsah určený na kontrolu"
|
||||
}
|
|
@ -7,7 +7,10 @@
|
|||
"keywords": [
|
||||
"silverstripe",
|
||||
"cms",
|
||||
"workflow"
|
||||
"workflow",
|
||||
"content review",
|
||||
"review",
|
||||
"permissions"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
|
@ -20,18 +23,17 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.4 || ^8.0",
|
||||
"silverstripe/vendor-plugin": "^1",
|
||||
"silverstripe/framework": "^4.2",
|
||||
"silverstripe/framework": "^4.10",
|
||||
"silverstripe/cms": "^4.2",
|
||||
"silverstripe/reports": "^4.2",
|
||||
"silverstripe/siteconfig": "^4.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7",
|
||||
"silverstripe/recipe-testing": "^2",
|
||||
"squizlabs/php_codesniffer": "^3",
|
||||
"silverstripe/behat-extension": "^3",
|
||||
"silverstripe/serve": "^2",
|
||||
"se/selenium-server-standalone": "2.41.0"
|
||||
"symbiote/silverstripe-queuedjobs": "^4.9"
|
||||
},
|
||||
"suggest": {
|
||||
"symbiote/silverstripe-queuedjobs": "Automatically schedules content review emails to be sent, only requiring one crontask to be created"
|
||||
|
@ -44,9 +46,10 @@
|
|||
"autoload": {
|
||||
"psr-4": {
|
||||
"SilverStripe\\ContentReview\\": "src/",
|
||||
"SilverStripe\\ContentReview\\Tests\\": "tests/php/"
|
||||
"SilverStripe\\ContentReview\\Tests\\": "tests/php/",
|
||||
"SilverStripe\\ContentReview\\Tests\\Behat\\Context\\": "tests/behat/src/"
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
---
|
||||
title: Content review
|
||||
summary: Mark pages in the CMS with a date and an owner for future reviews.
|
||||
---
|
||||
|
||||
## Content review
|
||||
|
||||
|
|
19
lang/en.yml
19
lang/en.yml
|
@ -15,6 +15,14 @@ en:
|
|||
PAGEOWNERUSERS: Users
|
||||
REVIEWFREQUENCY: 'Review frequency'
|
||||
REVIEWFREQUENCYDESCRIPTION: 'The review date will be set to this far in the future, whenever the page is published.'
|
||||
db_ReviewBody: 'Review body'
|
||||
db_ReviewFrom: 'Review from'
|
||||
db_ReviewPeriodDays: 'Review period days'
|
||||
db_ReviewSubject: 'Review subject'
|
||||
many_many_ContentReviewGroups: 'Content review groups'
|
||||
many_many_ContentReviewUsers: 'Content review users'
|
||||
SilverStripe\ContentReview\Extensions\ContentReviewOwner:
|
||||
many_many_SiteTreeContentReview: 'Site tree content review'
|
||||
SilverStripe\ContentReview\Extensions\SiteTreeContentReview:
|
||||
ADDGROUP: 'Add groups'
|
||||
ADDUSERS: 'Add users'
|
||||
|
@ -34,6 +42,14 @@ en:
|
|||
REVIEWFREQUENCYDESCRIPTION: 'The review date will be set to this far in the future whenever the page is published'
|
||||
REVIEWHEADER: 'Content review'
|
||||
SETTINGSFROM: 'Options are'
|
||||
belongs_many_many_ContentReviewGroups: 'Content review groups'
|
||||
belongs_many_many_ContentReviewUsers: 'Content review users'
|
||||
db_ContentReviewType: 'Content review type'
|
||||
db_LastEditedByName: 'Last edited by name'
|
||||
db_NextReviewDate: 'Next review date'
|
||||
db_OwnerNames: 'Owner names'
|
||||
db_ReviewPeriodDays: 'Review period days'
|
||||
has_many_ReviewLogs: 'Review logs'
|
||||
SilverStripe\ContentReview\Forms\ReviewContentHandler:
|
||||
ErrorReviewPermissionDenied: 'It seems you don''t have the necessary permissions to submit a content review'
|
||||
MarkAsReviewedAction: 'Mark as reviewed'
|
||||
|
@ -46,6 +62,9 @@ en:
|
|||
one: 'A Content Review Log'
|
||||
other: '{count} Content Review Logs'
|
||||
SINGULARNAME: 'Content Review Log'
|
||||
db_Note: Note
|
||||
has_one_Reviewer: Reviewer
|
||||
has_one_SiteTree: 'Site tree'
|
||||
SilverStripe\ContentReview\Reports\PagesDueForReviewReport:
|
||||
ONLYMYPAGES: 'Only Show pages assigned to me'
|
||||
REVIEWDATEAFTER: 'Review date after or on'
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
sk:
|
||||
SilverStripe\ContentReview\Extensions\ContentReviewCMSExtension:
|
||||
ErrorItemPermissionDenied: 'Zdá sa, že nemáte potrebné oprávnenia na kontrolu tohto obsahu'
|
||||
SilverStripe\ContentReview\Extensions\ContentReviewDefaultSettings:
|
||||
ADDGROUP: 'Pridať skupiny'
|
||||
ADDUSERS: 'Pridať používateľov'
|
||||
DEFAULTSETTINGSHELP: 'Tieto nastavenia sa použijú na všetky stránky, ktoré nemajú špecifický plán kontroly obsahu.'
|
||||
EMAILFROM: 'Z e-mailovej adresy'
|
||||
EMAILFROM_RIGHTTITLE: 'napr.: do-not-reply@site.com'
|
||||
EMAILSUBJECT: Predmet
|
||||
EMAILTEMPLATE: 'Šablóna e-mailu'
|
||||
OWNERGROUPSDESCRIPTION: 'Vlastníci stránok, ktorí sú zodpovední za kontrolu'
|
||||
OWNERUSERSDESCRIPTION: 'Vlastníci stránok, ktorí sú zodpovední za kontrolu'
|
||||
PAGEOWNERGROUPS: Skupiny
|
||||
PAGEOWNERUSERS: Používatelia
|
||||
REVIEWFREQUENCY: 'Frekvencia kontroly'
|
||||
REVIEWFREQUENCYDESCRIPTION: 'Dátum kontroly bude nastavený na tento dátum v budúcnosti, bez ohľadu na to, kedy bude stránka zverejnená.'
|
||||
db_ReviewBody: 'Revízny orgán'
|
||||
db_ReviewFrom: 'Kontrola od'
|
||||
db_ReviewPeriodDays: 'Dni periódy kontroly'
|
||||
db_ReviewSubject: 'Predmet kontroly'
|
||||
many_many_ContentReviewGroups: 'Skupiny kontroly obsahu'
|
||||
many_many_ContentReviewUsers: 'Používatelia kontroly obsahu'
|
||||
SilverStripe\ContentReview\Extensions\ContentReviewOwner:
|
||||
many_many_SiteTreeContentReview: 'Kontrola obsahu stromu stránok'
|
||||
SilverStripe\ContentReview\Extensions\SiteTreeContentReview:
|
||||
ADDGROUP: 'Pridať skupiny'
|
||||
ADDUSERS: 'Pridať používateľov'
|
||||
CONTENTOWNERS: 'Vlastníci obsahu'
|
||||
CONTENTREVIEW: 'Obsah určený na kontrolu'
|
||||
CUSTOM: 'Vlastné nastavenia'
|
||||
DISABLE: 'Zakázať kontrolu obsahu'
|
||||
INHERIT: 'Zdediť z nadradenej stránky'
|
||||
NEXTREVIEWDATADESCRIPTION: 'Ak nechcete vyplniť kontrolu, ponechajte pole prázdne'
|
||||
NEXTREVIEWDATE: 'Dátum ďalšej kontroly'
|
||||
OPTIONS: Možnosti
|
||||
OWNERGROUPSDESCRIPTION: 'Vlastníci stránok, ktorí sú zodpovední za kontrolu'
|
||||
OWNERUSERSDESCRIPTION: 'Vlastníci stránok, ktorí sú zodpovední za kontrolu'
|
||||
PAGEOWNERGROUPS: Skupiny
|
||||
PAGEOWNERUSERS: Používatelia
|
||||
REVIEWFREQUENCY: 'Frekvencia kontroly'
|
||||
REVIEWFREQUENCYDESCRIPTION: 'Dátum kontroly bude nastavený na tento dátum v budúcnosti, bez ohľadu na to, kedy bude stránka zverejnená.'
|
||||
REVIEWHEADER: 'Kontrola obsahu'
|
||||
SETTINGSFROM: 'Možnosti sú'
|
||||
belongs_many_many_ContentReviewGroups: 'Skupiny kontroly obsahu'
|
||||
belongs_many_many_ContentReviewUsers: 'Používatelia kontroly obsahu'
|
||||
db_ContentReviewType: 'Typ kontroly obsahu'
|
||||
db_LastEditedByName: 'Naposledy upravené podľa mena'
|
||||
db_NextReviewDate: 'Dátum ďalšej kontroly'
|
||||
db_OwnerNames: 'Mená vlastníkov'
|
||||
db_ReviewPeriodDays: 'Dni periódy kontroly'
|
||||
has_many_ReviewLogs: 'Záznamy z kontroly'
|
||||
SilverStripe\ContentReview\Forms\ReviewContentHandler:
|
||||
ErrorReviewPermissionDenied: 'Zdá sa, že nemáte potrebné oprávnenia na odoslanie kontroly obsahu'
|
||||
MarkAsReviewedAction: 'Označiť ako skontrolované'
|
||||
NoComments: '(bez komentára)'
|
||||
Placeholder: 'Pridať komentáre (voliteľné)'
|
||||
Success: 'Kontrola bola úspešne pridaná'
|
||||
SilverStripe\ContentReview\Models\ContentReviewLog:
|
||||
PLURALNAME: 'Záznamy z kontroly obsahu'
|
||||
PLURALS:
|
||||
few: '{count} záznamy z kontroly obsahu'
|
||||
many: '{count} záznamov z kontroly obsahu'
|
||||
one: 'Záznam z kontroly obsahu'
|
||||
other: '{count} záznamov z kontroly obsahu'
|
||||
SINGULARNAME: 'Záznam z kontroly obsahu'
|
||||
db_Note: Poznámka
|
||||
has_one_Reviewer: Kontrolór
|
||||
has_one_SiteTree: 'Strom stránok'
|
||||
SilverStripe\ContentReview\Reports\PagesDueForReviewReport:
|
||||
ONLYMYPAGES: 'Zobraziť iba mne priradené stránky'
|
||||
REVIEWDATEAFTER: 'Dátum kontroly po'
|
||||
REVIEWDATEBEFORE: 'Dátum kontroly pred'
|
||||
SHOWVIRTUALPAGES: 'Zobraziť virtuálne stránky'
|
||||
TITLE: 'Stránky určené na kontrolu'
|
||||
SilverStripe\ContentReview\Reports\PagesWithoutReviewScheduleReport:
|
||||
TITLE: 'Stránky bez naplánovanej kontroly.'
|
||||
SilverStripe\ContentReview\Tasks\ContentReviewEmails:
|
||||
REVIEWPAGELINK: 'Skontrolujte stránku v CMS'
|
||||
VIEWPUBLISHEDLINK: 'Pozrite si túto stránku na webe'
|
|
@ -24,7 +24,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/silverstripe/silverstripe-contentreview#readme",
|
||||
"dependencies": {
|
||||
"jquery": "^3.2.1",
|
||||
"jquery": "^3.4.0",
|
||||
"react": "15.3.1",
|
||||
"react-dom": "15.3.1",
|
||||
"react-redux": "^4.4.1",
|
||||
|
@ -39,6 +39,6 @@
|
|||
"eslint-config-airbnb": "^6.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^6.x"
|
||||
"node": "^10.x"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
<ruleset name="SilverStripe">
|
||||
<description>CodeSniffer ruleset for SilverStripe coding conventions.</description>
|
||||
|
||||
<file>src</file>
|
||||
<file>tests</file>
|
||||
|
||||
<rule ref="PSR2" >
|
||||
<!-- Current exclusions -->
|
||||
<exclude name="PSR1.Methods.CamelCapsMethodName" />
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit bootstrap="vendor/silverstripe/cms/tests/bootstrap.php" colors="true">
|
||||
<testsuite name="Default">
|
||||
<directory>tests/php/</directory>
|
||||
</testsuite>
|
||||
<testsuites>
|
||||
<testsuite name="Default">
|
||||
<directory>tests/php/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
<whitelist addUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">src/</directory>
|
||||
|
|
|
@ -6,10 +6,10 @@ use SilverStripe\Admin\LeftAndMain;
|
|||
use SilverStripe\Admin\LeftAndMainExtension;
|
||||
use SilverStripe\CMS\Model\SiteTree;
|
||||
use SilverStripe\ContentReview\Forms\ReviewContentHandler;
|
||||
use SilverStripe\ContentReview\Traits\PermissionChecker;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use SilverStripe\Control\HTTPResponse_Exception;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Forms\Form;
|
||||
use SilverStripe\ORM\ValidationResult;
|
||||
use SilverStripe\Security\Security;
|
||||
|
@ -20,6 +20,8 @@ use SilverStripe\Security\Security;
|
|||
*/
|
||||
class ContentReviewCMSExtension extends LeftAndMainExtension
|
||||
{
|
||||
use PermissionChecker;
|
||||
|
||||
private static $allowed_actions = [
|
||||
'ReviewContentForm',
|
||||
'savereview',
|
||||
|
@ -48,7 +50,7 @@ class ContentReviewCMSExtension extends LeftAndMainExtension
|
|||
{
|
||||
$page = $this->findRecord(['ID' => $id]);
|
||||
$user = Security::getCurrentUser();
|
||||
if (!$page->canEdit() || ($page->hasMethod('canBeReviewedBy') && !$page->canBeReviewedBy($user))) {
|
||||
if (!$this->isContentReviewable($page, $user)) {
|
||||
$this->owner->httpError(403, _t(
|
||||
__CLASS__.'.ErrorItemPermissionDenied',
|
||||
'It seems you don\'t have the necessary permissions to review this content'
|
||||
|
|
|
@ -130,6 +130,7 @@ class ContentReviewDefaultSettings extends DataExtension
|
|||
|
||||
$users = Permission::get_members_by_permission([
|
||||
'CMS_ACCESS_CMSMain',
|
||||
'CMS_ACCESS_LeftAndMain',
|
||||
'ADMIN',
|
||||
]);
|
||||
|
||||
|
|
|
@ -132,13 +132,13 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider
|
|||
$familyIDs = $group->collateFamilyIDs();
|
||||
|
||||
if (is_array($familyIDs)) {
|
||||
$groupIDs = array_merge($groupIDs, array_values($familyIDs));
|
||||
$groupIDs = array_merge($groupIDs, array_values($familyIDs ?? []));
|
||||
}
|
||||
}
|
||||
|
||||
array_unique($groupIDs);
|
||||
array_unique($groupIDs ?? []);
|
||||
|
||||
if (count($groupIDs)) {
|
||||
if (count($groupIDs ?? [])) {
|
||||
$groupMembers = DataObject::get(Member::class)
|
||||
->where("\"Group\".\"ID\" IN (" . implode(",", $groupIDs) . ")")
|
||||
->leftJoin("Group_Members", "\"Member\".\"ID\" = \"Group_Members\".\"MemberID\"")
|
||||
|
@ -397,7 +397,7 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider
|
|||
$options
|
||||
);
|
||||
|
||||
$users = Permission::get_members_by_permission(["CMS_ACCESS_CMSMain", "ADMIN"]);
|
||||
$users = Permission::get_members_by_permission(['CMS_ACCESS_CMSMain', 'CMS_ACCESS_LeftAndMain', 'ADMIN']);
|
||||
|
||||
$usersMap = $users->map("ID", "Title")->toArray();
|
||||
|
||||
|
@ -495,6 +495,11 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider
|
|||
$this->owner->write();
|
||||
}
|
||||
|
||||
if ($options && $options->ReviewPeriodDays == 0) {
|
||||
$this->owner->NextReviewDate = null;
|
||||
$this->owner->write();
|
||||
}
|
||||
|
||||
return (bool)$nextDateTimestamp;
|
||||
}
|
||||
|
||||
|
@ -507,11 +512,11 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider
|
|||
*/
|
||||
public function canBeReviewedBy(Member $member = null)
|
||||
{
|
||||
if (!$this->owner->obj("NextReviewDate")->exists()) {
|
||||
if (!$this->owner->obj('NextReviewDate')->exists()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->owner->obj("NextReviewDate")->InFuture()) {
|
||||
if ($this->owner->obj('NextReviewDate')->InFuture()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -537,6 +542,11 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider
|
|||
return true;
|
||||
}
|
||||
|
||||
// Check whether this user is allowed to review the content of the page.
|
||||
if ($this->owner->hasMethod("canReviewContent") && !$this->owner->canReviewContent($member)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($member->inGroups($options->OwnerGroups())) {
|
||||
return true;
|
||||
}
|
||||
|
@ -671,7 +681,7 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider
|
|||
$runHour = Config::inst()->get(ContentReviewNotificationJob::class, "first_run_hour");
|
||||
$firstRunTime = date(
|
||||
"Y-m-d H:i:s",
|
||||
mktime($runHour, 0, 0, date("m"), date("d") + 1, date("y"))
|
||||
mktime($runHour ?? 0, 0, 0, date("m"), date("d") + 1, date("y"))
|
||||
);
|
||||
|
||||
singleton(QueuedJobService::class)->queueJob(
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace SilverStripe\ContentReview\Forms;
|
||||
|
||||
use SilverStripe\ContentReview\Extensions\SiteTreeContentReview;
|
||||
use SilverStripe\ContentReview\Traits\PermissionChecker;
|
||||
use SilverStripe\Control\Controller;
|
||||
use SilverStripe\Control\Director;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
|
@ -19,6 +20,7 @@ use SilverStripe\Security\Security;
|
|||
class ReviewContentHandler
|
||||
{
|
||||
use Injectable;
|
||||
use PermissionChecker;
|
||||
|
||||
/**
|
||||
* Parent controller for this form
|
||||
|
@ -120,12 +122,11 @@ class ReviewContentHandler
|
|||
*/
|
||||
public function canSubmitReview($record)
|
||||
{
|
||||
if (!$record->canEdit()
|
||||
|| !$record->hasMethod('canBeReviewedBy')
|
||||
|| !$record->canBeReviewedBy(Security::getCurrentUser())
|
||||
) {
|
||||
// Ensure the parameter of correct data type
|
||||
if (!$record instanceof DataObject) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
return $this->isContentReviewable($record, Security::getCurrentUser());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@ class ContentReviewNotificationJob extends AbstractQueuedJob implements QueuedJo
|
|||
return QueuedJob::QUEUED;
|
||||
}
|
||||
|
||||
public function setup()
|
||||
public function setUp()
|
||||
{
|
||||
parent::setup();
|
||||
|
||||
|
@ -93,7 +93,7 @@ class ContentReviewNotificationJob extends AbstractQueuedJob implements QueuedJo
|
|||
{
|
||||
$this->queueNextRun();
|
||||
|
||||
$task = new ContentReviewEmails();
|
||||
$task = ContentReviewEmails::create();
|
||||
$task->run(new HTTPRequest("GET", "/dev/tasks/ContentReviewEmails"));
|
||||
|
||||
$this->currentStep = 1;
|
||||
|
@ -108,7 +108,7 @@ class ContentReviewNotificationJob extends AbstractQueuedJob implements QueuedJo
|
|||
$nextRun = new ContentReviewNotificationJob();
|
||||
|
||||
$nextRunTime = mktime(
|
||||
Config::inst()->get(__CLASS__, 'next_run_hour'),
|
||||
Config::inst()->get(__CLASS__, 'next_run_hour') ?? 0,
|
||||
Config::inst()->get(__CLASS__, 'next_run_minute'),
|
||||
0,
|
||||
date("m"),
|
||||
|
|
|
@ -77,8 +77,8 @@ class PagesDueForReviewReport extends Report
|
|||
public function columns()
|
||||
{
|
||||
$linkBase = singleton(CMSPageEditController::class)->Link("show");
|
||||
$linkPath = parse_url($linkBase, PHP_URL_PATH);
|
||||
$linkQuery = parse_url($linkBase, PHP_URL_QUERY);
|
||||
$linkPath = parse_url($linkBase ?? '', PHP_URL_PATH);
|
||||
$linkQuery = parse_url($linkBase ?? '', PHP_URL_QUERY);
|
||||
|
||||
$fields = [
|
||||
"Title" => [
|
||||
|
@ -148,16 +148,26 @@ class PagesDueForReviewReport extends Report
|
|||
|
||||
/**
|
||||
* @param array $params
|
||||
* @param array|string|null $sort
|
||||
* @param int|null $limit
|
||||
*
|
||||
* @return SS_List
|
||||
*/
|
||||
public function sourceRecords($params = [])
|
||||
public function sourceRecords($params = [], $sort = null, $limit = null)
|
||||
{
|
||||
Versioned::set_stage(Versioned::DRAFT);
|
||||
|
||||
$records = SiteTree::get();
|
||||
$compatibility = ContentReviewCompatability::start();
|
||||
|
||||
// Apply sort and limit if appropriate.
|
||||
if ($sort !== null) {
|
||||
$records = $records->sort($sort);
|
||||
}
|
||||
if ($limit !== null) {
|
||||
$records = $records->limit($limit);
|
||||
}
|
||||
|
||||
if (empty($params['ReviewDateBefore']) && empty($params['ReviewDateAfter'])) {
|
||||
// If there's no review dates set, default to all pages due for review now
|
||||
$records = $records->where(
|
||||
|
@ -172,7 +182,7 @@ class PagesDueForReviewReport extends Report
|
|||
// TODO Get value from DateField->dataValue() once we have access to form elements here
|
||||
$nextReviewUnixSec = strtotime(
|
||||
' + 1 day',
|
||||
strtotime($params['ReviewDateBefore'])
|
||||
strtotime($params['ReviewDateBefore'] ?? '')
|
||||
);
|
||||
$records = $records->where(
|
||||
sprintf(
|
||||
|
@ -199,7 +209,7 @@ class PagesDueForReviewReport extends Report
|
|||
$virtualPageClasses = ClassInfo::subclassesFor(VirtualPage::class);
|
||||
$records = $records->where(sprintf(
|
||||
"\"SiteTree\".\"ClassName\" NOT IN ('%s')",
|
||||
implode("','", array_values($virtualPageClasses))
|
||||
implode("','", array_values($virtualPageClasses ?? []))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -46,8 +46,8 @@ class PagesWithoutReviewScheduleReport extends Report
|
|||
public function columns()
|
||||
{
|
||||
$linkBase = singleton(CMSPageEditController::class)->Link("show");
|
||||
$linkPath = parse_url($linkBase, PHP_URL_PATH);
|
||||
$linkQuery = parse_url($linkBase, PHP_URL_QUERY);
|
||||
$linkPath = parse_url($linkBase ?? '', PHP_URL_PATH);
|
||||
$linkQuery = parse_url($linkBase ?? '', PHP_URL_QUERY);
|
||||
|
||||
$fields = [
|
||||
"Title" => [
|
||||
|
@ -104,10 +104,12 @@ class PagesWithoutReviewScheduleReport extends Report
|
|||
|
||||
/**
|
||||
* @param array $params
|
||||
* @param array|string|null $sort
|
||||
* @param int|null $limit
|
||||
*
|
||||
* @return SS_List
|
||||
*/
|
||||
public function sourceRecords($params = [])
|
||||
public function sourceRecords($params = [], $sort = null, $limit = null)
|
||||
{
|
||||
Versioned::set_stage(Versioned::DRAFT);
|
||||
|
||||
|
@ -121,20 +123,22 @@ class PagesWithoutReviewScheduleReport extends Report
|
|||
$virtualPageClasses = ClassInfo::subclassesFor(VirtualPage::class);
|
||||
$records = $records->where(sprintf(
|
||||
"\"SiteTree\".\"ClassName\" NOT IN ('%s')",
|
||||
implode("','", array_values($virtualPageClasses))
|
||||
implode("','", array_values($virtualPageClasses ?? []))
|
||||
));
|
||||
}
|
||||
|
||||
$records->sort("ParentID");
|
||||
$records = $records->toArray();
|
||||
// Apply sort and limit if appropriate.
|
||||
if ($sort !== null) {
|
||||
$records = $records->sort($sort);
|
||||
}
|
||||
if ($limit !== null) {
|
||||
$records = $records->limit($limit);
|
||||
}
|
||||
|
||||
// Trim out calculated values
|
||||
$list = ArrayList::create();
|
||||
foreach ($records as $record) {
|
||||
if (!$this->hasReviewSchedule($record)) {
|
||||
$list->push($record);
|
||||
}
|
||||
}
|
||||
$list = $records->filterByCallback(function ($record) {
|
||||
return !$this->hasReviewSchedule($record);
|
||||
});
|
||||
|
||||
ContentReviewCompatability::done($compatibility);
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace SilverStripe\ContentReview\Tasks;
|
||||
|
||||
use Page;
|
||||
use RuntimeException;
|
||||
use SilverStripe\ContentReview\Compatibility\ContentReviewCompatability;
|
||||
use SilverStripe\Control\Email\Email;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
|
@ -15,18 +16,29 @@ use SilverStripe\Security\Member;
|
|||
use SilverStripe\SiteConfig\SiteConfig;
|
||||
use SilverStripe\View\ArrayData;
|
||||
use SilverStripe\View\SSViewer;
|
||||
use SilverStripe\ContentReview\Models\ContentReviewLog;
|
||||
|
||||
/**
|
||||
* Daily task to send emails to the owners of content items when the review date rolls around.
|
||||
*/
|
||||
class ContentReviewEmails extends BuildTask
|
||||
{
|
||||
private array $invalid_emails = [];
|
||||
|
||||
/**
|
||||
* @param HTTPRequest $request
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function run($request)
|
||||
{
|
||||
if (!$this->isValidEmail($senderEmail = SiteConfig::current_site_config()->ReviewFrom)) {
|
||||
throw new RuntimeException(
|
||||
sprintf(
|
||||
'Provided sender email address is invalid: "%s".',
|
||||
$senderEmail
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$compatibility = ContentReviewCompatability::start();
|
||||
|
||||
// First grab all the pages with a custom setting
|
||||
|
@ -42,6 +54,16 @@ class ContentReviewEmails extends BuildTask
|
|||
}
|
||||
|
||||
ContentReviewCompatability::done($compatibility);
|
||||
|
||||
if (is_array($this->invalid_emails) && count($this->invalid_emails) > 0) {
|
||||
$plural = count($this->invalid_emails) > 1 ? 's are' : ' is';
|
||||
throw new RuntimeException(
|
||||
sprintf(
|
||||
'Provided email' . $plural . ' invalid: "%s".',
|
||||
implode(', ', $this->invalid_emails)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -93,6 +115,13 @@ class ContentReviewEmails extends BuildTask
|
|||
// Prepare variables
|
||||
$siteConfig = SiteConfig::current_site_config();
|
||||
$owner = Member::get()->byID($ownerID);
|
||||
|
||||
if (!$this->isValidEmail($owner->Email)) {
|
||||
$this->invalid_emails[] = $owner->Name . ': ' . $owner->Email;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$templateVariables = $this->getTemplateVariables($owner, $siteConfig, $pages);
|
||||
|
||||
// Build email
|
||||
|
@ -159,4 +188,12 @@ class ContentReviewEmails extends BuildTask
|
|||
'ToEmail' => $recipient->Email,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check validity of email
|
||||
*/
|
||||
protected function isValidEmail(?string $email): bool
|
||||
{
|
||||
return (bool) filter_var($email, FILTER_VALIDATE_EMAIL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace SilverStripe\ContentReview\Traits;
|
||||
|
||||
use SilverStripe\CMS\Model\SiteTree;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\Security\Member;
|
||||
use SilverStripe\Security\Security;
|
||||
|
||||
trait PermissionChecker
|
||||
{
|
||||
/**
|
||||
* Checks the user has been granted special permission to review the content of the page
|
||||
* if not fallback to canEdit() permission.
|
||||
*/
|
||||
protected function isContentReviewable(DataObject $record, ?Member $user = null): bool
|
||||
{
|
||||
return $record->hasMethod('canReviewContent')
|
||||
? $record->canReviewContent($user)
|
||||
: $record->canEdit();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
Feature: Set up reviews
|
||||
As a CMS user
|
||||
I can set up content reviews for my content
|
||||
In order to ensure my content gets reviewed regularly
|
||||
|
||||
Background:
|
||||
# Note: the review date is deliberately in the past
|
||||
Given a "page" "My page" with "Content"="<p>Welcome</p>", "NextReviewDate"="01/01/2017", "ReviewPeriodDays"="1"
|
||||
And the "group" "ADMIN group" has permissions "Full administrative rights"
|
||||
And the "group" "EDITOR" has permissions "CMS_ACCESS_CMSMain" and "EDIT_CONTENT_REVIEW_FIELDS"
|
||||
And the "group" "AUTHOR" has permissions and "CMS_ACCESS_LeftAndMain"
|
||||
And the "group" "FILEONLY" has permissions "FILE_EDIT_ALL"
|
||||
And the "group" "CMS_MAIN" has permissions "CMS_ACCESS_CMSMain"
|
||||
And a "member" "Ed" belonging to "AUTHOR" with "Email"="ed@example.com"
|
||||
And a "member" "Phil" belonging to "FILEONLY" with "Email"="phil@example.com"
|
||||
And a "member" "Anna" belonging to "CMS_MAIN" with "Email"="anna@example.com"
|
||||
And I am logged in as a member of "EDITOR" group
|
||||
And I go to "admin/pages"
|
||||
And I wait for 1 second
|
||||
And I click on "My page" in the tree
|
||||
And I click the "Settings" CMS tab
|
||||
And I click the "Content review" CMS tab
|
||||
|
||||
Scenario: I can set content reviewers to users and groups who can edit pages
|
||||
When I select "Custom settings" from "Options" input group
|
||||
And I wait for 1 second
|
||||
|
||||
# Test adding individual member based on them having access to the Pages section fo the CMS
|
||||
Then the "#Form_EditForm_OwnerUsers" select element should have an option with an "Ed" label
|
||||
And the "#Form_EditForm_OwnerUsers" select element should have an option with an "Anna" label
|
||||
And the "#Form_EditForm_OwnerUsers" select element should not have an option with a "Phil" label
|
||||
|
||||
# Test adding groups
|
||||
Then the "#Form_EditForm_OwnerGroups" select element should have an option with an "EDITOR" label
|
||||
|
||||
# Required to avoid "unsaved changed" browser dialog
|
||||
Then I press the "Save" button
|
||||
|
||||
Scenario: There is an alert icon when a content review is overdue
|
||||
When I select "Custom settings" from "Options" input group
|
||||
And I wait for 1 second
|
||||
Then I should not see the ".content-review__button" element
|
||||
When I press the "Save" button
|
||||
And I select "EDITOR" from "Groups"
|
||||
And I press the "Save" button
|
||||
Then I should see the ".content-review__button" element
|
||||
When I click on the ".content-review__button" element
|
||||
Then I should see the ".modal" element
|
||||
And I should see "Mark as reviewed"
|
||||
|
||||
# Fill in a review
|
||||
When I fill in "Form_EditForm_ReviewContent_Review" with "My review"
|
||||
And I press "Mark as reviewed"
|
||||
And I wait for 1 second
|
||||
Then I should see "Review successfully added"
|
||||
When I click on the ".close" element
|
||||
And I press the "Save" button
|
||||
Then I should see "My review"
|
|
@ -6,19 +6,20 @@ Feature: Set up reviews
|
|||
Background:
|
||||
# Note: the review date is deliberately in the past
|
||||
Given a "page" "Home" with "Content"="<p>Welcome</p>", "NextReviewDate"="01/01/2017", "ReviewPeriodDays"="1"
|
||||
And I am logged in with "ADMIN" permissions
|
||||
And the "group" "EDITOR" has permissions "CMS_ACCESS_CMSMain" and "EDIT_CONTENT_REVIEW_FIELDS"
|
||||
And I am logged in as a member of "EDITOR" group
|
||||
And I go to "admin/pages"
|
||||
|
||||
@javascript
|
||||
Scenario: I can set content review options
|
||||
When I click on "Home" in the tree
|
||||
And I click the "Settings" CMS tab
|
||||
Then I should see a "Content Review" button
|
||||
Then I should see a "Content review" CMS tab
|
||||
|
||||
When I click the "Content Review" CMS tab
|
||||
When I click the "Content review" CMS tab
|
||||
And I select "Custom settings" from "Options" input group
|
||||
And I wait for 1 second
|
||||
And I select "ADMIN group" from "Groups"
|
||||
And I select "EDITOR" from "Groups"
|
||||
And I press "Save"
|
||||
Then I should see a "Content due for review" button
|
||||
|
||||
|
@ -26,10 +27,10 @@ Feature: Set up reviews
|
|||
Scenario: I can enter a review in the modal
|
||||
When I click on "Home" in the tree
|
||||
And I click the "Settings" CMS tab
|
||||
And I click the "Content Review" CMS tab
|
||||
And I click the "Content review" CMS tab
|
||||
And I select "Custom settings" from "Options" input group
|
||||
And I wait for 1 seconds
|
||||
And I select "ADMIN group" from "Groups"
|
||||
And I select "EDITOR" from "Groups"
|
||||
And I press "Save"
|
||||
And I follow "Content due for review"
|
||||
And I wait for 3 seconds
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
namespace SilverStripe\ContentReview\Tests\Behat\Context;
|
||||
|
||||
use SilverStripe\BehatExtension\Context\SilverStripeContext;
|
||||
|
||||
class FeatureContext extends SilverStripeContext
|
||||
{
|
||||
/**
|
||||
* @Given /^the "([^"]*)" select element should(| not) have an option with (a|an) "([^"]*)" label$/
|
||||
* @param string $id
|
||||
* @param string $should
|
||||
* @param string $label
|
||||
*/
|
||||
public function theSelectElementShouldHaveAnOptionWithALabel($id, $should, $label)
|
||||
{
|
||||
$n = $should === '' ? 1 : 0;
|
||||
$js = <<<JS
|
||||
;let hasLabel = 0;
|
||||
document.querySelectorAll('#{$id} > option').forEach(function(option) {
|
||||
if (option.innerHTML == '$label') {
|
||||
hasLabel = 1;
|
||||
}
|
||||
});
|
||||
return hasLabel;
|
||||
JS;
|
||||
return $this->getSession()->evaluateScript($js) == $n;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace SilverStripe\ContentReview\Tests\Behat\Context;
|
||||
|
||||
use SilverStripe\BehatExtension\Context\FixtureContext as BaseFixtureContext;
|
||||
|
||||
class FixtureContext extends BaseFixtureContext
|
||||
{
|
||||
}
|
|
@ -18,7 +18,7 @@ abstract class ContentReviewBaseTest extends FunctionalTest
|
|||
*/
|
||||
protected $translatableEnabledBefore;
|
||||
|
||||
protected function setUp()
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
|
@ -39,7 +39,7 @@ abstract class ContentReviewBaseTest extends FunctionalTest
|
|||
}
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
protected function tearDown(): void
|
||||
{
|
||||
if (class_exists(Translatable::class)) {
|
||||
if ($this->translatableEnabledBefore) {
|
||||
|
|
|
@ -17,9 +17,6 @@ use SilverStripe\Security\Group;
|
|||
use SilverStripe\Security\Member;
|
||||
use SilverStripe\SiteConfig\SiteConfig;
|
||||
|
||||
/**
|
||||
* @mixin PHPUnit_Framework_TestCase
|
||||
*/
|
||||
class ContentReviewCMSPageEditControllerTest extends ContentReviewBaseTest
|
||||
{
|
||||
/**
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace SilverStripe\ContentReview\Tests;
|
||||
|
||||
use Page;
|
||||
use ReflectionClass;
|
||||
use SilverStripe\CMS\Model\SiteTree;
|
||||
use SilverStripe\CMS\Controllers\CMSPageEditController;
|
||||
use SilverStripe\ContentReview\Extensions\ContentReviewCMSExtension;
|
||||
|
@ -18,9 +19,6 @@ use SilverStripe\Security\Member;
|
|||
use SilverStripe\SiteConfig\SiteConfig;
|
||||
use SilverStripe\ContentReview\Models\ContentReviewLog;
|
||||
|
||||
/**
|
||||
* @mixin PHPUnit_Framework_TestCase
|
||||
*/
|
||||
class ContentReviewNotificationTest extends SapphireTest
|
||||
{
|
||||
/**
|
||||
|
@ -28,7 +26,7 @@ class ContentReviewNotificationTest extends SapphireTest
|
|||
*/
|
||||
protected static $fixture_file = 'ContentReviewTest.yml';
|
||||
|
||||
protected function setUp()
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
|
@ -70,15 +68,15 @@ class ContentReviewNotificationTest extends SapphireTest
|
|||
|
||||
$email = $this->findEmail($ToEmail, null, $Subject);
|
||||
$this->assertNotNull($email, "Email haven't been sent.");
|
||||
$this->assertContains(
|
||||
$this->assertStringContainsString(
|
||||
"<h1>$Subject</h1>".
|
||||
"<p>There are $PagesCount pages that are due for review today by you, $ToFirstName.</p>".
|
||||
"<p>This email was sent to $ToEmail</p>",
|
||||
$email['HtmlContent']
|
||||
);
|
||||
$this->assertContains('Staff', $email['HtmlContent']);
|
||||
$this->assertContains('Contact Us', $email['HtmlContent']);
|
||||
$this->assertContains('Contact Us Child', $email['HtmlContent']);
|
||||
$this->assertStringContainsString('Staff', $email['HtmlContent']);
|
||||
$this->assertStringContainsString('Contact Us', $email['HtmlContent']);
|
||||
$this->assertStringContainsString('Contact Us Child', $email['HtmlContent']);
|
||||
|
||||
DBDatetime::clear_mock_now();
|
||||
}
|
||||
|
@ -135,6 +133,26 @@ class ContentReviewNotificationTest extends SapphireTest
|
|||
DBDatetime::clear_mock_now();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that provided email is valid
|
||||
*/
|
||||
public function testIsValidEmail()
|
||||
{
|
||||
$class = new ReflectionClass(ContentReviewEmails::class);
|
||||
$method = $class->getMethod('isValidEmail');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$member = $this->objFromFixture(Member::class, 'author');
|
||||
$task = new ContentReviewEmails();
|
||||
|
||||
$this->assertTrue($method->invokeArgs($task, [$member->Email]));
|
||||
$this->assertTrue($method->invokeArgs($task, ['correct.email@example.com']));
|
||||
|
||||
$this->assertFalse($method->invokeArgs($task, [null]));
|
||||
$this->assertFalse($method->invokeArgs($task, ['broken.email']));
|
||||
$this->assertFalse($method->invokeArgs($task, ['broken@email']));
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes all pages except those passes in to the $ids parameter
|
||||
*
|
||||
|
|
|
@ -87,11 +87,11 @@ class ContentReviewReportTest extends FunctionalTest
|
|||
|
||||
$results = $report->sourceRecords();
|
||||
|
||||
$this->assertEquals([
|
||||
"Home",
|
||||
"About Us",
|
||||
"Page without review date",
|
||||
"Page owned by group",
|
||||
], $results->column("Title"));
|
||||
$this->assertListEquals([
|
||||
['Title' => 'Home'],
|
||||
['Title' => 'About Us'],
|
||||
['Title' => 'Page without review date'],
|
||||
['Title' => 'Page owned by group'],
|
||||
], $results);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ namespace SilverStripe\ContentReview\Tests;
|
|||
|
||||
use function date;
|
||||
use Page;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
use SilverStripe\CMS\Controllers\CMSPageEditController;
|
||||
use SilverStripe\CMS\Model\SiteTree;
|
||||
use SilverStripe\ContentReview\Extensions\ContentReviewCMSExtension;
|
||||
|
@ -22,8 +21,6 @@ use SilverStripe\SiteConfig\SiteConfig;
|
|||
/**
|
||||
* This class tests that settings are inherited correctly based on the inherited,
|
||||
* custom or disabled settings.
|
||||
*
|
||||
* @mixin PHPUnit_Framework_TestCase
|
||||
*/
|
||||
class ContentReviewSettingsTest extends SapphireTest
|
||||
{
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
|
||||
namespace SilverStripe\ContentReview\Tests\Extensions;
|
||||
|
||||
use SilverStripe\CMS\Model\SiteTree;
|
||||
use SilverStripe\ContentReview\Extensions\ContentReviewCMSExtension;
|
||||
use SilverStripe\ContentReview\Forms\ReviewContentHandler;
|
||||
use SilverStripe\Control\Controller;
|
||||
use SilverStripe\Control\HTTPResponse_Exception;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Dev\SapphireTest;
|
||||
use SilverStripe\Forms\Form;
|
||||
|
@ -29,21 +31,17 @@ class ContentReviewCMSExtensionTest extends SapphireTest
|
|||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException SilverStripe\Control\HTTPResponse_Exception
|
||||
* @expectedExceptionMessage Bad record ID #1234
|
||||
*/
|
||||
public function testGetReviewContentFormThrowsExceptionWhenPageNotFound()
|
||||
{
|
||||
$this->expectException(HTTPResponse_Exception::class);
|
||||
$this->expectExceptionMessage('Bad record ID #1234');
|
||||
(new ContentReviewCMSExtension)->getReviewContentForm(1234);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException SilverStripe\Control\HTTPResponse_Exception
|
||||
* @expectedExceptionMessage It seems you don't have the necessary permissions to review this content
|
||||
*/
|
||||
public function testGetReviewContentFormThrowsExceptionWhenObjectCannotBeReviewed()
|
||||
{
|
||||
$this->expectException(HTTPResponse_Exception::class);
|
||||
$this->expectExceptionMessage('It seems you don\'t have the necessary permissions to review this content');
|
||||
$this->logOut();
|
||||
|
||||
$mock = $this->getMockBuilder(ContentReviewCMSExtension::class)
|
||||
|
@ -53,7 +51,7 @@ class ContentReviewCMSExtensionTest extends SapphireTest
|
|||
$mock->setOwner(new Controller);
|
||||
|
||||
// Return a DataObject without the content review extension applied
|
||||
$mock->expects($this->once())->method('findRecord')->with(['ID' => 123])->willReturn(new Member);
|
||||
$mock->expects($this->once())->method('findRecord')->with(['ID' => 123])->willReturn(new SiteTree);
|
||||
|
||||
$mock->getReviewContentForm(123);
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ use SilverStripe\Forms\Form;
|
|||
use SilverStripe\Forms\HiddenField;
|
||||
use SilverStripe\Forms\TextareaField;
|
||||
use SilverStripe\Security\Member;
|
||||
use SilverStripe\ORM\ValidationException;
|
||||
|
||||
class ReviewContentHandlerTest extends SapphireTest
|
||||
{
|
||||
|
@ -37,15 +38,20 @@ class ReviewContentHandlerTest extends SapphireTest
|
|||
$this->assertTrue($saveAction->hasClass('review-content__action'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException SilverStripe\ORM\ValidationException
|
||||
* @expectedExceptionMessage It seems you don't have the necessary permissions to submit a content review
|
||||
*/
|
||||
public function testExceptionThrownWhenSubmittingReviewForInvalidObject()
|
||||
{
|
||||
$this->expectException(ValidationException::class);
|
||||
$this->expectExceptionMessage('It seems you don\'t have the necessary permissions to submit a content review');
|
||||
ReviewContentHandler::create()->submitReview(new Member, ['foo' => 'bar']);
|
||||
}
|
||||
|
||||
public function testExceptionThrownWhenSubmittingReviewForInvalidDataObject()
|
||||
{
|
||||
$this->expectException(ValidationException::class);
|
||||
$this->expectExceptionMessage('It seems you don\'t have the necessary permissions to submit a content review');
|
||||
ReviewContentHandler::create()->submitReview(new Controller, ['foo' => 'bar']);
|
||||
}
|
||||
|
||||
public function testAddReviewNoteCalledWhenSubmittingReview()
|
||||
{
|
||||
$this->logInWithPermission('ADMIN');
|
||||
|
|
|
@ -9,16 +9,16 @@ use SilverStripe\ContentReview\Extensions\ContentReviewCMSExtension;
|
|||
use SilverStripe\ContentReview\Extensions\ContentReviewDefaultSettings;
|
||||
use SilverStripe\ContentReview\Extensions\ContentReviewOwner;
|
||||
use SilverStripe\ContentReview\Extensions\SiteTreeContentReview;
|
||||
use SilverStripe\Core\Injector\Injector;
|
||||
use SilverStripe\Forms\LiteralField;
|
||||
use SilverStripe\ORM\FieldType\DBDate;
|
||||
use SilverStripe\ORM\FieldType\DBDatetime;
|
||||
use SilverStripe\Security\Group;
|
||||
use SilverStripe\Security\Member;
|
||||
use SilverStripe\SiteConfig\SiteConfig;
|
||||
use SilverStripe\Versioned\Versioned;
|
||||
use SilverStripe\ORM\ArrayList;
|
||||
|
||||
/**
|
||||
* @mixin PHPUnit_Framework_TestCase
|
||||
*/
|
||||
class SiteTreeContentReviewTest extends ContentReviewBaseTest
|
||||
{
|
||||
protected $usesTransactions = false;
|
||||
|
@ -55,7 +55,7 @@ class SiteTreeContentReviewTest extends ContentReviewBaseTest
|
|||
$page->write();
|
||||
|
||||
$this->assertTrue($page->canPublish());
|
||||
$this->assertTrue($page->doPublish());
|
||||
$this->assertTrue($page->publishRecursive());
|
||||
$this->assertEquals($page->OwnerNames, "Test Editor", "Test Editor should be the owner");
|
||||
|
||||
/** @var Page|SiteTreeContentReview $page */
|
||||
|
@ -119,10 +119,24 @@ class SiteTreeContentReviewTest extends ContentReviewBaseTest
|
|||
$page->ReviewPeriodDays = 10;
|
||||
$page->write();
|
||||
|
||||
$this->assertTrue($page->doPublish());
|
||||
$this->assertTrue($page->publishRecursive());
|
||||
$this->assertEquals(null, $page->NextReviewDate);
|
||||
}
|
||||
|
||||
public function testAdvanceReviewDate()
|
||||
{
|
||||
$page = new Page();
|
||||
$page->Title = 'Test page';
|
||||
$page->ReviewPeriodDays = 0;
|
||||
// Set timestamp to a time in the past
|
||||
$timestamp = DBDatetime::now()->getTimestamp() - 100000;
|
||||
$page->NextReviewDate = DBDate::create()->setValue($timestamp)->Format(DBDate::ISO_DATE);
|
||||
$page->write();
|
||||
$page->advanceReviewDate();
|
||||
$this->assertNull(Page::get()->find('Title', 'Test page')->NextReviewDate);
|
||||
}
|
||||
|
||||
|
||||
public function testAddReviewNote()
|
||||
{
|
||||
/** @var Member $author */
|
||||
|
@ -353,4 +367,38 @@ class SiteTreeContentReviewTest extends ContentReviewBaseTest
|
|||
|
||||
DBDatetime::clear_mock_now();
|
||||
}
|
||||
|
||||
public function testPermissionCheckByOnDataObject()
|
||||
{
|
||||
$reviewer = $this->objFromFixture(Member::class, 'editor');
|
||||
|
||||
// Mock Page class with canReviewContent method to return true on first call and false on second call
|
||||
$mock = $this->getMockBuilder(Page::class)
|
||||
->setMethods(['canReviewContent', 'NextReviewDate', 'OwnerUsers'])
|
||||
->getMock();
|
||||
$mock->expects($this->exactly(2))->method('canReviewContent')->willReturnOnConsecutiveCalls(false, true);
|
||||
$mock->method('NextReviewDate')->willReturn('2020-02-20 12:00:00');
|
||||
$mock->method('OwnerUsers')->willReturn(ArrayList::create([$reviewer]));
|
||||
$mock->ContentReviewType = 'Custom';
|
||||
|
||||
/** @var SiteTreeContentReview $extension */
|
||||
$extension = Injector::inst()->get(SiteTreeContentReview::class);
|
||||
$extension->setOwner($mock);
|
||||
|
||||
// Assert that the user is not allowed to review content
|
||||
$author = $this->objFromFixture(Member::class, 'author');
|
||||
$this->assertFalse($extension->canBeReviewedBy($author));
|
||||
|
||||
DBDatetime::set_mock_now("2020-03-01 12:00:00");
|
||||
|
||||
// Assert that the user is allowed to review content
|
||||
$this->assertTrue($extension->canBeReviewedBy($reviewer));
|
||||
|
||||
// Assert tht canBeReviewedBy return true if no user logged in
|
||||
// This is for CLI execution for ContentReviewEmails task
|
||||
$this->logOut();
|
||||
$this->assertTrue($extension->canBeReviewedBy());
|
||||
|
||||
DBDatetime::clear_mock_now();
|
||||
}
|
||||
}
|
||||
|
|
810
yarn.lock
810
yarn.lock
|
@ -37,8 +37,8 @@
|
|||
webpack "^2.6.1"
|
||||
|
||||
abbrev@1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
|
||||
acorn-dynamic-import@^2.0.0:
|
||||
version "2.0.2"
|
||||
|
@ -80,7 +80,7 @@ ajv-keywords@^1.0.0, ajv-keywords@^1.1.1:
|
|||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
||||
|
||||
ajv@^4.7.0, ajv@^4.9.1:
|
||||
ajv@^4.7.0:
|
||||
version "4.11.8"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
|
||||
dependencies:
|
||||
|
@ -96,6 +96,15 @@ ajv@^5.0.0:
|
|||
json-schema-traverse "^0.3.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
|
||||
ajv@^6.12.3:
|
||||
version "6.12.6"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.1"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.4.1"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
align-text@^0.1.1, align-text@^0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
|
||||
|
@ -124,6 +133,10 @@ ansi-regex@^3.0.0:
|
|||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
|
||||
|
||||
ansi-regex@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
|
||||
|
||||
ansi-styles@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
||||
|
@ -134,6 +147,12 @@ ansi-styles@^3.1.0:
|
|||
dependencies:
|
||||
color-convert "^1.9.0"
|
||||
|
||||
ansi-styles@^3.2.0:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
||||
dependencies:
|
||||
color-convert "^1.9.0"
|
||||
|
||||
anymatch@^1.3.0:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
|
||||
|
@ -142,12 +161,12 @@ anymatch@^1.3.0:
|
|||
normalize-path "^2.0.0"
|
||||
|
||||
aproba@^1.0.3:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
|
||||
|
||||
are-we-there-yet@~1.1.2:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
|
||||
dependencies:
|
||||
delegates "^1.0.0"
|
||||
readable-stream "^2.0.6"
|
||||
|
@ -210,17 +229,15 @@ asn1.js@^4.0.0:
|
|||
minimalistic-assert "^1.0.0"
|
||||
|
||||
asn1@~0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
|
||||
dependencies:
|
||||
safer-buffer "~2.1.0"
|
||||
|
||||
assert-plus@1.0.0, assert-plus@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
|
||||
|
||||
assert-plus@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
|
||||
|
||||
assert@^1.1.1, assert@^1.3.0:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
|
||||
|
@ -236,10 +253,10 @@ async-foreach@^0.1.3:
|
|||
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
|
||||
|
||||
async@^2.1.2, async@^2.1.5:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
|
||||
version "2.6.4"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
|
||||
dependencies:
|
||||
lodash "^4.14.0"
|
||||
lodash "^4.17.14"
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
|
@ -264,13 +281,13 @@ autoprefixer@^6.3.1, autoprefixer@^6.4.0:
|
|||
postcss "^5.2.16"
|
||||
postcss-value-parser "^3.2.3"
|
||||
|
||||
aws-sign2@~0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
|
||||
aws-sign2@~0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
||||
|
||||
aws4@^1.2.1:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
||||
aws4@^1.8.0:
|
||||
version "1.11.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
|
||||
|
||||
babel-code-frame@^6.11.0, babel-code-frame@^6.26.0:
|
||||
version "6.26.0"
|
||||
|
@ -796,16 +813,16 @@ balanced-match@^0.4.2:
|
|||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||
|
||||
base64-js@^1.0.2:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
|
||||
|
||||
bcrypt-pbkdf@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
|
||||
dependencies:
|
||||
tweetnacl "^0.14.3"
|
||||
|
||||
|
@ -823,19 +840,13 @@ block-stream@*:
|
|||
dependencies:
|
||||
inherits "~2.0.0"
|
||||
|
||||
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
|
||||
version "4.11.8"
|
||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
||||
|
||||
boom@2.x.x:
|
||||
version "2.10.1"
|
||||
resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
|
||||
dependencies:
|
||||
hoek "2.x.x"
|
||||
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9:
|
||||
version "4.12.0"
|
||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.8"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
|
||||
version "1.1.11"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
@ -848,7 +859,7 @@ braces@^1.8.2:
|
|||
preserve "^0.2.0"
|
||||
repeat-element "^1.1.2"
|
||||
|
||||
brorand@^1.0.1:
|
||||
brorand@^1.0.1, brorand@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
||||
|
||||
|
@ -923,10 +934,6 @@ buffer@^4.3.0:
|
|||
ieee754 "^1.1.4"
|
||||
isarray "^1.0.0"
|
||||
|
||||
builtin-modules@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||
|
||||
builtin-status-codes@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
|
||||
|
@ -964,6 +971,10 @@ camelcase@^4.0.0:
|
|||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
|
||||
|
||||
camelcase@^5.0.0:
|
||||
version "5.3.1"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
||||
|
||||
caniuse-api@^1.5.2:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
|
||||
|
@ -1064,6 +1075,14 @@ cliui@^3.2.0:
|
|||
strip-ansi "^3.0.1"
|
||||
wrap-ansi "^2.0.0"
|
||||
|
||||
cliui@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
|
||||
dependencies:
|
||||
string-width "^3.1.0"
|
||||
strip-ansi "^5.2.0"
|
||||
wrap-ansi "^5.1.0"
|
||||
|
||||
clone-deep@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8"
|
||||
|
@ -1091,13 +1110,19 @@ code-point-at@^1.0.0:
|
|||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
||||
|
||||
color-convert@^1.3.0, color-convert@^1.9.0:
|
||||
color-convert@^1.3.0:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
|
||||
dependencies:
|
||||
color-name "^1.1.1"
|
||||
|
||||
color-name@^1.0.0, color-name@^1.1.1:
|
||||
color-convert@^1.9.0:
|
||||
version "1.9.3"
|
||||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
||||
dependencies:
|
||||
color-name "1.1.3"
|
||||
|
||||
color-name@1.1.3, color-name@^1.0.0, color-name@^1.1.1:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
||||
|
||||
|
@ -1127,9 +1152,9 @@ colors@~1.1.2:
|
|||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
|
||||
|
||||
combined-stream@^1.0.5, combined-stream@~1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
|
||||
combined-stream@^1.0.6, combined-stream@~1.0.6:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
|
@ -1241,12 +1266,6 @@ cross-spawn@^3.0.0:
|
|||
lru-cache "^4.0.1"
|
||||
which "^1.2.9"
|
||||
|
||||
cryptiles@2.x.x:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
|
||||
dependencies:
|
||||
boom "2.x.x"
|
||||
|
||||
crypto-browserify@^3.11.0:
|
||||
version "3.11.1"
|
||||
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f"
|
||||
|
@ -1373,12 +1392,12 @@ date-now@^0.1.4:
|
|||
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
|
||||
|
||||
debug@^2.1.1, debug@^2.2.0, debug@^2.6.8:
|
||||
version "2.6.8"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
|
||||
version "2.6.9"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
|
||||
decamelize@^1.0.0, 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"
|
||||
|
||||
|
@ -1454,26 +1473,31 @@ domain-browser@^1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
|
||||
|
||||
ecc-jsbn@~0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
||||
dependencies:
|
||||
jsbn "~0.1.0"
|
||||
safer-buffer "^2.1.0"
|
||||
|
||||
electron-to-chromium@^1.2.7:
|
||||
version "1.3.20"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5"
|
||||
|
||||
elliptic@^6.0.0:
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
|
||||
version "6.5.4"
|
||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
|
||||
dependencies:
|
||||
bn.js "^4.4.0"
|
||||
brorand "^1.0.1"
|
||||
bn.js "^4.11.9"
|
||||
brorand "^1.1.0"
|
||||
hash.js "^1.0.0"
|
||||
hmac-drbg "^1.0.0"
|
||||
inherits "^2.0.1"
|
||||
minimalistic-assert "^1.0.0"
|
||||
minimalistic-crypto-utils "^1.0.0"
|
||||
hmac-drbg "^1.0.1"
|
||||
inherits "^2.0.4"
|
||||
minimalistic-assert "^1.0.1"
|
||||
minimalistic-crypto-utils "^1.0.1"
|
||||
|
||||
emoji-regex@^7.0.1:
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
|
||||
|
||||
emojis-list@^2.0.0:
|
||||
version "2.1.0"
|
||||
|
@ -1501,8 +1525,8 @@ errno@^0.1.3:
|
|||
prr "~0.0.0"
|
||||
|
||||
error-ex@^1.2.0:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
|
||||
dependencies:
|
||||
is-arrayish "^0.2.1"
|
||||
|
||||
|
@ -1695,9 +1719,9 @@ expose-loader@^0.7.3:
|
|||
version "0.7.3"
|
||||
resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51"
|
||||
|
||||
extend@~3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
|
||||
extend@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||
|
||||
extglob@^0.3.1:
|
||||
version "0.3.2"
|
||||
|
@ -1714,14 +1738,26 @@ extract-text-webpack-plugin@^2.1.0:
|
|||
schema-utils "^0.3.0"
|
||||
webpack-sources "^1.0.1"
|
||||
|
||||
extsprintf@1.3.0, extsprintf@^1.2.0:
|
||||
extsprintf@1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||
|
||||
extsprintf@^1.2.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
||||
|
||||
fast-deep-equal@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
|
||||
|
||||
fast-deep-equal@^3.1.1:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||
|
||||
fast-json-stable-stringify@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
||||
|
||||
fast-levenshtein@~2.0.4:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||
|
@ -1813,6 +1849,12 @@ find-up@^2.1.0:
|
|||
dependencies:
|
||||
locate-path "^2.0.0"
|
||||
|
||||
find-up@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
|
||||
dependencies:
|
||||
locate-path "^3.0.0"
|
||||
|
||||
flat-cache@^1.2.1:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
|
||||
|
@ -1850,12 +1892,12 @@ forever-agent@~0.6.1:
|
|||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
||||
|
||||
form-data@~2.1.1:
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
|
||||
form-data@~2.3.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.5"
|
||||
combined-stream "^1.0.6"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
front-matter@2.1.2:
|
||||
|
@ -1891,16 +1933,16 @@ fstream-ignore@^1.0.5:
|
|||
inherits "2"
|
||||
minimatch "^3.0.0"
|
||||
|
||||
fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
|
||||
version "1.0.11"
|
||||
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
|
||||
fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.12:
|
||||
version "1.0.12"
|
||||
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
inherits "~2.0.0"
|
||||
mkdirp ">=0.5 0"
|
||||
rimraf "2"
|
||||
|
||||
function-bind@^1.0.2:
|
||||
function-bind@^1.0.2, function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
|
||||
|
@ -1918,14 +1960,16 @@ gauge@~2.7.3:
|
|||
wide-align "^1.1.0"
|
||||
|
||||
gaze@^1.0.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
|
||||
dependencies:
|
||||
globule "^1.0.0"
|
||||
|
||||
generate-function@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
|
||||
dependencies:
|
||||
is-property "^1.0.2"
|
||||
|
||||
generate-object-property@^1.1.0:
|
||||
version "1.2.0"
|
||||
|
@ -1937,6 +1981,10 @@ get-caller-file@^1.0.1:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
|
||||
|
||||
get-caller-file@^2.0.1:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
|
||||
get-stdin@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
|
||||
|
@ -1960,9 +2008,9 @@ glob-parent@^2.0.0:
|
|||
dependencies:
|
||||
is-glob "^2.0.0"
|
||||
|
||||
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.1:
|
||||
version "7.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
|
||||
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1:
|
||||
version "7.1.7"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
|
@ -1987,11 +2035,11 @@ globby@^5.0.0:
|
|||
pinkie-promise "^2.0.0"
|
||||
|
||||
globule@^1.0.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4"
|
||||
dependencies:
|
||||
glob "~7.1.1"
|
||||
lodash "~4.17.4"
|
||||
lodash "~4.17.10"
|
||||
minimatch "~3.0.2"
|
||||
|
||||
gonzales-pe@^4.1.1:
|
||||
|
@ -2000,20 +2048,24 @@ gonzales-pe@^4.1.1:
|
|||
dependencies:
|
||||
minimist "1.1.x"
|
||||
|
||||
graceful-fs@^4.1.2, graceful-fs@^4.1.6:
|
||||
graceful-fs@^4.1.2:
|
||||
version "4.2.8"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
|
||||
|
||||
graceful-fs@^4.1.6:
|
||||
version "4.1.11"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||
|
||||
har-schema@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
|
||||
har-schema@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
||||
|
||||
har-validator@~4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
|
||||
har-validator@~5.1.3:
|
||||
version "5.1.5"
|
||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
|
||||
dependencies:
|
||||
ajv "^4.9.1"
|
||||
har-schema "^1.0.5"
|
||||
ajv "^6.12.3"
|
||||
har-schema "^2.0.0"
|
||||
|
||||
has-ansi@^2.0.0:
|
||||
version "2.0.0"
|
||||
|
@ -2039,6 +2091,12 @@ has@^1.0.1:
|
|||
dependencies:
|
||||
function-bind "^1.0.2"
|
||||
|
||||
has@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
hash-base@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
|
||||
|
@ -2053,22 +2111,13 @@ hash-base@^3.0.0:
|
|||
safe-buffer "^5.0.1"
|
||||
|
||||
hash.js@^1.0.0, hash.js@^1.0.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
|
||||
version "1.1.7"
|
||||
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
minimalistic-assert "^1.0.0"
|
||||
minimalistic-assert "^1.0.1"
|
||||
|
||||
hawk@~3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
|
||||
dependencies:
|
||||
boom "2.x.x"
|
||||
cryptiles "2.x.x"
|
||||
hoek "2.x.x"
|
||||
sntp "1.x.x"
|
||||
|
||||
hmac-drbg@^1.0.0:
|
||||
hmac-drbg@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
|
||||
dependencies:
|
||||
|
@ -2076,10 +2125,6 @@ hmac-drbg@^1.0.0:
|
|||
minimalistic-assert "^1.0.0"
|
||||
minimalistic-crypto-utils "^1.0.1"
|
||||
|
||||
hoek@2.x.x:
|
||||
version "2.16.3"
|
||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
||||
|
||||
hoist-non-react-statics@^1.0.3:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
|
||||
|
@ -2092,18 +2137,18 @@ home-or-tmp@^2.0.0:
|
|||
os-tmpdir "^1.0.1"
|
||||
|
||||
hosted-git-info@^2.1.4:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
|
||||
version "2.8.9"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
|
||||
|
||||
html-comment-regex@^1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
|
||||
|
||||
http-signature@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
|
||||
http-signature@~1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
|
||||
dependencies:
|
||||
assert-plus "^0.2.0"
|
||||
assert-plus "^1.0.0"
|
||||
jsprim "^1.2.2"
|
||||
sshpk "^1.7.0"
|
||||
|
||||
|
@ -2145,8 +2190,8 @@ imurmurhash@^0.1.4:
|
|||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||
|
||||
in-publish@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c"
|
||||
|
||||
indent-string@^2.1.0:
|
||||
version "2.1.0"
|
||||
|
@ -2169,17 +2214,17 @@ inflight@^1.0.4:
|
|||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
|
||||
inherits@2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
|
||||
|
||||
ini@~1.3.0:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
|
||||
version "1.3.8"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
||||
|
||||
inquirer@^0.12.0:
|
||||
version "0.12.0"
|
||||
|
@ -2231,11 +2276,11 @@ is-buffer@^1.0.2, is-buffer@^1.1.5:
|
|||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
|
||||
|
||||
is-builtin-module@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
|
||||
is-core-module@^2.2.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491"
|
||||
dependencies:
|
||||
builtin-modules "^1.0.0"
|
||||
has "^1.0.3"
|
||||
|
||||
is-directory@^0.3.1:
|
||||
version "0.3.1"
|
||||
|
@ -2260,10 +2305,8 @@ is-extglob@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
|
||||
|
||||
is-finite@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
|
||||
dependencies:
|
||||
number-is-nan "^1.0.0"
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
|
||||
|
||||
is-fullwidth-code-point@^1.0.0:
|
||||
version "1.0.0"
|
||||
|
@ -2281,12 +2324,17 @@ is-glob@^2.0.0, is-glob@^2.0.1:
|
|||
dependencies:
|
||||
is-extglob "^1.0.0"
|
||||
|
||||
is-my-ip-valid@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
|
||||
|
||||
is-my-json-valid@^2.10.0:
|
||||
version "2.16.1"
|
||||
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11"
|
||||
version "2.20.5"
|
||||
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz#5eca6a8232a687f68869b7361be1612e7512e5df"
|
||||
dependencies:
|
||||
generate-function "^2.0.0"
|
||||
generate-object-property "^1.1.0"
|
||||
is-my-ip-valid "^1.0.0"
|
||||
jsonpointer "^4.0.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
|
@ -2336,7 +2384,7 @@ is-primitive@^2.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
|
||||
|
||||
is-property@^1.0.0:
|
||||
is-property@^1.0.0, is-property@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
|
||||
|
||||
|
@ -2393,11 +2441,15 @@ isstream@~0.1.2:
|
|||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||
|
||||
jquery@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787"
|
||||
jquery@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.0.tgz#8de513fa0fa4b2c7d2e48a530e26f0596936efdf"
|
||||
|
||||
js-base64@^2.1.8, js-base64@^2.1.9:
|
||||
js-base64@^2.1.8:
|
||||
version "2.6.4"
|
||||
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
|
||||
|
||||
js-base64@^2.1.9:
|
||||
version "2.1.9"
|
||||
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
|
||||
|
||||
|
@ -2439,6 +2491,10 @@ json-schema-traverse@^0.3.0:
|
|||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
|
||||
|
||||
json-schema-traverse@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
||||
|
||||
json-schema@0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||
|
@ -2468,8 +2524,8 @@ jsonify@~0.0.0:
|
|||
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
|
||||
|
||||
jsonpointer@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc"
|
||||
|
||||
jsprim@^1.2.2:
|
||||
version "1.4.1"
|
||||
|
@ -2568,6 +2624,13 @@ locate-path@^2.0.0:
|
|||
p-locate "^2.0.0"
|
||||
path-exists "^3.0.0"
|
||||
|
||||
locate-path@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
|
||||
dependencies:
|
||||
p-locate "^3.0.0"
|
||||
path-exists "^3.0.0"
|
||||
|
||||
lodash._baseassign@^3.0.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
|
||||
|
@ -2607,7 +2670,7 @@ lodash.assign@^3.0.0:
|
|||
lodash._createassigner "^3.0.0"
|
||||
lodash.keys "^3.0.0"
|
||||
|
||||
lodash.assign@^4.0.1, lodash.assign@^4.2.0:
|
||||
lodash.assign@^4.0.1:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
|
||||
|
||||
|
@ -2619,10 +2682,6 @@ lodash.capitalize@^4.1.0:
|
|||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9"
|
||||
|
||||
lodash.clonedeep@^4.3.2:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
||||
|
||||
lodash.defaults@^3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c"
|
||||
|
@ -2658,10 +2717,6 @@ lodash.memoize@^4.1.2:
|
|||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
||||
|
||||
lodash.mergewith@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
|
||||
|
||||
lodash.restparam@^3.0.0:
|
||||
version "3.6.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
|
||||
|
@ -2674,10 +2729,14 @@ lodash.uniq@^4.5.0:
|
|||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
||||
|
||||
lodash@4.17.4, lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.4:
|
||||
lodash@4.17.4:
|
||||
version "4.17.4"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
||||
|
||||
lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
|
||||
longest@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
|
||||
|
@ -2696,8 +2755,8 @@ loud-rejection@^1.0.0:
|
|||
signal-exit "^3.0.0"
|
||||
|
||||
lru-cache@^4.0.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
|
||||
version "4.1.5"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
|
||||
dependencies:
|
||||
pseudomap "^1.0.2"
|
||||
yallist "^2.1.2"
|
||||
|
@ -2750,8 +2809,8 @@ meow@^3.7.0:
|
|||
trim-newlines "^1.0.0"
|
||||
|
||||
merge@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
||||
|
||||
micromatch@^2.1.5:
|
||||
version "2.3.11"
|
||||
|
@ -2778,31 +2837,31 @@ miller-rabin@^4.0.0:
|
|||
bn.js "^4.0.0"
|
||||
brorand "^1.0.1"
|
||||
|
||||
mime-db@~1.30.0:
|
||||
version "1.30.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
||||
mime-db@1.49.0:
|
||||
version "1.49.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.7:
|
||||
version "2.1.17"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
||||
mime-types@^2.1.12, mime-types@~2.1.19:
|
||||
version "2.1.32"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
|
||||
dependencies:
|
||||
mime-db "~1.30.0"
|
||||
mime-db "1.49.0"
|
||||
|
||||
mime@1.3.x:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
|
||||
|
||||
minimalistic-assert@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
|
||||
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
||||
|
||||
minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
|
||||
minimalistic-crypto-utils@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
|
||||
|
||||
minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1"
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
|
@ -2814,7 +2873,11 @@ minimist@1.1.x:
|
|||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8"
|
||||
|
||||
minimist@^1.1.3, minimist@^1.2.0:
|
||||
minimist@^1.1.3, minimist@^1.2.5:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
||||
|
||||
minimist@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
||||
|
||||
|
@ -2825,12 +2888,18 @@ mixin-object@^2.0.1:
|
|||
for-in "^0.1.3"
|
||||
is-extendable "^0.1.1"
|
||||
|
||||
mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
|
||||
mkdirp@0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
dependencies:
|
||||
minimist "0.0.8"
|
||||
|
||||
"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
|
||||
version "0.5.5"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
|
||||
modernizr-loader@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/modernizr-loader/-/modernizr-loader-1.0.1.tgz#e52a6f9a12578b944abbd6cbd65c863ea4a83f49"
|
||||
|
@ -2856,9 +2925,9 @@ mute-stream@0.0.5:
|
|||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
|
||||
|
||||
nan@^2.3.0, nan@^2.3.2:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
|
||||
nan@^2.13.2, nan@^2.3.0:
|
||||
version "2.15.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
|
||||
|
||||
node-fetch@^1.0.1:
|
||||
version "1.7.3"
|
||||
|
@ -2867,19 +2936,18 @@ node-fetch@^1.0.1:
|
|||
encoding "^0.1.11"
|
||||
is-stream "^1.0.1"
|
||||
|
||||
node-gyp@^3.3.1:
|
||||
version "3.6.2"
|
||||
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
|
||||
node-gyp@^3.8.0:
|
||||
version "3.8.0"
|
||||
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
|
||||
dependencies:
|
||||
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"
|
||||
request "^2.87.0"
|
||||
rimraf "2"
|
||||
semver "~5.3.0"
|
||||
tar "^2.0.0"
|
||||
|
@ -2928,8 +2996,8 @@ node-pre-gyp@^0.6.36:
|
|||
tar-pack "^3.4.0"
|
||||
|
||||
node-sass@^4.5.3:
|
||||
version "4.5.3"
|
||||
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568"
|
||||
version "4.14.1"
|
||||
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5"
|
||||
dependencies:
|
||||
async-foreach "^0.1.3"
|
||||
chalk "^1.1.1"
|
||||
|
@ -2938,17 +3006,16 @@ node-sass@^4.5.3:
|
|||
get-stdin "^4.0.1"
|
||||
glob "^7.0.3"
|
||||
in-publish "^2.0.0"
|
||||
lodash.assign "^4.2.0"
|
||||
lodash.clonedeep "^4.3.2"
|
||||
lodash.mergewith "^4.6.0"
|
||||
lodash "^4.17.15"
|
||||
meow "^3.7.0"
|
||||
mkdirp "^0.5.1"
|
||||
nan "^2.3.2"
|
||||
node-gyp "^3.3.1"
|
||||
nan "^2.13.2"
|
||||
node-gyp "^3.8.0"
|
||||
npmlog "^4.0.0"
|
||||
request "^2.79.0"
|
||||
sass-graph "^2.1.1"
|
||||
request "^2.88.0"
|
||||
sass-graph "2.2.5"
|
||||
stdout-stream "^1.4.0"
|
||||
"true-case-path" "^1.0.2"
|
||||
|
||||
"nopt@2 || 3":
|
||||
version "3.0.6"
|
||||
|
@ -2964,11 +3031,11 @@ nopt@^4.0.1:
|
|||
osenv "^0.1.4"
|
||||
|
||||
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
|
||||
dependencies:
|
||||
hosted-git-info "^2.1.4"
|
||||
is-builtin-module "^1.0.0"
|
||||
resolve "^1.10.0"
|
||||
semver "2 || 3 || 4 || 5"
|
||||
validate-npm-package-license "^3.0.1"
|
||||
|
||||
|
@ -3008,9 +3075,9 @@ number-is-nan@^1.0.0:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
|
||||
oauth-sign@~0.8.1:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
|
||||
oauth-sign@~0.9.0:
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
|
||||
|
||||
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
|
@ -3070,7 +3137,14 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||
|
||||
osenv@0, osenv@^0.1.4:
|
||||
osenv@0:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
|
||||
dependencies:
|
||||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.0"
|
||||
|
||||
osenv@^0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
|
||||
dependencies:
|
||||
|
@ -3081,12 +3155,28 @@ p-limit@^1.1.0:
|
|||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
|
||||
|
||||
p-limit@^2.0.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
||||
dependencies:
|
||||
p-try "^2.0.0"
|
||||
|
||||
p-locate@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
|
||||
dependencies:
|
||||
p-limit "^1.1.0"
|
||||
|
||||
p-locate@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
|
||||
dependencies:
|
||||
p-limit "^2.0.0"
|
||||
|
||||
p-try@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
||||
|
||||
pako@~0.2.0:
|
||||
version "0.2.9"
|
||||
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
|
||||
|
@ -3138,6 +3228,10 @@ path-is-inside@^1.0.1:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
||||
|
||||
path-parse@^1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||
|
||||
path-type@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
|
||||
|
@ -3156,9 +3250,9 @@ pbkdf2@^3.0.3:
|
|||
safe-buffer "^5.0.1"
|
||||
sha.js "^2.4.8"
|
||||
|
||||
performance-now@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
||||
performance-now@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||
|
||||
pify@^2.0.0, pify@^2.3.0:
|
||||
version "2.3.0"
|
||||
|
@ -3492,6 +3586,10 @@ process-nextick-args@~1.0.6:
|
|||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||
|
||||
process-nextick-args@~2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||
|
||||
process@^0.11.0:
|
||||
version "0.11.10"
|
||||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
||||
|
@ -3521,6 +3619,10 @@ pseudomap@^1.0.2:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
||||
|
||||
psl@^1.1.28:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
|
||||
|
||||
public-encrypt@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
|
||||
|
@ -3535,17 +3637,21 @@ punycode@1.3.2:
|
|||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
|
||||
|
||||
punycode@^1.2.4, punycode@^1.4.1:
|
||||
punycode@^1.2.4:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
||||
|
||||
punycode@^2.1.0, punycode@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||
|
||||
q@^1.1.2:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
|
||||
|
||||
qs@~6.4.0:
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
|
||||
qs@~6.5.2:
|
||||
version "6.5.3"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
|
||||
|
||||
query-string@^4.1.0:
|
||||
version "4.3.4"
|
||||
|
@ -3626,7 +3732,19 @@ read-pkg@^1.0.0:
|
|||
normalize-package-data "^2.3.2"
|
||||
path-type "^1.0.0"
|
||||
|
||||
readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6:
|
||||
readable-stream@^2.0.1, readable-stream@^2.0.6:
|
||||
version "2.3.7"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
|
||||
dependencies:
|
||||
core-util-is "~1.0.0"
|
||||
inherits "~2.0.3"
|
||||
isarray "~1.0.0"
|
||||
process-nextick-args "~2.0.0"
|
||||
safe-buffer "~5.1.1"
|
||||
string_decoder "~1.1.1"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
|
||||
dependencies:
|
||||
|
@ -3757,32 +3875,30 @@ repeating@^2.0.0:
|
|||
dependencies:
|
||||
is-finite "^1.0.0"
|
||||
|
||||
request@2, request@^2.79.0, request@^2.81.0:
|
||||
version "2.81.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
|
||||
request@^2.81.0, request@^2.87.0, request@^2.88.0:
|
||||
version "2.88.2"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
|
||||
dependencies:
|
||||
aws-sign2 "~0.6.0"
|
||||
aws4 "^1.2.1"
|
||||
aws-sign2 "~0.7.0"
|
||||
aws4 "^1.8.0"
|
||||
caseless "~0.12.0"
|
||||
combined-stream "~1.0.5"
|
||||
extend "~3.0.0"
|
||||
combined-stream "~1.0.6"
|
||||
extend "~3.0.2"
|
||||
forever-agent "~0.6.1"
|
||||
form-data "~2.1.1"
|
||||
har-validator "~4.2.1"
|
||||
hawk "~3.1.3"
|
||||
http-signature "~1.1.0"
|
||||
form-data "~2.3.2"
|
||||
har-validator "~5.1.3"
|
||||
http-signature "~1.2.0"
|
||||
is-typedarray "~1.0.0"
|
||||
isstream "~0.1.2"
|
||||
json-stringify-safe "~5.0.1"
|
||||
mime-types "~2.1.7"
|
||||
oauth-sign "~0.8.1"
|
||||
performance-now "^0.2.0"
|
||||
qs "~6.4.0"
|
||||
safe-buffer "^5.0.1"
|
||||
stringstream "~0.0.4"
|
||||
tough-cookie "~2.3.0"
|
||||
mime-types "~2.1.19"
|
||||
oauth-sign "~0.9.0"
|
||||
performance-now "^2.1.0"
|
||||
qs "~6.5.2"
|
||||
safe-buffer "^5.1.2"
|
||||
tough-cookie "~2.5.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
uuid "^3.0.0"
|
||||
uuid "^3.3.2"
|
||||
|
||||
require-directory@^2.1.1:
|
||||
version "2.1.1"
|
||||
|
@ -3796,6 +3912,10 @@ require-main-filename@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
||||
|
||||
require-main-filename@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
|
||||
|
||||
require-uncached@^1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
|
||||
|
@ -3829,6 +3949,13 @@ resolve-url@~0.2.1:
|
|||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
||||
|
||||
resolve@^1.10.0:
|
||||
version "1.20.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
|
||||
dependencies:
|
||||
is-core-module "^2.2.0"
|
||||
path-parse "^1.0.6"
|
||||
|
||||
restore-cursor@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
|
||||
|
@ -3853,7 +3980,13 @@ right-align@^0.1.1:
|
|||
dependencies:
|
||||
align-text "^0.1.1"
|
||||
|
||||
rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
|
||||
rimraf@2:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
|
||||
dependencies:
|
||||
|
@ -3876,18 +4009,30 @@ rx-lite@^3.1.2:
|
|||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
|
||||
|
||||
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||
|
||||
safe-buffer@^5.1.0, safe-buffer@^5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
|
||||
|
||||
sass-graph@^2.1.1:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
|
||||
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||
|
||||
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"
|
||||
|
||||
sass-graph@2.2.5:
|
||||
version "2.2.5"
|
||||
resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8"
|
||||
dependencies:
|
||||
glob "^7.0.0"
|
||||
lodash "^4.0.0"
|
||||
scss-tokenizer "^0.2.3"
|
||||
yargs "^7.0.0"
|
||||
yargs "^13.3.2"
|
||||
|
||||
sass-lint@^1.9.1:
|
||||
version "1.11.1"
|
||||
|
@ -3941,7 +4086,11 @@ 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@2 || 3 || 4 || 5":
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||
|
||||
semver@^5.3.0:
|
||||
version "5.4.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
|
||||
|
||||
|
@ -3981,8 +4130,8 @@ shelljs@^0.6.0:
|
|||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8"
|
||||
|
||||
signal-exit@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
||||
|
||||
slash@^1.0.0:
|
||||
version "1.0.0"
|
||||
|
@ -3992,12 +4141,6 @@ slice-ansi@0.0.4:
|
|||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
|
||||
|
||||
sntp@1.x.x:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
|
||||
dependencies:
|
||||
hoek "2.x.x"
|
||||
|
||||
sort-keys@^1.0.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
|
||||
|
@ -4043,41 +4186,49 @@ source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, sour
|
|||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
||||
|
||||
spdx-correct@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
|
||||
spdx-correct@^3.0.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
|
||||
dependencies:
|
||||
spdx-license-ids "^1.0.2"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
spdx-license-ids "^3.0.0"
|
||||
|
||||
spdx-expression-parse@~1.0.0:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
|
||||
spdx-exceptions@^2.1.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
|
||||
|
||||
spdx-license-ids@^1.0.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
|
||||
spdx-expression-parse@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
|
||||
dependencies:
|
||||
spdx-exceptions "^2.1.0"
|
||||
spdx-license-ids "^3.0.0"
|
||||
|
||||
spdx-license-ids@^3.0.0:
|
||||
version "3.0.9"
|
||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"
|
||||
|
||||
sprintf-js@~1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||
|
||||
sshpk@^1.7.0:
|
||||
version "1.13.1"
|
||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
|
||||
version "1.16.1"
|
||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
|
||||
dependencies:
|
||||
asn1 "~0.2.3"
|
||||
assert-plus "^1.0.0"
|
||||
dashdash "^1.12.0"
|
||||
getpass "^0.1.1"
|
||||
optionalDependencies:
|
||||
bcrypt-pbkdf "^1.0.0"
|
||||
dashdash "^1.12.0"
|
||||
ecc-jsbn "~0.1.1"
|
||||
getpass "^0.1.1"
|
||||
jsbn "~0.1.0"
|
||||
safer-buffer "^2.0.2"
|
||||
tweetnacl "~0.14.0"
|
||||
|
||||
stdout-stream@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de"
|
||||
dependencies:
|
||||
readable-stream "^2.0.1"
|
||||
|
||||
|
@ -4110,13 +4261,21 @@ string-width@^1.0.1, string-width@^1.0.2:
|
|||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
string-width@^2.0.0:
|
||||
"string-width@^1.0.2 || 2", string-width@^2.0.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
dependencies:
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
strip-ansi "^4.0.0"
|
||||
|
||||
string-width@^3.0.0, string-width@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
|
||||
dependencies:
|
||||
emoji-regex "^7.0.1"
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
strip-ansi "^5.1.0"
|
||||
|
||||
string_decoder@^0.10.25:
|
||||
version "0.10.31"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
||||
|
@ -4127,9 +4286,11 @@ string_decoder@~1.0.3:
|
|||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
stringstream@~0.0.4:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
|
||||
string_decoder@~1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
||||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
|
||||
version "3.0.1"
|
||||
|
@ -4143,6 +4304,12 @@ strip-ansi@^4.0.0:
|
|||
dependencies:
|
||||
ansi-regex "^3.0.0"
|
||||
|
||||
strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
|
||||
dependencies:
|
||||
ansi-regex "^4.1.0"
|
||||
|
||||
strip-bom@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
|
||||
|
@ -4220,11 +4387,11 @@ tar-pack@^3.4.0:
|
|||
uid-number "^0.0.6"
|
||||
|
||||
tar@^2.0.0, tar@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40"
|
||||
dependencies:
|
||||
block-stream "*"
|
||||
fstream "^1.0.2"
|
||||
fstream "^1.0.12"
|
||||
inherits "2"
|
||||
|
||||
text-table@~0.2.0:
|
||||
|
@ -4249,11 +4416,12 @@ to-fast-properties@^1.0.3:
|
|||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
|
||||
|
||||
tough-cookie@~2.3.0:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
|
||||
tough-cookie@~2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
|
||||
dependencies:
|
||||
punycode "^1.4.1"
|
||||
psl "^1.1.28"
|
||||
punycode "^2.1.1"
|
||||
|
||||
trim-newlines@^1.0.0:
|
||||
version "1.0.0"
|
||||
|
@ -4263,6 +4431,12 @@ trim-right@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
|
||||
|
||||
"true-case-path@^1.0.2":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d"
|
||||
dependencies:
|
||||
glob "^7.1.2"
|
||||
|
||||
tryit@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
|
||||
|
@ -4292,8 +4466,8 @@ typedarray@^0.0.6:
|
|||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
|
||||
ua-parser-js@^0.7.9:
|
||||
version "0.7.14"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
|
||||
version "0.7.28"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31"
|
||||
|
||||
uglify-js@^2.8.27:
|
||||
version "2.8.29"
|
||||
|
@ -4338,6 +4512,12 @@ universalify@^0.1.0:
|
|||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
|
||||
|
||||
uri-js@^4.2.2:
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
|
||||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
urix@^0.1.0, urix@~0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
||||
|
@ -4372,16 +4552,16 @@ util@0.10.3, util@^0.10.3:
|
|||
dependencies:
|
||||
inherits "2.0.1"
|
||||
|
||||
uuid@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
|
||||
uuid@^3.3.2:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||
|
||||
validate-npm-package-license@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
|
||||
dependencies:
|
||||
spdx-correct "~1.0.0"
|
||||
spdx-expression-parse "~1.0.0"
|
||||
spdx-correct "^3.0.0"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
|
||||
vendors@^1.0.0:
|
||||
version "1.0.1"
|
||||
|
@ -4454,17 +4634,21 @@ which-module@^1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
|
||||
|
||||
which-module@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
||||
|
||||
which@1, which@^1.2.9:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wide-align@^1.1.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
|
||||
dependencies:
|
||||
string-width "^1.0.2"
|
||||
string-width "^1.0.2 || 2"
|
||||
|
||||
window-size@0.1.0:
|
||||
version "0.1.0"
|
||||
|
@ -4485,6 +4669,14 @@ wrap-ansi@^2.0.0:
|
|||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.1"
|
||||
|
||||
wrap-ansi@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
|
||||
dependencies:
|
||||
ansi-styles "^3.2.0"
|
||||
string-width "^3.0.0"
|
||||
strip-ansi "^5.0.0"
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
|
@ -4496,17 +4688,28 @@ write@^0.2.1:
|
|||
mkdirp "^0.5.1"
|
||||
|
||||
xtend@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
||||
|
||||
y18n@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
|
||||
|
||||
y18n@^4.0.0:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
|
||||
|
||||
yallist@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
|
||||
|
||||
yargs-parser@^13.1.2:
|
||||
version "13.1.2"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
|
||||
dependencies:
|
||||
camelcase "^5.0.0"
|
||||
decamelize "^1.2.0"
|
||||
|
||||
yargs-parser@^4.2.0:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
|
||||
|
@ -4537,6 +4740,21 @@ yargs@7.0.2:
|
|||
y18n "^3.2.1"
|
||||
yargs-parser "^5.0.0"
|
||||
|
||||
yargs@^13.3.2:
|
||||
version "13.3.2"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
|
||||
dependencies:
|
||||
cliui "^5.0.0"
|
||||
find-up "^3.0.0"
|
||||
get-caller-file "^2.0.1"
|
||||
require-directory "^2.1.1"
|
||||
require-main-filename "^2.0.0"
|
||||
set-blocking "^2.0.0"
|
||||
string-width "^3.0.0"
|
||||
which-module "^2.0.0"
|
||||
y18n "^4.0.0"
|
||||
yargs-parser "^13.1.2"
|
||||
|
||||
yargs@^6.0.0:
|
||||
version "6.6.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
|
||||
|
@ -4555,24 +4773,6 @@ yargs@^6.0.0:
|
|||
y18n "^3.2.1"
|
||||
yargs-parser "^4.2.0"
|
||||
|
||||
yargs@^7.0.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
|
||||
dependencies:
|
||||
camelcase "^3.0.0"
|
||||
cliui "^3.2.0"
|
||||
decamelize "^1.1.1"
|
||||
get-caller-file "^1.0.1"
|
||||
os-locale "^1.4.0"
|
||||
read-pkg-up "^1.0.1"
|
||||
require-directory "^2.1.1"
|
||||
require-main-filename "^1.0.1"
|
||||
set-blocking "^2.0.0"
|
||||
string-width "^1.0.2"
|
||||
which-module "^1.0.0"
|
||||
y18n "^3.2.1"
|
||||
yargs-parser "^5.0.0"
|
||||
|
||||
yargs@~3.10.0:
|
||||
version "3.10.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
|
||||
|
|
Loading…
Reference in New Issue