diff --git a/.gitignore b/.gitignore
index 07094a43b..07623b965 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@ cypress/screenshots/
cypress.env.json
!.gitkeep
+**/coverage
diff --git a/.travis.yml b/.travis.yml
index cd43b771f..632786285 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,7 +28,7 @@ script:
- docker-compose exec webapp yarn run lint
- docker-compose exec webapp yarn run test --ci --verbose=false
- docker-compose exec -d backend yarn run test:before:seeder
- - yarn run cypress:run
+ - CYPRESS_RETRIES=1 yarn run cypress:run
after_success:
- wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
diff --git a/README.md b/README.md
index 3f92be96d..ac7d2a024 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# Human-Connection
[](https://travis-ci.com/Human-Connection/Human-Connection)
+[](https://codecov.io/gh/Human-Connection/Human-Connection/)
[](https://github.com/Human-Connection/Nitro-Backend/blob/backend/LICENSE.md)
[](https://discord.gg/6ub73U3)
diff --git a/SUMMARY.md b/SUMMARY.md
index c993fe120..7c1e41d13 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -5,7 +5,6 @@
* [Installation](installation.md)
* [Backend](backend/README.md)
* [GraphQL](backend/graphql.md)
- * [Legacy Migration](backend/db-migration-worker/README.md)
* [Webapp](webapp/README.md)
* [COMPONENTS](webapp/components.md)
* [PLUGINS](webapp/plugins.md)
@@ -21,7 +20,15 @@
* [Frontend tests](webapp/testing.md)
* [Backend tests](backend/testing.md)
* [Contributing](CONTRIBUTING.md)
-* [Deployment](deployment/README.md)
+* [Kubernetes Deployment](deployment/README.md)
+ * [Minikube](deployment/minikube/README.md)
+ * [Digital Ocean](deployment/digital-ocean/README.md)
+ * [Kubernetes Dashboard](deployment/digital-ocean/dashboard/README.md)
+ * [HTTPS](deployment/digital-ocean/https/README.md)
+ * [Human Connection](deployment/human-connection/README.md)
+ * [Volumes](deployment/volumes/README.md)
+ * [Neo4J DB Backup](deployment/backup.md)
+ * [Legacy Migration](deployment/legacy-migration/README.md)
* [Feature Specification](cypress/features.md)
* [Code of conduct](CODE_OF_CONDUCT.md)
* [License](LICENSE.md)
diff --git a/backend/.dockerignore b/backend/.dockerignore
index 31f5b28f3..25a941824 100644
--- a/backend/.dockerignore
+++ b/backend/.dockerignore
@@ -15,7 +15,7 @@ node_modules/
scripts/
dist/
-db-migration-worker/
+maintenance-worker/
neo4j/
public/uploads/*
diff --git a/backend/db-migration-worker/Dockerfile b/backend/db-migration-worker/Dockerfile
deleted file mode 100644
index 865a4c330..000000000
--- a/backend/db-migration-worker/Dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-FROM mongo:4
-
-RUN apt-get update && apt-get -y install --no-install-recommends wget apt-transport-https \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-RUN wget -O - https://debian.neo4j.org/neotechnology.gpg.key | apt-key add -
-RUN echo 'deb https://debian.neo4j.org/repo stable/' | tee /etc/apt/sources.list.d/neo4j.list
-RUN apt-get update && apt-get -y install --no-install-recommends openjdk-8-jre openssh-client neo4j rsync \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-COPY migration ./migration
-COPY migrate.sh /usr/local/bin/migrate
-COPY sync_uploads.sh /usr/local/bin/sync_uploads
diff --git a/backend/db-migration-worker/README.md b/backend/db-migration-worker/README.md
deleted file mode 100644
index 3d0f86edd..000000000
--- a/backend/db-migration-worker/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Legacy Migration
-
-This guide helps you to import data from our legacy servers, which are using FeathersJS and MongoDB.
-
-**You can skip this if you don't plan to migrate any legacy applications!**
-
-## Prerequisites
-
-You need [docker](https://www.docker.com/) installed on your machine. Furthermore you need SSH access to the server and you need to know the following login credentials and server settings:
-
-| Environment variable | Description |
-| :--- | :--- |
-| SSH\_USERNAME | Your ssh username on the server |
-| SSH\_HOST | The IP address of the server |
-| MONGODB\_USERNAME | Mongo username on the server |
-| MONGODB\_PASSWORD | Mongo password on the server |
-| MONGODB\_AUTH\_DB | Mongo authentication database |
-| MONGODB\_DATABASE | The name of the mongo database |
-| UPLOADS\_DIRECTORY | Path to remote uploads folder |
-
-## Run the database migration
-
-Run `docker-compose` with all environment variables specified:
-
-```bash
-SSH_USERNAME=username SSH_HOST=some.server.com MONGODB_USERNAME='hc-api' MONGODB_PASSWORD='secret' MONGODB_DATABASE=hc_api MONGODB_AUTH_DB=hc_api UPLOADS_DIRECTORY=/var/www/api/uploads docker-compose up
-```
-
-Download the remote mongo database:
-
-```bash
-docker-compose exec db-migration-worker ./import.sh
-```
-
-Import the local download into Neo4J:
-
-```bash
-docker-compose exec neo4j import/import.sh
-```
-
diff --git a/backend/docker-compose.cypress.yml b/backend/docker-compose.cypress.yml
deleted file mode 100644
index 3d577e638..000000000
--- a/backend/docker-compose.cypress.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: "3.7"
-
-services:
- neo4j:
- environment:
- - NEO4J_AUTH=none
- ports:
- - 7687:7687
- - 7474:7474
- backend:
- ports:
- - 4001:4001
- - 4123:4123
- image: humanconnection/nitro-backend:builder
- build:
- context: .
- target: builder
- command: yarn run test:cypress
diff --git a/backend/docker-compose.db-migration.yml b/backend/docker-compose.db-migration.yml
deleted file mode 100644
index 02f054d1b..000000000
--- a/backend/docker-compose.db-migration.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-version: "3.7"
-
-services:
- backend:
- volumes:
- - uploads:/nitro-backend/public/uploads
- neo4j:
- volumes:
- - mongo-export:/mongo-export
- environment:
- - NEO4J_apoc_import_file_enabled=true
- db-migration-worker:
- build:
- context: db-migration-worker
- volumes:
- - mongo-export:/mongo-export
- - uploads:/uploads
- - ./db-migration-worker/migration/:/migration
- - ./db-migration-worker/.ssh/:/root/.ssh/
- networks:
- - hc-network
- depends_on:
- - backend
- environment:
- - NEO4J_URI=bolt://neo4j:7687
- - "SSH_USERNAME=${SSH_USERNAME}"
- - "SSH_HOST=${SSH_HOST}"
- - "MONGODB_USERNAME=${MONGODB_USERNAME}"
- - "MONGODB_PASSWORD=${MONGODB_PASSWORD}"
- - "MONGODB_AUTH_DB=${MONGODB_AUTH_DB}"
- - "MONGODB_DATABASE=${MONGODB_DATABASE}"
- - "UPLOADS_DIRECTORY=${UPLOADS_DIRECTORY}"
-
-volumes:
- mongo-export:
- uploads:
diff --git a/backend/docker-compose.override.yml b/backend/docker-compose.override.yml
deleted file mode 100644
index b972c31f6..000000000
--- a/backend/docker-compose.override.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-version: "3.7"
-
-services:
- backend:
- image: humanconnection/nitro-backend:builder
- build:
- context: .
- target: builder
- volumes:
- - .:/nitro-backend
- - /nitro-backend/node_modules
- command: yarn run dev
- neo4j:
- environment:
- - NEO4J_AUTH=none
- ports:
- - 7687:7687
- - 7474:7474
- volumes:
- - neo4j-data:/data
-
-volumes:
- neo4j-data:
diff --git a/backend/docker-compose.travis.yml b/backend/docker-compose.travis.yml
deleted file mode 100644
index e1998f6dd..000000000
--- a/backend/docker-compose.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: "3.7"
-
-services:
- neo4j:
- environment:
- - NEO4J_AUTH=none
- ports:
- - 7687:7687
- - 7474:7474
- backend:
- image: humanconnection/nitro-backend:builder
- build:
- context: .
- target: builder
diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml
deleted file mode 100644
index 30d102f96..000000000
--- a/backend/docker-compose.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-version: "3.7"
-
-services:
- backend:
- image: humanconnection/nitro-backend:latest
- build:
- context: .
- target: production
- networks:
- - hc-network
- depends_on:
- - neo4j
- ports:
- - 4000:4000
- environment:
- - NEO4J_URI=bolt://neo4j:7687
- - GRAPHQL_PORT=4000
- - GRAPHQL_URI=http://localhost:4000
- - CLIENT_URI=http://localhost:3000
- - JWT_SECRET=b/&&7b78BF&fv/Vd
- - MOCK=false
- - MAPBOX_TOKEN=pk.eyJ1IjoiaHVtYW4tY29ubmVjdGlvbiIsImEiOiJjajl0cnBubGoweTVlM3VwZ2lzNTNud3ZtIn0.KZ8KK9l70omjXbEkkbHGsQ
- - PRIVATE_KEY_PASSPHRASE=a7dsf78sadg87ad87sfagsadg78
-
- neo4j:
- image: humanconnection/neo4j:latest
- build:
- context: neo4j
- networks:
- - hc-network
-
-networks:
- hc-network:
- name: hc-network
diff --git a/backend/package.json b/backend/package.json
index d113f815d..f397e4430 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -26,6 +26,8 @@
"license": "MIT",
"jest": {
"verbose": true,
+ "collectCoverage": true,
+ "coverageReporters": ["text", "lcov"],
"testMatch": [
"**/src/**/?(*.)+(spec|test).js?(x)"
]
@@ -43,55 +45,55 @@
"cross-env": "~5.2.0",
"date-fns": "2.0.0-alpha.27",
"debug": "~4.1.1",
- "dotenv": "~7.0.0",
+ "dotenv": "~8.0.0",
"express": "~4.16.4",
"faker": "~4.1.0",
"graphql": "~14.2.1",
"graphql-custom-directives": "~0.2.14",
"graphql-iso-date": "~3.6.1",
"graphql-middleware": "~3.0.2",
- "graphql-shield": "~5.3.3",
+ "graphql-shield": "~5.3.5",
"graphql-tag": "~2.10.1",
"graphql-yoga": "~1.17.4",
- "helmet": "~3.16.0",
+ "helmet": "~3.18.0",
"jsonwebtoken": "~8.5.1",
"linkifyjs": "~2.1.8",
"lodash": "~4.17.11",
"ms": "~2.1.1",
- "neo4j-driver": "~1.7.3",
+ "neo4j-driver": "~1.7.4",
"neo4j-graphql-js": "~2.4.2",
- "node-fetch": "~2.3.0",
+ "node-fetch": "~2.5.0",
"npm-run-all": "~4.1.5",
"request": "~2.88.0",
- "sanitize-html": "~1.20.0",
+ "sanitize-html": "~1.20.1",
"slug": "~1.1.0",
"trunc-html": "~1.1.2",
"uuid": "~3.3.2",
"wait-on": "~3.2.0"
},
"devDependencies": {
- "@babel/cli": "~7.4.3",
- "@babel/core": "~7.4.3",
+ "@babel/cli": "~7.4.4",
+ "@babel/core": "~7.4.4",
"@babel/node": "~7.2.2",
"@babel/plugin-proposal-throw-expressions": "^7.2.0",
- "@babel/preset-env": "~7.4.3",
- "@babel/register": "~7.4.0",
+ "@babel/preset-env": "~7.4.4",
+ "@babel/register": "~7.4.4",
"apollo-server-testing": "~2.4.8",
"babel-core": "~7.0.0-0",
"babel-eslint": "~10.0.1",
- "babel-jest": "~24.7.1",
+ "babel-jest": "~24.8.0",
"chai": "~4.2.0",
"cucumber": "~5.1.0",
"eslint": "~5.16.0",
"eslint-config-standard": "~12.0.0",
"eslint-plugin-import": "~2.17.2",
- "eslint-plugin-jest": "~22.4.1",
+ "eslint-plugin-jest": "~22.5.1",
"eslint-plugin-node": "~8.0.1",
"eslint-plugin-promise": "~4.1.1",
"eslint-plugin-standard": "~4.0.0",
"graphql-request": "~1.8.2",
"jest": "~24.7.1",
- "nodemon": "~1.18.11",
+ "nodemon": "~1.19.0",
"supertest": "~4.0.2"
}
}
\ No newline at end of file
diff --git a/backend/src/graphql-schema.js b/backend/src/graphql-schema.js
index e88151898..bad277721 100644
--- a/backend/src/graphql-schema.js
+++ b/backend/src/graphql-schema.js
@@ -11,6 +11,7 @@ import shout from './resolvers/shout.js'
import rewards from './resolvers/rewards.js'
import socialMedia from './resolvers/socialMedia.js'
import notifications from './resolvers/notifications'
+import comments from './resolvers/comments'
export const typeDefs = fs
.readFileSync(
@@ -22,7 +23,8 @@ export const resolvers = {
Query: {
...statistics.Query,
...userManagement.Query,
- ...notifications.Query
+ ...notifications.Query,
+ ...comments.Query
},
Mutation: {
...userManagement.Mutation,
@@ -33,6 +35,7 @@ export const resolvers = {
...shout.Mutation,
...rewards.Mutation,
...socialMedia.Mutation,
- ...notifications.Mutation
+ ...notifications.Mutation,
+ ...comments.Mutation
}
}
diff --git a/backend/src/middleware/permissionsMiddleware.js b/backend/src/middleware/permissionsMiddleware.js
index 3ac43a6e2..3688aec16 100644
--- a/backend/src/middleware/permissionsMiddleware.js
+++ b/backend/src/middleware/permissionsMiddleware.js
@@ -86,7 +86,8 @@ const permissions = shield({
unshout: isAuthenticated,
changePassword: isAuthenticated,
enable: isModerator,
- disable: isModerator
+ disable: isModerator,
+ CreateComment: isAuthenticated
// CreateUser: allow,
},
User: {
diff --git a/backend/src/middleware/softDeleteMiddleware.spec.js b/backend/src/middleware/softDeleteMiddleware.spec.js
index 46005a4ff..f007888ed 100644
--- a/backend/src/middleware/softDeleteMiddleware.spec.js
+++ b/backend/src/middleware/softDeleteMiddleware.spec.js
@@ -23,21 +23,19 @@ beforeAll(async () => {
])
await Promise.all([
- factory.create('Comment', { id: 'c2', content: 'Enabled comment on public post' })
+ factory.create('Comment', { id: 'c2', postId: 'p3', content: 'Enabled comment on public post' })
])
await Promise.all([
- factory.relate('Comment', 'Author', { from: 'u1', to: 'c2' }),
- factory.relate('Comment', 'Post', { from: 'c2', to: 'p3' })
+ factory.relate('Comment', 'Author', { from: 'u1', to: 'c2' })
])
const asTroll = Factory()
await asTroll.authenticateAs({ email: 'troll@example.org', password: '1234' })
await asTroll.create('Post', { id: 'p2', title: 'Disabled post', content: 'This is an offensive post content', image: '/some/offensive/image.jpg', deleted: false })
- await asTroll.create('Comment', { id: 'c1', content: 'Disabled comment' })
+ await asTroll.create('Comment', { id: 'c1', postId: 'p3', content: 'Disabled comment' })
await Promise.all([
- asTroll.relate('Comment', 'Author', { from: 'u2', to: 'c1' }),
- asTroll.relate('Comment', 'Post', { from: 'c1', to: 'p3' })
+ asTroll.relate('Comment', 'Author', { from: 'u2', to: 'c1' })
])
const asModerator = Factory()
diff --git a/backend/src/resolvers/comments.js b/backend/src/resolvers/comments.js
new file mode 100644
index 000000000..d4775b235
--- /dev/null
+++ b/backend/src/resolvers/comments.js
@@ -0,0 +1,55 @@
+import { neo4jgraphql } from 'neo4j-graphql-js'
+import { UserInputError } from 'apollo-server'
+
+const COMMENT_MIN_LENGTH = 1
+const NO_POST_ERR_MESSAGE = 'Comment cannot be created without a post!'
+
+export default {
+ Mutation: {
+ CreateComment: async (object, params, context, resolveInfo) => {
+ const content = params.content.replace(/<(?:.|\n)*?>/gm, '').trim()
+ const { postId } = params
+ // Adding relationship from comment to post by passing in the postId,
+ // but we do not want to create the comment with postId as an attribute
+ // because we use relationships for this. So, we are deleting it from params
+ // before comment creation.
+ delete params.postId
+
+ if (!params.content || content.length < COMMENT_MIN_LENGTH) {
+ throw new UserInputError(`Comment must be at least ${COMMENT_MIN_LENGTH} character long!`)
+ }
+ if (!postId.trim()) {
+ throw new UserInputError(NO_POST_ERR_MESSAGE)
+ }
+
+ const session = context.driver.session()
+ const postQueryRes = await session.run(`
+ MATCH (post:Post {id: $postId})
+ RETURN post`, {
+ postId
+ }
+ )
+ const [post] = postQueryRes.records.map(record => {
+ return record.get('post')
+ })
+
+ if (!post) {
+ throw new UserInputError(NO_POST_ERR_MESSAGE)
+ }
+ const comment = await neo4jgraphql(object, params, context, resolveInfo, false)
+
+ await session.run(`
+ MATCH (post:Post {id: $postId}), (comment:Comment {id: $commentId}), (author:User {id: $userId})
+ MERGE (post)<-[:COMMENTS]-(comment)<-[:WROTE]-(author)
+ RETURN post`, {
+ userId: context.user.id,
+ postId,
+ commentId: comment.id
+ }
+ )
+ session.close()
+
+ return comment
+ }
+ }
+}
diff --git a/backend/src/resolvers/comments.spec.js b/backend/src/resolvers/comments.spec.js
new file mode 100644
index 000000000..87a0df270
--- /dev/null
+++ b/backend/src/resolvers/comments.spec.js
@@ -0,0 +1,178 @@
+import Factory from '../seed/factories'
+import { GraphQLClient } from 'graphql-request'
+import { host, login } from '../jest/helpers'
+
+const factory = Factory()
+let client
+let createCommentVariables
+let createPostVariables
+let createCommentVariablesSansPostId
+let createCommentVariablesWithNonExistentPost
+
+beforeEach(async () => {
+ await factory.create('User', {
+ email: 'test@example.org',
+ password: '1234'
+ })
+})
+
+afterEach(async () => {
+ await factory.cleanDatabase()
+})
+
+describe('CreateComment', () => {
+ const createCommentMutation = `
+ mutation($postId: ID, $content: String!) {
+ CreateComment(postId: $postId, content: $content) {
+ id
+ content
+ }
+ }
+ `
+ const createPostMutation = `
+ mutation($id: ID!, $title: String!, $content: String!) {
+ CreatePost(id: $id, title: $title, content: $content) {
+ id
+ }
+ }
+ `
+ const commentQueryForPostId = `
+ query($content: String) {
+ Comment(content: $content) {
+ postId
+ }
+ }
+ `
+ describe('unauthenticated', () => {
+ it('throws authorization error', async () => {
+ createCommentVariables = {
+ postId: 'p1',
+ content: 'I\'m not authorised to comment'
+ }
+ client = new GraphQLClient(host)
+ await expect(client.request(createCommentMutation, createCommentVariables)).rejects.toThrow('Not Authorised')
+ })
+ })
+
+ describe('authenticated', () => {
+ let headers
+ beforeEach(async () => {
+ headers = await login({ email: 'test@example.org', password: '1234' })
+ client = new GraphQLClient(host, { headers })
+ createCommentVariables = {
+ postId: 'p1',
+ content: 'I\'m authorised to comment'
+ }
+ createPostVariables = {
+ id: 'p1',
+ title: 'post to comment on',
+ content: 'please comment on me'
+ }
+ await client.request(createPostMutation, createPostVariables)
+ })
+
+ it('creates a comment', async () => {
+ const expected = {
+ CreateComment: {
+ content: 'I\'m authorised to comment'
+ }
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariables)).resolves.toMatchObject(expected)
+ })
+
+ it('assigns the authenticated user as author', async () => {
+ await client.request(createCommentMutation, createCommentVariables)
+
+ const { User } = await client.request(`{
+ User(email: "test@example.org") {
+ comments {
+ content
+ }
+ }
+ }`)
+
+ expect(User).toEqual([ { comments: [ { content: 'I\'m authorised to comment' } ] } ])
+ })
+
+ it('throw an error if an empty string is sent from the editor as content', async () => {
+ createCommentVariables = {
+ postId: 'p1',
+ content: '
'
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariables))
+ .rejects.toThrow('Comment must be at least 1 character long!')
+ })
+
+ it('throws an error if a comment sent from the editor does not contain a single character', async () => {
+ createCommentVariables = {
+ postId: 'p1',
+ content: '
'
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariables))
+ .rejects.toThrow('Comment must be at least 1 character long!')
+ })
+
+ it('throws an error if postId is sent as an empty string', async () => {
+ createCommentVariables = {
+ postId: 'p1',
+ content: ''
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariables))
+ .rejects.toThrow('Comment must be at least 1 character long!')
+ })
+
+ it('throws an error if content is sent as an string of empty characters', async () => {
+ createCommentVariables = {
+ postId: 'p1',
+ content: ' '
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariables))
+ .rejects.toThrow('Comment must be at least 1 character long!')
+ })
+
+ it('throws an error if postId is sent as an empty string', async () => {
+ createCommentVariablesSansPostId = {
+ postId: '',
+ content: 'this comment should not be created'
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariablesSansPostId))
+ .rejects.toThrow('Comment cannot be created without a post!')
+ })
+
+ it('throws an error if postId is sent as an string of empty characters', async () => {
+ createCommentVariablesSansPostId = {
+ postId: ' ',
+ content: 'this comment should not be created'
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariablesSansPostId))
+ .rejects.toThrow('Comment cannot be created without a post!')
+ })
+
+ it('throws an error if the post does not exist in the database', async () => {
+ createCommentVariablesWithNonExistentPost = {
+ postId: 'p2',
+ content: 'comment should not be created cause the post doesn\'t exist'
+ }
+
+ await expect(client.request(createCommentMutation, createCommentVariablesWithNonExistentPost))
+ .rejects.toThrow('Comment cannot be created without a post!')
+ })
+
+ it('does not create the comment with the postId as an attribute', async () => {
+ const commentQueryVariablesByContent = {
+ content: 'I\'m authorised to comment'
+ }
+
+ await client.request(createCommentMutation, createCommentVariables)
+ const { Comment } = await client.request(commentQueryForPostId, commentQueryVariablesByContent)
+ expect(Comment).toEqual([{ postId: null }])
+ })
+ })
+})
diff --git a/backend/src/resolvers/moderation.spec.js b/backend/src/resolvers/moderation.spec.js
index dfbcac80f..28f4dc322 100644
--- a/backend/src/resolvers/moderation.spec.js
+++ b/backend/src/resolvers/moderation.spec.js
@@ -16,6 +16,9 @@ const setupAuthenticateClient = (params) => {
let createResource
let authenticateClient
+let createPostVariables
+let createCommentVariables
+
beforeEach(() => {
createResource = () => {}
authenticateClient = () => {
@@ -103,18 +106,21 @@ describe('disable', () => {
variables = {
id: 'c47'
}
-
+ createPostVariables = {
+ id: 'p3',
+ title: 'post to comment on',
+ content: 'please comment on me'
+ }
+ createCommentVariables = {
+ id: 'c47',
+ postId: 'p3',
+ content: 'this comment was created for this post'
+ }
createResource = async () => {
await factory.create('User', { id: 'u45', email: 'commenter@example.org', password: '1234' })
- await factory.authenticateAs({ email: 'commenter@example.org', password: '1234' })
- await Promise.all([
- factory.create('Post', { id: 'p3' }),
- factory.create('Comment', { id: 'c47' })
- ])
- await Promise.all([
- factory.relate('Comment', 'Author', { from: 'u45', to: 'c47' }),
- factory.relate('Comment', 'Post', { from: 'c47', to: 'p3' })
- ])
+ const asAuthenticatedUser = await factory.authenticateAs({ email: 'commenter@example.org', password: '1234' })
+ await asAuthenticatedUser.create('Post', createPostVariables)
+ await asAuthenticatedUser.create('Comment', createCommentVariables)
}
})
@@ -277,18 +283,21 @@ describe('enable', () => {
variables = {
id: 'c456'
}
-
+ createPostVariables = {
+ id: 'p9',
+ title: 'post to comment on',
+ content: 'please comment on me'
+ }
+ createCommentVariables = {
+ id: 'c456',
+ postId: 'p9',
+ content: 'this comment was created for this post'
+ }
createResource = async () => {
await factory.create('User', { id: 'u123', email: 'author@example.org', password: '1234' })
- await factory.authenticateAs({ email: 'author@example.org', password: '1234' })
- await Promise.all([
- factory.create('Post', { id: 'p9' }),
- factory.create('Comment', { id: 'c456' })
- ])
- await Promise.all([
- factory.relate('Comment', 'Author', { from: 'u123', to: 'c456' }),
- factory.relate('Comment', 'Post', { from: 'c456', to: 'p9' })
- ])
+ const asAuthenticatedUser = await factory.authenticateAs({ email: 'author@example.org', password: '1234' })
+ await asAuthenticatedUser.create('Post', createPostVariables)
+ await asAuthenticatedUser.create('Comment', createCommentVariables)
const disableMutation = `
mutation {
diff --git a/backend/src/resolvers/reports.spec.js b/backend/src/resolvers/reports.spec.js
index ae8894572..9bd1fe753 100644
--- a/backend/src/resolvers/reports.spec.js
+++ b/backend/src/resolvers/reports.spec.js
@@ -9,6 +9,7 @@ describe('report', () => {
let headers
let returnedObject
let variables
+ let createPostVariables
beforeEach(async () => {
returnedObject = '{ description }'
@@ -128,8 +129,14 @@ describe('report', () => {
describe('reported resource is a comment', () => {
beforeEach(async () => {
- await factory.authenticateAs({ email: 'test@example.org', password: '1234' })
- await factory.create('Comment', { id: 'c34', content: 'Robert getting tired.' })
+ createPostVariables = {
+ id: 'p1',
+ title: 'post to comment on',
+ content: 'please comment on me'
+ }
+ const asAuthenticatedUser = await factory.authenticateAs({ email: 'test@example.org', password: '1234' })
+ await asAuthenticatedUser.create('Post', createPostVariables)
+ await asAuthenticatedUser.create('Comment', { postId: 'p1', id: 'c34', content: 'Robert getting tired.' })
variables = { id: 'c34' }
})
diff --git a/backend/src/resolvers/socialMedia.js b/backend/src/resolvers/socialMedia.js
index 3adf0e2d0..310375820 100644
--- a/backend/src/resolvers/socialMedia.js
+++ b/backend/src/resolvers/socialMedia.js
@@ -3,7 +3,7 @@ import { neo4jgraphql } from 'neo4j-graphql-js'
export default {
Mutation: {
CreateSocialMedia: async (object, params, context, resolveInfo) => {
- const socialMedia = await neo4jgraphql(object, params, context, resolveInfo, true)
+ const socialMedia = await neo4jgraphql(object, params, context, resolveInfo, false)
const session = context.driver.session()
await session.run(
`MATCH (owner:User {id: $userId}), (socialMedia:SocialMedia {id: $socialMediaId})
diff --git a/backend/src/schema.graphql b/backend/src/schema.graphql
index d40b626a5..902a7abf9 100644
--- a/backend/src/schema.graphql
+++ b/backend/src/schema.graphql
@@ -16,6 +16,7 @@ type Query {
LIMIT $limit
"""
)
+ CommentByPost(postId: ID!): [Comment]!
}
type Mutation {
# Get a JWT Token for the given Email and password
@@ -210,6 +211,7 @@ type Post {
type Comment {
id: ID!
activityId: String
+ postId: ID
author: User @relation(name: "WROTE", direction: "IN")
content: String!
contentExcerpt: String
diff --git a/backend/src/seed/factories/comments.js b/backend/src/seed/factories/comments.js
index 9964d0559..ba3a85840 100644
--- a/backend/src/seed/factories/comments.js
+++ b/backend/src/seed/factories/comments.js
@@ -4,6 +4,7 @@ import uuid from 'uuid/v4'
export default function (params) {
const {
id = uuid(),
+ postId = 'p6',
content = [
faker.lorem.sentence(),
faker.lorem.sentence()
@@ -12,12 +13,12 @@ export default function (params) {
return {
mutation: `
- mutation($id: ID!, $content: String!) {
- CreateComment(id: $id, content: $content) {
+ mutation($id: ID!, $postId: ID, $content: String!) {
+ CreateComment(id: $id, postId: $postId, content: $content) {
id
}
}
`,
- variables: { id, content }
+ variables: { id, postId, content }
}
}
diff --git a/backend/src/seed/seed-db.js b/backend/src/seed/seed-db.js
index 149b461b1..8694a7948 100644
--- a/backend/src/seed/seed-db.js
+++ b/backend/src/seed/seed-db.js
@@ -189,45 +189,18 @@ import Factory from './factories'
])
await Promise.all([
- f.create('Comment', { id: 'c1' }),
- f.create('Comment', { id: 'c2' }),
- f.create('Comment', { id: 'c3' }),
- f.create('Comment', { id: 'c4' }),
- f.create('Comment', { id: 'c5' }),
- f.create('Comment', { id: 'c6' }),
- f.create('Comment', { id: 'c7' }),
- f.create('Comment', { id: 'c8' }),
- f.create('Comment', { id: 'c9' }),
- f.create('Comment', { id: 'c10' }),
- f.create('Comment', { id: 'c11' }),
- f.create('Comment', { id: 'c12' })
- ])
-
- await Promise.all([
- f.relate('Comment', 'Author', { from: 'u3', to: 'c1' }),
- f.relate('Comment', 'Post', { from: 'c1', to: 'p1' }),
- f.relate('Comment', 'Author', { from: 'u1', to: 'c2' }),
- f.relate('Comment', 'Post', { from: 'c2', to: 'p1' }),
- f.relate('Comment', 'Author', { from: 'u1', to: 'c3' }),
- f.relate('Comment', 'Post', { from: 'c3', to: 'p3' }),
- f.relate('Comment', 'Author', { from: 'u4', to: 'c4' }),
- f.relate('Comment', 'Post', { from: 'c4', to: 'p2' }),
- f.relate('Comment', 'Author', { from: 'u4', to: 'c5' }),
- f.relate('Comment', 'Post', { from: 'c5', to: 'p3' }),
- f.relate('Comment', 'Author', { from: 'u3', to: 'c6' }),
- f.relate('Comment', 'Post', { from: 'c6', to: 'p4' }),
- f.relate('Comment', 'Author', { from: 'u2', to: 'c7' }),
- f.relate('Comment', 'Post', { from: 'c7', to: 'p2' }),
- f.relate('Comment', 'Author', { from: 'u5', to: 'c8' }),
- f.relate('Comment', 'Post', { from: 'c8', to: 'p15' }),
- f.relate('Comment', 'Author', { from: 'u6', to: 'c9' }),
- f.relate('Comment', 'Post', { from: 'c9', to: 'p15' }),
- f.relate('Comment', 'Author', { from: 'u7', to: 'c10' }),
- f.relate('Comment', 'Post', { from: 'c10', to: 'p15' }),
- f.relate('Comment', 'Author', { from: 'u5', to: 'c11' }),
- f.relate('Comment', 'Post', { from: 'c11', to: 'p15' }),
- f.relate('Comment', 'Author', { from: 'u6', to: 'c12' }),
- f.relate('Comment', 'Post', { from: 'c12', to: 'p15' })
+ asUser.create('Comment', { id: 'c1', postId: 'p1' }),
+ asTick.create('Comment', { id: 'c2', postId: 'p1' }),
+ asTrack.create('Comment', { id: 'c3', postId: 'p3' }),
+ asTrick.create('Comment', { id: 'c4', postId: 'p2' }),
+ asModerator.create('Comment', { id: 'c5', postId: 'p3' }),
+ asAdmin.create('Comment', { id: 'c6', postId: 'p4' }),
+ asUser.create('Comment', { id: 'c7', postId: 'p2' }),
+ asTick.create('Comment', { id: 'c8', postId: 'p15' }),
+ asTrick.create('Comment', { id: 'c9', postId: 'p15' }),
+ asTrack.create('Comment', { id: 'c10', postId: 'p15' }),
+ asUser.create('Comment', { id: 'c11', postId: 'p15' }),
+ asUser.create('Comment', { id: 'c12', postId: 'p15' })
])
const disableMutation = 'mutation($id: ID!) { disable(id: $id) }'
diff --git a/backend/yarn.lock b/backend/yarn.lock
index ec11aad7e..3e7415edb 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -14,10 +14,10 @@
resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.6.tgz#022209e28a2b547dcde15b219f0c50f47aa5beb3"
integrity sha512-lqK94b+caNtmKFs5oUVXlSpN3sm5IXZ+KfhMxOtr0LR2SqErzkoJilitjDvJ1WbjHlxLI7WtCjRmOLdOGJqtMQ==
-"@babel/cli@~7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.4.3.tgz#353048551306ff42e5855b788b6ccd9477289774"
- integrity sha512-cbC5H9iTDV9H7sMxK5rUm18UbdVPNTPqgdzmQAkOUP3YLysgDWLZaysVAfylK49rgTlzL01a6tXyq9rCb3yLhQ==
+"@babel/cli@~7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.4.4.tgz#5454bb7112f29026a4069d8e6f0e1794e651966c"
+ integrity sha512-XGr5YjQSjgTa6OzQZY57FAJsdeVSAKR/u/KA5exWIz66IKtv/zXtHy+fIZcMry/EgYegwuHE7vzGnrFhjdIAsQ==
dependencies:
commander "^2.8.1"
convert-source-map "^1.1.0"
@@ -38,18 +38,18 @@
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@^7.1.0", "@babel/core@~7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f"
- integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA==
+"@babel/core@^7.1.0", "@babel/core@~7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.4.tgz#84055750b05fcd50f9915a826b44fa347a825250"
+ integrity sha512-lQgGX3FPRgbz2SKmhMtYgJvVzGZrmjaF4apZ2bLwofAKiSjxU0drPh4S/VasyYXwaTs+A1gvQ45BN8SQJzHsQQ==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.0"
- "@babel/helpers" "^7.4.3"
- "@babel/parser" "^7.4.3"
- "@babel/template" "^7.4.0"
- "@babel/traverse" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/generator" "^7.4.4"
+ "@babel/helpers" "^7.4.4"
+ "@babel/parser" "^7.4.4"
+ "@babel/template" "^7.4.4"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
convert-source-map "^1.1.0"
debug "^4.1.0"
json5 "^2.1.0"
@@ -58,12 +58,12 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.0.0", "@babel/generator@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196"
- integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==
+"@babel/generator@^7.0.0", "@babel/generator@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041"
+ integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==
dependencies:
- "@babel/types" "^7.4.0"
+ "@babel/types" "^7.4.4"
jsesc "^2.5.1"
lodash "^4.17.11"
source-map "^0.5.0"
@@ -84,22 +84,22 @@
"@babel/helper-explode-assignable-expression" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-call-delegate@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz#f308eabe0d44f451217853aedf4dea5f6fe3294f"
- integrity sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ==
+"@babel/helper-call-delegate@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
+ integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
dependencies:
- "@babel/helper-hoist-variables" "^7.4.0"
- "@babel/traverse" "^7.4.0"
- "@babel/types" "^7.4.0"
+ "@babel/helper-hoist-variables" "^7.4.4"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
-"@babel/helper-define-map@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz#cbfd8c1b2f12708e262c26f600cd16ed6a3bc6c9"
- integrity sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA==
+"@babel/helper-define-map@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a"
+ integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==
dependencies:
"@babel/helper-function-name" "^7.1.0"
- "@babel/types" "^7.4.0"
+ "@babel/types" "^7.4.4"
lodash "^4.17.11"
"@babel/helper-explode-assignable-expression@^7.1.0":
@@ -126,12 +126,12 @@
dependencies:
"@babel/types" "^7.0.0"
-"@babel/helper-hoist-variables@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz#25b621399ae229869329730a62015bbeb0a6fbd6"
- integrity sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw==
+"@babel/helper-hoist-variables@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
+ integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
dependencies:
- "@babel/types" "^7.4.0"
+ "@babel/types" "^7.4.4"
"@babel/helper-member-expression-to-functions@^7.0.0":
version "7.0.0"
@@ -159,16 +159,16 @@
"@babel/types" "^7.0.0"
lodash "^4.17.10"
-"@babel/helper-module-transforms@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.3.tgz#b1e357a1c49e58a47211a6853abb8e2aaefeb064"
- integrity sha512-H88T9IySZW25anu5uqyaC1DaQre7ofM+joZtAaO2F8NBdFfupH0SZ4gKjgSFVcvtx/aAirqA9L9Clio2heYbZA==
+"@babel/helper-module-transforms@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8"
+ integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.0.0"
- "@babel/template" "^7.2.2"
- "@babel/types" "^7.2.2"
+ "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/template" "^7.4.4"
+ "@babel/types" "^7.4.4"
lodash "^4.17.11"
"@babel/helper-optimise-call-expression@^7.0.0":
@@ -190,10 +190,10 @@
dependencies:
lodash "^4.17.10"
-"@babel/helper-regex@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.3.tgz#9d6e5428bfd638ab53b37ae4ec8caf0477495147"
- integrity sha512-hnoq5u96pLCfgjXuj8ZLX3QQ+6nAulS+zSgi6HulUwFbEruRAKwbGLU5OvXkE14L8XW6XsQEKsIDfgthKLRAyA==
+"@babel/helper-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2"
+ integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==
dependencies:
lodash "^4.17.11"
@@ -218,15 +218,15 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-replace-supers@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.0.tgz#4f56adb6aedcd449d2da9399c2dcf0545463b64c"
- integrity sha512-PVwCVnWWAgnal+kJ+ZSAphzyl58XrFeSKSAJRiqg5QToTsjL+Xu1f9+RJ+d+Q0aPhPfBGaYfkox66k86thxNSg==
+"@babel/helper-replace-supers@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27"
+ integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==
dependencies:
"@babel/helper-member-expression-to-functions" "^7.0.0"
"@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/traverse" "^7.4.0"
- "@babel/types" "^7.4.0"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
"@babel/helper-simple-access@^7.1.0":
version "7.1.0"
@@ -243,12 +243,12 @@
dependencies:
"@babel/types" "^7.0.0"
-"@babel/helper-split-export-declaration@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55"
- integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==
+"@babel/helper-split-export-declaration@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
+ integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
dependencies:
- "@babel/types" "^7.4.0"
+ "@babel/types" "^7.4.4"
"@babel/helper-wrap-function@^7.1.0":
version "7.2.0"
@@ -260,14 +260,14 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.2.0"
-"@babel/helpers@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.3.tgz#7b1d354363494b31cb9a2417ae86af32b7853a3b"
- integrity sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q==
+"@babel/helpers@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5"
+ integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==
dependencies:
- "@babel/template" "^7.4.0"
- "@babel/traverse" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/template" "^7.4.4"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
"@babel/highlight@^7.0.0":
version "7.0.0"
@@ -289,10 +289,10 @@
lodash "^4.17.10"
v8flags "^3.1.1"
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.0", "@babel/parser@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b"
- integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ==
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6"
+ integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==
"@babel/plugin-proposal-async-generator-functions@^7.2.0":
version "7.2.0"
@@ -311,10 +311,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-json-strings" "^7.2.0"
-"@babel/plugin-proposal-object-rest-spread@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.3.tgz#be27cd416eceeba84141305b93c282f5de23bbb4"
- integrity sha512-xC//6DNSSHVjq8O2ge0dyYlhshsH4T7XdCVoxbi5HzLYWfsC5ooFlJjrXk8RcAT+hjHAK9UjBXdylzSoDK3t4g==
+"@babel/plugin-proposal-object-rest-spread@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005"
+ integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
@@ -335,13 +335,13 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-throw-expressions" "^7.2.0"
-"@babel/plugin-proposal-unicode-property-regex@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz#202d91ee977d760ef83f4f416b280d568be84623"
- integrity sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w==
+"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
+ integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.0.0"
+ "@babel/helper-regex" "^7.4.4"
regexpu-core "^4.5.4"
"@babel/plugin-syntax-async-generators@^7.2.0":
@@ -386,10 +386,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-async-to-generator@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz#234fe3e458dce95865c0d152d256119b237834b0"
- integrity sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g==
+"@babel/plugin-transform-async-to-generator@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894"
+ integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -402,26 +402,26 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-block-scoping@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz#164df3bb41e3deb954c4ca32ffa9fcaa56d30bcb"
- integrity sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ==
+"@babel/plugin-transform-block-scoping@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d"
+ integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
lodash "^4.17.11"
-"@babel/plugin-transform-classes@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.3.tgz#adc7a1137ab4287a555d429cc56ecde8f40c062c"
- integrity sha512-PUaIKyFUDtG6jF5DUJOfkBdwAS/kFFV3XFk7Nn0a6vR7ZT8jYw5cGtIlat77wcnd0C6ViGqo/wyNf4ZHytF/nQ==
+"@babel/plugin-transform-classes@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6"
+ integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-define-map" "^7.4.0"
+ "@babel/helper-define-map" "^7.4.4"
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-optimise-call-expression" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.4.0"
- "@babel/helper-split-export-declaration" "^7.4.0"
+ "@babel/helper-replace-supers" "^7.4.4"
+ "@babel/helper-split-export-declaration" "^7.4.4"
globals "^11.1.0"
"@babel/plugin-transform-computed-properties@^7.2.0":
@@ -431,20 +431,20 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-destructuring@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.3.tgz#1a95f5ca2bf2f91ef0648d5de38a8d472da4350f"
- integrity sha512-rVTLLZpydDFDyN4qnXdzwoVpk1oaXHIvPEOkOLyr88o7oHxVc/LyrnDx+amuBWGOwUb7D1s/uLsKBNTx08htZg==
+"@babel/plugin-transform-destructuring@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f"
+ integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-dotall-regex@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.3.tgz#fceff1c16d00c53d32d980448606f812cd6d02bf"
- integrity sha512-9Arc2I0AGynzXRR/oPdSALv3k0rM38IMFyto7kOCwb5F9sLUt2Ykdo3V9yUPR+Bgr4kb6bVEyLkPEiBhzcTeoA==
+"@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3"
+ integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.3"
+ "@babel/helper-regex" "^7.4.4"
regexpu-core "^4.5.4"
"@babel/plugin-transform-duplicate-keys@^7.2.0":
@@ -462,17 +462,17 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-for-of@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.3.tgz#c36ff40d893f2b8352202a2558824f70cd75e9fe"
- integrity sha512-UselcZPwVWNSURnqcfpnxtMehrb8wjXYOimlYQPBnup/Zld426YzIhNEvuRsEWVHfESIECGrxoI6L5QqzuLH5Q==
+"@babel/plugin-transform-for-of@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
+ integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-function-name@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.3.tgz#130c27ec7fb4f0cba30e958989449e5ec8d22bbd"
- integrity sha512-uT5J/3qI/8vACBR9I1GlAuU/JqBtWdfCrynuOkrWG6nCDieZd5przB1vfP59FRHBZQ9DC2IUfqr/xKqzOD5x0A==
+"@babel/plugin-transform-function-name@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
+ integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
dependencies:
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -499,21 +499,21 @@
"@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-commonjs@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.3.tgz#3917f260463ac08f8896aa5bd54403f6e1fed165"
- integrity sha512-sMP4JqOTbMJMimqsSZwYWsMjppD+KRyDIUVW91pd7td0dZKAvPmhCaxhOzkzLParKwgQc7bdL9UNv+rpJB0HfA==
+"@babel/plugin-transform-modules-commonjs@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e"
+ integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==
dependencies:
- "@babel/helper-module-transforms" "^7.4.3"
+ "@babel/helper-module-transforms" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
-"@babel/plugin-transform-modules-systemjs@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz#c2495e55528135797bc816f5d50f851698c586a1"
- integrity sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ==
+"@babel/plugin-transform-modules-systemjs@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405"
+ integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==
dependencies:
- "@babel/helper-hoist-variables" "^7.4.0"
+ "@babel/helper-hoist-variables" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-modules-umd@^7.2.0":
@@ -524,17 +524,17 @@
"@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.4.2":
- version "7.4.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz#800391136d6cbcc80728dbdba3c1c6e46f86c12e"
- integrity sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.4.tgz#5611d96d987dfc4a3a81c4383bb173361037d68d"
+ integrity sha512-Ki+Y9nXBlKfhD+LXaRS7v95TtTGYRAf9Y1rTDiE75zf8YQz4GDaWRXosMfJBXxnk88mGFjWdCRIeqDbon7spYA==
dependencies:
regexp-tree "^0.1.0"
-"@babel/plugin-transform-new-target@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz#67658a1d944edb53c8d4fa3004473a0dd7838150"
- integrity sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw==
+"@babel/plugin-transform-new-target@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5"
+ integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -546,12 +546,12 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-replace-supers" "^7.1.0"
-"@babel/plugin-transform-parameters@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.3.tgz#e5ff62929fdf4cf93e58badb5e2430303003800d"
- integrity sha512-ULJYC2Vnw96/zdotCZkMGr2QVfKpIT/4/K+xWWY0MbOJyMZuk660BGkr3bEKWQrrciwz6xpmft39nA4BF7hJuA==
+"@babel/plugin-transform-parameters@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
+ integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
dependencies:
- "@babel/helper-call-delegate" "^7.4.0"
+ "@babel/helper-call-delegate" "^7.4.4"
"@babel/helper-get-function-arity" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -562,10 +562,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-regenerator@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.3.tgz#2a697af96887e2bbf5d303ab0221d139de5e739c"
- integrity sha512-kEzotPuOpv6/iSlHroCDydPkKYw7tiJGKlmYp6iJn4a6C/+b2FdttlJsLKYxolYHgotTJ5G5UY5h0qey5ka3+A==
+"@babel/plugin-transform-regenerator@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.4.tgz#5b4da4df79391895fca9e28f99e87e22cfc02072"
+ integrity sha512-Zz3w+pX1SI0KMIiqshFZkwnVGUhDZzpX2vtPzfJBKQQq8WsP/Xy9DNdELWivxcKOCX/Pywge4SiEaPaLtoDT4g==
dependencies:
regenerator-transform "^0.13.4"
@@ -598,10 +598,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
-"@babel/plugin-transform-template-literals@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b"
- integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==
+"@babel/plugin-transform-template-literals@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
+ integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -613,13 +613,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-unicode-regex@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.3.tgz#3868703fc0e8f443dda65654b298df576f7b863b"
- integrity sha512-lnSNgkVjL8EMtnE8eSS7t2ku8qvKH3eqNf/IwIfnSPUqzgqYmRwzdsQWv4mNQAN9Nuo6Gz1Y0a4CSmdpu1Pp6g==
+"@babel/plugin-transform-unicode-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f"
+ integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.3"
+ "@babel/helper-regex" "^7.4.4"
regexpu-core "^4.5.4"
"@babel/polyfill@^7.0.0":
@@ -638,64 +638,64 @@
core-js "^2.5.7"
regenerator-runtime "^0.12.0"
-"@babel/preset-env@~7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.3.tgz#e71e16e123dc0fbf65a52cbcbcefd072fbd02880"
- integrity sha512-FYbZdV12yHdJU5Z70cEg0f6lvtpZ8jFSDakTm7WXeJbLXh4R0ztGEu/SW7G1nJ2ZvKwDhz8YrbA84eYyprmGqw==
+"@babel/preset-env@~7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.4.tgz#b6f6825bfb27b3e1394ca3de4f926482722c1d6f"
+ integrity sha512-FU1H+ACWqZZqfw1x2G1tgtSSYSfxJLkpaUQL37CenULFARDo+h4xJoVHzRoHbK+85ViLciuI7ME4WTIhFRBBlw==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-async-generator-functions" "^7.2.0"
"@babel/plugin-proposal-json-strings" "^7.2.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.4.3"
+ "@babel/plugin-proposal-object-rest-spread" "^7.4.4"
"@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.4.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
"@babel/plugin-syntax-async-generators" "^7.2.0"
"@babel/plugin-syntax-json-strings" "^7.2.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
"@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
"@babel/plugin-transform-arrow-functions" "^7.2.0"
- "@babel/plugin-transform-async-to-generator" "^7.4.0"
+ "@babel/plugin-transform-async-to-generator" "^7.4.4"
"@babel/plugin-transform-block-scoped-functions" "^7.2.0"
- "@babel/plugin-transform-block-scoping" "^7.4.0"
- "@babel/plugin-transform-classes" "^7.4.3"
+ "@babel/plugin-transform-block-scoping" "^7.4.4"
+ "@babel/plugin-transform-classes" "^7.4.4"
"@babel/plugin-transform-computed-properties" "^7.2.0"
- "@babel/plugin-transform-destructuring" "^7.4.3"
- "@babel/plugin-transform-dotall-regex" "^7.4.3"
+ "@babel/plugin-transform-destructuring" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
"@babel/plugin-transform-duplicate-keys" "^7.2.0"
"@babel/plugin-transform-exponentiation-operator" "^7.2.0"
- "@babel/plugin-transform-for-of" "^7.4.3"
- "@babel/plugin-transform-function-name" "^7.4.3"
+ "@babel/plugin-transform-for-of" "^7.4.4"
+ "@babel/plugin-transform-function-name" "^7.4.4"
"@babel/plugin-transform-literals" "^7.2.0"
"@babel/plugin-transform-member-expression-literals" "^7.2.0"
"@babel/plugin-transform-modules-amd" "^7.2.0"
- "@babel/plugin-transform-modules-commonjs" "^7.4.3"
- "@babel/plugin-transform-modules-systemjs" "^7.4.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.4.4"
+ "@babel/plugin-transform-modules-systemjs" "^7.4.4"
"@babel/plugin-transform-modules-umd" "^7.2.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2"
- "@babel/plugin-transform-new-target" "^7.4.0"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.4"
+ "@babel/plugin-transform-new-target" "^7.4.4"
"@babel/plugin-transform-object-super" "^7.2.0"
- "@babel/plugin-transform-parameters" "^7.4.3"
+ "@babel/plugin-transform-parameters" "^7.4.4"
"@babel/plugin-transform-property-literals" "^7.2.0"
- "@babel/plugin-transform-regenerator" "^7.4.3"
+ "@babel/plugin-transform-regenerator" "^7.4.4"
"@babel/plugin-transform-reserved-words" "^7.2.0"
"@babel/plugin-transform-shorthand-properties" "^7.2.0"
"@babel/plugin-transform-spread" "^7.2.0"
"@babel/plugin-transform-sticky-regex" "^7.2.0"
- "@babel/plugin-transform-template-literals" "^7.2.0"
+ "@babel/plugin-transform-template-literals" "^7.4.4"
"@babel/plugin-transform-typeof-symbol" "^7.2.0"
- "@babel/plugin-transform-unicode-regex" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/plugin-transform-unicode-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
browserslist "^4.5.2"
core-js-compat "^3.0.0"
invariant "^2.2.2"
js-levenshtein "^1.1.3"
semver "^5.5.0"
-"@babel/register@^7.0.0", "@babel/register@~7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.0.tgz#d9d0a621db268fb14200f2685a4f8924c822404c"
- integrity sha512-ekziebXBnS/7V6xk8sBfLSSD6YZuy6P29igBtR6OL/tswKdxOV+Yqq0nzICMguVYtGRZYUCGpfGV8J9Za2iBdw==
+"@babel/register@^7.0.0", "@babel/register@~7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.4.tgz#370a68ba36f08f015a8b35d4864176c6b65d7a23"
+ integrity sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA==
dependencies:
core-js "^3.0.0"
find-cache-dir "^2.0.0"
@@ -711,34 +711,34 @@
dependencies:
regenerator-runtime "^0.13.2"
-"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b"
- integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==
+"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237"
+ integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.4.0"
- "@babel/types" "^7.4.0"
+ "@babel/parser" "^7.4.4"
+ "@babel/types" "^7.4.4"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.0", "@babel/traverse@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84"
- integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8"
+ integrity sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.0"
+ "@babel/generator" "^7.4.4"
"@babel/helper-function-name" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.0"
- "@babel/parser" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/parser" "^7.4.4"
+ "@babel/types" "^7.4.4"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.11"
-"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c"
- integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==
+"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0"
+ integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==
dependencies:
esutils "^2.0.2"
lodash "^4.17.11"
@@ -813,6 +813,15 @@
jest-message-util "^24.7.1"
jest-mock "^24.7.0"
+"@jest/fake-timers@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1"
+ integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw==
+ dependencies:
+ "@jest/types" "^24.8.0"
+ jest-message-util "^24.8.0"
+ jest-mock "^24.8.0"
+
"@jest/reporters@^24.7.1":
version "24.7.1"
resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.7.1.tgz#38ac0b096cd691bbbe3051ddc25988d42e37773a"
@@ -857,6 +866,15 @@
"@jest/types" "^24.7.0"
"@types/istanbul-lib-coverage" "^2.0.0"
+"@jest/test-result@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3"
+ integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng==
+ dependencies:
+ "@jest/console" "^24.7.1"
+ "@jest/types" "^24.8.0"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+
"@jest/test-sequencer@^24.7.1":
version "24.7.1"
resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.7.1.tgz#9c18e428e1ad945fa74f6233a9d35745ca0e63e0"
@@ -867,33 +885,34 @@
jest-runner "^24.7.1"
jest-runtime "^24.7.1"
-"@jest/transform@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.7.1.tgz#872318f125bcfab2de11f53b465ab1aa780789c2"
- integrity sha512-EsOUqP9ULuJ66IkZQhI5LufCHlTbi7hrcllRMUEV/tOgqBVQi93+9qEvkX0n8mYpVXQ8VjwmICeRgg58mrtIEw==
+"@jest/transform@^24.7.1", "@jest/transform@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5"
+ integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
babel-plugin-istanbul "^5.1.0"
chalk "^2.0.1"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.1.15"
- jest-haste-map "^24.7.1"
+ jest-haste-map "^24.8.0"
jest-regex-util "^24.3.0"
- jest-util "^24.7.1"
+ jest-util "^24.8.0"
micromatch "^3.1.10"
realpath-native "^1.1.0"
slash "^2.0.0"
source-map "^0.6.1"
write-file-atomic "2.4.1"
-"@jest/types@^24.7.0":
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.7.0.tgz#c4ec8d1828cdf23234d9b4ee31f5482a3f04f48b"
- integrity sha512-ipJUa2rFWiKoBqMKP63Myb6h9+iT3FHRTF2M8OR6irxWzItisa8i4dcSg14IbvmXUnBlHBlUQPYUHWyX3UPpYA==
+"@jest/types@^24.7.0", "@jest/types@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad"
+ integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^1.1.1"
"@types/yargs" "^12.0.9"
"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
@@ -1053,11 +1072,31 @@
resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-14.0.3.tgz#389e2e5b83ecdb376d9f98fae2094297bc112c1c"
integrity sha512-TcFkpEjcQK7w8OcrQcd7iIBPjU0rdyi3ldj6d0iJ4PPSzbWqPBvXj9KSwO14hTOX2dm9RoiH7VuxksJLNYdXUQ==
+"@types/istanbul-lib-coverage@*":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
+ integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==
+
"@types/istanbul-lib-coverage@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz#1eb8c033e98cf4e1a4cedcaf8bcafe8cb7591e85"
integrity sha512-eAtOAFZefEnfJiRFQBGw1eYqa5GTLCZ1y86N0XSI/D6EB+E8z6VPV/UL7Gi5UEclFqoQk+6NRqEDsfmDLXn8sg==
+"@types/istanbul-lib-report@*":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c"
+ integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a"
+ integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+ "@types/istanbul-lib-report" "*"
+
"@types/long@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef"
@@ -1104,10 +1143,10 @@
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0"
integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA==
-"@types/yup@0.26.12":
- version "0.26.12"
- resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.26.12.tgz#60fc1a485923a929699d2107fac46e6769707c4a"
- integrity sha512-lWCsvLer6G84Gj7yh+oFGRuGHsqZd1Dwu47CVVL0ATw+bOnGDgMNHbTn80p1onT66fvLfN8FnRA3eRANsnnbbQ==
+"@types/yup@0.26.13":
+ version "0.26.13"
+ resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.26.13.tgz#0aeeba85231a34ddc68c74b3a2c64eeb2ccf68bf"
+ integrity sha512-sMMtb+c2xxf/FcK0kW36+0uuSWpNwvCBZYI7vpnD9J9Z6OYk09P4TmDkMWV+NWdi9Nzt2tUJjtpnPpkiUklBaw==
"@types/zen-observable@^0.5.3":
version "0.5.4"
@@ -1785,13 +1824,13 @@ babel-eslint@~10.0.1:
eslint-scope "3.7.1"
eslint-visitor-keys "^1.0.0"
-babel-jest@^24.7.1, babel-jest@~24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.7.1.tgz#73902c9ff15a7dfbdc9994b0b17fcefd96042178"
- integrity sha512-GPnLqfk8Mtt0i4OemjWkChi73A3ALs4w2/QbG64uAj8b5mmwzxc7jbJVRZt8NJkxi6FopVHog9S3xX6UJKb2qg==
+babel-jest@^24.7.1, babel-jest@~24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589"
+ integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw==
dependencies:
- "@jest/transform" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/transform" "^24.8.0"
+ "@jest/types" "^24.8.0"
"@types/babel__core" "^7.1.0"
babel-plugin-istanbul "^5.1.0"
babel-preset-jest "^24.6.0"
@@ -2800,10 +2839,10 @@ dotenv@^0.4.0:
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-0.4.0.tgz#f6fb351363c2d92207245c737802c9ab5ae1495a"
integrity sha1-9vs1E2PC2SIHJFxzeALJq1rhSVo=
-dotenv@~7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c"
- integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==
+dotenv@~8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.0.0.tgz#ed310c165b4e8a97bb745b0a9d99c31bda566440"
+ integrity sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg==
duplexer3@^0.1.4:
version "0.1.4"
@@ -3030,10 +3069,10 @@ eslint-plugin-import@~2.17.2:
read-pkg-up "^2.0.0"
resolve "^1.10.0"
-eslint-plugin-jest@~22.4.1:
- version "22.4.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz#a5fd6f7a2a41388d16f527073b778013c5189a9c"
- integrity sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==
+eslint-plugin-jest@~22.5.1:
+ version "22.5.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.5.1.tgz#a31dfe9f9513c6af7c17ece4c65535a1370f060b"
+ integrity sha512-c3WjZR/HBoi4GedJRwo2OGHa8Pzo1EbSVwQ2HFzJ+4t2OoYM7Alx646EH/aaxZ+9eGcPiq0FT0UGkRuFFx2FHg==
eslint-plugin-node@~8.0.1:
version "8.0.1"
@@ -3232,10 +3271,10 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expect-ct@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.1.1.tgz#de84476a2dbcb85000d5903737e9bc8a5ba7b897"
- integrity sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==
+expect-ct@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.2.0.tgz#3a54741b6ed34cc7a93305c605f63cd268a54a62"
+ integrity sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g==
expect@^24.7.1:
version "24.7.1"
@@ -3370,10 +3409,10 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-feature-policy@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.2.0.tgz#22096de49ab240176878ffe2bde2f6ff04d48c43"
- integrity sha512-2hGrlv6efG4hscYVZeaYjpzpT6I2OZgYqE2yDUzeAcKj2D1SH0AsEzqJNXzdoglEddcIXQQYop3lD97XpG75Jw==
+feature-policy@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.3.0.tgz#7430e8e54a40da01156ca30aaec1a381ce536069"
+ integrity sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==
figures@2.0.0, figures@^2.0.0:
version "2.0.0"
@@ -3498,10 +3537,10 @@ fragment-cache@^0.2.1:
dependencies:
map-cache "^0.2.2"
-frameguard@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-3.0.0.tgz#7bcad469ee7b96e91d12ceb3959c78235a9272e9"
- integrity sha1-e8rUae57lukdEs6zlZx4I1qScuk=
+frameguard@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-3.1.0.tgz#bd1442cca1d67dc346a6751559b6d04502103a22"
+ integrity sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g==
fresh@0.5.2:
version "0.5.2"
@@ -3752,13 +3791,13 @@ graphql-request@~1.8.2:
dependencies:
cross-fetch "2.2.2"
-graphql-shield@~5.3.3:
- version "5.3.3"
- resolved "https://registry.yarnpkg.com/graphql-shield/-/graphql-shield-5.3.3.tgz#e3fbdb2a5f927fe1bb660ccf60c614defcc3aed4"
- integrity sha512-9Hdmp71ewi9w7Tj1x8CSl3arWvtQOYKpZrsSBid2Vpr6BISAKe/2edEfgP4xYIKAkmpclG0Gl7ID5+qt1RJu7A==
+graphql-shield@~5.3.5:
+ version "5.3.5"
+ resolved "https://registry.yarnpkg.com/graphql-shield/-/graphql-shield-5.3.5.tgz#cba409f4c1714e107212cff0a1cb2d934273392b"
+ integrity sha512-3kmL9x+b85NK2ipH3VGudUgUo1vXy0Z44WXhnGi3b0T0peg53DOSlXBbZOO4PNh1AcULnUjYf+DpDrP8Uc97Gw==
dependencies:
- "@types/yup" "0.26.12"
- lightercollective "^0.2.0"
+ "@types/yup" "0.26.13"
+ lightercollective "^0.3.0"
object-hash "^1.3.1"
yup "^0.27.0"
@@ -3946,25 +3985,25 @@ helmet-csp@2.7.1:
dasherize "2.0.0"
platform "1.3.5"
-helmet@~3.16.0:
- version "3.16.0"
- resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.16.0.tgz#7df41a4bfe4c83d90147c1e30d70893f92a9d97c"
- integrity sha512-rsTKRogc5OYGlvSHuq5QsmOsOzF6uDoMqpfh+Np8r23+QxDq+SUx90Rf8HyIKQVl7H6NswZEwfcykinbAeZ6UQ==
+helmet@~3.18.0:
+ version "3.18.0"
+ resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.18.0.tgz#37666f7c861bd1ff3015e0cdb903a43501e3da3e"
+ integrity sha512-TsKlGE5UVkV0NiQ4PllV9EVfZklPjyzcMEMjWlyI/8S6epqgRT+4s4GHVgc25x0TixsKvp3L7c91HQQt5l0+QA==
dependencies:
depd "2.0.0"
dns-prefetch-control "0.1.0"
dont-sniff-mimetype "1.0.0"
- expect-ct "0.1.1"
- feature-policy "0.2.0"
- frameguard "3.0.0"
+ expect-ct "0.2.0"
+ feature-policy "0.3.0"
+ frameguard "3.1.0"
helmet-crossdomain "0.3.0"
helmet-csp "2.7.1"
hide-powered-by "1.0.0"
hpkp "2.0.0"
hsts "2.2.0"
ienoopen "1.1.0"
- nocache "2.0.0"
- referrer-policy "1.1.0"
+ nocache "2.1.0"
+ referrer-policy "1.2.0"
x-xss-protection "1.1.0"
hide-powered-by@1.0.0:
@@ -4685,6 +4724,25 @@ jest-haste-map@^24.7.1:
optionalDependencies:
fsevents "^1.2.7"
+jest-haste-map@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.0.tgz#51794182d877b3ddfd6e6d23920e3fe72f305800"
+ integrity sha512-ZBPRGHdPt1rHajWelXdqygIDpJx8u3xOoLyUBWRW28r3tagrgoepPrzAozW7kW9HrQfhvmiv1tncsxqHJO1onQ==
+ dependencies:
+ "@jest/types" "^24.8.0"
+ anymatch "^2.0.0"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.1.15"
+ invariant "^2.2.4"
+ jest-serializer "^24.4.0"
+ jest-util "^24.8.0"
+ jest-worker "^24.6.0"
+ micromatch "^3.1.10"
+ sane "^4.0.3"
+ walker "^1.0.7"
+ optionalDependencies:
+ fsevents "^1.2.7"
+
jest-jasmine2@^24.7.1:
version "24.7.1"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.7.1.tgz#01398686dabe46553716303993f3be62e5d9d818"
@@ -4738,6 +4796,20 @@ jest-message-util@^24.7.1:
slash "^2.0.0"
stack-utils "^1.0.1"
+jest-message-util@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b"
+ integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
+ "@types/stack-utils" "^1.0.1"
+ chalk "^2.0.1"
+ micromatch "^3.1.10"
+ slash "^2.0.0"
+ stack-utils "^1.0.1"
+
jest-mock@^24.7.0:
version "24.7.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.7.0.tgz#e49ce7262c12d7f5897b0d8af77f6db8e538023b"
@@ -4745,6 +4817,13 @@ jest-mock@^24.7.0:
dependencies:
"@jest/types" "^24.7.0"
+jest-mock@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56"
+ integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A==
+ dependencies:
+ "@jest/types" "^24.8.0"
+
jest-pnp-resolver@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
@@ -4870,6 +4949,24 @@ jest-util@^24.7.1:
slash "^2.0.0"
source-map "^0.6.0"
+jest-util@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1"
+ integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA==
+ dependencies:
+ "@jest/console" "^24.7.1"
+ "@jest/fake-timers" "^24.8.0"
+ "@jest/source-map" "^24.3.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
+ callsites "^3.0.0"
+ chalk "^2.0.1"
+ graceful-fs "^4.1.15"
+ is-ci "^2.0.0"
+ mkdirp "^0.5.1"
+ slash "^2.0.0"
+ source-map "^0.6.0"
+
jest-validate@^24.7.0:
version "24.7.0"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.7.0.tgz#70007076f338528ee1b1c8a8258b1b0bb982508d"
@@ -4926,9 +5023,9 @@ joi@^13.0.0:
topo "3.x.x"
jquery@^3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
- integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.0.tgz#8de513fa0fa4b2c7d2e48a530e26f0596936efdf"
+ integrity sha512-ggRCXln9zEqv6OqAGXFEcshF5dSBvCkzj6Gm2gzuR5fWawaX8t7cxKVkkygKODrDAzKdoYw3l/e3pm3vlT4IbQ==
js-levenshtein@^1.1.3:
version "1.1.4"
@@ -5184,10 +5281,10 @@ libphonenumber-js@^1.6.4:
semver-compare "^1.0.0"
xml2js "^0.4.17"
-lightercollective@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.2.0.tgz#4f10cd53ec50405d7da03ee81233067993ca8e67"
- integrity sha512-zgFCDiUQQOjislj+1tX7zDxZbgVB6Qi9BSmos41oZcxHdkTveVDzHW0Y3TisNZCWuBN1h0e0xrjkNoLtPkLsUg==
+lightercollective@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.3.0.tgz#1f07638642ec645d70bdb69ab2777676f35a28f0"
+ integrity sha512-RFOLSUVvwdK3xA0P8o6G7QGXLIyy1L2qv5caEI7zXN5ciaEjbAriRF182kbsoJ1S1TgvpyGcN485fMky6qxOPw==
linkifyjs@~2.1.8:
version "2.1.8"
@@ -5588,10 +5685,10 @@ negotiator@0.6.1:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
-neo4j-driver@^1.7.2, neo4j-driver@~1.7.3:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-1.7.3.tgz#1c1108ab26b7243975f1b20045daf31d8f685207"
- integrity sha512-UCNOFiQdouq14PvZGTr+psy657BJsBpO6O2cJpP+NprZnEF4APrDzAcydPZSFxE1nfooLNc50vfuZ0q54UyY2Q==
+neo4j-driver@^1.7.2, neo4j-driver@~1.7.4:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-1.7.4.tgz#9661cf643b63818bff85e82c4691918e75098c1e"
+ integrity sha512-pbK1HbXh92zNSwMlXL8aNynkHohg9Jx/Tk+EewdJawGm8n8sKIY4NpRkp0nRw6RHvVBU3u9cQXt01ftFVe7j+A==
dependencies:
babel-runtime "^6.26.0"
text-encoding "^0.6.4"
@@ -5624,20 +5721,20 @@ no-case@^2.2.0:
dependencies:
lower-case "^1.1.1"
-nocache@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.0.0.tgz#202b48021a0c4cbde2df80de15a17443c8b43980"
- integrity sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=
+nocache@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
+ integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
node-fetch@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5"
integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=
-node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5"
- integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==
+node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@~2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501"
+ integrity sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw==
node-forge@~0.6.45:
version "0.6.49"
@@ -5687,10 +5784,10 @@ node-releases@^1.1.13:
dependencies:
semver "^5.3.0"
-nodemon@~1.18.11:
- version "1.18.11"
- resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.11.tgz#d836ab663776e7995570b963da5bfc807e53f6b8"
- integrity sha512-KdN3tm1zkarlqNo4+W9raU3ihM4H15MVMSE/f9rYDZmFgDHAfAJsomYrHhApAkuUemYjFyEeXlpCOQ2v5gtBEw==
+nodemon@~1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.0.tgz#358e005549a1e9e1148cb2b9b8b28957dc4e4527"
+ integrity sha512-NHKpb/Je0Urmwi3QPDHlYuFY9m1vaVfTsRZG5X73rY46xPj0JpNe8WhUGQdkDXQDOxrBNIU3JrcflE9Y44EcuA==
dependencies:
chokidar "^2.1.5"
debug "^3.1.0"
@@ -6492,10 +6589,10 @@ reasoner@2.0.0:
vocabs-rdfs "^0.11.1"
vocabs-xsd "^0.11.1"
-referrer-policy@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.1.0.tgz#35774eb735bf50fb6c078e83334b472350207d79"
- integrity sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk=
+referrer-policy@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e"
+ integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==
regenerate-unicode-properties@^8.0.2:
version "8.0.2"
@@ -6779,10 +6876,10 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
-sanitize-html@~1.20.0:
- version "1.20.0"
- resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.20.0.tgz#9a602beb1c9faf960fb31f9890f61911cc4d9156"
- integrity sha512-BpxXkBoAG+uKCHjoXFmox6kCSYpnulABoGcZ/R3QyY9ndXbIM5S94eOr1IqnzTG8TnbmXaxWoDDzKC5eJv7fEQ==
+sanitize-html@~1.20.1:
+ version "1.20.1"
+ resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.20.1.tgz#f6effdf55dd398807171215a62bfc21811bacf85"
+ integrity sha512-txnH8TQjaQvg2Q0HY06G6CDJLVYCpbnxrdO0WN8gjCKaU5J0KbyGYhZxx5QJg3WLZ1lB7XU9kDkfrCXUozqptA==
dependencies:
chalk "^2.4.1"
htmlparser2 "^3.10.0"
diff --git a/cypress/cypress/plugins/index.js b/cypress/cypress/plugins/index.js
deleted file mode 100644
index fd170fba6..000000000
--- a/cypress/cypress/plugins/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// ***********************************************************
-// This example plugins/index.js can be used to load plugins
-//
-// You can change the location of this file or turn off loading
-// the plugins file with the 'pluginsFile' configuration option.
-//
-// You can read more here:
-// https://on.cypress.io/plugins-guide
-// ***********************************************************
-
-// This function is called when a project is opened or re-opened (e.g. due to
-// the project's config changing)
-
-module.exports = (on, config) => {
- // `on` is used to hook into various events Cypress emits
- // `config` is the resolved Cypress config
-}
diff --git a/cypress/cypress/support/commands.js b/cypress/cypress/support/commands.js
deleted file mode 100644
index c1f5a772e..000000000
--- a/cypress/cypress/support/commands.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// ***********************************************
-// This example commands.js shows you how to
-// create various custom commands and overwrite
-// existing commands.
-//
-// For more comprehensive examples of custom
-// commands please read more here:
-// https://on.cypress.io/custom-commands
-// ***********************************************
-//
-//
-// -- This is a parent command --
-// Cypress.Commands.add("login", (email, password) => { ... })
-//
-//
-// -- This is a child command --
-// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
-//
-//
-// -- This is a dual command --
-// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
-//
-//
-// -- This is will overwrite an existing command --
-// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
diff --git a/cypress/cypress/support/index.js b/cypress/cypress/support/index.js
deleted file mode 100644
index d68db96df..000000000
--- a/cypress/cypress/support/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// ***********************************************************
-// This example support/index.js is processed and
-// loaded automatically before your test files.
-//
-// This is a great place to put global configuration and
-// behavior that modifies Cypress.
-//
-// You can change the location of this file or turn off
-// automatically serving support files with the
-// 'supportFile' configuration option.
-//
-// You can read more here:
-// https://on.cypress.io/configuration
-// ***********************************************************
-
-// Import commands.js using ES2015 syntax:
-import './commands'
-
-// Alternatively you can use CommonJS syntax:
-// require('./commands')
diff --git a/cypress/integration/common/post.js b/cypress/integration/common/post.js
new file mode 100644
index 000000000..f6a1bbedd
--- /dev/null
+++ b/cypress/integration/common/post.js
@@ -0,0 +1,25 @@
+import { When, Then } from 'cypress-cucumber-preprocessor/steps'
+
+const narratorAvatar = 'https://s3.amazonaws.com/uifaces/faces/twitter/nerrsoft/128.jpg'
+
+Then('I click on the {string} button', text => {
+ cy.get('button').contains(text).click()
+})
+
+Then('my comment should be successfully created', () => {
+ cy.get('.iziToast-message')
+ .contains('Comment Submitted')
+})
+
+Then('I should see my comment', () => {
+ cy.get('div.comment p')
+ .should('contain', 'Human Connection rocks')
+ .get('.ds-avatar img')
+ .should('have.attr', 'src')
+ .and('contain', narratorAvatar)
+})
+
+Then('the editor should be cleared', () => {
+ cy.get('.ProseMirror p')
+ .should('have.class', 'is-empty')
+})
diff --git a/cypress/integration/common/report.js b/cypress/integration/common/report.js
index 78abf5378..2c8b848b4 100644
--- a/cypress/integration/common/report.js
+++ b/cypress/integration/common/report.js
@@ -49,25 +49,20 @@ When('I click on "Report Post" from the content menu of the post', () => {
.click()
})
-When(
- 'I click on "Report User" from the content menu in the user info box',
- () => {
- cy.contains('.ds-card', davidIrvingName)
- .find('.content-menu-trigger')
- .first()
- .click({force: true})
+When('I click on "Report User" from the content menu in the user info box', () => {
+ cy.contains('.ds-card', davidIrvingPostTitle)
+ .get('.user-content-menu .content-menu-trigger')
+ .click({ force: true })
- cy.get('.popover .ds-menu-item-link')
- .contains('Report User')
- .click()
- }
-)
+ cy.get('.popover .ds-menu-item-link')
+ .contains('Report User')
+ .click()
+})
When('I click on the author', () => {
- cy.get('a.user')
- .first()
+ cy.get('.username')
.click()
- .wait(200)
+ .url().should('include', '/profile/')
})
When('I report the author', () => {
diff --git a/cypress/integration/common/steps.js b/cypress/integration/common/steps.js
index 85a660f43..0be3f882f 100644
--- a/cypress/integration/common/steps.js
+++ b/cypress/integration/common/steps.js
@@ -11,6 +11,7 @@ let loginCredentials = {
}
const narratorParams = {
name: 'Peter Pan',
+ avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/nerrsoft/128.jpg',
...loginCredentials
}
diff --git a/cypress/integration/moderation/ReportContent.feature b/cypress/integration/moderation/ReportContent.feature
index 52f7218d4..62fb4f421 100644
--- a/cypress/integration/moderation/ReportContent.feature
+++ b/cypress/integration/moderation/ReportContent.feature
@@ -1,6 +1,6 @@
Feature: Report and Moderate
As a user
- I would like to report content that viloates the community guidlines
+ I would like to report content that violates the community guidlines
So the moderators can take action on it
As a moderator
@@ -12,18 +12,19 @@ Feature: Report and Moderate
| Author | id | title | content |
| David Irving | p1 | The Truth about the Holocaust | It never existed! |
+
Scenario Outline: Report a post from various pages
Given I am logged in with a "user" role
When I see David Irving's post on the
And I click on "Report Post" from the content menu of the post
And I confirm the reporting dialog because it is a criminal act under German law:
- """
- Do you really want to report the contribution "The Truth about the Holocaust"?
- """
+ """
+ Do you really want to report the contribution "The Truth about the Holocaust"?
+ """
Then I see a success message:
- """
- Thanks for reporting!
- """
+ """
+ Thanks for reporting!
+ """
Examples:
| Page |
| landing page |
@@ -35,13 +36,13 @@ Feature: Report and Moderate
When I click on the author
And I click on "Report User" from the content menu in the user info box
And I confirm the reporting dialog because he is a holocaust denier:
- """
- Do you really want to report the user "David Irving"?
- """
+ """
+ Do you really want to report the user "David Irving"?
+ """
Then I see a success message:
- """
- Thanks for reporting!
- """
+ """
+ Thanks for reporting!
+ """
Scenario: Review reported content
Given somebody reported the following posts:
diff --git a/cypress/integration/post/Comment.feature b/cypress/integration/post/Comment.feature
new file mode 100644
index 000000000..e7e462824
--- /dev/null
+++ b/cypress/integration/post/Comment.feature
@@ -0,0 +1,22 @@
+Feature: Post Comment
+ As a user
+ I want to comment on contributions of others
+ To be able to express my thoughts and emotions about these, discuss, and add give further information.
+
+ Background:
+ Given we have the following posts in our database:
+ | id | title | slug |
+ | bWBjpkTKZp | 101 Essays that will change the way you think | 101-essays |
+ And I have a user account
+ And I am logged in
+
+ Scenario: Comment creation
+ Given I visit "post/bWBjpkTKZp/101-essays"
+ And I type in the following text:
+ """
+ Human Connection rocks
+ """
+ And I click on the "Comment" button
+ Then my comment should be successfully created
+ And I should see my comment
+ And the editor should be cleared
diff --git a/cypress/support/index.js b/cypress/support/index.js
index 3519487bf..195b0de7d 100644
--- a/cypress/support/index.js
+++ b/cypress/support/index.js
@@ -14,8 +14,13 @@
// ***********************************************************
// Import commands.js using ES2015 syntax:
+
import './commands'
import './factories'
+// intermittent failing tests
+import 'cypress-plugin-retries'
+
// Alternatively you can use CommonJS syntax:
// require('./commands')
+
diff --git a/deployment/.gitignore b/deployment/.gitignore
index aad0daea8..14cfa18ed 100644
--- a/deployment/.gitignore
+++ b/deployment/.gitignore
@@ -1,3 +1,4 @@
secrets.yaml
-*/secrets.yaml
-kubeconfig.yaml
+configmap.yaml
+**/secrets.yaml
+**/configmap.yaml
diff --git a/deployment/README.md b/deployment/README.md
index 982a886ac..0615ccf9b 100644
--- a/deployment/README.md
+++ b/deployment/README.md
@@ -4,223 +4,8 @@ We deploy with [kubernetes](https://kubernetes.io/). In order to deploy your own
network you have to [install kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
and get a kubernetes cluster.
-We have tested two different kubernetes providers: [Minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/)
-and [Digital Ocean](https://www.digitalocean.com/).
-
-## Minikube
-
-There are many Kubernetes providers, but if you're just getting started, Minikube is a tool that you can use to get your feet wet.
-
-[Install Minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/)
-
-Open minikube dashboard:
-
-```text
-$ minikube dashboard
-```
-
-This will give you an overview. Some of the steps below need some timing to make ressources available to other dependent deployments. Keeping an eye on the dashboard is a great way to check that.
-
-Follow the [installation instruction](deployment.md#installation-with-kubernetes) below. If all the pods and services have settled and everything looks green in your minikube dashboard, expose the `nitro-web` service on your host system with:
-
-```text
-$ minikube service nitro-web --namespace=human-connection
-```
-
-## Digital Ocean
-
-1. At first, create a cluster on Digital Ocean.
-2. Download the config.yaml if the process has finished.
-3. Put the config file where you can find it later \(preferable in your home directory under `~/.kube/`\)
-4. In the open terminal you can set the current config for the active session: `export KUBECONFIG=~/.kube/THE-NAME-OF-YOUR-CLUSTER-kubeconfig.yaml`. You could make this change permanent by adding the line to your `.bashrc` or `~/.config/fish/config.fish` depending on your shell.
-
- Otherwise you would have to always add `--kubeconfig ~/.kube/THE-NAME-OF-YOUR-CLUSTER-kubeconfig.yaml` on every `kubectl` command that you are running.
-
-5. Now check if you can connect to the cluster and if its your newly created one by running: `kubectl get nodes`
-
-If you got the steps right above and see your nodes you can continue.
-
-First, install kubernetes dashboard:
-
-```bash
-$ kubectl apply -f dashboard/
-$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
-```
-
-Get your token on the command line:
-
-```bash
-$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
-```
-
-It should print something like:
-
-```text
-Name: admin-user-token-6gl6l
-Namespace: kube-system
-Labels:
-Annotations: kubernetes.io/service-account.name=admin-user
- kubernetes.io/service-account.uid=b16afba9-dfec-11e7-bbb9-901b0e532516
-
-Type: kubernetes.io/service-account-token
-
-Data
-====
-ca.crt: 1025 bytes
-namespace: 11 bytes
-token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTZnbDZsIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiMTZhZmJhOS1kZmVjLTExZTctYmJiOS05MDFiMGU1MzI1MTYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.M70CU3lbu3PP4OjhFms8PVL5pQKj-jj4RNSLA4YmQfTXpPUuxqXjiTf094_Rzr0fgN_IVX6gC4fiNUL5ynx9KU-lkPfk0HnX8scxfJNzypL039mpGt0bbe1IXKSIRaq_9VW59Xz-yBUhycYcKPO9RM2Qa1Ax29nqNVko4vLn1_1wPqJ6XSq3GYI8anTzV8Fku4jasUwjrws6Cn6_sPEGmL54sq5R4Z5afUtv-mItTmqZZdxnkRqcJLlg2Y8WbCPogErbsaCDJoABQ7ppaqHetwfM_0yMun6ABOQbIwwl8pspJhpplKwyo700OSpvTT9zlBsu-b35lzXGBRHzv5g_RA
-```
-
-Proxy localhost to the remote kubernetes dashboard:
-
-```bash
-$ kubectl proxy
-```
-
-Grab the token from above and paste it into the login screen at [http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/](http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/)
-
-## Installation with kubernetes
-
-You have to do some prerequisites e.g. change some secrets according to your own setup.
-
-### Edit secrets
-
-```bash
-$ cp secrets.template.yaml human-connection/secrets.yaml
-```
-
-Change all secrets as needed.
-
-If you want to edit secrets, you have to `base64` encode them. See [kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/#creating-a-secret-manually).
-
-```text
-# example how to base64 a string:
-$ echo -n 'admin' | base64
-YWRtaW4=
-```
-
-Those secrets get `base64` decoded in a kubernetes pod.
-
-### Create a namespace
-
-```text
-$ kubectl apply -f namespace-human-connection.yaml
-```
-
-Switch to the namespace `human-connection` in your kubernetes dashboard.
-
-### Run the configuration
-
-```text
-$ kubectl apply -f human-connection/
-```
-
-This can take a while because kubernetes will download the docker images. Sit back and relax and have a look into your kubernetes dashboard. Wait until all pods turn green and they don't show a warning `Waiting: ContainerCreating` anymore.
-
-#### Setup Ingress and HTTPS
-
-Follow [this quick start guide](https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/index.html) and install certmanager via helm and tiller:
-
-```text
-$ kubectl create serviceaccount tiller --namespace=kube-system
-$ kubectl create clusterrolebinding tiller-admin --serviceaccount=kube-system:tiller --clusterrole=cluster-admin
-$ helm init --service-account=tiller
-$ helm repo update
-$ helm install stable/nginx-ingress
-$ kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.6/deploy/manifests/00-crds.yaml
-$ helm install --name cert-manager --namespace cert-manager stable/cert-manager
-```
-
-Create letsencrypt issuers. _Change the email address_ in these files before running this command.
-
-```bash
-$ kubectl apply -f human-connection/https/
-```
-
-Create an ingress service in namespace `human-connection`. _Change the domain name_ according to your needs:
-
-```bash
-$ kubectl apply -f human-connection/ingress/
-```
-
-Check the ingress server is working correctly:
-
-```bash
-$ curl -kivL -H 'Host: ' 'https://'
-```
-
-If the response looks good, configure your domain registrar for the new IP address and the domain.
-
-Now let's get a valid HTTPS certificate. According to the tutorial above, check your tls certificate for staging:
-
-```bash
-$ kubectl describe --namespace=human-connection certificate tls
-$ kubectl describe --namespace=human-connection secret tls
-```
-
-If everything looks good, update the issuer of your ingress. Change the annotation `certmanager.k8s.io/issuer` from `letsencrypt-staging` to `letsencrypt-prod` in your ingress configuration in `human-connection/ingress/ingress.yaml`.
-
-```bash
-$ kubectl apply -f human-connection/ingress/ingress.yaml
-```
-
-Delete the former secret to force a refresh:
-
-```text
-$ kubectl --namespace=human-connection delete secret tls
-```
-
-Now, HTTPS should be configured on your domain. Congrats.
-
-#### Legacy data migration
-
-This setup is completely optional and only required if you have data on a server which is running our legacy code and you want to import that data. It will import the uploads folder and migrate a dump of mongodb into neo4j.
-
-**Prepare migration of Human Connection legacy server**
-
-Create a configmap with the specific connection data of your legacy server:
-
-```bash
-$ kubectl create configmap db-migration-worker \
- --namespace=human-connection \
- --from-literal=SSH_USERNAME=someuser \
- --from-literal=SSH_HOST=yourhost \
- --from-literal=MONGODB_USERNAME=hc-api \
- --from-literal=MONGODB_PASSWORD=secretpassword \
- --from-literal=MONGODB_AUTH_DB=hc_api \
- --from-literal=MONGODB_DATABASE=hc_api \
- --from-literal=UPLOADS_DIRECTORY=/var/www/api/uploads \
- --from-literal=NEO4J_URI=bolt://localhost:7687
-```
-
-Create a secret with your public and private ssh keys. As the [kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/#use-case-pod-with-ssh-keys) points out, you should be careful with your ssh keys. Anyone with access to your cluster will have access to your ssh keys. Better create a new pair with `ssh-keygen` and copy the public key to your legacy server with `ssh-copy-id`:
-
-```bash
-$ kubectl create secret generic ssh-keys \
- --namespace=human-connection \
- --from-file=id_rsa=/path/to/.ssh/id_rsa \
- --from-file=id_rsa.pub=/path/to/.ssh/id_rsa.pub \
- --from-file=known_hosts=/path/to/.ssh/known_hosts
-```
-
-**Migrate legacy database**
-
-Patch the existing deployments to use a multi-container setup:
-
-```bash
-cd legacy-migration
-kubectl apply -f volume-claim-mongo-export.yaml
-kubectl patch --namespace=human-connection deployment nitro-backend --patch "$(cat deployment-backend.yaml)"
-kubectl patch --namespace=human-connection deployment nitro-neo4j --patch "$(cat deployment-neo4j.yaml)"
-cd ..
-```
-
-Run the migration:
-
-```text
-$ kubectl --namespace=human-connection get pods
-# change below
-$ kubectl --namespace=human-connection exec -it nitro-neo4j-65bbdb597c-nc2lv migrate
-$ kubectl --namespace=human-connection exec -it nitro-backend-c6cc5ff69-8h96z sync_uploads
-```
+We have tested two different kubernetes providers: [Minikube](./minikube/README.md)
+and [Digital Ocean](./digital-ocean/README.md).
+Check out the specific documentation for your provider. After that, learn how
+to apply the specific kubernetes configuration for [Human Connection](./human-connection/README.md).
diff --git a/deployment/backup.md b/deployment/backup.md
new file mode 100644
index 000000000..5d6d61866
--- /dev/null
+++ b/deployment/backup.md
@@ -0,0 +1,83 @@
+# Backup (offline)
+
+This tutorial explains how to carry out an offline backup of your Neo4J
+database in a kubernetes cluster.
+
+An offline backup requires the Neo4J database to be stopped. Read
+[the docs](https://neo4j.com/docs/operations-manual/current/tools/dump-load/).
+Neo4J also offers online backups but this is available in enterprise edition
+only.
+
+The tricky part is to stop the Neo4J database *without* stopping the container.
+Neo4J's docker container image starts `neo4j` by default, so we have to override
+this command with sth. that keeps the container spinning but does not terminate
+it.
+
+## Stop and Restart Neo4J Database in Kubernetes
+
+[This tutorial](http://bigdatums.net/2017/11/07/how-to-keep-docker-containers-running/)
+explains how to keep a docker container running. For kubernetes, the way to
+override the docker image `CMD` is explained [here](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#define-a-command-and-arguments-when-you-create-a-pod).
+
+So, all we have to do is edit the kubernetes deployment of our Neo4J database
+and set a custom `command` every time we have to carry out tasks like backup,
+restore, seed etc.
+
+{% hint style="info" %} TODO: implement maintenance mode {% endhint %}
+First bring the application into maintenance mode to ensure there are no
+database connections left and nobody can access the application.
+
+Run the following:
+
+```sh
+kubectl --namespace=human-connection edit deployment nitro-neo4j
+```
+
+Add the following to `spec.template.spec.containers`:
+```
+["tail", "-f", "/dev/null"]
+```
+and write the file which will update the deployment.
+
+The command `tail -f /dev/null` is the equivalent of *sleep forever*. It is a
+hack to keep the container busy and to prevent its shutdown. It will also
+override the default `neo4j` command and the kubernetes pod will not start the
+database.
+
+Now perform your tasks!
+
+When you're done, edit the deployment again and remove the `command`. Write the
+file and trigger an update of the deployment.
+
+## Create a Backup in Kubernetes
+
+First stop your Neo4J database, see above. Then:
+```sh
+kubectl --namespace=human-connection get pods
+# Copy the ID of the pod running Neo4J.
+kubectl --namespace=human-connection exec -it bash
+# Once you're in the pod, dump the db to a file e.g. `/root/neo4j-backup`.
+neo4j-admin dump --to=/root/neo4j-backup
+exit
+# Download the file from the pod to your computer.
+ kubectl cp human-connection/:/root/neo4j-backup ./neo4j-backup
+```
+Revert your changes to deployment `nitro-neo4j` which will restart the database.
+
+## Restore a Backup in Kubernetes
+
+First stop your Neo4J database. Then:
+```sh
+kubectl --namespace=human-connection get pods
+# Copy the ID of the pod running Neo4J.
+# Then upload your local backup to the pod. Note that once the pod gets deleted
+# e.g. if you change the deployment, the backup file is gone with it.
+kubectl cp ./neo4j-backup human-connection/:/root/
+kubectl --namespace=human-connection exec -it bash
+# Once you're in the pod restore the backup and overwrite the default database
+# called `graph.db` with `--force`.
+# This will delete all existing data in database `graph.db`!
+neo4j-admin load --from=/root/neo4j-backup --force
+exit
+```
+Revert your changes to deployment `nitro-neo4j` which will restart the database.
diff --git a/deployment/human-connection/configmap.yaml b/deployment/configmap.template.yaml
similarity index 67%
rename from deployment/human-connection/configmap.yaml
rename to deployment/configmap.template.yaml
index 5e4d6ba89..baf41661a 100644
--- a/deployment/human-connection/configmap.yaml
+++ b/deployment/configmap.template.yaml
@@ -9,8 +9,6 @@
NEO4J_USER: "neo4j"
NEO4J_AUTH: "none"
CLIENT_URI: "https://nitro-staging.human-connection.org"
- MAPBOX_TOKEN: "pk.eyJ1IjoiaHVtYW4tY29ubmVjdGlvbiIsImEiOiJjajl0cnBubGoweTVlM3VwZ2lzNTNud3ZtIn0.KZ8KK9l70omjXbEkkbHGsQ"
- PRIVATE_KEY_PASSPHRASE: "a7dsf78sadg87ad87sfagsadg78"
metadata:
name: configmap
namespace: human-connection
diff --git a/deployment/db-migration-worker.yaml b/deployment/db-migration-worker.yaml
deleted file mode 100644
index 55743e360..000000000
--- a/deployment/db-migration-worker.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
----
- kind: Pod
- apiVersion: v1
- metadata:
- name: nitro-db-migration-worker
- namespace: human-connection
- spec:
- volumes:
- - name: secret-volume
- secret:
- secretName: ssh-keys
- defaultMode: 0400
- - name: mongo-export
- persistentVolumeClaim:
- claimName: mongo-export-claim
- containers:
- - name: nitro-db-migration-worker
- image: humanconnection/db-migration-worker:latest
- envFrom:
- - configMapRef:
- name: db-migration-worker
- volumeMounts:
- - name: secret-volume
- readOnly: false
- mountPath: /root/.ssh
- - name: mongo-export
- mountPath: /mongo-export/
----
- kind: PersistentVolumeClaim
- apiVersion: v1
- metadata:
- name: mongo-export-claim
- namespace: human-connection
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
diff --git a/deployment/digital-ocean/README.md b/deployment/digital-ocean/README.md
new file mode 100644
index 000000000..12c272691
--- /dev/null
+++ b/deployment/digital-ocean/README.md
@@ -0,0 +1,26 @@
+# Digital Ocean
+
+As a start, read the [introduction into kubernetes](https://www.digitalocean.com/community/tutorials/an-introduction-to-kubernetes) by the folks at Digital Ocean. The following section should enable you to deploy Human Connection to your kubernetes cluster.
+
+## Connect to your local cluster
+
+1. Create a cluster at [Digital Ocean](https://www.digitalocean.com/).
+2. Download the `***-kubeconfig.yaml` from the Web UI.
+3. Move the file to the default location where kubectl expects it to be: `mv ***-kubeconfig.yaml ~/.kube/config`. Alternatively you can set the config on every command: `--kubeconfig ***-kubeconfig.yaml`
+4. Now check if you can connect to the cluster and if its your newly created one by running: `kubectl get nodes`
+
+The output should look about like this:
+```
+$ kubectl get nodes
+NAME STATUS ROLES AGE VERSION
+nifty-driscoll-uu1w Ready 69d v1.13.2
+nifty-driscoll-uuiw Ready 69d v1.13.2
+nifty-driscoll-uusn Ready 69d v1.13.2
+```
+
+If you got the steps right above and see your nodes you can continue.
+
+Digital Ocean kubernetes clusters don't have a graphical interface, so I suggest
+to setup the [kubernetes dashboard](./dashboard/README.md) as a next step.
+Configuring [HTTPS](./https/README.md) is bit tricky and therefore I suggest to
+do this as a last step.
diff --git a/deployment/digital-ocean/dashboard/README.md b/deployment/digital-ocean/dashboard/README.md
new file mode 100644
index 000000000..3ae6378bf
--- /dev/null
+++ b/deployment/digital-ocean/dashboard/README.md
@@ -0,0 +1,55 @@
+# Install Kubernetes Dashboard
+
+The kubernetes dashboard is optional but very helpful for debugging. If you want to install it, you have to do so only **once** per cluster:
+
+```bash
+# in folder deployment/digital-ocean/
+$ kubectl apply -f dashboard/
+$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
+```
+
+### Login to your dashboard
+
+Proxy the remote kubernetes dashboard to localhost:
+
+```bash
+$ kubectl proxy
+```
+
+Visit:
+
+[http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/](http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/)
+
+You should see a login screen.
+
+To get your token for the dashboard you can run this command:
+
+```bash
+$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
+```
+
+It should print something like:
+
+```text
+Name: admin-user-token-6gl6l
+Namespace: kube-system
+Labels:
+Annotations: kubernetes.io/service-account.name=admin-user
+ kubernetes.io/service-account.uid=b16afba9-dfec-11e7-bbb9-901b0e532516
+
+Type: kubernetes.io/service-account-token
+
+Data
+====
+ca.crt: 1025 bytes
+namespace: 11 bytes
+token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTZnbDZsIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiMTZhZmJhOS1kZmVjLTExZTctYmJiOS05MDFiMGU1MzI1MTYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.M70CU3lbu3PP4OjhFms8PVL5pQKj-jj4RNSLA4YmQfTXpPUuxqXjiTf094_Rzr0fgN_IVX6gC4fiNUL5ynx9KU-lkPfk0HnX8scxfJNzypL039mpGt0bbe1IXKSIRaq_9VW59Xz-yBUhycYcKPO9RM2Qa1Ax29nqNVko4vLn1_1wPqJ6XSq3GYI8anTzV8Fku4jasUwjrws6Cn6_sPEGmL54sq5R4Z5afUtv-mItTmqZZdxnkRqcJLlg2Y8WbCPogErbsaCDJoABQ7ppaqHetwfM_0yMun6ABOQbIwwl8pspJhpplKwyo700OSpvTT9zlBsu-b35lzXGBRHzv5g_RA
+```
+
+Grab the token from above and paste it into the [login screen](http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/)
+
+When you are logged in, you should see sth. like:
+
+
+
+Feel free to save the login token from above in your password manager. Unlike the `kubeconfig` file, this token does not expire.
diff --git a/deployment/dashboard/admin-user.yaml b/deployment/digital-ocean/dashboard/admin-user.yaml
similarity index 100%
rename from deployment/dashboard/admin-user.yaml
rename to deployment/digital-ocean/dashboard/admin-user.yaml
diff --git a/deployment/digital-ocean/dashboard/dashboard-screenshot.png b/deployment/digital-ocean/dashboard/dashboard-screenshot.png
new file mode 100644
index 000000000..6aefb5414
Binary files /dev/null and b/deployment/digital-ocean/dashboard/dashboard-screenshot.png differ
diff --git a/deployment/dashboard/role-binding.yaml b/deployment/digital-ocean/dashboard/role-binding.yaml
similarity index 100%
rename from deployment/dashboard/role-binding.yaml
rename to deployment/digital-ocean/dashboard/role-binding.yaml
diff --git a/deployment/digital-ocean/https/README.md b/deployment/digital-ocean/https/README.md
new file mode 100644
index 000000000..398601e78
--- /dev/null
+++ b/deployment/digital-ocean/https/README.md
@@ -0,0 +1,57 @@
+# Setup Ingress and HTTPS
+
+Follow [this quick start guide](https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/index.html) and install certmanager via helm and tiller:
+
+```text
+$ kubectl create serviceaccount tiller --namespace=kube-system
+$ kubectl create clusterrolebinding tiller-admin --serviceaccount=kube-system:tiller --clusterrole=cluster-admin
+$ helm init --service-account=tiller
+$ helm repo update
+$ helm install stable/nginx-ingress
+$ kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.6/deploy/manifests/00-crds.yaml
+$ helm install --name cert-manager --namespace cert-manager stable/cert-manager
+```
+
+Create letsencrypt issuers. _Change the email address_ in these files before running this command.
+
+```bash
+# in folder deployment/digital-ocean/https/
+$ kubectl apply -f issuer.yaml
+```
+
+Create an ingress service in namespace `human-connection`. _Change the domain name_ according to your needs:
+
+```bash
+# in folder deployment/digital-ocean/https/
+$ kubectl apply -f ingress.yaml
+```
+
+Check the ingress server is working correctly:
+
+```bash
+$ curl -kivL -H 'Host: ' 'https://'
+```
+
+If the response looks good, configure your domain registrar for the new IP address and the domain.
+
+Now let's get a valid HTTPS certificate. According to the tutorial above, check your tls certificate for staging:
+
+```bash
+$ kubectl describe --namespace=human-connection certificate tls
+$ kubectl describe --namespace=human-connection secret tls
+```
+
+If everything looks good, update the issuer of your ingress. Change the annotation `certmanager.k8s.io/issuer` from `letsencrypt-staging` to `letsencrypt-prod` in your ingress configuration in `ingress.yaml`.
+
+```bash
+# in folder deployment/digital-ocean/https/
+$ kubectl apply -f ingress.yaml
+```
+
+Delete the former secret to force a refresh:
+
+```text
+$ kubectl --namespace=human-connection delete secret tls
+```
+
+Now, HTTPS should be configured on your domain. Congrats.
diff --git a/deployment/human-connection/ingress/ingress.yaml b/deployment/digital-ocean/https/ingress.yaml
similarity index 100%
rename from deployment/human-connection/ingress/ingress.yaml
rename to deployment/digital-ocean/https/ingress.yaml
diff --git a/deployment/human-connection/https/issuer.yaml b/deployment/digital-ocean/https/issuer.yaml
similarity index 100%
rename from deployment/human-connection/https/issuer.yaml
rename to deployment/digital-ocean/https/issuer.yaml
diff --git a/deployment/human-connection/README.md b/deployment/human-connection/README.md
new file mode 100644
index 000000000..d6a2dd989
--- /dev/null
+++ b/deployment/human-connection/README.md
@@ -0,0 +1,58 @@
+# Kubernetes Configuration for Human Connection
+
+Deploying Human Connection with kubernetes is straight forward. All you have to
+do is to change certain parameters, like domain names and API keys, then you
+just apply our provided configuration files to your cluster.
+
+## Configuration
+
+Copy our provided templates:
+
+```bash
+$ cp secrets.template.yaml human-connection/secrets.yaml
+$ cp configmap.template.yaml human-connection/configmap.yaml
+```
+
+Change the `configmap.yaml` as needed, all variables will be available as
+environment variables in your deployed kubernetes pods.
+
+If you want to edit secrets, you have to `base64` encode them. See [kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/#creating-a-secret-manually).
+
+```bash
+# example how to base64 a string:
+$ echo -n 'admin' | base64 --wrap 0
+YWRtaW4=
+```
+
+Those secrets get `base64` decoded and are available as environment variables in
+your deployed kubernetes pods.
+
+## Create a namespace
+
+```bash
+$ kubectl apply -f namespace-human-connection.yaml
+```
+
+If you have a [kubernets dashboard](../digital-ocean/dashboard/README.md)
+deployed you should switch to namespace `human-connection` in order to
+monitor the state of your deployments.
+
+## Create persistent volumes
+
+While the deployments and services can easily be restored, simply by deleting
+and applying the kubernetes configurations again, certain data is not that
+easily recovered. Therefore we separated persistent volumes from deployments
+and services. There is a [dedicated section](../volumes/README.md). Create those
+persistent volumes once before you apply the configuration.
+
+## Apply the configuration
+
+```bash
+# in folder deployment/
+$ kubectl apply -f human-connection/
+```
+
+This can take a while because kubernetes will download the docker images. Sit
+back and relax and have a look into your kubernetes dashboard. Wait until all
+pods turn green and they don't show a warning `Waiting: ContainerCreating`
+anymore.
diff --git a/deployment/human-connection/deployment-backend.yaml b/deployment/human-connection/deployment-backend.yaml
index 29992ef7e..a873b7bb2 100644
--- a/deployment/human-connection/deployment-backend.yaml
+++ b/deployment/human-connection/deployment-backend.yaml
@@ -43,15 +43,3 @@
restartPolicy: Always
terminationGracePeriodSeconds: 30
status: {}
----
- kind: PersistentVolumeClaim
- apiVersion: v1
- metadata:
- name: uploads-claim
- namespace: human-connection
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 2Gi
diff --git a/deployment/human-connection/deployment-neo4j.yaml b/deployment/human-connection/deployment-neo4j.yaml
index 2c76a3322..4a715da76 100644
--- a/deployment/human-connection/deployment-neo4j.yaml
+++ b/deployment/human-connection/deployment-neo4j.yaml
@@ -6,6 +6,10 @@
namespace: human-connection
spec:
replicas: 1
+ strategy:
+ rollingUpdate:
+ maxSurge: 0
+ maxUnavailable: "100%"
selector:
matchLabels:
human-connection.org/selector: deployment-human-connection-neo4j
@@ -53,15 +57,3 @@
claimName: neo4j-data-claim
restartPolicy: Always
terminationGracePeriodSeconds: 30
----
- kind: PersistentVolumeClaim
- apiVersion: v1
- metadata:
- name: neo4j-data-claim
- namespace: human-connection
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
diff --git a/deployment/legacy-migration/README.md b/deployment/legacy-migration/README.md
new file mode 100644
index 000000000..8cc7bd746
--- /dev/null
+++ b/deployment/legacy-migration/README.md
@@ -0,0 +1,85 @@
+# Legacy data migration
+
+This setup is **completely optional** and only required if you have data on a
+server which is running our legacy code and you want to import that data. It
+will import the uploads folder and migrate a dump of the legacy Mongo database
+into our new Neo4J graph database.
+
+## Configure Maintenance-Worker Pod
+
+Create a configmap with the specific connection data of your legacy server:
+
+```bash
+$ kubectl create configmap maintenance-worker \
+ --namespace=human-connection \
+ --from-literal=SSH_USERNAME=someuser \
+ --from-literal=SSH_HOST=yourhost \
+ --from-literal=MONGODB_USERNAME=hc-api \
+ --from-literal=MONGODB_PASSWORD=secretpassword \
+ --from-literal=MONGODB_AUTH_DB=hc_api \
+ --from-literal=MONGODB_DATABASE=hc_api \
+ --from-literal=UPLOADS_DIRECTORY=/var/www/api/uploads
+```
+
+Create a secret with your public and private ssh keys. As the [kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/#use-case-pod-with-ssh-keys) points out, you should be careful with your ssh keys. Anyone with access to your cluster will have access to your ssh keys. Better create a new pair with `ssh-keygen` and copy the public key to your legacy server with `ssh-copy-id`:
+
+```bash
+$ kubectl create secret generic ssh-keys \
+ --namespace=human-connection \
+ --from-file=id_rsa=/path/to/.ssh/id_rsa \
+ --from-file=id_rsa.pub=/path/to/.ssh/id_rsa.pub \
+ --from-file=known_hosts=/path/to/.ssh/known_hosts
+```
+
+## Deploy a Temporary Maintenance-Worker Pod
+
+Bring the application into maintenance mode.
+
+{% hint style="info" %} TODO: implement maintenance mode {% endhint %}
+
+
+Then temporarily delete backend and database deployments
+
+```bash
+$ kubectl --namespace=human-connection get deployments
+NAME READY UP-TO-DATE AVAILABLE AGE
+nitro-backend 1/1 1 1 3d11h
+nitro-neo4j 1/1 1 1 3d11h
+nitro-web 2/2 2 2 73d
+$ kubectl --namespace=human-connection delete deployment nitro-neo4j
+deployment.extensions "nitro-neo4j" deleted
+$ kubectl --namespace=human-connection delete deployment nitro-backend
+deployment.extensions "nitro-backend" deleted
+```
+
+Deploy one-time maintenance-worker pod:
+
+```bash
+# in deployment/legacy-migration/
+$ kubectl apply -f db-migration-worker.yaml
+pod/nitro-maintenance-worker created
+```
+
+Import legacy database and uploads:
+
+```bash
+$ kubectl --namespace=human-connection exec -it nitro-maintenance-worker bash
+$ import_legacy_db
+$ import_uploads
+$ exit
+```
+
+Delete the pod when you're done:
+
+```bash
+$ kubectl --namespace=human-connection delete pod nitro-maintenance-worker
+```
+
+Oh, and of course you have to get those deleted deployments back. One way of
+doing it would be:
+
+```bash
+# in folder deployment/
+$ kubectl apply -f human-connection/deployment-backend.yaml -f human-connection/deployment-neo4j.yaml
+```
+
diff --git a/deployment/legacy-migration/deployment-backend.yaml b/deployment/legacy-migration/deployment-backend.yaml
deleted file mode 100644
index 1adeb0665..000000000
--- a/deployment/legacy-migration/deployment-backend.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
- apiVersion: extensions/v1beta1
- kind: Deployment
- metadata:
- name: nitro-backend
- namespace: human-connection
- spec:
- template:
- spec:
- containers:
- - name: nitro-db-migration-worker
- image: humanconnection/db-migration-worker:latest
- imagePullPolicy: Always
- envFrom:
- - configMapRef:
- name: db-migration-worker
- volumeMounts:
- - name: secret-volume
- readOnly: false
- mountPath: /root/.ssh
- - name: uploads
- mountPath: /uploads/
- volumes:
- - name: secret-volume
- secret:
- secretName: ssh-keys
- defaultMode: 0400
diff --git a/deployment/legacy-migration/deployment-neo4j.yaml b/deployment/legacy-migration/deployment-neo4j.yaml
deleted file mode 100644
index 2852b90cb..000000000
--- a/deployment/legacy-migration/deployment-neo4j.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
----
- apiVersion: extensions/v1beta1
- kind: Deployment
- metadata:
- name: nitro-neo4j
- namespace: human-connection
- spec:
- template:
- spec:
- containers:
- - name: nitro-db-migration-worker
- image: humanconnection/db-migration-worker:latest
- imagePullPolicy: Always
- envFrom:
- - configMapRef:
- name: db-migration-worker
- env:
- - name: COMMIT
- value:
- - name: NEO4J_URI
- value: bolt://localhost:7687
- volumeMounts:
- - name: secret-volume
- readOnly: false
- mountPath: /root/.ssh
- - name: mongo-export
- mountPath: /mongo-export/
- - name: nitro-neo4j
- volumeMounts:
- - mountPath: /mongo-export/
- name: mongo-export
- volumes:
- - name: secret-volume
- secret:
- secretName: ssh-keys
- defaultMode: 0400
- - name: mongo-export
- persistentVolumeClaim:
- claimName: mongo-export-claim
diff --git a/deployment/legacy-migration/maintenance-worker.yaml b/deployment/legacy-migration/maintenance-worker.yaml
new file mode 100644
index 000000000..cda17400a
--- /dev/null
+++ b/deployment/legacy-migration/maintenance-worker.yaml
@@ -0,0 +1,34 @@
+---
+ kind: Pod
+ apiVersion: v1
+ metadata:
+ name: nitro-maintenance-worker
+ namespace: human-connection
+ spec:
+ containers:
+ - name: nitro-maintenance-worker
+ image: humanconnection/maintenance-worker:latest
+ envFrom:
+ - configMapRef:
+ name: maintenance-worker
+ - configMapRef:
+ name: configmap
+ volumeMounts:
+ - name: secret-volume
+ readOnly: false
+ mountPath: /root/.ssh
+ - name: uploads
+ mountPath: /nitro-backend/public/uploads
+ - name: neo4j-data
+ mountPath: /data/
+ volumes:
+ - name: secret-volume
+ secret:
+ secretName: ssh-keys
+ defaultMode: 0400
+ - name: uploads
+ persistentVolumeClaim:
+ claimName: uploads-claim
+ - name: neo4j-data
+ persistentVolumeClaim:
+ claimName: neo4j-data-claim
diff --git a/backend/db-migration-worker/.dockerignore b/deployment/legacy-migration/maintenance-worker/.dockerignore
similarity index 100%
rename from backend/db-migration-worker/.dockerignore
rename to deployment/legacy-migration/maintenance-worker/.dockerignore
diff --git a/backend/db-migration-worker/.gitignore b/deployment/legacy-migration/maintenance-worker/.gitignore
similarity index 100%
rename from backend/db-migration-worker/.gitignore
rename to deployment/legacy-migration/maintenance-worker/.gitignore
diff --git a/deployment/legacy-migration/maintenance-worker/Dockerfile b/deployment/legacy-migration/maintenance-worker/Dockerfile
new file mode 100644
index 000000000..1fafce5e8
--- /dev/null
+++ b/deployment/legacy-migration/maintenance-worker/Dockerfile
@@ -0,0 +1,11 @@
+FROM humanconnection/neo4j:latest
+
+ENV NODE_ENV=maintenance
+EXPOSE 7687 7474
+
+RUN apk upgrade --update
+RUN apk add --no-cache mongodb-tools openssh nodejs yarn rsync
+
+COPY known_hosts /root/.ssh/known_hosts
+COPY migration ./migration
+COPY ./binaries/* /usr/local/bin/
diff --git a/deployment/legacy-migration/maintenance-worker/binaries/create_private_ssh_key_from_env b/deployment/legacy-migration/maintenance-worker/binaries/create_private_ssh_key_from_env
new file mode 100755
index 000000000..f44671978
--- /dev/null
+++ b/deployment/legacy-migration/maintenance-worker/binaries/create_private_ssh_key_from_env
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+set -e
+
+mkdir -p ~/.ssh
+echo $SSH_PRIVATE_KEY | base64 -d > ~/.ssh/id_rsa
+chmod 600 ~/.ssh/id_rsa
diff --git a/backend/db-migration-worker/migrate.sh b/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db
similarity index 100%
rename from backend/db-migration-worker/migrate.sh
rename to deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db
diff --git a/backend/db-migration-worker/sync_uploads.sh b/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_uploads
similarity index 81%
rename from backend/db-migration-worker/sync_uploads.sh
rename to deployment/legacy-migration/maintenance-worker/binaries/import_legacy_uploads
index d24936e3b..24ae0fca5 100755
--- a/backend/db-migration-worker/sync_uploads.sh
+++ b/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_uploads
@@ -9,4 +9,5 @@ do
fi
done
+[ -z "$SSH_PRIVATE_KEY" ] || create_private_ssh_key_from_env
rsync --archive --update --verbose ${SSH_USERNAME}@${SSH_HOST}:${UPLOADS_DIRECTORY}/* /uploads/
diff --git a/deployment/legacy-migration/maintenance-worker/docker-compose.yml b/deployment/legacy-migration/maintenance-worker/docker-compose.yml
new file mode 100644
index 000000000..a45a5163a
--- /dev/null
+++ b/deployment/legacy-migration/maintenance-worker/docker-compose.yml
@@ -0,0 +1,42 @@
+version: "3.4"
+
+services:
+ maintenance:
+ image: humanconnection/maintenance-worker:latest
+ build:
+ context: .
+ volumes:
+ - uploads:/uploads
+ - neo4j-data:/data
+ - ./migration/:/migration
+ networks:
+ - hc-network
+ environment:
+ - GRAPHQL_PORT=4000
+ - GRAPHQL_URI=http://localhost:4000
+ - CLIENT_URI=http://localhost:3000
+ - JWT_SECRET=b/&&7b78BF&fv/Vd
+ - MOCK=false
+ - MAPBOX_TOKEN=pk.eyJ1IjoiaHVtYW4tY29ubmVjdGlvbiIsImEiOiJjajl0cnBubGoweTVlM3VwZ2lzNTNud3ZtIn0.KZ8KK9l70omjXbEkkbHGsQ
+ - PRIVATE_KEY_PASSPHRASE=a7dsf78sadg87ad87sfagsadg78
+ - NEO4J_URI=bolt://localhost:7687
+ - NEO4J_apoc_import_file_enabled=true
+ - NEO4J_AUTH=none
+ - "SSH_USERNAME=${SSH_USERNAME}"
+ - "SSH_HOST=${SSH_HOST}"
+ - "SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY}"
+ - "MONGODB_USERNAME=${MONGODB_USERNAME}"
+ - "MONGODB_PASSWORD=${MONGODB_PASSWORD}"
+ - "MONGODB_AUTH_DB=${MONGODB_AUTH_DB}"
+ - "MONGODB_DATABASE=${MONGODB_DATABASE}"
+ - "UPLOADS_DIRECTORY=${UPLOADS_DIRECTORY}"
+ ports:
+ - 7687:7687
+ - 7474:7474
+
+volumes:
+ uploads:
+ neo4j-data:
+
+networks:
+ hc-network:
diff --git a/backend/db-migration-worker/.ssh/known_hosts b/deployment/legacy-migration/maintenance-worker/known_hosts
similarity index 100%
rename from backend/db-migration-worker/.ssh/known_hosts
rename to deployment/legacy-migration/maintenance-worker/known_hosts
diff --git a/backend/db-migration-worker/migration/mongo/import.sh b/deployment/legacy-migration/maintenance-worker/migration/mongo/import.sh
similarity index 61%
rename from backend/db-migration-worker/migration/mongo/import.sh
rename to deployment/legacy-migration/maintenance-worker/migration/mongo/import.sh
index 7cf3e91e4..328560bfc 100755
--- a/backend/db-migration-worker/migration/mongo/import.sh
+++ b/deployment/legacy-migration/maintenance-worker/migration/mongo/import.sh
@@ -9,16 +9,17 @@ echo "MONGODB_DATABASE ${MONGODB_DATABASE}"
echo "MONGODB_AUTH_DB ${MONGODB_AUTH_DB}"
echo "-------------------------------------------------"
-mongo ${MONGODB_DATABASE} --eval "db.dropDatabase();"
-rm -rf /mongo-export/*
+[ -z "$SSH_PRIVATE_KEY" ] || create_private_ssh_key_from_env
+
+rm -rf /tmp/mongo-export/*
+mkdir -p /tmp/mongo-export
ssh -4 -M -S my-ctrl-socket -fnNT -L 27018:localhost:27017 -l ${SSH_USERNAME} ${SSH_HOST}
-mongodump --host localhost -d ${MONGODB_DATABASE} --port 27018 --username ${MONGODB_USERNAME} --password ${MONGODB_PASSWORD} --authenticationDatabase ${MONGODB_AUTH_DB} --gzip --archive=/tmp/mongodump.archive
-mongorestore --gzip --archive=/tmp/mongodump.archive
-ssh -S my-ctrl-socket -O check -l ${SSH_USERNAME} ${SSH_HOST}
-ssh -S my-ctrl-socket -O exit -l ${SSH_USERNAME} ${SSH_HOST}
for collection in "categories" "badges" "users" "contributions" "comments" "follows" "shouts"
do
- mongoexport --db ${MONGODB_DATABASE} --collection $collection --out "/mongo-export/$collection.json"
+ mongoexport --host localhost -d ${MONGODB_DATABASE} --port 27018 --username ${MONGODB_USERNAME} --password ${MONGODB_PASSWORD} --authenticationDatabase ${MONGODB_AUTH_DB} --db ${MONGODB_DATABASE} --collection $collection --out "/tmp/mongo-export/$collection.json"
done
+
+ssh -S my-ctrl-socket -O check -l ${SSH_USERNAME} ${SSH_HOST}
+ssh -S my-ctrl-socket -O exit -l ${SSH_USERNAME} ${SSH_HOST}
diff --git a/backend/db-migration-worker/migration/neo4j/badges.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges.cql
similarity index 75%
rename from backend/db-migration-worker/migration/neo4j/badges.cql
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/badges.cql
index 90e4755b4..f4bf67dda 100644
--- a/backend/db-migration-worker/migration/neo4j/badges.cql
+++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges.cql
@@ -1,4 +1,4 @@
-CALL apoc.load.json('file:/mongo-export/badges.json') YIELD value as badge
+CALL apoc.load.json('file:/tmp/mongo-export/badges.json') YIELD value as badge
MERGE(b:Badge {id: badge._id["$oid"]})
ON CREATE SET
b.key = badge.key,
diff --git a/backend/db-migration-worker/migration/neo4j/categories.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories.cql
similarity index 94%
rename from backend/db-migration-worker/migration/neo4j/categories.cql
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/categories.cql
index a2bf6a352..c22354cbe 100644
--- a/backend/db-migration-worker/migration/neo4j/categories.cql
+++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories.cql
@@ -1,4 +1,4 @@
-CALL apoc.load.json('file:/mongo-export/categories.json') YIELD value as category
+CALL apoc.load.json('file:/tmp/mongo-export/categories.json') YIELD value as category
MERGE(c:Category {id: category._id["$oid"]})
ON CREATE SET
c.name = category.title,
diff --git a/backend/db-migration-worker/migration/neo4j/comments.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments.cql
similarity index 84%
rename from backend/db-migration-worker/migration/neo4j/comments.cql
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/comments.cql
index 6709acbc8..eb645108a 100644
--- a/backend/db-migration-worker/migration/neo4j/comments.cql
+++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments.cql
@@ -1,4 +1,4 @@
-CALL apoc.load.json('file:/mongo-export/comments.json') YIELD value as json
+CALL apoc.load.json('file:/tmp/mongo-export/comments.json') YIELD value as json
MERGE (comment:Comment {id: json._id["$oid"]})
ON CREATE SET
comment.content = json.content,
diff --git a/backend/db-migration-worker/migration/neo4j/contributions.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions.cql
similarity index 89%
rename from backend/db-migration-worker/migration/neo4j/contributions.cql
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions.cql
index 0c7b18959..134c276cf 100644
--- a/backend/db-migration-worker/migration/neo4j/contributions.cql
+++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions.cql
@@ -1,4 +1,4 @@
-CALL apoc.load.json('file:/mongo-export/contributions.json') YIELD value as post
+CALL apoc.load.json('file:/tmp/mongo-export/contributions.json') YIELD value as post
MERGE (p:Post {id: post._id["$oid"]})
ON CREATE SET
p.title = post.title,
diff --git a/backend/db-migration-worker/migration/neo4j/follows.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows.cql
similarity index 55%
rename from backend/db-migration-worker/migration/neo4j/follows.cql
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/follows.cql
index 0dad6a435..6f5416723 100644
--- a/backend/db-migration-worker/migration/neo4j/follows.cql
+++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows.cql
@@ -1,4 +1,4 @@
-CALL apoc.load.json('file:/mongo-export/follows.json') YIELD value as follow
+CALL apoc.load.json('file:/tmp/mongo-export/follows.json') YIELD value as follow
MATCH (u1:User {id: follow.userId}), (u2:User {id: follow.foreignId})
MERGE (u1)-[:FOLLOWS]->(u2)
;
diff --git a/backend/db-migration-worker/migration/neo4j/import.sh b/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh
similarity index 100%
rename from backend/db-migration-worker/migration/neo4j/import.sh
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh
diff --git a/backend/db-migration-worker/migration/neo4j/shouts.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts.cql
similarity index 54%
rename from backend/db-migration-worker/migration/neo4j/shouts.cql
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts.cql
index 60aca50c9..cd72ab66b 100644
--- a/backend/db-migration-worker/migration/neo4j/shouts.cql
+++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts.cql
@@ -1,4 +1,4 @@
-CALL apoc.load.json('file:/mongo-export/shouts.json') YIELD value as shout
+CALL apoc.load.json('file:/tmp/mongo-export/shouts.json') YIELD value as shout
MATCH (u:User {id: shout.userId}), (p:Post {id: shout.foreignId})
MERGE (u)-[:SHOUTED]->(p)
;
diff --git a/backend/db-migration-worker/migration/neo4j/users.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/users.cql
similarity index 87%
rename from backend/db-migration-worker/migration/neo4j/users.cql
rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/users.cql
index 5f87bb273..22eb46882 100644
--- a/backend/db-migration-worker/migration/neo4j/users.cql
+++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/users.cql
@@ -1,4 +1,4 @@
-CALL apoc.load.json('file:/mongo-export/users.json') YIELD value as user
+CALL apoc.load.json('file:/tmp/mongo-export/users.json') YIELD value as user
MERGE(u:User {id: user._id["$oid"]})
ON CREATE SET
u.name = user.name,
diff --git a/deployment/minikube/README.md b/deployment/minikube/README.md
new file mode 100644
index 000000000..e77ddd667
--- /dev/null
+++ b/deployment/minikube/README.md
@@ -0,0 +1,25 @@
+# Minikube
+
+There are many Kubernetes providers, but if you're just getting started, Minikube is a tool that you can use to get your feet wet.
+
+After you [installed Minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/)
+open your minikube dashboard:
+
+```text
+$ minikube dashboard
+```
+
+This will give you an overview. Some of the steps below need some timing to make ressources available to other dependent deployments. Keeping an eye on the dashboard is a great way to check that.
+
+Follow the installation instruction for [Human Connection](../human-connection/README.md).
+If all the pods and services have settled and everything looks green in your
+minikube dashboard, expose the services you want on your host system.
+
+For example:
+
+```text
+$ minikube service nitro-web --namespace=human-connection
+# optionally
+$ minikube service nitro-backend --namespace=human-connection
+```
+
diff --git a/deployment/secrets.template.yaml b/deployment/secrets.template.yaml
index ac56b7aa1..8f18dbf46 100644
--- a/deployment/secrets.template.yaml
+++ b/deployment/secrets.template.yaml
@@ -4,6 +4,7 @@ data:
JWT_SECRET: "Yi8mJjdiNzhCRiZmdi9WZA=="
MONGODB_PASSWORD: "TU9OR09EQl9QQVNTV09SRA=="
PRIVATE_KEY_PASSPHRASE: "YTdkc2Y3OHNhZGc4N2FkODdzZmFnc2FkZzc4"
+ MAPBOX_TOKEN: "cGsuZXlKMUlqb2lhSFZ0WVc0dFkyOXVibVZqZEdsdmJpSXNJbUVpT2lKamFqbDBjbkJ1Ykdvd2VUVmxNM1Z3WjJsek5UTnVkM1p0SW4wLktaOEtLOWw3MG9talhiRWtrYkhHc1EK"
metadata:
name: human-connection
namespace: human-connection
diff --git a/deployment/volumes/README.md b/deployment/volumes/README.md
new file mode 100644
index 000000000..b838794d5
--- /dev/null
+++ b/deployment/volumes/README.md
@@ -0,0 +1,42 @@
+# Persistent Volumes
+
+At the moment, the application needs two persistent volumes:
+
+* The `/data/` folder where `neo4j` stores its database and
+* the folder `/nitro-backend/public/uploads` where the backend stores uploads.
+
+As a matter of precaution, the persistent volume claims that setup these volumes
+live in a separate folder. You don't want to accidently loose all your data in
+your database by running `kubectl delete -f human-connection/`, do you?
+
+## Create Persistent Volume Claims
+
+Run the following:
+```sh
+# in folder deployments/
+$ kubectl apply -f volumes
+persistentvolumeclaim/neo4j-data-claim created
+persistentvolumeclaim/uploads-claim created
+```
+
+## Change Reclaim Policy
+
+We recommend to change the `ReclaimPolicy`, so if you delete the persistent
+volume claims, the associated volumes will be released, not deleted:
+
+```sh
+$ kubectl --namespace=human-connection get pv
+
+NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
+pvc-bd02a715-66d0-11e9-be52-ba9c337f4551 1Gi RWO Delete Bound human-connection/neo4j-data-claim do-block-storage 4m24s
+pvc-bd208086-66d0-11e9-be52-ba9c337f4551 2Gi RWO Delete Bound human-connection/uploads-claim do-block-storage 4m12s
+```
+
+Get the volume id from above, then change `ReclaimPolicy` with:
+```sh
+kubectl patch pv -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
+
+# in the above example
+kubectl patch pv pvc-bd02a715-66d0-11e9-be52-ba9c337f4551 -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
+kubectl patch pv pvc-bd208086-66d0-11e9-be52-ba9c337f4551 -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
+```
diff --git a/deployment/legacy-migration/volume-claim-mongo-export.yaml b/deployment/volumes/neo4j-data.yaml
similarity index 86%
rename from deployment/legacy-migration/volume-claim-mongo-export.yaml
rename to deployment/volumes/neo4j-data.yaml
index 106ef4736..f077be933 100644
--- a/deployment/legacy-migration/volume-claim-mongo-export.yaml
+++ b/deployment/volumes/neo4j-data.yaml
@@ -2,7 +2,7 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
- name: mongo-export-claim
+ name: neo4j-data-claim
namespace: human-connection
spec:
accessModes:
diff --git a/deployment/volumes/uploads.yaml b/deployment/volumes/uploads.yaml
new file mode 100644
index 000000000..11a8027e9
--- /dev/null
+++ b/deployment/volumes/uploads.yaml
@@ -0,0 +1,12 @@
+---
+ kind: PersistentVolumeClaim
+ apiVersion: v1
+ metadata:
+ name: uploads-claim
+ namespace: human-connection
+ spec:
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 2Gi
diff --git a/docker-compose.yml b/docker-compose.yml
index a7e7c0802..896d1bef9 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -38,7 +38,7 @@ services:
neo4j:
image: humanconnection/neo4j:latest
build:
- context: backend/neo4j
+ context: neo4j
networks:
- hc-network
diff --git a/backend/neo4j/Dockerfile b/neo4j/Dockerfile
similarity index 90%
rename from backend/neo4j/Dockerfile
rename to neo4j/Dockerfile
index a02d41f38..e94a89431 100644
--- a/backend/neo4j/Dockerfile
+++ b/neo4j/Dockerfile
@@ -1,3 +1,3 @@
-FROM neo4j:3.5.4
+FROM neo4j:3.5.5
RUN wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/3.5.0.1/apoc-3.5.0.1-all.jar -P plugins/
COPY migrate.sh /usr/local/bin/migrate
diff --git a/backend/neo4j/migrate.sh b/neo4j/migrate.sh
similarity index 100%
rename from backend/neo4j/migrate.sh
rename to neo4j/migrate.sh
diff --git a/package.json b/package.json
index 703997ee1..7689e26ac 100644
--- a/package.json
+++ b/package.json
@@ -15,16 +15,19 @@
"cypress:webapp": "cd webapp && cross-env GRAPHQL_URI=http://localhost:4123 yarn run dev",
"cypress:setup": "run-p cypress:backend:* cypress:webapp",
"cypress:run": "cypress run --browser chromium",
- "cypress:open": "cypress open --browser chromium"
+ "cypress:open": "cypress open --browser chromium",
+ "test:jest": "cd webapp && yarn test && cd ../backend && yarn test:jest && codecov"
},
"devDependencies": {
+ "codecov": "^3.3.0",
"cross-env": "^5.2.0",
"cypress": "^3.2.0",
"cypress-cucumber-preprocessor": "^1.11.0",
- "dotenv": "^7.0.0",
+ "cypress-plugin-retries": "^1.2.0",
+ "dotenv": "^8.0.0",
"faker": "^4.1.0",
"graphql-request": "^1.8.2",
- "neo4j-driver": "^1.7.3",
+ "neo4j-driver": "^1.7.4",
"npm-run-all": "^4.1.5"
}
}
diff --git a/webapp/components/Editor/index.vue b/webapp/components/Editor/index.vue
index 5636c3714..5b542b3ce 100644
--- a/webapp/components/Editor/index.vue
+++ b/webapp/components/Editor/index.vue
@@ -154,7 +154,10 @@
-
+
@@ -224,7 +227,7 @@ export default {
new ListItem(),
new Placeholder({
emptyNodeClass: 'is-empty',
- emptyNodeText: 'Schreib etwas inspirerendes…'
+ emptyNodeText: this.$t('editor.placeholder')
}),
new History(),
new Mention({
@@ -445,6 +448,9 @@ export default {
// remove link
command({ href: null })
}
+ },
+ clear() {
+ this.editor.clearContent(true)
}
}
}
diff --git a/webapp/components/Editor/spec.js b/webapp/components/Editor/spec.js
index d6659ef04..3e1784ed7 100644
--- a/webapp/components/Editor/spec.js
+++ b/webapp/components/Editor/spec.js
@@ -9,14 +9,19 @@ localVue.use(Styleguide)
describe('Editor.vue', () => {
let wrapper
let propsData
+ let mocks
beforeEach(() => {
propsData = {}
+ mocks = {
+ $t: () => {}
+ }
})
describe('mount', () => {
let Wrapper = () => {
return (wrapper = mount(Editor, {
+ mocks,
propsData,
localVue,
sync: false,
diff --git a/webapp/components/comments/CommentForm/index.vue b/webapp/components/comments/CommentForm/index.vue
new file mode 100644
index 000000000..d59314e07
--- /dev/null
+++ b/webapp/components/comments/CommentForm/index.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('actions.cancel') }}
+
+
+
+
+ {{ $t('post.comment.submit') }}
+
+
+
+
+
+
+
+
+
diff --git a/webapp/components/comments/CommentList/CommentList.spec.js b/webapp/components/comments/CommentList/CommentList.spec.js
new file mode 100644
index 000000000..6a96f3e19
--- /dev/null
+++ b/webapp/components/comments/CommentList/CommentList.spec.js
@@ -0,0 +1,69 @@
+import { config, mount, createLocalVue } from '@vue/test-utils'
+import CommentList from '.'
+import Empty from '~/components/Empty'
+import Vue from 'vue'
+import Vuex from 'vuex'
+import Filters from '~/plugins/vue-filters'
+import Styleguide from '@human-connection/styleguide'
+
+const localVue = createLocalVue()
+
+localVue.use(Styleguide)
+localVue.use(Vuex)
+localVue.filter('truncate', string => string)
+
+config.stubs['v-popover'] = ''
+config.stubs['nuxt-link'] = ''
+config.stubs['no-ssr'] = ''
+
+describe('CommentList.vue', () => {
+ let mocks
+ let store
+ let wrapper
+ let propsData
+ let data
+
+ propsData = {
+ post: { id: 1 }
+ }
+ store = new Vuex.Store({
+ getters: {
+ 'auth/user': () => {
+ return {}
+ }
+ }
+ })
+ mocks = {
+ $t: jest.fn()
+ }
+ data = () => {
+ return {
+ comments: []
+ }
+ }
+
+ describe('shallowMount', () => {
+ const Wrapper = () => {
+ return mount(CommentList, { store, mocks, localVue, propsData, data })
+ }
+
+ beforeEach(() => {
+ wrapper = Wrapper()
+ wrapper.setData({
+ comments: [{ id: 'c1', contentExcerpt: 'this is a comment' }]
+ })
+ })
+
+ it('displays a message icon when there are no comments to display', () => {
+ expect(Wrapper().findAll(Empty)).toHaveLength(1)
+ })
+
+ it('displays a comments counter', () => {
+ expect(wrapper.find('span.ds-tag').text()).toEqual('1')
+ })
+
+ it('displays comments when there are comments to display', () => {
+ expect(wrapper.find('div#comments').text()).toEqual('this is a comment')
+ })
+ })
+})
diff --git a/webapp/components/comments/CommentList/index.vue b/webapp/components/comments/CommentList/index.vue
new file mode 100644
index 000000000..57b720087
--- /dev/null
+++ b/webapp/components/comments/CommentList/index.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+ {{ comments.length }} Comments
+
+
+
+
+
+
+
+
diff --git a/webapp/docker-compose.yml b/webapp/docker-compose.yml
index 4ce3de926..f20fdf9f9 100644
--- a/webapp/docker-compose.yml
+++ b/webapp/docker-compose.yml
@@ -8,7 +8,6 @@ services:
target: production
ports:
- 3000:3000
- - 8080:8080
networks:
- hc-network
environment:
diff --git a/webapp/graphql/CommentQuery.js b/webapp/graphql/CommentQuery.js
new file mode 100644
index 000000000..0e61a8a6c
--- /dev/null
+++ b/webapp/graphql/CommentQuery.js
@@ -0,0 +1,35 @@
+import gql from 'graphql-tag'
+
+export default app => {
+ const lang = app.$i18n.locale().toUpperCase()
+ return gql(`
+ query Comment($postId: ID) {
+ Comment(postId: $postId) {
+ id
+ contentExcerpt
+ createdAt
+ author {
+ id
+ slug
+ name
+ avatar
+ disabled
+ deleted
+ shoutedCount
+ contributionsCount
+ commentsCount
+ followedByCount
+ followedByCurrentUser
+ location {
+ name: name${lang}
+ }
+ badges {
+ id
+ key
+ icon
+ }
+ }
+ }
+ }
+ `)
+}
diff --git a/webapp/graphql/PostCommentsQuery.js b/webapp/graphql/PostCommentsQuery.js
new file mode 100644
index 000000000..c0ab1320a
--- /dev/null
+++ b/webapp/graphql/PostCommentsQuery.js
@@ -0,0 +1,39 @@
+import gql from 'graphql-tag'
+
+export default app => {
+ const lang = app.$i18n.locale().toUpperCase()
+ return gql(`
+ query Post($slug: String!) {
+ Post(slug: $slug) {
+ comments(orderBy: createdAt_asc) {
+ id
+ contentExcerpt
+ createdAt
+ disabled
+ deleted
+ author {
+ id
+ slug
+ name
+ avatar
+ disabled
+ deleted
+ shoutedCount
+ contributionsCount
+ commentsCount
+ followedByCount
+ followedByCurrentUser
+ location {
+ name: name${lang}
+ }
+ badges {
+ id
+ key
+ icon
+ }
+ }
+ }
+ }
+ }
+ `)
+}
diff --git a/webapp/locales/de.json b/webapp/locales/de.json
index 80863ad47..08fcf3434 100644
--- a/webapp/locales/de.json
+++ b/webapp/locales/de.json
@@ -6,8 +6,13 @@
"email": "Deine E-Mail",
"password": "Dein Passwort",
"moreInfo": "Was ist Human Connection?",
+ "moreInfoURL": "https://human-connection.org",
+ "moreInfoHint": "zur Präsentationsseite",
"hello": "Hallo"
},
+ "editor": {
+ "placeholder": "Schreib etwas Inspirierendes..."
+ },
"profile": {
"name": "Mein Profil",
"memberSince": "Mitglied seit",
@@ -114,6 +119,10 @@
},
"takeAction": {
"name": "Aktiv werden"
+ },
+ "comment": {
+ "submit": "Kommentiere",
+ "submitted": "Kommentar Gesendet"
}
},
"quotes": {
diff --git a/webapp/locales/en.json b/webapp/locales/en.json
index 75f7cfae8..a1351ca1d 100644
--- a/webapp/locales/en.json
+++ b/webapp/locales/en.json
@@ -6,8 +6,13 @@
"email": "Your Email",
"password": "Your Password",
"moreInfo": "What is Human Connection?",
+ "moreInfoURL": "https://human-connection.org/en/",
+ "moreInfoHint": "to the presentation page",
"hello": "Hello"
},
+ "editor": {
+ "placeholder": "Leave your inspirational thoughts..."
+ },
"profile": {
"name": "My Profile",
"memberSince": "Member since",
@@ -114,6 +119,10 @@
},
"takeAction": {
"name": "Take action"
+ },
+ "comment": {
+ "submit": "Comment",
+ "submitted": "Comment Submitted"
}
},
"quotes": {
diff --git a/webapp/package.json b/webapp/package.json
index 4e3305ca2..cbcb8dd1b 100644
--- a/webapp/package.json
+++ b/webapp/package.json
@@ -17,6 +17,8 @@
},
"jest": {
"verbose": true,
+ "collectCoverage": true,
+ "coverageReporters": ["text", "lcov"],
"moduleFileExtensions": [
"js",
"json",
@@ -47,40 +49,40 @@
"graphql": "~14.2.1",
"jsonwebtoken": "~8.5.1",
"linkify-it": "~2.1.0",
- "nuxt": "~2.6.2",
+ "nuxt": "~2.6.3",
"nuxt-env": "~0.1.0",
"stack-utils": "^1.0.2",
"string-hash": "^1.1.3",
- "tiptap": "^1.14.0",
- "tiptap-extensions": "^1.15.0",
- "v-tooltip": "~2.0.1",
+ "tiptap": "^1.18.0",
+ "tiptap-extensions": "^1.18.1",
+ "v-tooltip": "~2.0.2",
"vue-count-to": "~1.0.13",
"vue-izitoast": "1.1.2",
"vue-sweetalert-icons": "~3.2.0",
"vuex-i18n": "~1.11.0"
},
"devDependencies": {
- "@babel/core": "~7.4.3",
- "@babel/preset-env": "~7.4.3",
- "@vue/cli-shared-utils": "~3.6.0",
+ "@babel/core": "~7.4.4",
+ "@babel/preset-env": "~7.4.4",
+ "@vue/cli-shared-utils": "~3.7.0",
"@vue/eslint-config-prettier": "~4.0.1",
"@vue/server-test-utils": "~1.0.0-beta.29",
"@vue/test-utils": "~1.0.0-beta.29",
"babel-core": "~7.0.0-bridge.0",
"babel-eslint": "~10.0.1",
- "babel-jest": "~24.7.1",
+ "babel-jest": "~24.8.0",
"eslint": "~5.16.0",
- "eslint-config-prettier": "~4.1.0",
+ "eslint-config-prettier": "~4.2.0",
"eslint-loader": "~2.1.2",
"eslint-plugin-prettier": "~3.0.1",
"eslint-plugin-vue": "~5.2.2",
"fuse.js": "^3.4.4",
- "jest": "~24.7.1",
- "node-sass": "~4.11.0",
- "nodemon": "~1.18.11",
+ "jest": "~24.8.0",
+ "node-sass": "~4.12.0",
+ "nodemon": "~1.19.0",
"prettier": "~1.14.3",
"sass-loader": "~7.1.0",
- "tippy.js": "^4.2.1",
+ "tippy.js": "^4.3.0",
"vue-jest": "~3.0.4",
"vue-svg-loader": "~0.12.0"
}
diff --git a/webapp/pages/login.vue b/webapp/pages/login.vue
index 846191c40..92269143b 100644
--- a/webapp/pages/login.vue
+++ b/webapp/pages/login.vue
@@ -79,8 +79,8 @@
{{ $t('login.moreInfo') }}
diff --git a/webapp/pages/post/_id/_slug/index.vue b/webapp/pages/post/_id/_slug/index.vue
index b72faa850..87538eb6d 100644
--- a/webapp/pages/post/_id/_slug/index.vue
+++ b/webapp/pages/post/_id/_slug/index.vue
@@ -96,34 +96,9 @@
-
-
-
- {{ post.commentsCount }} Comments
-
-
+
-
-
+
@@ -137,8 +112,8 @@ import HcTag from '~/components/Tag'
import ContentMenu from '~/components/ContentMenu'
import HcUser from '~/components/User'
import HcShoutButton from '~/components/ShoutButton.vue'
-import HcEmpty from '~/components/Empty.vue'
-import Comment from '~/components/Comment.vue'
+import HcCommentForm from '~/components/comments/CommentForm'
+import HcCommentList from '~/components/comments/CommentList'
export default {
transition: {
@@ -150,9 +125,9 @@ export default {
HcCategory,
HcUser,
HcShoutButton,
- HcEmpty,
- Comment,
- ContentMenu
+ ContentMenu,
+ HcCommentForm,
+ HcCommentList
},
head() {
return {
diff --git a/webapp/pages/profile/_id/_slug.vue b/webapp/pages/profile/_id/_slug.vue
index 8a216fe37..ecb0baa9d 100644
--- a/webapp/pages/profile/_id/_slug.vue
+++ b/webapp/pages/profile/_id/_slug.vue
@@ -26,6 +26,7 @@
resource-type="user"
:resource="user"
:is-owner="myProfile"
+ class="user-content-menu"
/>
diff --git a/webapp/yarn.lock b/webapp/yarn.lock
index ecc1955e6..d1aa462e7 100644
--- a/webapp/yarn.lock
+++ b/webapp/yarn.lock
@@ -21,18 +21,18 @@
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@^7.1.0", "@babel/core@^7.4.3", "@babel/core@~7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f"
- integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA==
+"@babel/core@^7.1.0", "@babel/core@^7.4.3", "@babel/core@~7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.4.tgz#84055750b05fcd50f9915a826b44fa347a825250"
+ integrity sha512-lQgGX3FPRgbz2SKmhMtYgJvVzGZrmjaF4apZ2bLwofAKiSjxU0drPh4S/VasyYXwaTs+A1gvQ45BN8SQJzHsQQ==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.0"
- "@babel/helpers" "^7.4.3"
- "@babel/parser" "^7.4.3"
- "@babel/template" "^7.4.0"
- "@babel/traverse" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/generator" "^7.4.4"
+ "@babel/helpers" "^7.4.4"
+ "@babel/parser" "^7.4.4"
+ "@babel/template" "^7.4.4"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
convert-source-map "^1.1.0"
debug "^4.1.0"
json5 "^2.1.0"
@@ -41,12 +41,12 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.0.0", "@babel/generator@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196"
- integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==
+"@babel/generator@^7.0.0", "@babel/generator@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041"
+ integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==
dependencies:
- "@babel/types" "^7.4.0"
+ "@babel/types" "^7.4.4"
jsesc "^2.5.1"
lodash "^4.17.11"
source-map "^0.5.0"
@@ -67,14 +67,14 @@
"@babel/helper-explode-assignable-expression" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-call-delegate@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz#f308eabe0d44f451217853aedf4dea5f6fe3294f"
- integrity sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ==
+"@babel/helper-call-delegate@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
+ integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
dependencies:
- "@babel/helper-hoist-variables" "^7.4.0"
- "@babel/traverse" "^7.4.0"
- "@babel/types" "^7.4.0"
+ "@babel/helper-hoist-variables" "^7.4.4"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
"@babel/helper-create-class-features-plugin@^7.4.0":
version "7.4.3"
@@ -88,13 +88,13 @@
"@babel/helper-replace-supers" "^7.4.0"
"@babel/helper-split-export-declaration" "^7.4.0"
-"@babel/helper-define-map@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz#cbfd8c1b2f12708e262c26f600cd16ed6a3bc6c9"
- integrity sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA==
+"@babel/helper-define-map@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a"
+ integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==
dependencies:
"@babel/helper-function-name" "^7.1.0"
- "@babel/types" "^7.4.0"
+ "@babel/types" "^7.4.4"
lodash "^4.17.11"
"@babel/helper-explode-assignable-expression@^7.1.0":
@@ -121,12 +121,12 @@
dependencies:
"@babel/types" "^7.0.0"
-"@babel/helper-hoist-variables@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz#25b621399ae229869329730a62015bbeb0a6fbd6"
- integrity sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw==
+"@babel/helper-hoist-variables@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
+ integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
dependencies:
- "@babel/types" "^7.4.0"
+ "@babel/types" "^7.4.4"
"@babel/helper-member-expression-to-functions@^7.0.0":
version "7.0.0"
@@ -154,16 +154,16 @@
"@babel/types" "^7.2.2"
lodash "^4.17.10"
-"@babel/helper-module-transforms@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.3.tgz#b1e357a1c49e58a47211a6853abb8e2aaefeb064"
- integrity sha512-H88T9IySZW25anu5uqyaC1DaQre7ofM+joZtAaO2F8NBdFfupH0SZ4gKjgSFVcvtx/aAirqA9L9Clio2heYbZA==
+"@babel/helper-module-transforms@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8"
+ integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.0.0"
- "@babel/template" "^7.2.2"
- "@babel/types" "^7.2.2"
+ "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/template" "^7.4.4"
+ "@babel/types" "^7.4.4"
lodash "^4.17.11"
"@babel/helper-optimise-call-expression@^7.0.0":
@@ -185,10 +185,10 @@
dependencies:
lodash "^4.17.10"
-"@babel/helper-regex@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.3.tgz#9d6e5428bfd638ab53b37ae4ec8caf0477495147"
- integrity sha512-hnoq5u96pLCfgjXuj8ZLX3QQ+6nAulS+zSgi6HulUwFbEruRAKwbGLU5OvXkE14L8XW6XsQEKsIDfgthKLRAyA==
+"@babel/helper-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2"
+ integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==
dependencies:
lodash "^4.17.11"
@@ -223,6 +223,16 @@
"@babel/traverse" "^7.4.0"
"@babel/types" "^7.4.0"
+"@babel/helper-replace-supers@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27"
+ integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.0.0"
+ "@babel/helper-optimise-call-expression" "^7.0.0"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
+
"@babel/helper-simple-access@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
@@ -245,6 +255,13 @@
dependencies:
"@babel/types" "^7.4.0"
+"@babel/helper-split-export-declaration@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
+ integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
+ dependencies:
+ "@babel/types" "^7.4.4"
+
"@babel/helper-wrap-function@^7.1.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
@@ -255,14 +272,14 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.2.0"
-"@babel/helpers@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.3.tgz#7b1d354363494b31cb9a2417ae86af32b7853a3b"
- integrity sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q==
+"@babel/helpers@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5"
+ integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==
dependencies:
- "@babel/template" "^7.4.0"
- "@babel/traverse" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/template" "^7.4.4"
+ "@babel/traverse" "^7.4.4"
+ "@babel/types" "^7.4.4"
"@babel/highlight@^7.0.0":
version "7.0.0"
@@ -273,10 +290,10 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.0", "@babel/parser@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b"
- integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ==
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6"
+ integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==
"@babel/plugin-proposal-async-generator-functions@^7.2.0":
version "7.2.0"
@@ -312,10 +329,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-json-strings" "^7.2.0"
-"@babel/plugin-proposal-object-rest-spread@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.3.tgz#be27cd416eceeba84141305b93c282f5de23bbb4"
- integrity sha512-xC//6DNSSHVjq8O2ge0dyYlhshsH4T7XdCVoxbi5HzLYWfsC5ooFlJjrXk8RcAT+hjHAK9UjBXdylzSoDK3t4g==
+"@babel/plugin-proposal-object-rest-spread@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005"
+ integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
@@ -328,13 +345,13 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
-"@babel/plugin-proposal-unicode-property-regex@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz#202d91ee977d760ef83f4f416b280d568be84623"
- integrity sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w==
+"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
+ integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.0.0"
+ "@babel/helper-regex" "^7.4.4"
regexpu-core "^4.5.4"
"@babel/plugin-syntax-async-generators@^7.2.0":
@@ -393,10 +410,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-async-to-generator@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz#234fe3e458dce95865c0d152d256119b237834b0"
- integrity sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g==
+"@babel/plugin-transform-async-to-generator@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894"
+ integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -409,26 +426,26 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-block-scoping@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz#164df3bb41e3deb954c4ca32ffa9fcaa56d30bcb"
- integrity sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ==
+"@babel/plugin-transform-block-scoping@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d"
+ integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
lodash "^4.17.11"
-"@babel/plugin-transform-classes@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.3.tgz#adc7a1137ab4287a555d429cc56ecde8f40c062c"
- integrity sha512-PUaIKyFUDtG6jF5DUJOfkBdwAS/kFFV3XFk7Nn0a6vR7ZT8jYw5cGtIlat77wcnd0C6ViGqo/wyNf4ZHytF/nQ==
+"@babel/plugin-transform-classes@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6"
+ integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-define-map" "^7.4.0"
+ "@babel/helper-define-map" "^7.4.4"
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-optimise-call-expression" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.4.0"
- "@babel/helper-split-export-declaration" "^7.4.0"
+ "@babel/helper-replace-supers" "^7.4.4"
+ "@babel/helper-split-export-declaration" "^7.4.4"
globals "^11.1.0"
"@babel/plugin-transform-computed-properties@^7.2.0":
@@ -438,20 +455,20 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-destructuring@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.3.tgz#1a95f5ca2bf2f91ef0648d5de38a8d472da4350f"
- integrity sha512-rVTLLZpydDFDyN4qnXdzwoVpk1oaXHIvPEOkOLyr88o7oHxVc/LyrnDx+amuBWGOwUb7D1s/uLsKBNTx08htZg==
+"@babel/plugin-transform-destructuring@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f"
+ integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-dotall-regex@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.3.tgz#fceff1c16d00c53d32d980448606f812cd6d02bf"
- integrity sha512-9Arc2I0AGynzXRR/oPdSALv3k0rM38IMFyto7kOCwb5F9sLUt2Ykdo3V9yUPR+Bgr4kb6bVEyLkPEiBhzcTeoA==
+"@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3"
+ integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.3"
+ "@babel/helper-regex" "^7.4.4"
regexpu-core "^4.5.4"
"@babel/plugin-transform-duplicate-keys@^7.2.0":
@@ -469,17 +486,17 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-for-of@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.3.tgz#c36ff40d893f2b8352202a2558824f70cd75e9fe"
- integrity sha512-UselcZPwVWNSURnqcfpnxtMehrb8wjXYOimlYQPBnup/Zld426YzIhNEvuRsEWVHfESIECGrxoI6L5QqzuLH5Q==
+"@babel/plugin-transform-for-of@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
+ integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-function-name@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.3.tgz#130c27ec7fb4f0cba30e958989449e5ec8d22bbd"
- integrity sha512-uT5J/3qI/8vACBR9I1GlAuU/JqBtWdfCrynuOkrWG6nCDieZd5przB1vfP59FRHBZQ9DC2IUfqr/xKqzOD5x0A==
+"@babel/plugin-transform-function-name@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
+ integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
dependencies:
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -506,21 +523,21 @@
"@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-commonjs@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.3.tgz#3917f260463ac08f8896aa5bd54403f6e1fed165"
- integrity sha512-sMP4JqOTbMJMimqsSZwYWsMjppD+KRyDIUVW91pd7td0dZKAvPmhCaxhOzkzLParKwgQc7bdL9UNv+rpJB0HfA==
+"@babel/plugin-transform-modules-commonjs@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e"
+ integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==
dependencies:
- "@babel/helper-module-transforms" "^7.4.3"
+ "@babel/helper-module-transforms" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
-"@babel/plugin-transform-modules-systemjs@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz#c2495e55528135797bc816f5d50f851698c586a1"
- integrity sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ==
+"@babel/plugin-transform-modules-systemjs@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405"
+ integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==
dependencies:
- "@babel/helper-hoist-variables" "^7.4.0"
+ "@babel/helper-hoist-variables" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-modules-umd@^7.2.0":
@@ -531,17 +548,17 @@
"@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.4.2":
- version "7.4.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz#800391136d6cbcc80728dbdba3c1c6e46f86c12e"
- integrity sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.4.tgz#5611d96d987dfc4a3a81c4383bb173361037d68d"
+ integrity sha512-Ki+Y9nXBlKfhD+LXaRS7v95TtTGYRAf9Y1rTDiE75zf8YQz4GDaWRXosMfJBXxnk88mGFjWdCRIeqDbon7spYA==
dependencies:
regexp-tree "^0.1.0"
-"@babel/plugin-transform-new-target@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz#67658a1d944edb53c8d4fa3004473a0dd7838150"
- integrity sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw==
+"@babel/plugin-transform-new-target@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5"
+ integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -553,12 +570,12 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-replace-supers" "^7.1.0"
-"@babel/plugin-transform-parameters@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.3.tgz#e5ff62929fdf4cf93e58badb5e2430303003800d"
- integrity sha512-ULJYC2Vnw96/zdotCZkMGr2QVfKpIT/4/K+xWWY0MbOJyMZuk660BGkr3bEKWQrrciwz6xpmft39nA4BF7hJuA==
+"@babel/plugin-transform-parameters@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
+ integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
dependencies:
- "@babel/helper-call-delegate" "^7.4.0"
+ "@babel/helper-call-delegate" "^7.4.4"
"@babel/helper-get-function-arity" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -569,10 +586,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-regenerator@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.3.tgz#2a697af96887e2bbf5d303ab0221d139de5e739c"
- integrity sha512-kEzotPuOpv6/iSlHroCDydPkKYw7tiJGKlmYp6iJn4a6C/+b2FdttlJsLKYxolYHgotTJ5G5UY5h0qey5ka3+A==
+"@babel/plugin-transform-regenerator@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.4.tgz#5b4da4df79391895fca9e28f99e87e22cfc02072"
+ integrity sha512-Zz3w+pX1SI0KMIiqshFZkwnVGUhDZzpX2vtPzfJBKQQq8WsP/Xy9DNdELWivxcKOCX/Pywge4SiEaPaLtoDT4g==
dependencies:
regenerator-transform "^0.13.4"
@@ -615,10 +632,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
-"@babel/plugin-transform-template-literals@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b"
- integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==
+"@babel/plugin-transform-template-literals@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
+ integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -630,63 +647,63 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-unicode-regex@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.3.tgz#3868703fc0e8f443dda65654b298df576f7b863b"
- integrity sha512-lnSNgkVjL8EMtnE8eSS7t2ku8qvKH3eqNf/IwIfnSPUqzgqYmRwzdsQWv4mNQAN9Nuo6Gz1Y0a4CSmdpu1Pp6g==
+"@babel/plugin-transform-unicode-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f"
+ integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.3"
+ "@babel/helper-regex" "^7.4.4"
regexpu-core "^4.5.4"
-"@babel/preset-env@^7.4.3", "@babel/preset-env@~7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.3.tgz#e71e16e123dc0fbf65a52cbcbcefd072fbd02880"
- integrity sha512-FYbZdV12yHdJU5Z70cEg0f6lvtpZ8jFSDakTm7WXeJbLXh4R0ztGEu/SW7G1nJ2ZvKwDhz8YrbA84eYyprmGqw==
+"@babel/preset-env@^7.4.3", "@babel/preset-env@~7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.4.tgz#b6f6825bfb27b3e1394ca3de4f926482722c1d6f"
+ integrity sha512-FU1H+ACWqZZqfw1x2G1tgtSSYSfxJLkpaUQL37CenULFARDo+h4xJoVHzRoHbK+85ViLciuI7ME4WTIhFRBBlw==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-async-generator-functions" "^7.2.0"
"@babel/plugin-proposal-json-strings" "^7.2.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.4.3"
+ "@babel/plugin-proposal-object-rest-spread" "^7.4.4"
"@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.4.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
"@babel/plugin-syntax-async-generators" "^7.2.0"
"@babel/plugin-syntax-json-strings" "^7.2.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
"@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
"@babel/plugin-transform-arrow-functions" "^7.2.0"
- "@babel/plugin-transform-async-to-generator" "^7.4.0"
+ "@babel/plugin-transform-async-to-generator" "^7.4.4"
"@babel/plugin-transform-block-scoped-functions" "^7.2.0"
- "@babel/plugin-transform-block-scoping" "^7.4.0"
- "@babel/plugin-transform-classes" "^7.4.3"
+ "@babel/plugin-transform-block-scoping" "^7.4.4"
+ "@babel/plugin-transform-classes" "^7.4.4"
"@babel/plugin-transform-computed-properties" "^7.2.0"
- "@babel/plugin-transform-destructuring" "^7.4.3"
- "@babel/plugin-transform-dotall-regex" "^7.4.3"
+ "@babel/plugin-transform-destructuring" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
"@babel/plugin-transform-duplicate-keys" "^7.2.0"
"@babel/plugin-transform-exponentiation-operator" "^7.2.0"
- "@babel/plugin-transform-for-of" "^7.4.3"
- "@babel/plugin-transform-function-name" "^7.4.3"
+ "@babel/plugin-transform-for-of" "^7.4.4"
+ "@babel/plugin-transform-function-name" "^7.4.4"
"@babel/plugin-transform-literals" "^7.2.0"
"@babel/plugin-transform-member-expression-literals" "^7.2.0"
"@babel/plugin-transform-modules-amd" "^7.2.0"
- "@babel/plugin-transform-modules-commonjs" "^7.4.3"
- "@babel/plugin-transform-modules-systemjs" "^7.4.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.4.4"
+ "@babel/plugin-transform-modules-systemjs" "^7.4.4"
"@babel/plugin-transform-modules-umd" "^7.2.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2"
- "@babel/plugin-transform-new-target" "^7.4.0"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.4"
+ "@babel/plugin-transform-new-target" "^7.4.4"
"@babel/plugin-transform-object-super" "^7.2.0"
- "@babel/plugin-transform-parameters" "^7.4.3"
+ "@babel/plugin-transform-parameters" "^7.4.4"
"@babel/plugin-transform-property-literals" "^7.2.0"
- "@babel/plugin-transform-regenerator" "^7.4.3"
+ "@babel/plugin-transform-regenerator" "^7.4.4"
"@babel/plugin-transform-reserved-words" "^7.2.0"
"@babel/plugin-transform-shorthand-properties" "^7.2.0"
"@babel/plugin-transform-spread" "^7.2.0"
"@babel/plugin-transform-sticky-regex" "^7.2.0"
- "@babel/plugin-transform-template-literals" "^7.2.0"
+ "@babel/plugin-transform-template-literals" "^7.4.4"
"@babel/plugin-transform-typeof-symbol" "^7.2.0"
- "@babel/plugin-transform-unicode-regex" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/plugin-transform-unicode-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
browserslist "^4.5.2"
core-js-compat "^3.0.0"
invariant "^2.2.2"
@@ -700,34 +717,34 @@
dependencies:
regenerator-runtime "^0.13.2"
-"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b"
- integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==
+"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237"
+ integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.4.0"
- "@babel/types" "^7.4.0"
+ "@babel/parser" "^7.4.4"
+ "@babel/types" "^7.4.4"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.2.3", "@babel/traverse@^7.4.0", "@babel/traverse@^7.4.3":
- version "7.4.3"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84"
- integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.2.3", "@babel/traverse@^7.4.0", "@babel/traverse@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8"
+ integrity sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.0"
+ "@babel/generator" "^7.4.4"
"@babel/helper-function-name" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.0"
- "@babel/parser" "^7.4.3"
- "@babel/types" "^7.4.0"
+ "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/parser" "^7.4.4"
+ "@babel/types" "^7.4.4"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.11"
-"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0":
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c"
- integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==
+"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0"
+ integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==
dependencies:
esutils "^2.0.2"
lodash "^4.17.11"
@@ -762,32 +779,32 @@
chalk "^2.0.1"
slash "^2.0.0"
-"@jest/core@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.7.1.tgz#6707f50db238d0c5988860680e2e414df0032024"
- integrity sha512-ivlZ8HX/FOASfHcb5DJpSPFps8ydfUYzLZfgFFqjkLijYysnIEOieg72YRhO4ZUB32xu40hsSMmaw+IGYeKONA==
+"@jest/core@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b"
+ integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/reporters" "^24.7.1"
- "@jest/test-result" "^24.7.1"
- "@jest/transform" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/reporters" "^24.8.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/transform" "^24.8.0"
+ "@jest/types" "^24.8.0"
ansi-escapes "^3.0.0"
chalk "^2.0.1"
exit "^0.1.2"
graceful-fs "^4.1.15"
- jest-changed-files "^24.7.0"
- jest-config "^24.7.1"
- jest-haste-map "^24.7.1"
- jest-message-util "^24.7.1"
+ jest-changed-files "^24.8.0"
+ jest-config "^24.8.0"
+ jest-haste-map "^24.8.0"
+ jest-message-util "^24.8.0"
jest-regex-util "^24.3.0"
- jest-resolve-dependencies "^24.7.1"
- jest-runner "^24.7.1"
- jest-runtime "^24.7.1"
- jest-snapshot "^24.7.1"
- jest-util "^24.7.1"
- jest-validate "^24.7.0"
- jest-watcher "^24.7.1"
+ jest-resolve-dependencies "^24.8.0"
+ jest-runner "^24.8.0"
+ jest-runtime "^24.8.0"
+ jest-snapshot "^24.8.0"
+ jest-util "^24.8.0"
+ jest-validate "^24.8.0"
+ jest-watcher "^24.8.0"
micromatch "^3.1.10"
p-each-series "^1.0.0"
pirates "^4.0.1"
@@ -795,45 +812,46 @@
rimraf "^2.5.4"
strip-ansi "^5.0.0"
-"@jest/environment@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.7.1.tgz#9b9196bc737561f67ac07817d4c5ece772e33135"
- integrity sha512-wmcTTYc4/KqA+U5h1zQd5FXXynfa7VGP2NfF+c6QeGJ7c+2nStgh65RQWNX62SC716dTtqheTRrZl0j+54oGHw==
+"@jest/environment@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac"
+ integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw==
dependencies:
- "@jest/fake-timers" "^24.7.1"
- "@jest/transform" "^24.7.1"
- "@jest/types" "^24.7.0"
- jest-mock "^24.7.0"
+ "@jest/fake-timers" "^24.8.0"
+ "@jest/transform" "^24.8.0"
+ "@jest/types" "^24.8.0"
+ jest-mock "^24.8.0"
-"@jest/fake-timers@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.7.1.tgz#56e5d09bdec09ee81050eaff2794b26c71d19db2"
- integrity sha512-4vSQJDKfR2jScOe12L9282uiwuwQv9Lk7mgrCSZHA9evB9efB/qx8i0KJxsAKtp8fgJYBJdYY7ZU6u3F4/pyjA==
+"@jest/fake-timers@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1"
+ integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw==
dependencies:
- "@jest/types" "^24.7.0"
- jest-message-util "^24.7.1"
- jest-mock "^24.7.0"
+ "@jest/types" "^24.8.0"
+ jest-message-util "^24.8.0"
+ jest-mock "^24.8.0"
-"@jest/reporters@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.7.1.tgz#38ac0b096cd691bbbe3051ddc25988d42e37773a"
- integrity sha512-bO+WYNwHLNhrjB9EbPL4kX/mCCG4ZhhfWmO3m4FSpbgr7N83MFejayz30kKjgqr7smLyeaRFCBQMbXpUgnhAJw==
+"@jest/reporters@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729"
+ integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw==
dependencies:
- "@jest/environment" "^24.7.1"
- "@jest/test-result" "^24.7.1"
- "@jest/transform" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/environment" "^24.8.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/transform" "^24.8.0"
+ "@jest/types" "^24.8.0"
chalk "^2.0.1"
exit "^0.1.2"
glob "^7.1.2"
- istanbul-api "^2.1.1"
istanbul-lib-coverage "^2.0.2"
istanbul-lib-instrument "^3.0.1"
+ istanbul-lib-report "^2.0.4"
istanbul-lib-source-maps "^3.0.1"
- jest-haste-map "^24.7.1"
- jest-resolve "^24.7.1"
- jest-runtime "^24.7.1"
- jest-util "^24.7.1"
+ istanbul-reports "^2.1.1"
+ jest-haste-map "^24.8.0"
+ jest-resolve "^24.8.0"
+ jest-runtime "^24.8.0"
+ jest-util "^24.8.0"
jest-worker "^24.6.0"
node-notifier "^5.2.1"
slash "^2.0.0"
@@ -849,58 +867,59 @@
graceful-fs "^4.1.15"
source-map "^0.6.0"
-"@jest/test-result@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.7.1.tgz#19eacdb29a114300aed24db651e5d975f08b6bbe"
- integrity sha512-3U7wITxstdEc2HMfBX7Yx3JZgiNBubwDqQMh+BXmZXHa3G13YWF3p6cK+5g0hGkN3iufg/vGPl3hLxQXD74Npg==
+"@jest/test-result@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3"
+ integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
"@types/istanbul-lib-coverage" "^2.0.0"
-"@jest/test-sequencer@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.7.1.tgz#9c18e428e1ad945fa74f6233a9d35745ca0e63e0"
- integrity sha512-84HQkCpVZI/G1zq53gHJvSmhUer4aMYp9tTaffW28Ih5OxfCg8hGr3nTSbL1OhVDRrFZwvF+/R9gY6JRkDUpUA==
+"@jest/test-sequencer@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b"
+ integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg==
dependencies:
- "@jest/test-result" "^24.7.1"
- jest-haste-map "^24.7.1"
- jest-runner "^24.7.1"
- jest-runtime "^24.7.1"
+ "@jest/test-result" "^24.8.0"
+ jest-haste-map "^24.8.0"
+ jest-runner "^24.8.0"
+ jest-runtime "^24.8.0"
-"@jest/transform@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.7.1.tgz#872318f125bcfab2de11f53b465ab1aa780789c2"
- integrity sha512-EsOUqP9ULuJ66IkZQhI5LufCHlTbi7hrcllRMUEV/tOgqBVQi93+9qEvkX0n8mYpVXQ8VjwmICeRgg58mrtIEw==
+"@jest/transform@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5"
+ integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
babel-plugin-istanbul "^5.1.0"
chalk "^2.0.1"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.1.15"
- jest-haste-map "^24.7.1"
+ jest-haste-map "^24.8.0"
jest-regex-util "^24.3.0"
- jest-util "^24.7.1"
+ jest-util "^24.8.0"
micromatch "^3.1.10"
realpath-native "^1.1.0"
slash "^2.0.0"
source-map "^0.6.1"
write-file-atomic "2.4.1"
-"@jest/types@^24.7.0":
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.7.0.tgz#c4ec8d1828cdf23234d9b4ee31f5482a3f04f48b"
- integrity sha512-ipJUa2rFWiKoBqMKP63Myb6h9+iT3FHRTF2M8OR6irxWzItisa8i4dcSg14IbvmXUnBlHBlUQPYUHWyX3UPpYA==
+"@jest/types@^24.8.0":
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad"
+ integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^1.1.1"
"@types/yargs" "^12.0.9"
-"@nuxt/babel-preset-app@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.6.2.tgz#c11d4c10ba5b6865388f99f6a457621e0df310c4"
- integrity sha512-ygIZKu1MEuV+gGdKVPPV4hvSE18V6Dre6AtcvrKeWCjYYKQJTOCwH6bIUlQEPbzgLFBzZZS3wn1fG7qK3SbhAg==
+"@nuxt/babel-preset-app@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.6.3.tgz#c096603c573491058f232063d8dbb0511e7cb38f"
+ integrity sha512-Rwb5CE+hPZ4JovKi7tpoq9zsGzPD2YUL3hQjGNliF6cERlF40mVu/aeVTwRcAGxc02yMcKM2zq3Q2WjRYLcwwA==
dependencies:
"@babel/core" "^7.4.3"
"@babel/plugin-proposal-class-properties" "^7.4.0"
@@ -912,14 +931,14 @@
"@vue/babel-preset-jsx" "^1.0.0-beta.3"
core-js "^2.6.5"
-"@nuxt/builder@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.6.2.tgz#c8c932f30964e38bd8755fa4b50ab97cccc26463"
- integrity sha512-+fi7Dw+RgOjkK6vftCT/nwFvGxCYfIzMt6ld7FOEnJ66had33e2DHozkY2msd709u5wDSin37ZwM5DgNl24phA==
+"@nuxt/builder@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.6.3.tgz#9754977eee6d91028a2a627d18fae21cf37a2aff"
+ integrity sha512-891cZlCImxu1jj/TxltcGkRRVpaR42wdxCFeaQqCLcZ3K0SJOhWPqXBrt/iroUl2fjaxNskrVmoTtxEFRBIlTg==
dependencies:
"@nuxt/devalue" "^1.2.3"
- "@nuxt/utils" "2.6.2"
- "@nuxt/vue-app" "2.6.2"
+ "@nuxt/utils" "2.6.3"
+ "@nuxt/vue-app" "2.6.3"
chokidar "^2.1.5"
consola "^2.6.0"
fs-extra "^7.0.1"
@@ -932,13 +951,13 @@
serialize-javascript "^1.6.1"
upath "^1.1.2"
-"@nuxt/cli@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.6.2.tgz#752fa55df15fcdcb52ee800f94368ef703cfadf4"
- integrity sha512-YQruI3hlIjKg8bCaT/Odn0vD1bf2kvsb60SDHWrUnN4rKeCdFiCbLWrn+ZE/mHtVmM8uNRJSFsIcgcTH9cItzQ==
+"@nuxt/cli@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.6.3.tgz#0eb743b3b9cd419bd7bb1c099fc29e3c23ea47f1"
+ integrity sha512-8WGRG2BIMcQpqwNltRGw/JskCvnVcQNQhXgFoKDcwQYFjLqdvQ+TeF7H2eSaWjfsxknKQb5PPQW5LXe9+CjZZA==
dependencies:
- "@nuxt/config" "2.6.2"
- "@nuxt/utils" "2.6.2"
+ "@nuxt/config" "2.6.3"
+ "@nuxt/utils" "2.6.3"
boxen "^3.1.0"
chalk "^2.4.2"
consola "^2.6.0"
@@ -952,25 +971,25 @@
std-env "^2.2.1"
wrap-ansi "^5.1.0"
-"@nuxt/config@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.6.2.tgz#f63314c6e0bec416a8e8e53cc9c905d7e66a8cea"
- integrity sha512-y9n+Dgei4Vhrb5h1530IYSnwqoyUefu4HG68lof8nNqs5TejjcJhcnnjh0df77wIqX20C256eXYATwo3Vn8rdQ==
+"@nuxt/config@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.6.3.tgz#2753970a92c445ba0196af77a1716c8278a6e08f"
+ integrity sha512-uVwD6rjmMpcpP7ZG5qXdP66XOH1AETqVMBX+gAqiUd4HtS4DL63XhRcS5EZKwq6fdPM6LrMC0Bol9KZeHy2eow==
dependencies:
- "@nuxt/utils" "2.6.2"
+ "@nuxt/utils" "2.6.3"
consola "^2.6.0"
std-env "^2.2.1"
-"@nuxt/core@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.6.2.tgz#e1b7e3f23e01ef8bf7d3e6b68c9c6df0f97a386b"
- integrity sha512-JWp/5vH6sG7Js5JSOC6AhdiYqyhBddzRKqEkD2k5a/EeLi/EdgXMwL9L6l66Vne/adaCLQ5LYUm/djqKVu5Cxg==
+"@nuxt/core@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.6.3.tgz#17302c0f46cc27ecaa3fc4e0ee04e0817e0b796b"
+ integrity sha512-gnAXeSZD+gYM2w1WMWrdOhGb/KfqSPzFQoFGQ8+r5PzuH3+onrWhvJHF4xZ5LTkoJ7ckIJf0/P/3jMsccCVx7A==
dependencies:
- "@nuxt/config" "2.6.2"
+ "@nuxt/config" "2.6.3"
"@nuxt/devalue" "^1.2.3"
- "@nuxt/server" "2.6.2"
- "@nuxt/utils" "2.6.2"
- "@nuxt/vue-renderer" "2.6.2"
+ "@nuxt/server" "2.6.3"
+ "@nuxt/utils" "2.6.3"
+ "@nuxt/vue-renderer" "2.6.3"
consola "^2.6.0"
debug "^4.1.1"
esm "3.2.20"
@@ -995,21 +1014,21 @@
error-stack-parser "^2.0.0"
string-width "^2.0.0"
-"@nuxt/generator@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.6.2.tgz#807e6b32c9e6f3b6680692de27a9941e1f365b7e"
- integrity sha512-EEj/SR/Bz/FypDNkyhmL5BdhFSMSLc+Fon/GlVuwb3xWUnc1uKUWpc5EDbmioL1Nw/BC8Tai2LhbdHfKXjGfzA==
+"@nuxt/generator@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.6.3.tgz#99ca792e8edbc83a17fc82f105a51bd18973b8e7"
+ integrity sha512-thvGaVZPHW9PcdTf6aYjqvn/KKrwNp4DVDKiQlvP1BjBqiEN26F5WDKMw2y1N/UnH7tt5CvTpMd5+awXAizPYQ==
dependencies:
- "@nuxt/utils" "2.6.2"
+ "@nuxt/utils" "2.6.3"
chalk "^2.4.2"
consola "^2.6.0"
fs-extra "^7.0.1"
html-minifier "^4.0.0"
-"@nuxt/loading-screen@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-0.3.0.tgz#ec438337690efffea9508cebcca35675f5445110"
- integrity sha512-h0Z5g2MxJCXyeRmzx3Niwkv+/HRQEkKYpL54cN9cHYc4FUG/NBxeIIJgqbh1ih7y5cg0jdDboL0izZrbFsBtiA==
+"@nuxt/loading-screen@^0.5.0":
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-0.5.1.tgz#8adbdaa01b5445b98931d3f304f25a0e4d410d68"
+ integrity sha512-2v1gr5hNUpqbe6IMtbzmQizeiO67gumjTz9hI0copeamrTW1Xr/qbFarrqFCXV+ytLGyRJwGZsr5o58UHH+hbw==
dependencies:
connect "^3.6.6"
fs-extra "^7.0.1"
@@ -1025,13 +1044,13 @@
consola "^2.3.0"
node-fetch "^2.3.0"
-"@nuxt/server@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.6.2.tgz#1de54cef099694db082dd14e5141eba6da0ad591"
- integrity sha512-LLicBR2/Q0mgcB847L5p6k2gr+7e4JNW2cnvaS1Y1a5NJ5u6toN6HDtMim0RP3VZKTAqgY8S4j1KMrrDjajirA==
+"@nuxt/server@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.6.3.tgz#34c51629d56a88a73bee9122fa0128dce0774878"
+ integrity sha512-pxpbrF52aui0jMWfPzWg8sSnFF/VUj34HPSqMEMVAqX2cwgiytrGWfN5Iom6YfWeBvxYaOrTd8WA0hM5Dr1aMw==
dependencies:
- "@nuxt/config" "2.6.2"
- "@nuxt/utils" "2.6.2"
+ "@nuxt/config" "2.6.3"
+ "@nuxt/utils" "2.6.3"
"@nuxtjs/youch" "^4.2.3"
chalk "^2.4.2"
compression "^1.7.4"
@@ -1050,10 +1069,10 @@
server-destroy "^1.0.1"
ua-parser-js "^0.7.19"
-"@nuxt/utils@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.6.2.tgz#5772e2352aa6d8725748ed9ca0d86f8077eabb9d"
- integrity sha512-n5ZCLgdbdMB6/3mAZqu2nSiFHcQ/BwqP8xtYP/Bn6vl6WLWMIoVB/QmC6pywJtv1ABJhVMMdTeCKLV8hZ7iXEQ==
+"@nuxt/utils@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.6.3.tgz#29214eebd62336f7e94062831038e2553da3a95c"
+ integrity sha512-gkfV98DCGCS22jWiy5vy/Ugh79odaJt603czoQB5VVizFpDKS+YK27EvAz6Ljz3lxPBjSvsKjGkAnTsQ9VmqXg==
dependencies:
consola "^2.6.0"
fs-extra "^7.0.1"
@@ -1062,27 +1081,27 @@
serialize-javascript "^1.6.1"
signal-exit "^3.0.2"
-"@nuxt/vue-app@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.6.2.tgz#aeb328f168e1ad68331851f63741cdafa776e5e8"
- integrity sha512-mz6MeabwijfZ/+2o/hZaknXYl209o9c7UDCDdqUF3ZD/WJ6dl5bbyAKpJuw2hunOCoQm4tSYdB17z41qLMfMpw==
+"@nuxt/vue-app@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.6.3.tgz#5d2bdec87e95193cebc0af0d3e73e063f174e5ea"
+ integrity sha512-Lx7OWzDsoKAv5PmWJKcM0g0z50Os4uL8N27Z+hJT5fTKKt7ZPoBp84ckszQ2pr6yOqpHo9zldbljBXLR2C13mA==
dependencies:
node-fetch "^2.3.0"
unfetch "^4.1.0"
vue "^2.6.10"
vue-meta "^1.6.0"
vue-no-ssr "^1.1.1"
- vue-router "^3.0.5"
+ vue-router "^3.0.6"
vue-template-compiler "^2.6.10"
vuex "^3.1.0"
-"@nuxt/vue-renderer@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.6.2.tgz#5436cabf798b551e942e95fc5724036e17d32187"
- integrity sha512-SQCP2g8CAcOf0JLAkNBMmwjXgRBsL3K0IxiFQwFXb6X7OLsO9U643xGe0ZzHkW3Ud5KwMPc9NRG5QGpsFLzFVw==
+"@nuxt/vue-renderer@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.6.3.tgz#a9f2cbad2541d08e55ec979c5909686efc8de520"
+ integrity sha512-3kB6ymfwQ1iQrapAAdxCgYQgNPQU+GmOFSmxnmDSk5ZjXsTDAT9egx6hDs0JvrutqxU3G2eomXDYNaEVxhwUWA==
dependencies:
"@nuxt/devalue" "^1.2.3"
- "@nuxt/utils" "2.6.2"
+ "@nuxt/utils" "2.6.3"
consola "^2.6.0"
fs-extra "^7.0.1"
lru-cache "^5.1.1"
@@ -1090,15 +1109,15 @@
vue-meta "^1.6.0"
vue-server-renderer "^2.6.10"
-"@nuxt/webpack@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.6.2.tgz#f61151e8f3072e4d3da42aa7d77b62fc10465309"
- integrity sha512-+Ibt8MoKornD+uDZ+x9437kp1iHQLRBRvthZlxjuo1+lXY26Sb9Ugp53bP0MWYKjEOWEkNz47uaotNPxUzqLUQ==
+"@nuxt/webpack@2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.6.3.tgz#c51d7c4cb60cb1b05b1bf843be19d33edf34f0a0"
+ integrity sha512-awABdA1YJUnoZ0J1TNfB5d0JMU029PqAeydHJ13CA/THqo244bGeCP81IGLBgHR6A0YBwmcdXAe+r18r2EkS2Q==
dependencies:
"@babel/core" "^7.4.3"
- "@nuxt/babel-preset-app" "2.6.2"
+ "@nuxt/babel-preset-app" "2.6.3"
"@nuxt/friendly-errors-webpack-plugin" "^2.4.0"
- "@nuxt/utils" "2.6.2"
+ "@nuxt/utils" "2.6.3"
babel-loader "^8.0.5"
cache-loader "^2.0.1"
caniuse-lite "^1.0.30000959"
@@ -1135,7 +1154,7 @@
webpack-dev-middleware "^3.6.2"
webpack-hot-middleware "^2.24.3"
webpack-node-externals "^1.7.2"
- webpackbar "^3.1.5"
+ webpackbar "^3.2.0"
"@nuxtjs/apollo@4.0.0-rc4":
version "4.0.0-rc4"
@@ -1333,11 +1352,31 @@
"@types/express-serve-static-core" "*"
"@types/serve-static" "*"
+"@types/istanbul-lib-coverage@*":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
+ integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==
+
"@types/istanbul-lib-coverage@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz#1eb8c033e98cf4e1a4cedcaf8bcafe8cb7591e85"
integrity sha512-eAtOAFZefEnfJiRFQBGw1eYqa5GTLCZ1y86N0XSI/D6EB+E8z6VPV/UL7Gi5UEclFqoQk+6NRqEDsfmDLXn8sg==
+"@types/istanbul-lib-report@*":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c"
+ integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a"
+ integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+ "@types/istanbul-lib-report" "*"
+
"@types/long@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef"
@@ -1478,10 +1517,10 @@
"@vue/babel-plugin-transform-vue-jsx" "^1.0.0-beta.3"
camelcase "^5.0.0"
-"@vue/cli-shared-utils@~3.6.0":
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.6.0.tgz#43937a2ea42b809dcd35d9348edf318ebc28b0d9"
- integrity sha512-C8nTiJ7o+dncNLyOIOZF8P4bMJdOVXhWOuwyZKqn8k3CcsQVzuLyCKUHHezWc+sI+PJi4wIg2ZffCiueeIXZ+w==
+"@vue/cli-shared-utils@~3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.7.0.tgz#957dd3c31a31208caf9f119cac6008fd4960d46e"
+ integrity sha512-+LPDAQ1CE3ci1ADOvNqJMPdqyxgJxOq5HUgGDSKCHwviXF6GtynfljZXiSzgWh5ueMFxJphCfeMsTZqFWwsHVg==
dependencies:
chalk "^2.4.1"
execa "^1.0.0"
@@ -1796,11 +1835,18 @@ ansi-colors@^3.0.0:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
-ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0:
+ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ansi-escapes@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.1.0.tgz#62a9e5fa78e99c5bb588b1796855f5d729231b53"
+ integrity sha512-2VY/iCUZTDLD/qxptS3Zn3c6k2MeIbYqjRXqM8T5oC7N2mMjh3xIU3oYru6cHGbldFa9h5i8N0fP65UaUqrMWA==
+ dependencies:
+ type-fest "^0.3.0"
+
ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
@@ -2076,13 +2122,6 @@ apollo-utilities@1.2.1, apollo-utilities@^1.0.1, apollo-utilities@^1.0.27, apoll
ts-invariant "^0.2.1"
tslib "^1.9.3"
-append-transform@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab"
- integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==
- dependencies:
- default-require-extensions "^2.0.0"
-
aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
@@ -2218,7 +2257,7 @@ async-retry@^1.2.1:
dependencies:
retry "0.12.0"
-async@^2.1.4, async@^2.3.0, async@^2.5.0, async@^2.6.1:
+async@^2.1.4, async@^2.3.0, async@^2.5.0:
version "2.6.2"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381"
integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==
@@ -2298,13 +2337,13 @@ babel-eslint@~10.0.1:
eslint-scope "3.7.1"
eslint-visitor-keys "^1.0.0"
-babel-jest@^24.7.1, babel-jest@~24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.7.1.tgz#73902c9ff15a7dfbdc9994b0b17fcefd96042178"
- integrity sha512-GPnLqfk8Mtt0i4OemjWkChi73A3ALs4w2/QbG64uAj8b5mmwzxc7jbJVRZt8NJkxi6FopVHog9S3xX6UJKb2qg==
+babel-jest@^24.8.0, babel-jest@~24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589"
+ integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw==
dependencies:
- "@jest/transform" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/transform" "^24.8.0"
+ "@jest/types" "^24.8.0"
"@types/babel__core" "^7.1.0"
babel-plugin-istanbul "^5.1.0"
babel-preset-jest "^24.6.0"
@@ -3139,11 +3178,6 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
-compare-versions@^3.2.1:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26"
- integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==
-
component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
@@ -3786,13 +3820,6 @@ deepmerge@^3.2.0:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e"
integrity sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==
-default-require-extensions@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7"
- integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=
- dependencies:
- strip-bom "^3.0.0"
-
defaults@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
@@ -4205,10 +4232,10 @@ eslint-config-prettier@^3.3.0:
dependencies:
get-stdin "^6.0.0"
-eslint-config-prettier@~4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.1.0.tgz#181364895899fff9fd3605fecb5c4f20e7d5f395"
- integrity sha512-zILwX9/Ocz4SV2vX7ox85AsrAgXV3f2o2gpIicdMIOra48WYqgUnWNH/cR/iHtmD2Vb3dLSC3LiEJnS05Gkw7w==
+eslint-config-prettier@~4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.2.0.tgz#70b946b629cd0e3e98233fd9ecde4cb9778de96c"
+ integrity sha512-y0uWc/FRfrHhpPZCYflWC8aE0KRJRY04rdZVfl8cL3sEZmOYyaBdhdlQPjKZBnuRMyLVK+JUZr7HaZFClQiH4w==
dependencies:
get-stdin "^6.0.0"
@@ -4449,16 +4476,16 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expect@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/expect/-/expect-24.7.1.tgz#d91defbab4e627470a152feaf35b3c31aa1c7c14"
- integrity sha512-mGfvMTPduksV3xoI0xur56pQsg2vJjNf5+a+bXOjqCkiCBbmCayrBbHS/75y9K430cfqyocPr2ZjiNiRx4SRKw==
+expect@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d"
+ integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
ansi-styles "^3.2.0"
- jest-get-type "^24.3.0"
- jest-matcher-utils "^24.7.0"
- jest-message-util "^24.7.1"
+ jest-get-type "^24.8.0"
+ jest-matcher-utils "^24.8.0"
+ jest-message-util "^24.8.0"
jest-regex-util "^24.3.0"
express@^4.16.3, express@^4.16.4, express@~4.16.4:
@@ -4619,6 +4646,13 @@ figures@^2.0.0:
dependencies:
escape-string-regexp "^1.0.5"
+figures@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9"
+ integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
file-entry-cache@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
@@ -4634,14 +4668,6 @@ file-loader@^3.0.1:
loader-utils "^1.0.2"
schema-utils "^1.0.0"
-fileset@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
- integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=
- dependencies:
- glob "^7.0.3"
- minimatch "^3.0.3"
-
filesize@^3.6.1:
version "3.6.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
@@ -5930,38 +5956,12 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-istanbul-api@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0"
- integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==
- dependencies:
- async "^2.6.1"
- compare-versions "^3.2.1"
- fileset "^2.0.3"
- istanbul-lib-coverage "^2.0.3"
- istanbul-lib-hook "^2.0.3"
- istanbul-lib-instrument "^3.1.0"
- istanbul-lib-report "^2.0.4"
- istanbul-lib-source-maps "^3.0.2"
- istanbul-reports "^2.1.1"
- js-yaml "^3.12.0"
- make-dir "^1.3.0"
- minimatch "^3.0.4"
- once "^1.4.0"
-
istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba"
integrity sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==
-istanbul-lib-hook@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz#e0e581e461c611be5d0e5ef31c5f0109759916fb"
- integrity sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA==
- dependencies:
- append-transform "^1.0.0"
-
-istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.1.0:
+istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1:
version "3.1.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971"
integrity sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==
@@ -5983,7 +5983,7 @@ istanbul-lib-report@^2.0.4:
make-dir "^1.3.0"
supports-color "^6.0.0"
-istanbul-lib-source-maps@^3.0.1, istanbul-lib-source-maps@^3.0.2:
+istanbul-lib-source-maps@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156"
integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==
@@ -6011,66 +6011,66 @@ izitoast@^1.3.0:
resolved "https://registry.yarnpkg.com/izitoast/-/izitoast-1.4.0.tgz#1aa4e3408b7159fba743506af66d8be54fd929fb"
integrity sha512-Oc1X2wiQtPp39i5VpIjf3GJf5sfCtHKXZ5szx7RareyEeFLUlcEW0FSfBni28+Ul6KNKZRKzhVuWzSP4Xngh0w==
-jest-changed-files@^24.7.0:
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.7.0.tgz#39d723a11b16ed7b373ac83adc76a69464b0c4fa"
- integrity sha512-33BgewurnwSfJrW7T5/ZAXGE44o7swLslwh8aUckzq2e17/2Os1V0QU506ZNik3hjs8MgnEMKNkcud442NCDTw==
+jest-changed-files@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b"
+ integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
execa "^1.0.0"
throat "^4.0.0"
-jest-cli@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.7.1.tgz#6093a539073b6f4953145abeeb9709cd621044f1"
- integrity sha512-32OBoSCVPzcTslGFl6yVCMzB2SqX3IrWwZCY5mZYkb0D2WsogmU3eV2o8z7+gRQa4o4sZPX/k7GU+II7CxM6WQ==
+jest-cli@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989"
+ integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA==
dependencies:
- "@jest/core" "^24.7.1"
- "@jest/test-result" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/core" "^24.8.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
chalk "^2.0.1"
exit "^0.1.2"
import-local "^2.0.0"
is-ci "^2.0.0"
- jest-config "^24.7.1"
- jest-util "^24.7.1"
- jest-validate "^24.7.0"
+ jest-config "^24.8.0"
+ jest-util "^24.8.0"
+ jest-validate "^24.8.0"
prompts "^2.0.1"
realpath-native "^1.1.0"
yargs "^12.0.2"
-jest-config@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.7.1.tgz#6c1dd4db82a89710a3cf66bdba97827c9a1cf052"
- integrity sha512-8FlJNLI+X+MU37j7j8RE4DnJkvAghXmBWdArVzypW6WxfGuxiL/CCkzBg0gHtXhD2rxla3IMOSUAHylSKYJ83g==
+jest-config@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f"
+ integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^24.7.1"
- "@jest/types" "^24.7.0"
- babel-jest "^24.7.1"
+ "@jest/test-sequencer" "^24.8.0"
+ "@jest/types" "^24.8.0"
+ babel-jest "^24.8.0"
chalk "^2.0.1"
glob "^7.1.1"
- jest-environment-jsdom "^24.7.1"
- jest-environment-node "^24.7.1"
- jest-get-type "^24.3.0"
- jest-jasmine2 "^24.7.1"
+ jest-environment-jsdom "^24.8.0"
+ jest-environment-node "^24.8.0"
+ jest-get-type "^24.8.0"
+ jest-jasmine2 "^24.8.0"
jest-regex-util "^24.3.0"
- jest-resolve "^24.7.1"
- jest-util "^24.7.1"
- jest-validate "^24.7.0"
+ jest-resolve "^24.8.0"
+ jest-util "^24.8.0"
+ jest-validate "^24.8.0"
micromatch "^3.1.10"
- pretty-format "^24.7.0"
+ pretty-format "^24.8.0"
realpath-native "^1.1.0"
-jest-diff@^24.7.0:
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.7.0.tgz#5d862899be46249754806f66e5729c07fcb3580f"
- integrity sha512-ULQZ5B1lWpH70O4xsANC4tf4Ko6RrpwhE3PtG6ERjMg1TiYTC2Wp4IntJVGro6a8HG9luYHhhmF4grF0Pltckg==
+jest-diff@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172"
+ integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g==
dependencies:
chalk "^2.0.1"
diff-sequences "^24.3.0"
- jest-get-type "^24.3.0"
- pretty-format "^24.7.0"
+ jest-get-type "^24.8.0"
+ pretty-format "^24.8.0"
jest-docblock@^24.3.0:
version "24.3.0"
@@ -6079,57 +6079,57 @@ jest-docblock@^24.3.0:
dependencies:
detect-newline "^2.1.0"
-jest-each@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.7.1.tgz#fcc7dda4147c28430ad9fb6dc7211cd17ab54e74"
- integrity sha512-4fsS8fEfLa3lfnI1Jw6NxjhyRTgfpuOVTeUZZFyVYqeTa4hPhr2YkToUhouuLTrL2eMGOfpbdMyRx0GQ/VooKA==
+jest-each@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775"
+ integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
chalk "^2.0.1"
- jest-get-type "^24.3.0"
- jest-util "^24.7.1"
- pretty-format "^24.7.0"
+ jest-get-type "^24.8.0"
+ jest-util "^24.8.0"
+ pretty-format "^24.8.0"
-jest-environment-jsdom@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.7.1.tgz#a40e004b4458ebeb8a98082df135fd501b9fbbd6"
- integrity sha512-Gnhb+RqE2JuQGb3kJsLF8vfqjt3PHKSstq4Xc8ic+ax7QKo4Z0RWGucU3YV+DwKR3T9SYc+3YCUQEJs8r7+Jxg==
+jest-environment-jsdom@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857"
+ integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ==
dependencies:
- "@jest/environment" "^24.7.1"
- "@jest/fake-timers" "^24.7.1"
- "@jest/types" "^24.7.0"
- jest-mock "^24.7.0"
- jest-util "^24.7.1"
+ "@jest/environment" "^24.8.0"
+ "@jest/fake-timers" "^24.8.0"
+ "@jest/types" "^24.8.0"
+ jest-mock "^24.8.0"
+ jest-util "^24.8.0"
jsdom "^11.5.1"
-jest-environment-node@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.7.1.tgz#fa2c047a31522a48038d26ee4f7c8fd9c1ecfe12"
- integrity sha512-GJJQt1p9/C6aj6yNZMvovZuxTUd+BEJprETdvTKSb4kHcw4mFj8777USQV0FJoJ4V3djpOwA5eWyPwfq//PFBA==
+jest-environment-node@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231"
+ integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q==
dependencies:
- "@jest/environment" "^24.7.1"
- "@jest/fake-timers" "^24.7.1"
- "@jest/types" "^24.7.0"
- jest-mock "^24.7.0"
- jest-util "^24.7.1"
+ "@jest/environment" "^24.8.0"
+ "@jest/fake-timers" "^24.8.0"
+ "@jest/types" "^24.8.0"
+ jest-mock "^24.8.0"
+ jest-util "^24.8.0"
-jest-get-type@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da"
- integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow==
+jest-get-type@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc"
+ integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ==
-jest-haste-map@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.7.1.tgz#772e215cd84080d4bbcb759cfb668ad649a21471"
- integrity sha512-g0tWkzjpHD2qa03mTKhlydbmmYiA2KdcJe762SbfFo/7NIMgBWAA0XqQlApPwkWOF7Cxoi/gUqL0i6DIoLpMBw==
+jest-haste-map@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.0.tgz#51794182d877b3ddfd6e6d23920e3fe72f305800"
+ integrity sha512-ZBPRGHdPt1rHajWelXdqygIDpJx8u3xOoLyUBWRW28r3tagrgoepPrzAozW7kW9HrQfhvmiv1tncsxqHJO1onQ==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
anymatch "^2.0.0"
fb-watchman "^2.0.0"
graceful-fs "^4.1.15"
invariant "^2.2.4"
jest-serializer "^24.4.0"
- jest-util "^24.7.1"
+ jest-util "^24.8.0"
jest-worker "^24.6.0"
micromatch "^3.1.10"
sane "^4.0.3"
@@ -6137,65 +6137,65 @@ jest-haste-map@^24.7.1:
optionalDependencies:
fsevents "^1.2.7"
-jest-jasmine2@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.7.1.tgz#01398686dabe46553716303993f3be62e5d9d818"
- integrity sha512-Y/9AOJDV1XS44wNwCaThq4Pw3gBPiOv/s6NcbOAkVRRUEPu+36L2xoPsqQXsDrxoBerqeyslpn2TpCI8Zr6J2w==
+jest-jasmine2@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898"
+ integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^24.7.1"
- "@jest/test-result" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/environment" "^24.8.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
chalk "^2.0.1"
co "^4.6.0"
- expect "^24.7.1"
+ expect "^24.8.0"
is-generator-fn "^2.0.0"
- jest-each "^24.7.1"
- jest-matcher-utils "^24.7.0"
- jest-message-util "^24.7.1"
- jest-runtime "^24.7.1"
- jest-snapshot "^24.7.1"
- jest-util "^24.7.1"
- pretty-format "^24.7.0"
+ jest-each "^24.8.0"
+ jest-matcher-utils "^24.8.0"
+ jest-message-util "^24.8.0"
+ jest-runtime "^24.8.0"
+ jest-snapshot "^24.8.0"
+ jest-util "^24.8.0"
+ pretty-format "^24.8.0"
throat "^4.0.0"
-jest-leak-detector@^24.7.0:
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.7.0.tgz#323ff93ed69be12e898f5b040952f08a94288ff9"
- integrity sha512-zV0qHKZGXtmPVVzT99CVEcHE9XDf+8LwiE0Ob7jjezERiGVljmqKFWpV2IkG+rkFIEUHFEkMiICu7wnoPM/RoQ==
+jest-leak-detector@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980"
+ integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g==
dependencies:
- pretty-format "^24.7.0"
+ pretty-format "^24.8.0"
-jest-matcher-utils@^24.7.0:
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.7.0.tgz#bbee1ff37bc8b2e4afcaabc91617c1526af4bcd4"
- integrity sha512-158ieSgk3LNXeUhbVJYRXyTPSCqNgVXOp/GT7O94mYd3pk/8+odKTyR1JLtNOQSPzNi8NFYVONtvSWA/e1RDXg==
+jest-matcher-utils@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495"
+ integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw==
dependencies:
chalk "^2.0.1"
- jest-diff "^24.7.0"
- jest-get-type "^24.3.0"
- pretty-format "^24.7.0"
+ jest-diff "^24.8.0"
+ jest-get-type "^24.8.0"
+ pretty-format "^24.8.0"
-jest-message-util@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.7.1.tgz#f1dc3a6c195647096a99d0f1dadbc447ae547018"
- integrity sha512-dk0gqVtyqezCHbcbk60CdIf+8UHgD+lmRHifeH3JRcnAqh4nEyPytSc9/L1+cQyxC+ceaeP696N4ATe7L+omcg==
+jest-message-util@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b"
+ integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@jest/test-result" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
"@types/stack-utils" "^1.0.1"
chalk "^2.0.1"
micromatch "^3.1.10"
slash "^2.0.0"
stack-utils "^1.0.1"
-jest-mock@^24.7.0:
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.7.0.tgz#e49ce7262c12d7f5897b0d8af77f6db8e538023b"
- integrity sha512-6taW4B4WUcEiT2V9BbOmwyGuwuAFT2G8yghF7nyNW1/2gq5+6aTqSPcS9lS6ArvEkX55vbPAS/Jarx5LSm4Fng==
+jest-mock@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56"
+ integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
jest-pnp-resolver@^1.2.1:
version "1.2.1"
@@ -6207,75 +6207,75 @@ jest-regex-util@^24.3.0:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36"
integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==
-jest-resolve-dependencies@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.7.1.tgz#cf93bbef26999488a96a2b2012f9fe7375aa378f"
- integrity sha512-2Eyh5LJB2liNzfk4eo7bD1ZyBbqEJIyyrFtZG555cSWW9xVHxII2NuOkSl1yUYTAYCAmM2f2aIT5A7HzNmubyg==
+jest-resolve-dependencies@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0"
+ integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
jest-regex-util "^24.3.0"
- jest-snapshot "^24.7.1"
+ jest-snapshot "^24.8.0"
-jest-resolve@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.7.1.tgz#e4150198299298380a75a9fd55043fa3b9b17fde"
- integrity sha512-Bgrc+/UUZpGJ4323sQyj85hV9d+ANyPNu6XfRDUcyFNX1QrZpSoM0kE4Mb2vZMAYTJZsBFzYe8X1UaOkOELSbw==
+jest-resolve@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f"
+ integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
browser-resolve "^1.11.3"
chalk "^2.0.1"
jest-pnp-resolver "^1.2.1"
realpath-native "^1.1.0"
-jest-runner@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.7.1.tgz#41c8a02a06aa23ea82d8bffd69d7fa98d32f85bf"
- integrity sha512-aNFc9liWU/xt+G9pobdKZ4qTeG/wnJrJna3VqunziDNsWT3EBpmxXZRBMKCsNMyfy+A/XHiV+tsMLufdsNdgCw==
+jest-runner@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb"
+ integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/environment" "^24.7.1"
- "@jest/test-result" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/environment" "^24.8.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
chalk "^2.4.2"
exit "^0.1.2"
graceful-fs "^4.1.15"
- jest-config "^24.7.1"
+ jest-config "^24.8.0"
jest-docblock "^24.3.0"
- jest-haste-map "^24.7.1"
- jest-jasmine2 "^24.7.1"
- jest-leak-detector "^24.7.0"
- jest-message-util "^24.7.1"
- jest-resolve "^24.7.1"
- jest-runtime "^24.7.1"
- jest-util "^24.7.1"
+ jest-haste-map "^24.8.0"
+ jest-jasmine2 "^24.8.0"
+ jest-leak-detector "^24.8.0"
+ jest-message-util "^24.8.0"
+ jest-resolve "^24.8.0"
+ jest-runtime "^24.8.0"
+ jest-util "^24.8.0"
jest-worker "^24.6.0"
source-map-support "^0.5.6"
throat "^4.0.0"
-jest-runtime@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.7.1.tgz#2ffd70b22dd03a5988c0ab9465c85cdf5d25c597"
- integrity sha512-0VAbyBy7tll3R+82IPJpf6QZkokzXPIS71aDeqh+WzPRXRCNz6StQ45otFariPdJ4FmXpDiArdhZrzNAC3sj6A==
+jest-runtime@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620"
+ integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/environment" "^24.7.1"
+ "@jest/environment" "^24.8.0"
"@jest/source-map" "^24.3.0"
- "@jest/transform" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/transform" "^24.8.0"
+ "@jest/types" "^24.8.0"
"@types/yargs" "^12.0.2"
chalk "^2.0.1"
exit "^0.1.2"
glob "^7.1.3"
graceful-fs "^4.1.15"
- jest-config "^24.7.1"
- jest-haste-map "^24.7.1"
- jest-message-util "^24.7.1"
- jest-mock "^24.7.0"
+ jest-config "^24.8.0"
+ jest-haste-map "^24.8.0"
+ jest-message-util "^24.8.0"
+ jest-mock "^24.8.0"
jest-regex-util "^24.3.0"
- jest-resolve "^24.7.1"
- jest-snapshot "^24.7.1"
- jest-util "^24.7.1"
- jest-validate "^24.7.0"
+ jest-resolve "^24.8.0"
+ jest-snapshot "^24.8.0"
+ jest-util "^24.8.0"
+ jest-validate "^24.8.0"
realpath-native "^1.1.0"
slash "^2.0.0"
strip-bom "^3.0.0"
@@ -6286,34 +6286,34 @@ jest-serializer@^24.4.0:
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3"
integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q==
-jest-snapshot@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.7.1.tgz#bd5a35f74aedff070975e9e9c90024f082099568"
- integrity sha512-8Xk5O4p+JsZZn4RCNUS3pxA+ORKpEKepE+a5ejIKrId9CwrVN0NY+vkqEkXqlstA5NMBkNahXkR/4qEBy0t5yA==
+jest-snapshot@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6"
+ integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg==
dependencies:
"@babel/types" "^7.0.0"
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
chalk "^2.0.1"
- expect "^24.7.1"
- jest-diff "^24.7.0"
- jest-matcher-utils "^24.7.0"
- jest-message-util "^24.7.1"
- jest-resolve "^24.7.1"
+ expect "^24.8.0"
+ jest-diff "^24.8.0"
+ jest-matcher-utils "^24.8.0"
+ jest-message-util "^24.8.0"
+ jest-resolve "^24.8.0"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
- pretty-format "^24.7.0"
+ pretty-format "^24.8.0"
semver "^5.5.0"
-jest-util@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.7.1.tgz#b4043df57b32a23be27c75a2763d8faf242038ff"
- integrity sha512-/KilOue2n2rZ5AnEBYoxOXkeTu6vi7cjgQ8MXEkih0oeAXT6JkS3fr7/j8+engCjciOU1Nq5loMSKe0A1oeX0A==
+jest-util@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1"
+ integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA==
dependencies:
"@jest/console" "^24.7.1"
- "@jest/fake-timers" "^24.7.1"
+ "@jest/fake-timers" "^24.8.0"
"@jest/source-map" "^24.3.0"
- "@jest/test-result" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
callsites "^3.0.0"
chalk "^2.0.1"
graceful-fs "^4.1.15"
@@ -6322,29 +6322,29 @@ jest-util@^24.7.1:
slash "^2.0.0"
source-map "^0.6.0"
-jest-validate@^24.7.0:
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.7.0.tgz#70007076f338528ee1b1c8a8258b1b0bb982508d"
- integrity sha512-cgai/gts9B2chz1rqVdmLhzYxQbgQurh1PEQSvSgPZ8KGa1AqXsqC45W5wKEwzxKrWqypuQrQxnF4+G9VejJJA==
+jest-validate@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849"
+ integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
camelcase "^5.0.0"
chalk "^2.0.1"
- jest-get-type "^24.3.0"
+ jest-get-type "^24.8.0"
leven "^2.1.0"
- pretty-format "^24.7.0"
+ pretty-format "^24.8.0"
-jest-watcher@^24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.7.1.tgz#e161363d7f3f4e1ef3d389b7b3a0aad247b673f5"
- integrity sha512-Wd6TepHLRHVKLNPacEsBwlp9raeBIO+01xrN24Dek4ggTS8HHnOzYSFnvp+6MtkkJ3KfMzy220KTi95e2rRkrw==
+jest-watcher@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4"
+ integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw==
dependencies:
- "@jest/test-result" "^24.7.1"
- "@jest/types" "^24.7.0"
+ "@jest/test-result" "^24.8.0"
+ "@jest/types" "^24.8.0"
"@types/yargs" "^12.0.9"
ansi-escapes "^3.0.0"
chalk "^2.0.1"
- jest-util "^24.7.1"
+ jest-util "^24.8.0"
string-length "^2.0.0"
jest-worker@^24.6.0:
@@ -6355,13 +6355,13 @@ jest-worker@^24.6.0:
merge-stream "^1.0.1"
supports-color "^6.1.0"
-jest@~24.7.1:
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/jest/-/jest-24.7.1.tgz#0d94331cf510c75893ee32f87d7321d5bf8f2501"
- integrity sha512-AbvRar5r++izmqo5gdbAjTeA6uNRGoNRuj5vHB0OnDXo2DXWZJVuaObiGgtlvhKb+cWy2oYbQSfxv7Q7GjnAtA==
+jest@~24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz#d5dff1984d0d1002196e9b7f12f75af1b2809081"
+ integrity sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg==
dependencies:
import-local "^2.0.0"
- jest-cli "^24.7.1"
+ jest-cli "^24.8.0"
joi@^14.3.0:
version "14.3.1"
@@ -6738,16 +6738,6 @@ lodash._reinterpolate@~3.0.0:
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-lodash.assign@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
- integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
-
-lodash.clonedeep@^4.3.2:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
- integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
lodash.includes@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
@@ -6788,11 +6778,6 @@ lodash.memoize@^4.1.2:
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
-lodash.mergewith@^4.6.0:
- version "4.6.1"
- resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
- integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==
-
lodash.once@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
@@ -7091,7 +7076,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-minimatch@^3.0.3, minimatch@^3.0.4, 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"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -7204,10 +7189,10 @@ mute-stream@0.0.7:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
-nan@^2.10.0, nan@^2.9.2:
- version "2.12.1"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552"
- integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==
+nan@^2.13.2, nan@^2.9.2:
+ version "2.13.2"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7"
+ integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==
nanomatch@^1.2.9:
version "1.2.13"
@@ -7388,10 +7373,10 @@ node-releases@^1.1.13:
dependencies:
semver "^5.3.0"
-node-sass@~4.11.0:
- version "4.11.0"
- resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.11.0.tgz#183faec398e9cbe93ba43362e2768ca988a6369a"
- integrity sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==
+node-sass@~4.12.0:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.12.0.tgz#0914f531932380114a30cc5fa4fa63233a25f017"
+ integrity sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==
dependencies:
async-foreach "^0.1.3"
chalk "^1.1.1"
@@ -7400,12 +7385,10 @@ node-sass@~4.11.0:
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.11"
meow "^3.7.0"
mkdirp "^0.5.1"
- nan "^2.10.0"
+ nan "^2.13.2"
node-gyp "^3.8.0"
npmlog "^4.0.0"
request "^2.88.0"
@@ -7413,10 +7396,10 @@ node-sass@~4.11.0:
stdout-stream "^1.4.0"
"true-case-path" "^1.0.2"
-nodemon@^1.18.9, nodemon@~1.18.11:
- version "1.18.11"
- resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.11.tgz#d836ab663776e7995570b963da5bfc807e53f6b8"
- integrity sha512-KdN3tm1zkarlqNo4+W9raU3ihM4H15MVMSE/f9rYDZmFgDHAfAJsomYrHhApAkuUemYjFyEeXlpCOQ2v5gtBEw==
+nodemon@^1.18.9, nodemon@~1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.0.tgz#358e005549a1e9e1148cb2b9b8b28957dc4e4527"
+ integrity sha512-NHKpb/Je0Urmwi3QPDHlYuFY9m1vaVfTsRZG5X73rY46xPj0JpNe8WhUGQdkDXQDOxrBNIU3JrcflE9Y44EcuA==
dependencies:
chokidar "^2.1.5"
debug "^3.1.0"
@@ -7544,18 +7527,18 @@ nuxt-env@~0.1.0:
resolved "https://registry.yarnpkg.com/nuxt-env/-/nuxt-env-0.1.0.tgz#8ac50b9ff45391ad3044ea932cbd05f06a585f87"
integrity sha512-7mTao3qG0zfN0hahk3O6SuDy0KEwYmNojammWQsMwhqMn3aUjX4nMYnWDa0pua+2/rwAY9oG53jQtLgJdG7f9w==
-nuxt@~2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.6.2.tgz#1b40766e1a1d63b8e6fdaa3d87db4184acb2f5fd"
- integrity sha512-yeucSriOfS2le62OiHVkErzV1b1ZXMmy4Uqqmx/I9r3yKEMHloXFqFfTuD2FKum9a7TdyIfnt/uDI0wxeEqbxQ==
+nuxt@~2.6.3:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.6.3.tgz#4d9c26bade778f93c559cec354491a05b13a18ec"
+ integrity sha512-+Dw3ygYaVGp4XLOefCQd7JuNv4hxE1smw2ddo8E3uMuGAoeMGGEEHr8IDCu+0u6rtZC++mfEOnkzovHvGg8G2g==
dependencies:
- "@nuxt/builder" "2.6.2"
- "@nuxt/cli" "2.6.2"
- "@nuxt/core" "2.6.2"
- "@nuxt/generator" "2.6.2"
- "@nuxt/loading-screen" "^0.3.0"
+ "@nuxt/builder" "2.6.3"
+ "@nuxt/cli" "2.6.3"
+ "@nuxt/core" "2.6.3"
+ "@nuxt/generator" "2.6.3"
+ "@nuxt/loading-screen" "^0.5.0"
"@nuxt/opencollective" "^0.2.2"
- "@nuxt/webpack" "2.6.2"
+ "@nuxt/webpack" "2.6.3"
nwsapi@^2.0.7:
version "2.1.0"
@@ -8725,12 +8708,12 @@ pretty-error@^2.0.2:
renderkid "^2.0.1"
utila "~0.4"
-pretty-format@^24.7.0:
- version "24.7.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.7.0.tgz#d23106bc2edcd776079c2daa5da02bcb12ed0c10"
- integrity sha512-apen5cjf/U4dj7tHetpC7UEFCvtAgnNZnBDkfPv3fokzIqyOJckAG9OlAPC1BlFALnqT/lGB2tl9EJjlK6eCsA==
+pretty-format@^24.8.0:
+ version "24.8.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2"
+ integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw==
dependencies:
- "@jest/types" "^24.7.0"
+ "@jest/types" "^24.8.0"
ansi-regex "^4.0.0"
ansi-styles "^3.2.0"
react-is "^16.8.4"
@@ -8782,6 +8765,13 @@ proper-lockfile@^4.1.1:
retry "^0.12.0"
signal-exit "^3.0.2"
+prosemirror-collab@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.1.1.tgz#c8f5d951abaeac8a80818b6bd960f5a392b35b3f"
+ integrity sha512-BpXIB3WBD7UvgxuiasKOxlAZ78TTOdW+SQN4bbJan995tVx/wM/OZXtRJebS+tSWWAbRisHaO3ciFo732vuvdA==
+ dependencies:
+ prosemirror-state "^1.0.0"
+
prosemirror-commands@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.0.7.tgz#e5a2ba821e29ea7065c88277fe2c3d7f6b0b9d37"
@@ -8842,15 +8832,15 @@ prosemirror-model@^1.0.0, prosemirror-model@^1.1.0, prosemirror-model@^1.7.0:
dependencies:
orderedmap "^1.0.0"
-prosemirror-schema-list@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.0.2.tgz#8381fb0c1eaf439d848059f62e2fac517033c2ef"
- integrity sha512-IJ4DEpUEymfO+NNA4DAgCMF39XiQqpmCoPYY3SXa1jYcVgObGpGfJlSjZYVFEpimoLI7/mLoOLDhCtpGCRhTfg==
+prosemirror-schema-list@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.0.3.tgz#539caafa4f9314000943bd783be4017165ec0bd6"
+ integrity sha512-+zzSawVds8LsZpl/bLTCYk2lYactF93W219Czh81zBILikCRDOHjp1CQ1os4ZXBp6LlD+JnBqF1h59Q+hilOoQ==
dependencies:
prosemirror-model "^1.0.0"
prosemirror-transform "^1.0.0"
-prosemirror-state@^1.0.0, prosemirror-state@^1.2.1, prosemirror-state@^1.2.2:
+prosemirror-state@^1.0.0, prosemirror-state@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.2.2.tgz#8df26d95fd6fd327c0f9984a760e84d863204154"
integrity sha512-j8aC/kf9BJSCQau485I/9pj39XQoce+TqH5xzekT7WWFARTsRYFLJtiXBcCKakv1VSeev+sC3bJP0pLfz7Ft8g==
@@ -8858,10 +8848,10 @@ prosemirror-state@^1.0.0, prosemirror-state@^1.2.1, prosemirror-state@^1.2.2:
prosemirror-model "^1.0.0"
prosemirror-transform "^1.0.0"
-prosemirror-tables@^0.7.10, prosemirror-tables@^0.7.9:
- version "0.7.10"
- resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-0.7.10.tgz#4b0f623422b4b8f84cdc9c559f8a87579846b3ba"
- integrity sha512-VIu7UGS9keYEHs0Y6AEOTGbNE9QI2rL1OKng4vV6yoTshW/lYcb+s3hGXI12i+WLMjDVm7ujhfdWrpKpvFZOkQ==
+prosemirror-tables@^0.7.11:
+ version "0.7.11"
+ resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-0.7.11.tgz#400317df5898473f8c33eef8f8016451d0d1ceed"
+ integrity sha512-IOvz4sE4RgEeI8aKbis6ADqXEZlqnU1aZ/hdZLj6F74HeCGv5cC/hnOkhlip+4IaQvqn1u3oyBWKMzjGlUJuww==
dependencies:
prosemirror-keymap "^1.0.0"
prosemirror-model "^1.0.0"
@@ -8869,7 +8859,7 @@ prosemirror-tables@^0.7.10, prosemirror-tables@^0.7.9:
prosemirror-transform "^1.0.0"
prosemirror-view "^1.0.0"
-prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0:
+prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.1.3.tgz#28cfdf1f9ee514edc40466be7b7db39eed545fdf"
integrity sha512-1O6Di5lOL1mp4nuCnQNkHY7l2roIW5y8RH4ZG3hMYmkmDEWzTaFFnxxAAHsE5ipGLBSRcTlP7SsDhYBIdSuLpQ==
@@ -8881,10 +8871,10 @@ prosemirror-utils@^0.7.6:
resolved "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.7.6.tgz#c462ddfbf2452e56e4b25d1f02b34caccddb0f33"
integrity sha512-vzsCBTiJ56R3nRDpIJnKOJzsZP7KFO8BkXk7zvQgQiXpml2o/djPCRhuyaFc7VTqSHlLPQHVI1feTLAwHp+prQ==
-prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.8.8:
- version "1.8.8"
- resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.8.8.tgz#e61f60ed716d4f943be2fbc3f3be765322ff891f"
- integrity sha512-rBDmBKRPmWhF4R2k9vW7CkGo+bafjj278lFxEGVpCHlnLhhhYX1XHU59KgMCsDnNhxh8Oexup1yIPbfg99eynA==
+prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.9.1.tgz#3f987d55586909d4156a76b32918338655e32699"
+ integrity sha512-/8kQ9/CZaaDoQEqBfgyW2ex/SnuqkMim20oMpLwHYuuxfe2K30kymQYP1pEKmTVK1K97s7uE78YPyOrUU+VeuQ==
dependencies:
prosemirror-model "^1.1.0"
prosemirror-state "^1.0.0"
@@ -10355,52 +10345,55 @@ timsort@^0.3.0:
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-tippy.js@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-4.2.1.tgz#9e4939d976465f77229b05a3cb233b5dc28cf850"
- integrity sha512-xEE7zYNgQxCDdPcuT6T04f0frPh0wO7CcIqJKMFazU/NqusyjCgYSkLRosIHoiRkZMRzSPOudC8wRN5GjvAyOQ==
+tippy.js@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-4.3.0.tgz#5f661fed7fa30c90609eb87f6657005dd041ede3"
+ integrity sha512-SjctzIfkx3+waue+Ew58MMTuzYD4SK9wJOnCEdrCmwZiKJ7chZSxOguFmBm11tmTlZuGbxncUC/5Qu6GqzD2qQ==
dependencies:
popper.js "^1.14.7"
-tiptap-commands@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.7.0.tgz#d15cec2cb09264b5c1f6f712dab8819bb9ab7e13"
- integrity sha512-JhgvBPIhGnisEdxD6gmM3U76BUlKF9n1LW1X/dO1AUOsm3Xc9tQB5BIOV/DpZTvrjntLP3AUTfd+yJeRIz5CPA==
+tiptap-commands@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.9.1.tgz#be0c3fd6bbe3a984cfc6bef71d443f813a106735"
+ integrity sha512-/isKG7s518jofj75qvN1lru7ohx6Gtmqc6e9jAGH43Xk60FK0K2zgnaA36pHBHKBQNFK6mXyfkrJCmsf5dnuNQ==
dependencies:
prosemirror-commands "^1.0.7"
prosemirror-inputrules "^1.0.1"
- prosemirror-schema-list "^1.0.2"
+ prosemirror-schema-list "^1.0.3"
prosemirror-state "^1.2.2"
- tiptap-utils "^1.3.0"
+ tiptap-utils "^1.4.1"
-tiptap-extensions@^1.15.0:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.15.0.tgz#72768ba4c1d016ce752468466c91b33c87699e60"
- integrity sha512-BqrHw5ZiF1WJVDw1r/9Xbta+ln1rITeQZHhA2p5ZaTi9ZRM7y9Bp44oSn2Pwzvb3bwCz+TO1Jv1MwASRKDMhug==
+tiptap-extensions@^1.18.1:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.18.1.tgz#7d63da49190c1b622a9adf66263d90631367bcd9"
+ integrity sha512-Dx4OwnoYohcYSuOx8P6UoY19x5BFinlkwCEEau8MzNGXVzrtCTw9c8vAIiooHobW6haEvYlb6AKWp0z5xDWsRw==
dependencies:
lowlight "^1.11.0"
+ prosemirror-collab "^1.1.1"
prosemirror-history "^1.0.4"
+ prosemirror-model "^1.7.0"
prosemirror-state "^1.2.2"
- prosemirror-tables "^0.7.10"
+ prosemirror-tables "^0.7.11"
+ prosemirror-transform "^1.1.3"
prosemirror-utils "^0.7.6"
- prosemirror-view "^1.8.8"
- tiptap "^1.15.0"
- tiptap-commands "^1.7.0"
+ prosemirror-view "^1.9.1"
+ tiptap "^1.18.1"
+ tiptap-commands "^1.9.1"
-tiptap-utils@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.3.0.tgz#bfc77cf57c07cd5c1f1d33f65ef94c4190506b77"
- integrity sha512-b9GRQB3Kilu9Yq6hwjjzQgZtQDXDOrB/vZPV5OzwcKRN5a9PfLGrTLJ5LbU414Vcy9HTXiqX2pq0o5FslJhHpg==
+tiptap-utils@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.4.1.tgz#fbfb964bed2216f8a8cfed9131ffd2239a358faf"
+ integrity sha512-fBB70PtCPgZ3nSyzwWKU2ZoqW8QzNBSfCgXgCgYlvVOBi8R9H3c4FlCU3aIPictvY7FoQtw6xC2TlD3/RkUc5w==
dependencies:
prosemirror-model "^1.7.0"
prosemirror-state "^1.2.2"
- prosemirror-tables "^0.7.9"
+ prosemirror-tables "^0.7.11"
prosemirror-utils "^0.7.6"
-tiptap@^1.14.0, tiptap@^1.15.0:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.15.0.tgz#198b6a3b477a10a25de79674a4d8bb58dad56743"
- integrity sha512-qQfcK9Vs0QzUgw1x9oKYXimX8+m1TckivTrD/0als095qrq+fFQpQWkce++8kBW+2lGkM6nXsogZvHoV6Dzl4Q==
+tiptap@^1.18.0, tiptap@^1.18.1:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.18.1.tgz#ac6d302a6a766b85a16579ac15e2a4c5d5751fba"
+ integrity sha512-hgDedZuEKHp1w45jNzg65H2nR9eNVlbsSr4cbzvNMlPUYyH1Aby/IXroxFZrwqKjsxhVZ0KSk3AVGk5GaLi1rg==
dependencies:
prosemirror-commands "^1.0.7"
prosemirror-dropcursor "^1.1.1"
@@ -10408,10 +10401,10 @@ tiptap@^1.14.0, tiptap@^1.15.0:
prosemirror-inputrules "^1.0.1"
prosemirror-keymap "^1.0.1"
prosemirror-model "^1.7.0"
- prosemirror-state "^1.2.1"
- prosemirror-view "^1.8.8"
- tiptap-commands "^1.7.0"
- tiptap-utils "^1.3.0"
+ prosemirror-state "^1.2.2"
+ prosemirror-view "^1.9.1"
+ tiptap-commands "^1.9.1"
+ tiptap-utils "^1.4.1"
tmp@^0.0.33:
version "0.0.33"
@@ -10851,10 +10844,10 @@ uuid@^3.1.0, uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
-v-tooltip@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/v-tooltip/-/v-tooltip-2.0.1.tgz#ba959552651dfa33210170ac9cfcce3525abe797"
- integrity sha512-Ifby9zx34MtzZRSYlr+tFQjXxHd8NZG9YoEHdeSQb8qwFGRQZhc8JVnxKBKUDGFowLUEzfX4e3mVmqrLw7b5oQ==
+v-tooltip@~2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/v-tooltip/-/v-tooltip-2.0.2.tgz#8610d9eece2cc44fd66c12ef2f12eec6435cab9b"
+ integrity sha512-xQ+qzOFfywkLdjHknRPgMMupQNS8yJtf9Utd5Dxiu/0n4HtrxqsgDtN2MLZ0LKbburtSAQgyypuE/snM8bBZhw==
dependencies:
lodash "^4.17.11"
popper.js "^1.15.0"
@@ -11004,10 +10997,10 @@ vue-resize@^0.4.5:
resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-0.4.5.tgz#4777a23042e3c05620d9cbda01c0b3cc5e32dcea"
integrity sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg==
-vue-router@^3.0.5:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.5.tgz#24636923c7f1a62da3a577cf75a058f9fa328581"
- integrity sha512-DGU+7+eeiSq/oNZ6epA/rcNkAd0m2+uugR5i4Eh4KBvclUmorvNJ6iForYjQkgvKi9GdamybaMpl85eDgxM2eQ==
+vue-router@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.6.tgz#2e4f0f9cbb0b96d0205ab2690cfe588935136ac3"
+ integrity sha512-Ox0ciFLswtSGRTHYhGvx2L44sVbTPNS+uD2kRISuo8B39Y79rOo0Kw0hzupTmiVtftQYCZl87mwldhh2L9Aquw==
vue-server-renderer@^2.6.10:
version "2.6.10"
@@ -11207,19 +11200,19 @@ webpack@^4.30.0:
watchpack "^1.5.0"
webpack-sources "^1.3.0"
-webpackbar@^3.1.5:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.1.5.tgz#71f9de2d8b897785a3b3291cb6c8beecdf06542b"
- integrity sha512-ayCxwj0m3lw8TMkbBBRl3XNiCIHqXYaQus8sNL+jX0lsp4LrYO9OmijsPeuu91cd/oUgK66c0AKQovPtJ1qDsA==
+webpackbar@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.2.0.tgz#bdaad103fad11a4e612500e72aaae98b08ba493f"
+ integrity sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==
dependencies:
- ansi-escapes "^3.1.0"
+ ansi-escapes "^4.1.0"
chalk "^2.4.1"
- consola "^2.3.0"
- figures "^2.0.0"
+ consola "^2.6.0"
+ figures "^3.0.0"
pretty-time "^1.1.0"
std-env "^2.2.1"
text-table "^0.2.0"
- wrap-ansi "^4.0.0"
+ wrap-ansi "^5.1.0"
whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
version "1.0.5"
@@ -11312,15 +11305,6 @@ wrap-ansi@^2.0.0:
string-width "^1.0.1"
strip-ansi "^3.0.1"
-wrap-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-4.0.0.tgz#b3570d7c70156159a2d42be5cc942e957f7b1131"
- integrity sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==
- dependencies:
- ansi-styles "^3.2.0"
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
-
wrap-ansi@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
diff --git a/yarn.lock b/yarn.lock
index 1d7745f03..c56771aac 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -762,6 +762,13 @@ acorn@^6.0.2:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
+agent-base@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
+ integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==
+ dependencies:
+ es6-promisify "^5.0.0"
+
ajv@^6.5.5:
version "6.10.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
@@ -840,6 +847,11 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
+argv@^0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab"
+ integrity sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=
+
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
@@ -1491,6 +1503,17 @@ code-point-at@^1.0.0:
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+codecov@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.3.0.tgz#7bf337b3f7b0474606b5c31c56dd9e44e395e15d"
+ integrity sha512-S70c3Eg9SixumOvxaKE/yKUxb9ihu/uebD9iPO2IR73IdP4i6ZzjXEULj3d0HeyWPr0DqBfDkjNBWxURjVO5hw==
+ dependencies:
+ argv "^0.0.2"
+ ignore-walk "^3.0.1"
+ js-yaml "^3.12.0"
+ teeny-request "^3.7.0"
+ urlgrey "^0.4.4"
+
coffee-react-transform@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/coffee-react-transform/-/coffee-react-transform-3.3.0.tgz#f1f90fa22de8d767fca2793e3b70f0f7d7a2e467"
@@ -1787,6 +1810,11 @@ cypress-cucumber-preprocessor@^1.11.0:
glob "^7.1.2"
through "^2.3.8"
+cypress-plugin-retries@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/cypress-plugin-retries/-/cypress-plugin-retries-1.2.0.tgz#a4e120c1bc417d1be525632e7d38e52a87bc0578"
+ integrity sha512-seQFI/0j5WCqX7IVN2k0tbd3FLdhbPuSCWdDtdzDmU9oJfUkRUlluV47TYD+qQ/l+fJYkQkpw8csLg8/LohfRg==
+
cypress@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-3.2.0.tgz#c2d5befd5077dab6fb52ad70721e0868ac057001"
@@ -1999,10 +2027,10 @@ domain-browser@^1.2.0:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-dotenv@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c"
- integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==
+dotenv@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.0.0.tgz#ed310c165b4e8a97bb745b0a9d99c31bda566440"
+ integrity sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg==
duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2:
version "0.1.4"
@@ -2103,6 +2131,18 @@ es6-iterator@~2.0.3:
es5-ext "^0.10.35"
es6-symbol "^3.1.1"
+es6-promise@^4.0.3:
+ version "4.2.6"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f"
+ integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==
+
+es6-promisify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
+ integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
+ dependencies:
+ es6-promise "^4.0.3"
+
es6-symbol@^3.1.1, es6-symbol@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
@@ -2632,6 +2672,14 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
+https-proxy-agent@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
+ integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
+ dependencies:
+ agent-base "^4.1.0"
+ debug "^3.1.0"
+
iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -3007,6 +3055,14 @@ js-levenshtein@^1.1.3:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+js-yaml@^3.12.0:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
js-yaml@^3.9.0:
version "3.13.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e"
@@ -3473,10 +3529,10 @@ needle@^2.2.1:
iconv-lite "^0.4.4"
sax "^1.2.4"
-neo4j-driver@^1.7.3:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-1.7.3.tgz#1c1108ab26b7243975f1b20045daf31d8f685207"
- integrity sha512-UCNOFiQdouq14PvZGTr+psy657BJsBpO6O2cJpP+NprZnEF4APrDzAcydPZSFxE1nfooLNc50vfuZ0q54UyY2Q==
+neo4j-driver@^1.7.4:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-1.7.4.tgz#9661cf643b63818bff85e82c4691918e75098c1e"
+ integrity sha512-pbK1HbXh92zNSwMlXL8aNynkHohg9Jx/Tk+EewdJawGm8n8sKIY4NpRkp0nRw6RHvVBU3u9cQXt01ftFVe7j+A==
dependencies:
babel-runtime "^6.26.0"
text-encoding "^0.6.4"
@@ -3509,6 +3565,11 @@ node-fetch@2.1.2:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5"
integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=
+node-fetch@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5"
+ integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==
+
node-pre-gyp@^0.10.0:
version "0.10.3"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc"
@@ -4621,6 +4682,15 @@ tar@^4:
safe-buffer "^5.1.2"
yallist "^3.0.2"
+teeny-request@^3.7.0:
+ version "3.11.3"
+ resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55"
+ integrity sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw==
+ dependencies:
+ https-proxy-agent "^2.2.1"
+ node-fetch "^2.2.0"
+ uuid "^3.3.2"
+
text-encoding@^0.6.4:
version "0.6.4"
resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19"
@@ -4847,6 +4917,11 @@ url@0.11.0, url@~0.11.0:
punycode "1.3.2"
querystring "0.2.0"
+urlgrey@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f"
+ integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=
+
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"