summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxence Lange <maxence@artificial-owl.com>2018-12-18 15:24:51 -0100
committerGitHub <noreply@github.com>2018-12-18 15:24:51 -0100
commit428c14d37e11cc88e487b60e1920078523d70314 (patch)
tree9a0d70947d7fa8b6862a8a7d9aad3f7065ab5619
parent995d611060b6d38808bc1eefe44f29fcd562a050 (diff)
parent3f9309be145dee40dd2cd411f2881b0bb12b4344 (diff)
Merge branch 'master' into fill-follows-table
-rw-r--r--.drone.yml73
-rw-r--r--appinfo/info.xml17
-rw-r--r--composer.json3
-rw-r--r--composer.lock55
-rw-r--r--lib/Controller/NavigationController.php8
-rw-r--r--lib/Controller/QueueController.php22
-rw-r--r--lib/Db/CacheActorsRequest.php13
-rw-r--r--lib/Db/CoreRequestBuilder.php3
-rw-r--r--lib/Db/NotesRequest.php13
-rw-r--r--lib/Migration/Version0001Date20181208185242.php88
-rw-r--r--lib/Service/ActorService.php21
-rw-r--r--lib/Service/ImportService.php2
-rw-r--r--package-lock.json1717
-rw-r--r--package.json30
14 files changed, 996 insertions, 1069 deletions
diff --git a/.drone.yml b/.drone.yml
index 334b38f2..6f6ec4a8 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -4,6 +4,71 @@ clone:
depth: 1
pipeline:
+ check-app-compatbility:
+ image: nextcloudci/php7.0:php7.0-17
+ environment:
+ - APP_NAME=social
+ - CORE_BRANCH=stable15
+ - DB=sqlite
+ commands:
+ # Pre-setup steps
+ - wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
+ - bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
+ - cd ../server
+ # Code checker
+ - ./occ app:check-code $APP_NAME -c strong-comparison
+ - ./occ app:check-code $APP_NAME -c deprecation
+ when:
+ matrix:
+ TESTS: check-app-compatbility
+ syntax-php7.0:
+ image: nextcloudci/php7.0:php7.0-17
+ environment:
+ - APP_NAME=social
+ - CORE_BRANCH=stable15
+ - DB=sqlite
+ commands:
+ - composer install
+ - ./vendor/bin/parallel-lint --exclude ./vendor/ .
+ when:
+ matrix:
+ TESTS: syntax-php7.0
+ syntax-php7.1:
+ image: nextcloudci/php7.1:php7.1-15
+ environment:
+ - APP_NAME=social
+ - CORE_BRANCH=stable15
+ - DB=sqlite
+ commands:
+ - composer install
+ - ./vendor/bin/parallel-lint --exclude ./vendor/ .
+ when:
+ matrix:
+ TESTS: syntax-php7.1
+ syntax-php7.2:
+ image: nextcloudci/php7.2:php7.2-9
+ environment:
+ - APP_NAME=social
+ - CORE_BRANCH=stable15
+ - DB=sqlite
+ commands:
+ - composer install
+ - ./vendor/bin/parallel-lint --exclude ./vendor/ .
+ when:
+ matrix:
+ TESTS: syntax-php7.2
+ syntax-php7.3:
+ image: nextcloudci/php7.3:php7.3-2
+ environment:
+ - APP_NAME=social
+ - CORE_BRANCH=stable15
+ - DB=sqlite
+ commands:
+ - composer install
+ - ./vendor/bin/parallel-lint --exclude ./vendor/ .
+ when:
+ matrix:
+ TESTS: syntax-php7.3
eslint:
image: nextcloudci/jsunit:jsunit-5
commands:
@@ -12,7 +77,6 @@ pipeline:
when:
matrix:
TESTS: eslint
-
vue-build:
image: nextcloudci/jsunit:jsunit-5
commands:
@@ -20,10 +84,15 @@ pipeline:
- npm run build
when:
matrix:
- TESTS:vue-build
+ TESTS: vue-build
matrix:
include:
+ - TESTS: check-app-compatbility
+ - TESTS: syntax-php7.0
+ - TESTS: syntax-php7.1
+ - TESTS: syntax-php7.2
+ - TESTS: syntax-php7.3
- TESTS: eslint
- TESTS: vue-build
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 56754da6..177d1563 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -26,8 +26,8 @@
<namespace>Social</namespace>
<category>social</category>
<website>https://github.com/nextcloud/social</website>
- <repository type="git">https://github.com/nextcloud/social.git</repository>
<bugs>https://github.com/nextcloud/social/issues</bugs>
+ <repository type="git">https://github.com/nextcloud/social.git</repository>
<screenshot>https://raw.githubusercontent.com/nextcloud/social/master/img/screenshot.png</screenshot>
<dependencies>
<nextcloud min-version="15" max-version="16"/>
@@ -39,14 +39,6 @@
</post-migration>
</repair-steps>
- <navigations>
- <navigation>
- <name>Social</name>
- <route>social.Navigation.navigate</route>
- <order>6</order>
- </navigation>
- </navigations>
-
<background-jobs>
<job>OCA\Social\Cron\Cache</job>
<job>OCA\Social\Cron\Queue</job>
@@ -59,4 +51,11 @@
<command>OCA\Social\Command\QueueProcess</command>
</commands>
+ <navigations>
+ <navigation>
+ <name>Social</name>
+ <route>social.Navigation.navigate</route>
+ <order>6</order>
+ </navigation>
+ </navigations>
</info>
diff --git a/composer.json b/composer.json
index 3bf0a3c8..d83a222f 100644
--- a/composer.json
+++ b/composer.json
@@ -11,5 +11,8 @@
],
"require": {
"daita/my-small-php-tools": "dev-master"
+ },
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "^1.0"
}
}
diff --git a/composer.lock b/composer.lock
index 5bc891fc..83f63fdb 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,10 +1,10 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "02220c2a6087d409a5e53060ee20c47e",
+ "content-hash": "17d7e7fc4c9cdd0ddc5d6166607fce8f",
"packages": [
{
"name": "daita/my-small-php-tools",
@@ -43,7 +43,56 @@
"time": "2018-12-08T15:17:26+00:00"
}
],
- "packages-dev": [],
+ "packages-dev": [
+ {
+ "name": "jakub-onderka/php-parallel-lint",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/JakubOnderka/PHP-Parallel-Lint.git",
+ "reference": "04fbd3f5fb1c83f08724aa58a23db90bd9086ee8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/JakubOnderka/PHP-Parallel-Lint/zipball/04fbd3f5fb1c83f08724aa58a23db90bd9086ee8",
+ "reference": "04fbd3f5fb1c83f08724aa58a23db90bd9086ee8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "jakub-onderka/php-console-highlighter": "~0.3",
+ "nette/tester": "~1.3",
+ "squizlabs/php_codesniffer": "~2.7"
+ },
+ "suggest": {
+ "jakub-onderka/php-console-highlighter": "Highlight syntax in code snippet"
+ },
+ "bin": [
+ "parallel-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "./"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jakub Onderka",
+ "email": "ahoj@jakubonderka.cz"
+ }
+ ],
+ "description": "This tool check syntax of PHP files about 20x faster than serial check.",
+ "homepage": "https://github.com/JakubOnderka/PHP-Parallel-Lint",
+ "time": "2018-02-24T15:31:20+00:00"
+ }
+ ],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
diff --git a/lib/Controller/NavigationController.php b/lib/Controller/NavigationController.php
index 4c7e6e67..44baf6e2 100644
--- a/lib/Controller/NavigationController.php
+++ b/lib/Controller/NavigationController.php
@@ -148,9 +148,6 @@ class NavigationController extends Controller {
]
];
- $checks = $this->checkService->checkDefault();
- $data['serverData']['checks'] = $checks;
-
try {
$data['serverData']['cloudAddress'] = $this->configService->getCloudAddress();
} catch (SocialAppConfigException $e) {
@@ -172,6 +169,11 @@ class NavigationController extends Controller {
}
}
+ if ($data['serverData']['isAdmin']) {
+ $checks = $this->checkService->checkDefault();
+ $data['serverData']['checks'] = $checks;
+ }
+
/*
* Create social user account if it doesn't exist yet
*/
diff --git a/lib/Controller/QueueController.php b/lib/Controller/QueueController.php
index 3900eec5..4d32b12d 100644
--- a/lib/Controller/QueueController.php
+++ b/lib/Controller/QueueController.php
@@ -93,19 +93,21 @@ class QueueController extends Controller {
* @param string $token
*/
public function asyncWithToken(string $token) {
- $this->async();
-
$requests = $this->queueService->getRequestFromToken($token, RequestQueue::STATUS_STANDBY);
- $this->activityService->manageInit();
- foreach ($requests as $request) {
- $request->setTimeout(ActivityService::TIMEOUT_ASYNC);
- try {
- $this->activityService->manageRequest($request);
- } catch (RequestException $e) {
- } catch (SocialAppConfigException $e) {
+
+ if (!empty($requests)) {
+ $this->async();
+
+ $this->activityService->manageInit();
+ foreach ($requests as $request) {
+ $request->setTimeout(ActivityService::TIMEOUT_ASYNC);
+ try {
+ $this->activityService->manageRequest($request);
+ } catch (RequestException $e) {
+ } catch (SocialAppConfigException $e) {
+ }
}
}
-
// or it will feed the logs.
exit();
}
diff --git a/lib/Db/CacheActorsRequest.php b/lib/Db/CacheActorsRequest.php
index 7a3f0ff2..e69afbc1 100644
--- a/lib/Db/CacheActorsRequest.php
+++ b/lib/Db/CacheActorsRequest.php
@@ -62,10 +62,13 @@ class CacheActorsRequest extends CacheActorsRequestBuilder {
* insert cache about an Actor in database.
*
* @param Person $actor
- *
- * @return int
*/
- public function save(Person $actor): int {
+ public function save(Person $actor) {
+ $source = $actor->getSource();
+ if (strlen($source) >= CoreRequestBuilder::SOURCE_LENGTH) {
+ $source = 'too_big';
+ }
+
$qb = $this->getCacheActorsInsertSql();
$qb->setValue('id', $qb->createNamedParameter($actor->getId()))
->setValue('account', $qb->createNamedParameter($actor->getAccount()))
@@ -84,7 +87,7 @@ class CacheActorsRequest extends CacheActorsRequestBuilder {
->setValue('name', $qb->createNamedParameter($actor->getName()))
->setValue('summary', $qb->createNamedParameter($actor->getSummary()))
->setValue('public_key', $qb->createNamedParameter($actor->getPublicKey()))
- ->setValue('source', $qb->createNamedParameter($actor->getSource()))
+ ->setValue('source', $qb->createNamedParameter($source))
->setValue('details', $qb->createNamedParameter(json_encode($actor->getDetails())))
->setValue(
'creation',
@@ -101,8 +104,6 @@ class CacheActorsRequest extends CacheActorsRequestBuilder {
$qb->setValue('icon_id', $qb->createNamedParameter($iconId));
$qb->execute();
-
- return $qb->getLastInsertId();
}
diff --git a/lib/Db/CoreRequestBuilder.php b/lib/Db/CoreRequestBuilder.php
index 7176ed8c..8f594ddd 100644
--- a/lib/Db/CoreRequestBuilder.php
+++ b/lib/Db/CoreRequestBuilder.php
@@ -64,6 +64,9 @@ class CoreRequestBuilder {
const TABLE_CACHE_DOCUMENTS = 'social_cache_documents';
+ const SOURCE_LENGTH = 10000;
+
+
/** @var IDBConnection */
protected $dbConnection;
diff --git a/lib/Db/NotesRequest.php b/lib/Db/NotesRequest.php
index 9e687e25..fdd1313b 100644
--- a/lib/Db/NotesRequest.php
+++ b/lib/Db/NotesRequest.php
@@ -61,13 +61,16 @@ class NotesRequest extends NotesRequestBuilder {
* Insert a new Note in the database.
*
* @param Note $note
- *
- * @return int
*/
- public function save(Note $note): int {
+ public function save(Note $note) {
$dTime = new DateTime();
$dTime->setTimestamp($note->getPublishedTime());
+ $source = $note->getSource();
+ if (strlen($source) >= CoreRequestBuilder::SOURCE_LENGTH) {
+ $source = 'too_big';
+ }
+
$qb = $this->getNotesInsertSql();
$qb->setValue('id', $qb->createNamedParameter($note->getId()))
->setValue('type', $qb->createNamedParameter($note->getType()))
@@ -95,7 +98,7 @@ class NotesRequest extends NotesRequestBuilder {
)
->setValue('attributed_to', $qb->createNamedParameter($note->getAttributedTo()))
->setValue('in_reply_to', $qb->createNamedParameter($note->getInReplyTo()))
- ->setValue('source', $qb->createNamedParameter($note->getSource()))
+ ->setValue('source', $qb->createNamedParameter($source))
->setValue(
'instances', $qb->createNamedParameter(
json_encode($note->getInstancePaths(), JSON_UNESCAPED_SLASHES)
@@ -108,8 +111,6 @@ class NotesRequest extends NotesRequestBuilder {
);
$qb->execute();
-
- return $qb->getLastInsertId();
}
diff --git a/lib/Migration/Version0001Date20181208185242.php b/lib/Migration/Version0001Date20181208185242.php
new file mode 100644
index 00000000..3194f2ee
--- /dev/null
+++ b/lib/Migration/Version0001Date20181208185242.php
@@ -0,0 +1,88 @@
+<?php
+declare(strict_types=1);
+
+
+/**
+ * Nextcloud - Social Support
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2018, Maxence Lange <maxence@artificial-owl.com>
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+namespace OCA\Social\Migration;
+
+
+use Closure;
+use OCA\Social\Db\CoreRequestBuilder;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+
+/**
+ * Class Version0001Date20181208185242
+ *
+ * @package OCA\Social\Migration
+ */
+class Version0001Date20181208185242 extends SimpleMigrationStep {
+
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ *
+ * @return ISchemaWrapper
+ * @throws \Doctrine\DBAL\Schema\SchemaException
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options
+ ): ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable(CoreRequestBuilder::TABLE_CACHE_ACTORS);
+ $table->changeColumn(
+ 'source', [
+ 'notnull' => true,
+ 'length' => CoreRequestBuilder::SOURCE_LENGTH,
+ ]
+ );
+
+ $table = $schema->getTable(CoreRequestBuilder::TABLE_SERVER_NOTES);
+ $table->changeColumn(
+ 'source', [
+ 'notnull' => true,
+ 'length' => CoreRequestBuilder::SOURCE_LENGTH,
+ ]
+ );
+
+ $table = $schema->getTable(CoreRequestBuilder::TABLE_REQUEST_QUEUE);
+ $table->changeColumn(
+ 'activity', [
+ 'notnull' => true,
+ 'length' => CoreRequestBuilder::SOURCE_LENGTH,
+ ]
+ );
+
+ return $schema;
+ }
+}
diff --git a/lib/Service/ActorService.php b/lib/Service/ActorService.php
index 60bb5acb..174a3732 100644
--- a/lib/Service/ActorService.php
+++ b/lib/Service/ActorService.php
@@ -45,7 +45,6 @@ use OCA\Social\Model\ActivityPub\Person;
use OCA\Social\Service\ActivityPub\DocumentService;
use OCA\Social\Service\ActivityPub\PersonService;
use OCP\Accounts\IAccountManager;
-use OCP\Accounts\PropertyDoesNotExistException;
use OCP\IUserManager;
@@ -264,6 +263,12 @@ class ActorService {
try {
$actor = $this->getActor($username);
+ try {
+ $this->updateCacheLocalActorName($actor);
+ } catch (NoUserException $e) {
+ return;
+ }
+
$iconId = $this->documentService->cacheLocalAvatarByUsername($actor);
$actor->setIconId($iconId);
@@ -274,7 +279,6 @@ class ActorService {
];
$actor->addDetailArray('count', $count);
- $this->updateCacheLocalActorName($actor);
$this->personService->cacheLocalActor($actor, $refresh);
} catch (ActorDoesNotExistException $e) {
@@ -284,17 +288,25 @@ class ActorService {
/**
* @param Person $actor
+ *
+ * @throws NoUserException
*/
private function updateCacheLocalActorName(Person &$actor) {
$user = $this->userManager->get($actor->getUserId());
- $account = $this->accountManager->getAccount($user);
+ if ($user === null) {
+ throw new NoUserException();
+ }
try {
+ $account = $this->accountManager->getAccount($user);
$displayNameProperty = $account->getProperty(IAccountManager::PROPERTY_DISPLAYNAME);
if ($displayNameProperty->getScope() === IAccountManager::VISIBILITY_PUBLIC) {
$actor->setName($displayNameProperty->getValue());
}
- } catch (PropertyDoesNotExistException $e) {
+ } catch (Exception $e) {
+ $this->miscService->log(
+ 'Issue while trying to updateCacheLocalActorName: ' . $e->getMessage(), 1
+ );
}
}
@@ -335,7 +347,6 @@ class ActorService {
*/
public function manageCacheLocalActors(): int {
$update = $this->actorsRequest->getAll();
-
foreach ($update as $item) {
try {
$this->cacheLocalActorByUsername($item->getPreferredUsername(), true);
diff --git a/lib/Service/ImportService.php b/lib/Service/ImportService.php
index f87b0b4b..73072a7e 100644
--- a/lib/Service/ImportService.php
+++ b/lib/Service/ImportService.php
@@ -235,7 +235,7 @@ class ImportService {
$service->parse($activity);
} catch (Exception $e) {
$this->miscService->log(
- 2, 'Cannot parse ' . $activity->getType() . ': ' . $e->getMessage()
+ 'Cannot parse ' . $activity->getType() . ': ' . $e->getMessage()
);
}
}
diff --git a/package-lock.json b/package-lock.json
index c4dc7a49..16a2cdbc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,25 +14,115 @@
}
},
"@babel/core": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.2.tgz",
- "integrity": "sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz",
+ "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.1.2",
- "@babel/helpers": "^7.1.2",
- "@babel/parser": "^7.1.2",
- "@babel/template": "^7.1.2",
- "@babel/traverse": "^7.1.0",
- "@babel/types": "^7.1.2",
+ "@babel/generator": "^7.2.2",
+ "@babel/helpers": "^7.2.0",
+ "@babel/parser": "^7.2.2",
+ "@babel/template": "^7.2.2",
+ "@babel/traverse": "^7.2.2",
+ "@babel/types": "^7.2.2",
"convert-source-map": "^1.1.0",
- "debug": "^3.1.0",
- "json5": "^0.5.0",
+ "debug": "^4.1.0",
+ "json5": "^2.1.0",
"lodash": "^4.17.10",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "@babel/generator": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz",
+ "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.2.2",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.10",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.2.tgz",
+ "integrity": "sha512-UNTmQ5cSLDeBGBl+s7JeowkqIHgmFAGBnLDdIzFmUNSuS5JF0XBcN59jsh/vJO/YjfsBqMxhMjoFGmNExmf0FA==",
+ "dev": true
+ },
+ "@babel/template": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
+ "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.2.2",
+ "@babel/types": "^7.2.2"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.2.tgz",
+ "integrity": "sha512-E5Bn9FSwHpSkUhthw/XEuvFZxIgrqb9M8cX8j5EUQtrUG5DQUy6bFyl7G7iQ1D1Czudor+xkmp81JbLVVM0Sjg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/generator": "^7.2.2",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.0.0",
+ "@babel/parser": "^7.2.2",
+ "@babel/types": "^7.2.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.10"
+ }
+ },
+ "@babel/types": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
+ "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.10",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
+ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "json5": {
+ "version": "2.1.0",
+ "resolved": "http://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
+ "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
}
},
"@babel/generator": {
@@ -254,14 +344,78 @@
}
},
"@babel/helpers": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.2.tgz",
- "integrity": "sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.2.0.tgz",
+ "integrity": "sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A==",
"dev": true,
"requires": {
"@babel/template": "^7.1.2",
- "@babel/traverse": "^7.1.0",
- "@babel/types": "^7.1.2"
+ "@babel/traverse": "^7.1.5",
+ "@babel/types": "^7.2.0"
+ },
+ "dependencies": {
+ "@babel/generator": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz",
+ "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.2.2",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.10",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.2.tgz",
+ "integrity": "sha512-UNTmQ5cSLDeBGBl+s7JeowkqIHgmFAGBnLDdIzFmUNSuS5JF0XBcN59jsh/vJO/YjfsBqMxhMjoFGmNExmf0FA==",
+ "dev": true
+ },
+ "@babel/traverse": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.2.tgz",
+ "integrity": "sha512-E5Bn9FSwHpSkUhthw/XEuvFZxIgrqb9M8cX8j5EUQtrUG5DQUy6bFyl7G7iQ1D1Czudor+xkmp81JbLVVM0Sjg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/generator": "^7.2.2",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.0.0",
+ "@babel/parser": "^7.2.2",
+ "@babel/types": "^7.2.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.10"
+ }
+ },
+ "@babel/types": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
+ "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.10",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
+ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
}
},
"@babel/highlight": {
@@ -343,9 +497,9 @@
}
},
"@babel/plugin-syntax-dynamic-import": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz",
- "integrity": "sha512-Gt9xNyRrCHCiyX/ZxDGOcBnlJl0I3IWicpZRC4CdC0P5a/I07Ya2OAMEBU+J7GmRFVmIetqEYRko6QYRuKOESw==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
+ "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0"
@@ -824,183 +978,184 @@
}
},
"@vue/test-utils": {
- "version": "1.0.0-beta.25",
- "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.25.tgz",
- "integrity": "sha512-mfvguEmEpAn0BuT4u+qm+0J1NTKgQS+ffUyWHY1QeSovIkJcy98fj1rO+PJgiZSEvGjjnDNX+qmofYFPLrofbA==",
+ "version": "1.0.0-beta.27",
+ "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.27.tgz",
+ "integrity": "sha512-Lzrd4ZB