diff --git a/.vscode/settings.json b/.vscode/settings.json index 2091e5e03..8565bda8e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,5 +8,4 @@ } ], "editor.formatOnSave": false, - "eslint.autoFixOnSave": true } diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fe6b9619..25a79dfb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,67 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [v0.2.0](https://github.com/Human-Connection/Human-Connection/compare/v0.1.13...v0.2.0) + +> 19 December 2019 + +- build(deps): bump metascraper-image from 5.8.10 to 5.8.12 in /backend [`#2556`](https://github.com/Human-Connection/Human-Connection/pull/2556) +- build(deps-dev): bump @babel/core from 7.7.5 to 7.7.7 [`#2569`](https://github.com/Human-Connection/Human-Connection/pull/2569) +- build(deps-dev): bump @babel/cli from 7.7.5 to 7.7.7 in /backend [`#2576`](https://github.com/Human-Connection/Human-Connection/pull/2576) +- Lokalise: Translations update [`#2563`](https://github.com/Human-Connection/Human-Connection/pull/2563) +- build(deps-dev): bump style-resources-loader from 1.3.2 to 1.3.3 in /webapp [`#2580`](https://github.com/Human-Connection/Human-Connection/pull/2580) +- build(deps): bump node from 13.3.0-alpine to 13.4.0-alpine in /webapp [`#2577`](https://github.com/Human-Connection/Human-Connection/pull/2577) +- build(deps): bump metascraper-title from 5.8.10 to 5.8.12 in /backend [`#2575`](https://github.com/Human-Connection/Human-Connection/pull/2575) +- build(deps-dev): bump apollo-server-testing from 2.9.13 to 2.9.14 in /backend [`#2574`](https://github.com/Human-Connection/Human-Connection/pull/2574) +- build(deps): bump mustache from 3.1.0 to 3.2.0 in /backend [`#2572`](https://github.com/Human-Connection/Human-Connection/pull/2572) +- Blur Images [`#2351`](https://github.com/Human-Connection/Human-Connection/pull/2351) +- build(deps-dev): bump @babel/node from 7.7.4 to 7.7.7 in /backend [`#2570`](https://github.com/Human-Connection/Human-Connection/pull/2570) +- build(deps-dev): bump @babel/preset-env from 7.7.6 to 7.7.7 [`#2567`](https://github.com/Human-Connection/Human-Connection/pull/2567) +- build(deps): bump metascraper-description from 5.8.10 to 5.8.12 in /backend [`#2566`](https://github.com/Human-Connection/Human-Connection/pull/2566) +- Add back layout changes/update db_manipulation [`#2544`](https://github.com/Human-Connection/Human-Connection/pull/2544) +- build(deps): bump metascraper-soundcloud from 5.8.10 to 5.8.12 in /backend [`#2560`](https://github.com/Human-Connection/Human-Connection/pull/2560) +- build(deps): bump metascraper-author from 5.8.7 to 5.8.12 in /backend [`#2559`](https://github.com/Human-Connection/Human-Connection/pull/2559) +- build(deps): bump metascraper from 5.8.9 to 5.8.12 in /backend [`#2558`](https://github.com/Human-Connection/Human-Connection/pull/2558) +- build(deps): bump metascraper-youtube from 5.8.9 to 5.8.12 in /backend [`#2547`](https://github.com/Human-Connection/Human-Connection/pull/2547) +- build(deps): bump metascraper-video from 5.8.10 to 5.8.12 in /backend [`#2557`](https://github.com/Human-Connection/Human-Connection/pull/2557) +- build(deps): bump metascraper-date from 5.8.7 to 5.8.12 in /backend [`#2555`](https://github.com/Human-Connection/Human-Connection/pull/2555) +- build(deps): bump metascraper-logo from 5.8.10 to 5.8.12 in /backend [`#2554`](https://github.com/Human-Connection/Human-Connection/pull/2554) +- build(deps): bump apollo-server-express from 2.9.13 to 2.9.14 in /backend [`#2551`](https://github.com/Human-Connection/Human-Connection/pull/2551) +- build(deps-dev): bump css-loader from 3.3.2 to 3.4.0 in /webapp [`#2550`](https://github.com/Human-Connection/Human-Connection/pull/2550) +- build(deps-dev): bump cypress-cucumber-preprocessor from 1.18.0 to 1.19.0 [`#2548`](https://github.com/Human-Connection/Human-Connection/pull/2548) +- Lokalise: Translations update [`#2545`](https://github.com/Human-Connection/Human-Connection/pull/2545) +- build(deps): bump metascraper-youtube from 5.8.9 to 5.8.10 in /backend [`#2522`](https://github.com/Human-Connection/Human-Connection/pull/2522) +- build(deps): bump metascraper-title from 5.8.7 to 5.8.10 in /backend [`#2525`](https://github.com/Human-Connection/Human-Connection/pull/2525) +- build(deps): bump metascraper-lang from 5.8.9 to 5.8.10 in /backend [`#2531`](https://github.com/Human-Connection/Human-Connection/pull/2531) +- build(deps): bump tiptap-extensions from 1.28.5 to 1.28.6 in /webapp [`#2535`](https://github.com/Human-Connection/Human-Connection/pull/2535) +- Fix maintenance service/LocaleSwitch import [`#2542`](https://github.com/Human-Connection/Human-Connection/pull/2542) +- build(deps): bump apollo-client from 2.6.4 to 2.6.8 in /webapp [`#2523`](https://github.com/Human-Connection/Human-Connection/pull/2523) +- build(deps): bump stack-utils from 1.0.2 to 2.0.1 in /webapp [`#2521`](https://github.com/Human-Connection/Human-Connection/pull/2521) +- build(deps): bump metascraper-soundcloud from 5.8.9 to 5.8.10 in /backend [`#2520`](https://github.com/Human-Connection/Human-Connection/pull/2520) +- Update neode [`#2539`](https://github.com/Human-Connection/Human-Connection/pull/2539) +- build(deps-dev): bump eslint-plugin-prettier from 3.1.1 to 3.1.2 in /webapp [`#2519`](https://github.com/Human-Connection/Human-Connection/pull/2519) +- build(deps): bump apollo-cache-inmemory from 1.6.3 to 1.6.5 in /webapp [`#2527`](https://github.com/Human-Connection/Human-Connection/pull/2527) +- build(deps): bump neo4j-graphql-js from 2.10.1 to 2.10.2 in /backend [`#2530`](https://github.com/Human-Connection/Human-Connection/pull/2530) +- build(deps): bump metascraper-image from 5.8.7 to 5.8.10 in /backend [`#2532`](https://github.com/Human-Connection/Human-Connection/pull/2532) +- build(deps): bump apollo-cache-inmemory from 1.6.3 to 1.6.5 in /backend [`#2534`](https://github.com/Human-Connection/Human-Connection/pull/2534) +- build(deps): bump metascraper-video from 5.8.9 to 5.8.10 in /backend [`#2536`](https://github.com/Human-Connection/Human-Connection/pull/2536) +- build(deps): bump tiptap from 1.26.5 to 1.26.6 in /webapp [`#2537`](https://github.com/Human-Connection/Human-Connection/pull/2537) +- build(deps-dev): bump vue-loader from 15.7.2 to 15.8.3 in /webapp [`#2538`](https://github.com/Human-Connection/Human-Connection/pull/2538) +- Refactor: content menu [`#2512`](https://github.com/Human-Connection/Human-Connection/pull/2512) +- build(deps): bump metascraper-audio from 5.8.7 to 5.8.10 in /backend [`#2524`](https://github.com/Human-Connection/Human-Connection/pull/2524) +- build(deps): bump metascraper-description from 5.8.7 to 5.8.10 in /backend [`#2518`](https://github.com/Human-Connection/Human-Connection/pull/2518) +- build(deps-dev): bump eslint-plugin-prettier from 3.1.1 to 3.1.2 in /backend [`#2517`](https://github.com/Human-Connection/Human-Connection/pull/2517) +- build(deps): bump apollo-client from 2.6.4 to 2.6.8 in /backend [`#2516`](https://github.com/Human-Connection/Human-Connection/pull/2516) +- build(deps): bump metascraper-logo from 5.8.7 to 5.8.10 in /backend [`#2515`](https://github.com/Human-Connection/Human-Connection/pull/2515) +- Fix duplicate fragment `user` issue [`#2511`](https://github.com/Human-Connection/Human-Connection/pull/2511) +- fix: editor not visible in server-side-rendering [`#2513`](https://github.com/Human-Connection/Human-Connection/pull/2513) +- Update it.json [`#2507`](https://github.com/Human-Connection/Human-Connection/pull/2507) +- Fix: User.name is not non-nullable [`#2510`](https://github.com/Human-Connection/Human-Connection/pull/2510) +- Update to version 0.1.13 [`#2506`](https://github.com/Human-Connection/Human-Connection/pull/2506) +- Lokalise: update of webapp/locales/ru.json [`b70ff73`](https://github.com/Human-Connection/Human-Connection/commit/b70ff73bba98d28494c55ed12161288b1efa1516) +- build(deps): bump apollo-server-express in /backend [`69d3107`](https://github.com/Human-Connection/Human-Connection/commit/69d3107cbcce8225dd14f7231936a597fba6105d) +- refactor: content menu [`71b2eac`](https://github.com/Human-Connection/Human-Connection/commit/71b2eac175e9d6e1a2bbba123490f281b7cb13f3) + #### [v0.1.13](https://github.com/Human-Connection/Human-Connection/compare/v0.1.12...v0.1.13) > 13 December 2019 @@ -31,7 +92,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - Update to version 0.1.12 [`#2483`](https://github.com/Human-Connection/Human-Connection/pull/2483) - Lokalise: update of locale/ru.json [`60b3035`](https://github.com/Human-Connection/Human-Connection/commit/60b3035a3d475cb481130c6fe94f2901711a4053) - Write test/refactor tests/resolvers/middleware [`d375ebe`](https://github.com/Human-Connection/Human-Connection/commit/d375ebe7d90e3251b17f59ffba8fb1470923ebe8) -- Fix this annoying bug with a tested helper [`e24d803`](https://github.com/Human-Connection/Human-Connection/commit/e24d8035b13040dc29f5f9cb033de8c1a401ac34) +- refactor css, fix design issues [`5586335`](https://github.com/Human-Connection/Human-Connection/commit/5586335ed2b3474498e87b929f54d52562e44636) #### [v0.1.12](https://github.com/Human-Connection/Human-Connection/compare/v0.1.10...v0.1.12) @@ -196,9 +257,9 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - fix #2329: Normalize email on login in the backend [`#2329`](https://github.com/Human-Connection/Human-Connection/issues/2329) - Fix #2294 [`#2294`](https://github.com/Human-Connection/Human-Connection/issues/2294) - Merge pull request #2078 from Human-Connection/fix-2042-back-link [`#2042`](https://github.com/Human-Connection/Human-Connection/issues/2042) -- Tell github-linguists to ignore snapshots [`978347b`](https://github.com/Human-Connection/Human-Connection/commit/978347ba7b5a6aa1bc915ada972ffffa2816d37c) -- Lokalise: update of webapp/locales/ru.json [`906e851`](https://github.com/Human-Connection/Human-Connection/commit/906e8518bf060134150187fb1574ac50ffd502f6) -- Lokalise: update of webapp/locales/ru.json [`3e52ee0`](https://github.com/Human-Connection/Human-Connection/commit/3e52ee090c88c357b796895370d126f8bb5529f0) +- Move components to components/features [`2357028`](https://github.com/Human-Connection/Human-Connection/commit/235702867d97b44dac37f8059f9194e23ba7f47d) +- Add missing unit tests/refactor code [`b364065`](https://github.com/Human-Connection/Human-Connection/commit/b3640659bb608cc34edc6f2aca350f07dd2b9ce6) +- Add stories/specs for ReportList [`a59e72d`](https://github.com/Human-Connection/Human-Connection/commit/a59e72d8a8f491cb251e3e5acddea3b32144209b) #### [v0.1.10](https://github.com/Human-Connection/Human-Connection/compare/v0.1.9...v0.1.10) diff --git a/VERSION b/VERSION index 7ac4e5e38..0ea3a944b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.13 +0.2.0 diff --git a/backend/package.json b/backend/package.json index 71536ac78..071b84ecc 100644 --- a/backend/package.json +++ b/backend/package.json @@ -32,20 +32,20 @@ ] }, "dependencies": { - "@hapi/joi": "^16.1.8", - "@sentry/node": "^5.10.2", + "@hapi/joi": "^17.0.0", + "@sentry/node": "^5.11.0", "apollo-cache-inmemory": "~1.6.5", "apollo-client": "~2.6.8", "apollo-link-context": "~1.0.19", "apollo-link-http": "~1.5.16", - "apollo-server": "~2.9.13", - "apollo-server-express": "^2.9.7", + "apollo-server": "~2.9.15", + "apollo-server-express": "^2.9.14", "babel-plugin-transform-runtime": "^6.23.0", "bcryptjs": "~2.4.3", "cheerio": "~1.0.0-rc.3", "cors": "~2.8.5", "cross-env": "~6.0.3", - "date-fns": "2.8.1", + "date-fns": "2.9.0", "debug": "~4.1.1", "dotenv": "~8.2.0", "express": "^4.17.1", @@ -55,41 +55,41 @@ "graphql-iso-date": "~3.6.1", "graphql-middleware": "~4.0.2", "graphql-middleware-sentry": "^3.2.1", - "graphql-shield": "~7.0.4", + "graphql-shield": "~7.0.7", "graphql-tag": "~2.10.1", "helmet": "~3.21.2", "jsonwebtoken": "~8.5.1", "linkifyjs": "~2.1.8", "lodash": "~4.17.14", - "merge-graphql-schemas": "^1.7.3", - "metascraper": "^5.8.9", - "metascraper-audio": "^5.8.10", - "metascraper-author": "^5.8.7", + "merge-graphql-schemas": "^1.7.6", + "metascraper": "^5.9.5", + "metascraper-audio": "^5.9.5", + "metascraper-author": "^5.9.5", "metascraper-clearbit-logo": "^5.3.0", - "metascraper-date": "^5.8.7", - "metascraper-description": "^5.8.10", - "metascraper-image": "^5.8.10", - "metascraper-lang": "^5.8.10", + "metascraper-date": "^5.9.5", + "metascraper-description": "^5.9.5", + "metascraper-image": "^5.9.5", + "metascraper-lang": "^5.9.5", "metascraper-lang-detector": "^4.10.2", - "metascraper-logo": "^5.8.10", - "metascraper-publisher": "^5.8.7", - "metascraper-soundcloud": "^5.8.10", - "metascraper-title": "^5.8.10", - "metascraper-url": "^5.8.7", - "metascraper-video": "^5.8.10", - "metascraper-youtube": "^5.8.10", + "metascraper-logo": "^5.9.5", + "metascraper-publisher": "^5.9.5", + "metascraper-soundcloud": "^5.9.5", + "metascraper-title": "^5.9.5", + "metascraper-url": "^5.8.13", + "metascraper-video": "^5.9.5", + "metascraper-youtube": "^5.9.5", "minimatch": "^3.0.4", - "mustache": "^3.1.0", - "neo4j-driver": "~1.7.6", - "neo4j-graphql-js": "^2.10.2", - "neode": "^0.3.6", + "mustache": "^3.2.1", + "neo4j-driver": "^4.0.1", + "neo4j-graphql-js": "^2.11.4", + "neode": "^0.3.7", "node-fetch": "~2.6.0", "nodemailer": "^6.4.2", "nodemailer-html-to-text": "^3.1.0", "npm-run-all": "~4.1.5", "request": "~2.88.0", "sanitize-html": "~1.20.1", - "slug": "~1.1.0", + "slug": "~2.1.0", "trunc-html": "~1.1.2", "uuid": "~3.3.3", "validator": "^12.1.0", @@ -97,24 +97,24 @@ "xregexp": "^4.2.4" }, "devDependencies": { - "@babel/cli": "~7.7.5", - "@babel/core": "~7.7.5", - "@babel/node": "~7.7.4", + "@babel/cli": "~7.7.7", + "@babel/core": "~7.7.7", + "@babel/node": "~7.7.7", "@babel/plugin-proposal-throw-expressions": "^7.7.4", - "@babel/preset-env": "~7.7.6", + "@babel/preset-env": "~7.7.7", "@babel/register": "~7.7.0", - "apollo-server-testing": "~2.9.13", + "apollo-server-testing": "~2.9.15", "babel-core": "~7.0.0-0", "babel-eslint": "~10.0.3", "babel-jest": "~24.9.0", "chai": "~4.2.0", "cucumber": "~6.0.5", - "eslint": "~6.7.2", - "eslint-config-prettier": "~6.7.0", + "eslint": "~6.8.0", + "eslint-config-prettier": "~6.9.0", "eslint-config-standard": "~14.1.0", "eslint-plugin-import": "~2.19.1", - "eslint-plugin-jest": "~23.1.1", - "eslint-plugin-node": "~10.0.0", + "eslint-plugin-jest": "~23.3.0", + "eslint-plugin-node": "~11.0.0", "eslint-plugin-prettier": "~3.1.2", "eslint-plugin-promise": "~4.2.1", "eslint-plugin-standard": "~4.0.1", diff --git a/backend/src/bootstrap/neo4j.js b/backend/src/bootstrap/neo4j.js index 404e8a2c0..6d46a0279 100644 --- a/backend/src/bootstrap/neo4j.js +++ b/backend/src/bootstrap/neo4j.js @@ -1,4 +1,4 @@ -import { v1 as neo4j } from 'neo4j-driver' +import neo4j from 'neo4j-driver' import CONFIG from './../config' import Neode from 'neode' import models from '../models' diff --git a/backend/src/middleware/index.js b/backend/src/middleware/index.js index 9c68d8c00..25195b1b5 100644 --- a/backend/src/middleware/index.js +++ b/backend/src/middleware/index.js @@ -7,7 +7,6 @@ import sluggify from './sluggifyMiddleware' import excerpt from './excerptMiddleware' import xss from './xssMiddleware' import permissions from './permissionsMiddleware' -import user from './user/userMiddleware' import includedFields from './includedFieldsMiddleware' import orderBy from './orderByMiddleware' import validation from './validation/validationMiddleware' @@ -18,25 +17,25 @@ import sentry from './sentryMiddleware' export default schema => { const middlewares = { - permissions, sentry, + permissions, + xss, activityPub, validation, sluggify, excerpt, + email, notifications, hashtags, - xss, softDelete, - user, includedFields, orderBy, - email, } let order = [ 'sentry', 'permissions', + 'xss', // 'activityPub', disabled temporarily 'validation', 'sluggify', @@ -44,9 +43,7 @@ export default schema => { 'email', 'notifications', 'hashtags', - 'xss', 'softDelete', - 'user', 'includedFields', 'orderBy', ] diff --git a/backend/src/middleware/user/userMiddleware.js b/backend/src/middleware/user/userMiddleware.js deleted file mode 100644 index 2ca61e69f..000000000 --- a/backend/src/middleware/user/userMiddleware.js +++ /dev/null @@ -1,16 +0,0 @@ -import createOrUpdateLocations from '../nodes/locations' - -export default { - Mutation: { - SignupVerification: async (resolve, root, args, context, info) => { - const result = await resolve(root, args, context, info) - await createOrUpdateLocations(result.id, args.locationName, context.driver) - return result - }, - UpdateUser: async (resolve, root, args, context, info) => { - const result = await resolve(root, args, context, info) - await createOrUpdateLocations(args.id, args.locationName, context.driver) - return result - }, - }, -} diff --git a/backend/src/models/Post.js b/backend/src/models/Post.js index 18dc0e464..bd6eda2e4 100644 --- a/backend/src/models/Post.js +++ b/backend/src/models/Post.js @@ -39,5 +39,6 @@ module.exports = { default: () => new Date().toISOString(), }, language: { type: 'string', allow: [null] }, + imageBlurred: { type: 'boolean', default: false }, imageAspectRatio: { type: 'float', default: 1.0 }, } diff --git a/backend/src/schema/resolvers/helpers/databaseLogger.js b/backend/src/schema/resolvers/helpers/databaseLogger.js index 1e97b4d72..fac1a5c4a 100644 --- a/backend/src/schema/resolvers/helpers/databaseLogger.js +++ b/backend/src/schema/resolvers/helpers/databaseLogger.js @@ -3,8 +3,8 @@ const debugCypher = Debug('human-connection:neo4j:cypher') const debugStats = Debug('human-connection:neo4j:stats') export default function log(response) { - const { statement, counters, resultConsumedAfter, resultAvailableAfter } = response.summary - const { text, parameters } = statement + const { counters, resultConsumedAfter, resultAvailableAfter, query } = response.summary + const { text, parameters } = query debugCypher('%s', text) debugCypher('%o', parameters) debugStats('%o', counters) diff --git a/backend/src/schema/resolvers/posts.js b/backend/src/schema/resolvers/posts.js index 6ae3a81d9..47223faea 100644 --- a/backend/src/schema/resolvers/posts.js +++ b/backend/src/schema/resolvers/posts.js @@ -341,6 +341,7 @@ export default { 'language', 'pinnedAt', 'pinned', + 'imageBlurred', 'imageAspectRatio', ], hasMany: { diff --git a/backend/src/schema/resolvers/registration.js b/backend/src/schema/resolvers/registration.js index 1a6bda1c8..e03f294cd 100644 --- a/backend/src/schema/resolvers/registration.js +++ b/backend/src/schema/resolvers/registration.js @@ -5,6 +5,7 @@ import encryptPassword from '../../helpers/encryptPassword' import generateNonce from './helpers/generateNonce' import existingEmailAddress from './helpers/existingEmailAddress' import normalizeEmail from './helpers/normalizeEmail' +import createOrUpdateLocations from './users/location' const neode = getNeode() @@ -22,7 +23,9 @@ export default { throw new UserInputError(e.message) } }, - SignupVerification: async (_parent, args) => { + SignupVerification: async (_parent, args, context) => { + const { driver } = context + const session = driver.session() const { termsAndConditionsAgreedVersion } = args const regEx = new RegExp(/^[0-9]+\.[0-9]+\.[0-9]+$/g) if (!regEx.test(termsAndConditionsAgreedVersion)) { @@ -51,11 +54,14 @@ export default { emailAddress.relateTo(user, 'belongsTo'), emailAddress.update({ verifiedAt: new Date().toISOString() }), ]) + await createOrUpdateLocations(args.id, args.locationName, session) return user.toJson() } catch (e) { if (e.code === 'Neo.ClientError.Schema.ConstraintValidationFailed') throw new UserInputError('User with this slug already exists!') throw new UserInputError(e.message) + } finally { + session.close() } }, }, diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index be9a69e80..0b3f13631 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -4,6 +4,7 @@ import { getNeode } from '../../bootstrap/neo4j' import { UserInputError, ForbiddenError } from 'apollo-server' import Resolver from './helpers/Resolver' import log from './helpers/databaseLogger' +import createOrUpdateLocations from './users/location' const neode = getNeode() @@ -127,6 +128,7 @@ export default { }) try { const [user] = await writeTxResultPromise + await createOrUpdateLocations(params.id, params.locationName, session) return user } catch (error) { throw new UserInputError(error.message) diff --git a/backend/src/middleware/nodes/locations.js b/backend/src/schema/resolvers/users/location.js similarity index 76% rename from backend/src/middleware/nodes/locations.js rename to backend/src/schema/resolvers/users/location.js index 47262d7ba..3f3638bf5 100644 --- a/backend/src/middleware/nodes/locations.js +++ b/backend/src/schema/resolvers/users/location.js @@ -2,8 +2,8 @@ import request from 'request' import { UserInputError } from 'apollo-server' import isEmpty from 'lodash/isEmpty' import Debug from 'debug' -import asyncForEach from '../../helpers/asyncForEach' -import CONFIG from './../../config' +import asyncForEach from '../../../helpers/asyncForEach' +import CONFIG from '../../../config' const debug = Debug('human-connection:location') @@ -57,16 +57,12 @@ const createLocation = async (session, mapboxData) => { } mutation += ' RETURN l.id' - try { - await session.writeTransaction(transaction => { - return transaction.run(mutation, data) - }) - } finally { - session.close() - } + await session.writeTransaction(transaction => { + return transaction.run(mutation, data) + }) } -const createOrUpdateLocations = async (userId, locationName, driver) => { +const createOrUpdateLocations = async (userId, locationName, session) => { if (isEmpty(locationName)) { return } @@ -99,7 +95,6 @@ const createOrUpdateLocations = async (userId, locationName, driver) => { throw new UserInputError('locationName is invalid') } - const session = driver.session() if (data.place_type.length > 1) { data.id = 'region.' + data.id.split('.')[1] } @@ -110,44 +105,36 @@ const createOrUpdateLocations = async (userId, locationName, driver) => { if (data.context) { await asyncForEach(data.context, async ctx => { await createLocation(session, ctx) - try { - await session.writeTransaction(transaction => { - return transaction.run( - ` + await session.writeTransaction(transaction => { + return transaction.run( + ` MATCH (parent:Location {id: $parentId}), (child:Location {id: $childId}) MERGE (child)<-[:IS_IN]-(parent) RETURN child.id, parent.id `, - { - parentId: parent.id, - childId: ctx.id, - }, - ) - }) - parent = ctx - } finally { - session.close() - } + { + parentId: parent.id, + childId: ctx.id, + }, + ) + }) + parent = ctx }) } // delete all current locations from user and add new location - try { - await session.writeTransaction(transaction => { - return transaction.run( - ` + await session.writeTransaction(transaction => { + return transaction.run( + ` MATCH (user:User {id: $userId})-[relationship:IS_IN]->(location:Location) DETACH DELETE relationship WITH user - MATCH (location:Location {id: $locationId}) - MERGE (user)-[:IS_IN]->(location) + MATCH (location:Location {id: $locationId}) + MERGE (user)-[:IS_IN]->(location) RETURN location.id, user.id `, - { userId: userId, locationId: data.id }, - ) - }) - } finally { - session.close() - } + { userId: userId, locationId: data.id }, + ) + }) } export default createOrUpdateLocations diff --git a/backend/src/middleware/user/userMiddleware.spec.js b/backend/src/schema/resolvers/users/location.spec.js similarity index 96% rename from backend/src/middleware/user/userMiddleware.spec.js rename to backend/src/schema/resolvers/users/location.spec.js index 4ca8fd89f..59d093afb 100644 --- a/backend/src/middleware/user/userMiddleware.spec.js +++ b/backend/src/schema/resolvers/users/location.spec.js @@ -1,8 +1,8 @@ -import { gql } from '../../helpers/jest' -import Factory from '../../seed/factories' -import { getNeode, getDriver } from '../../bootstrap/neo4j' +import { gql } from '../../../helpers/jest' +import Factory from '../../../seed/factories' +import { getNeode, getDriver } from '../../../bootstrap/neo4j' import { createTestClient } from 'apollo-server-testing' -import createServer from '../../server' +import createServer from '../../../server' const factory = Factory() const neode = getNeode() diff --git a/backend/src/schema/types/type/Post.gql b/backend/src/schema/types/type/Post.gql index 0f1817971..2e4358b3e 100644 --- a/backend/src/schema/types/type/Post.gql +++ b/backend/src/schema/types/type/Post.gql @@ -82,6 +82,7 @@ input _PostFilter { emotions_none: _PostEMOTEDFilter emotions_single: _PostEMOTEDFilter emotions_every: _PostEMOTEDFilter + imageBlurred: Boolean } enum _PostOrdering { @@ -127,6 +128,7 @@ type Post { createdAt: String updatedAt: String language: String + imageBlurred: Boolean pinnedAt: String @cypher( statement: "MATCH (this)<-[pinned:PINNED]-(:User) WHERE NOT this.deleted = true AND NOT this.disabled = true RETURN pinned.createdAt" ) @@ -140,7 +142,6 @@ type Post { LIMIT 10 """ ) - tags: [Tag]! @relation(name: "TAGGED", direction: "OUT") categories: [Category]! @relation(name: "CATEGORIZED", direction: "OUT") @@ -183,6 +184,7 @@ type Mutation { language: String categoryIds: [ID] contentExcerpt: String + imageBlurred: Boolean imageAspectRatio: Float ): Post UpdatePost( @@ -196,6 +198,7 @@ type Mutation { visibility: Visibility language: String categoryIds: [ID] + imageBlurred: Boolean imageAspectRatio: Float ): Post DeletePost(id: ID!): Post @@ -217,6 +220,7 @@ type Query { createdAt: String updatedAt: String language: String + imageBlurred: Boolean first: Int offset: Int orderBy: [_PostOrdering] diff --git a/backend/src/seed/factories/posts.js b/backend/src/seed/factories/posts.js index 2443619ae..d1a46d71b 100644 --- a/backend/src/seed/factories/posts.js +++ b/backend/src/seed/factories/posts.js @@ -19,6 +19,7 @@ export default function create() { visibility: 'public', deleted: false, categoryIds: [], + imageBlurred: false, imageAspectRatio: 1.333, } args = { diff --git a/backend/src/seed/seed-db.js b/backend/src/seed/seed-db.js index 475a7b54f..4178169bb 100644 --- a/backend/src/seed/seed-db.js +++ b/backend/src/seed/seed-db.js @@ -352,6 +352,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] language: sample(languages), image: faker.image.unsplash.food(300, 169), categoryIds: ['cat16'], + imageBlurred: true, imageAspectRatio: 300 / 169, }), factory.create('Post', { @@ -398,6 +399,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] author: dewey, id: 'p10', categoryIds: ['cat10'], + imageBlurred: true, }), factory.create('Post', { author: louie, @@ -444,6 +446,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] $title: String! $content: String! $categoryIds: [ID] + $imageBlurred: Boolean $imageAspectRatio: Float ) { CreatePost( @@ -451,6 +454,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] title: $title content: $content categoryIds: $categoryIds + imageBlurred: $imageBlurred imageAspectRatio: $imageAspectRatio ) { id diff --git a/backend/yarn.lock b/backend/yarn.lock index 25e711898..24c6e5fb5 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -33,10 +33,10 @@ resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz#3ce939cb127fb8aaa3ffc1e90dff9b8af9f2e3dc" integrity sha512-8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ== -"@babel/cli@~7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.7.5.tgz#25702cc65418efc06989af3727897b9f4c8690b6" - integrity sha512-y2YrMGXM3NUyu1Myg0pxg+Lx6g8XhEyvLHYNRwTBV6fDek3H7Io6b7N/LXscLs4HWn4HxMdy7f2rM1rTMp2mFg== +"@babel/cli@~7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.7.7.tgz#56849acbf81d1a970dd3d1b3097c8ebf5da3f534" + integrity sha512-XQw5KyCZyu/M8/0rYiZyuwbgIQNzOrJzs9dDLX+MieSgBwTLvTj4QVbLmxJACAIvQIDT7PtyHN2sC48EOWTgaA== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" @@ -56,15 +56,15 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.1.0", "@babel/core@~7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.5.tgz#ae1323cd035b5160293307f50647e83f8ba62f7e" - integrity sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw== +"@babel/core@^7.1.0", "@babel/core@~7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" + integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.4" + "@babel/generator" "^7.7.7" "@babel/helpers" "^7.7.4" - "@babel/parser" "^7.7.5" + "@babel/parser" "^7.7.7" "@babel/template" "^7.7.4" "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" @@ -76,10 +76,10 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369" - integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg== +"@babel/generator@^7.4.0", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" + integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== dependencies: "@babel/types" "^7.7.4" jsesc "^2.5.1" @@ -279,23 +279,24 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/node@~7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.7.4.tgz#de1cc9c67b335a19e4f71208554779bc63719f5a" - integrity sha512-Vhhq2kK+BpsR2tW35zP8yOJZ7ONMVBwCD9fmNeRTU3MNNpcJDrrtVP5NK8ZX4nQAs0GSq6ky8noyn6MCVgL08g== +"@babel/node@~7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.7.7.tgz#10c488ca36da07670be0131679c4e22f9d7795d4" + integrity sha512-QWWbQ6AyDffz6mA2mF0jixb/3IyRlqWgz5JNa2F6kSYe4vhPEytwuGmanx0NQJxBufDjffm/jYPuIfKfAyVzuA== dependencies: - "@babel/register" "^7.7.4" + "@babel/register" "^7.7.7" commander "^2.8.1" core-js "^3.2.1" lodash "^4.17.13" node-environment-flags "^1.0.5" regenerator-runtime "^0.13.3" + resolve "^1.13.1" v8flags "^3.1.1" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.4", "@babel/parser@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71" - integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" + integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== "@babel/plugin-proposal-async-generator-functions@^7.7.4": version "7.7.4" @@ -322,10 +323,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.7.4" -"@babel/plugin-proposal-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz#cc57849894a5c774214178c8ab64f6334ec8af71" - integrity sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ== +"@babel/plugin-proposal-object-rest-spread@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" + integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.7.4" @@ -346,10 +347,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-throw-expressions" "^7.7.4" -"@babel/plugin-proposal-unicode-property-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb" - integrity sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA== +"@babel/plugin-proposal-unicode-property-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" + integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -462,10 +463,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96" - integrity sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw== +"@babel/plugin-transform-dotall-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" + integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -572,10 +573,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.7.4" -"@babel/plugin-transform-parameters@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz#da4555c97f39b51ac089d31c7380f03bca4075ce" - integrity sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw== +"@babel/plugin-transform-parameters@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" + integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== dependencies: "@babel/helper-call-delegate" "^7.7.4" "@babel/helper-get-function-arity" "^7.7.4" @@ -647,19 +648,19 @@ "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/preset-env@~7.7.6": - version "7.7.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.6.tgz#39ac600427bbb94eec6b27953f1dfa1d64d457b2" - integrity sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ== +"@babel/preset-env@~7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" + integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== dependencies: "@babel/helper-module-imports" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.7.4" "@babel/plugin-proposal-dynamic-import" "^7.7.4" "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.4" + "@babel/plugin-proposal-object-rest-spread" "^7.7.7" "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" "@babel/plugin-syntax-async-generators" "^7.7.4" "@babel/plugin-syntax-dynamic-import" "^7.7.4" "@babel/plugin-syntax-json-strings" "^7.7.4" @@ -673,7 +674,7 @@ "@babel/plugin-transform-classes" "^7.7.4" "@babel/plugin-transform-computed-properties" "^7.7.4" "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.4" + "@babel/plugin-transform-dotall-regex" "^7.7.7" "@babel/plugin-transform-duplicate-keys" "^7.7.4" "@babel/plugin-transform-exponentiation-operator" "^7.7.4" "@babel/plugin-transform-for-of" "^7.7.4" @@ -687,7 +688,7 @@ "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" "@babel/plugin-transform-new-target" "^7.7.4" "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.4" + "@babel/plugin-transform-parameters" "^7.7.7" "@babel/plugin-transform-property-literals" "^7.7.4" "@babel/plugin-transform-regenerator" "^7.7.5" "@babel/plugin-transform-reserved-words" "^7.7.4" @@ -699,15 +700,15 @@ "@babel/plugin-transform-unicode-regex" "^7.7.4" "@babel/types" "^7.7.4" browserslist "^4.6.0" - core-js-compat "^3.4.7" + core-js-compat "^3.6.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/register@^7.7.4", "@babel/register@~7.7.0": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.4.tgz#45a4956471a9df3b012b747f5781cc084ee8f128" - integrity sha512-/fmONZqL6ZMl9KJUYajetCrID6m0xmL4odX7v+Xvoxcv0DdbP/oO0TWIeLUCHqczQ6L6njDMqmqHFy2cp3FFsA== +"@babel/register@^7.7.7", "@babel/register@~7.7.0": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.7.tgz#46910c4d1926b9c6096421b23d1f9e159c1dcee1" + integrity sha512-S2mv9a5dc2pcpg/ConlKZx/6wXaEwHeqfo7x/QbXsdCAZm+WJC1ekVvL1TVxNsedTs5y/gG63MhJTEsmwmjtiA== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.13" @@ -771,54 +772,65 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@graphql-toolkit/common@0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@graphql-toolkit/common/-/common-0.6.8.tgz#7e80f4821d8484970d768b7cb19a0bc1e7a90784" - integrity sha512-vvxLMumGhFsSU/SPbMHsHPtr1WpD98EngSVzDoH4EfiobT8O9RKCaK/Nr57nWxbk1+A0iAC3OrHYugp46au5sQ== +"@graphql-toolkit/common@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@graphql-toolkit/common/-/common-0.9.0.tgz#24d1744fa0d6b9331e8032097fcebb74390bad92" + integrity sha512-bLuyt4yV/XIHUS+gP4aF5xjnb5M2K+uuB35Hojw0er+tkNhWiOuWQzRMWPovds/4WN2C9PuknQby/+ntgBOm/g== dependencies: "@kamilkisiela/graphql-tools" "4.0.6" aggregate-error "3.0.1" lodash "4.17.15" -"@graphql-toolkit/file-loading@0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@graphql-toolkit/file-loading/-/file-loading-0.6.8.tgz#6b03c752c2c5dd917172f7070cf92626e0fd83bf" - integrity sha512-kR7EizV5COWhYhkf0eq4/EAtGhbamjq3EvNifiFoRdGzJxIVwfD4If56rFAVCp7dBmUHl4mRG8RySydwIu1xGQ== +"@graphql-toolkit/file-loading@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@graphql-toolkit/file-loading/-/file-loading-0.9.0.tgz#745cfe22adb0d710d09f43bdd67a2d9b54e0257a" + integrity sha512-Vs7n8VsZm1Oyw/1kKy/Y7fE8CznFA4SK4SEnWll9gpCmVE2vbATUYUlqSqm/W2npDdYB3FODEzhr5HIsQrjg6g== dependencies: - "@graphql-toolkit/common" "0.6.8" - "@kamilkisiela/graphql-tools" "4.0.6" - glob "7.1.6" + globby "11.0.0" + unixify "1.0.0" -"@graphql-toolkit/schema-merging@0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@graphql-toolkit/schema-merging/-/schema-merging-0.6.8.tgz#67c0d83f9975026b20a69fca6a01f9b7d04ebbdb" - integrity sha512-/QhyfscZLqJLOgM0fD9Dxb5ps9OYyaOPxNS2mgjvX++jbNkJW2128b3KrB0nJzFdVEiOllRoaYHGKM4w8lvhmg== +"@graphql-toolkit/schema-merging@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@graphql-toolkit/schema-merging/-/schema-merging-0.9.0.tgz#f4fb380e6be57e0235c25a77fc0aec842414c27e" + integrity sha512-vrzkqkFXxZ4dXQrHeNGDDWONbOAVDeJmGPwK0cRu2aVszftvkYVJXBrmkMYzZJHwk+tGVkNywf1r00GR6prpOw== dependencies: - "@graphql-toolkit/common" "0.6.8" + "@graphql-toolkit/common" "0.9.0" "@kamilkisiela/graphql-tools" "4.0.6" deepmerge "4.2.2" tslib "1.10.0" -"@hapi/address@2.x.x", "@hapi/address@^2.1.2": +"@hapi/address@2.x.x": version "2.1.2" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222" integrity sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q== +"@hapi/address@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-4.0.0.tgz#36affb4509b5a6adc628bcc394450f2a7d51d111" + integrity sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/bourne@1.x.x": version "1.3.2" resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== -"@hapi/formula@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-1.2.0.tgz#994649c7fea1a90b91a0a1e6d983523f680e10cd" - integrity sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA== +"@hapi/formula@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-2.0.0.tgz#edade0619ed58c8e4f164f233cda70211e787128" + integrity sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A== -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.2.4": +"@hapi/hoek@8.x.x": version "8.2.4" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.2.4.tgz#684a14f4ca35d46f44abc87dfc696e5e4fe8a020" integrity sha512-Ze5SDNt325yZvNO7s5C4fXDscjJ6dcqLFXJQ/M7dZRQCewuDj2iDUuBi6jLQt+APbW9RjjVEvLr35FXuOEqjow== +"@hapi/hoek@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.0.0.tgz#ba83436edfac1d1ffd0e94797d43419c20ad49b8" + integrity sha512-XxD4A5YMIH70ddjG7BJBUz7RWVQAwIP/36Eoyh0DsaWp92OAeXkrbtSEaYkynBPTsN9Uv2mZq9QWZYILl2Svrw== + "@hapi/joi@^15.0.3", "@hapi/joi@^15.1.0": version "15.1.1" resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" @@ -829,29 +841,36 @@ "@hapi/hoek" "8.x.x" "@hapi/topo" "3.x.x" -"@hapi/joi@^16.1.8": - version "16.1.8" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-16.1.8.tgz#84c1f126269489871ad4e2decc786e0adef06839" - integrity sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg== +"@hapi/joi@^17.0.0": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-17.0.0.tgz#db72e68cf1741b422ff7efe84e0218aae755ce6f" + integrity sha512-96Su6qSTW0OcFb95GHELBiqI2hmnWvo1doJ0BAFsmDcSKkOvGUSUbG6g0koh6oLI7RBd2hNljnkJw61WYyfIhw== dependencies: - "@hapi/address" "^2.1.2" - "@hapi/formula" "^1.2.0" - "@hapi/hoek" "^8.2.4" - "@hapi/pinpoint" "^1.0.2" - "@hapi/topo" "^3.1.3" + "@hapi/address" "^4.0.0" + "@hapi/formula" "^2.0.0" + "@hapi/hoek" "^9.0.0" + "@hapi/pinpoint" "^2.0.0" + "@hapi/topo" "^5.0.0" -"@hapi/pinpoint@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-1.0.2.tgz#025b7a36dbbf4d35bf1acd071c26b20ef41e0d13" - integrity sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ== +"@hapi/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df" + integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw== -"@hapi/topo@3.x.x", "@hapi/topo@^3.1.3": +"@hapi/topo@3.x.x": version "3.1.3" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.3.tgz#c7a02e0d936596d29f184e6d7fdc07e8b5efce11" integrity sha512-JmS9/vQK6dcUYn7wc2YZTqzIKubAQcJKu2KCKAru6es482U5RT5fP1EXCPtlXpiK7PR0On/kpQKI4fRKkzpZBQ== dependencies: "@hapi/hoek" "8.x.x" +"@hapi/topo@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" + integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@jest/console@^24.7.1", "@jest/console@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" @@ -1034,10 +1053,10 @@ url-regex "~4.1.1" video-extensions "~1.1.0" -"@metascraper/helpers@^5.8.10", "@metascraper/helpers@^5.8.7": - version "5.8.10" - resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.8.10.tgz#efaae1d57afca6db1f0846852fe88d1608601f13" - integrity sha512-o7vrlNC+wzfArTkQcQfHKT4iHUYEQYs6hoORTWN7A1dj5v8P1wl5oOs0oAc7MNGJ3nWnex3/bq/5SUWV301Arg== +"@metascraper/helpers@^5.8.13", "@metascraper/helpers@^5.9.5": + version "5.9.5" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.9.5.tgz#490ecd05466308d99bc17fd829339cc70c0dcec4" + integrity sha512-RJrYv7/W9Ha1VvG97b0UKvaMAWwUY617wVjJC+jN6qe9bUD1Lex4GCPGPm57FiF8zombQ6sbTZeaaulQAOsRlg== dependencies: audio-extensions "0.0.0" chrono-node "~1.3.11" @@ -1052,7 +1071,7 @@ isostring "0.0.1" lodash "~4.17.15" memoize-one "~5.1.1" - mime-types "~2.1.25" + mime-types "~2.1.26" normalize-url "~4.5.0" smartquotes "~2.3.1" title "~3.4.1" @@ -1060,6 +1079,27 @@ url-regex "~5.0.0" video-extensions "~1.1.0" +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -1113,72 +1153,72 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@sentry/apm@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@sentry/apm/-/apm-5.10.2.tgz#41a401b3964b68514439f8a595b12c6fd05ab21a" - integrity sha512-rPeAFsD/6ontvs7bsuHh+XAg1ohWo04ms08SNWqEvLRQJx7WfiWnjziyC0S3dXIYZDGdhruSsqQJPJN8r6Aj5g== +"@sentry/apm@5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@sentry/apm/-/apm-5.11.0.tgz#b1f375f72a586351fdcc63d81c2d413309ce665c" + integrity sha512-Eb/xsw5V8Cl80XRy2Pgknj121WlPVlbZ2huiQUcVm48+elg9k2H8FxK2mTyL/A26QZvQFgxAJ+ASVrE+Nff3NA== dependencies: - "@sentry/hub" "5.10.2" - "@sentry/minimal" "5.10.2" - "@sentry/types" "5.10.0" - "@sentry/utils" "5.10.2" + "@sentry/hub" "5.11.0" + "@sentry/minimal" "5.11.0" + "@sentry/types" "5.11.0" + "@sentry/utils" "5.11.0" tslib "^1.9.3" -"@sentry/core@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.10.2.tgz#1cb64489e6f8363c3249415b49d3f1289814825f" - integrity sha512-sKVeFH3v8K8xw2vM5MKMnnyAAwih+JSE3pbNL0CcCCA+/SwX+3jeAo2BhgXev2SAR/TjWW+wmeC9TdIW7KyYbg== +"@sentry/core@5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.11.0.tgz#fc21acefbb58bacda7b1b33e4a67b56d7f7064b4" + integrity sha512-bofpzY5Sgcrq69eg1iA13kGJqWia4s/jVOB3DCU3rPUKGHVL8hh9CjrIho1C0XygQxjuPAJznOj0cCaRxD1vJQ== dependencies: - "@sentry/hub" "5.10.2" - "@sentry/minimal" "5.10.2" - "@sentry/types" "5.10.0" - "@sentry/utils" "5.10.2" + "@sentry/hub" "5.11.0" + "@sentry/minimal" "5.11.0" + "@sentry/types" "5.11.0" + "@sentry/utils" "5.11.0" tslib "^1.9.3" -"@sentry/hub@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.10.2.tgz#25d9f36b8f7c5cb65cf486737fa61dc9bf69b7e3" - integrity sha512-hSlZIiu3hcR/I5yEhlpN9C0nip+U7hiRzRzUQaBiHO4YG4TC58NqnOPR89D/ekiuHIXzFpjW9OQmqtAMRoSUYA== +"@sentry/hub@5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.11.0.tgz#d427432fff13d9b34d83da8651ad5c4207260796" + integrity sha512-ZtCcbq3BLkQo/y07amvP21ZjmL7up/fD1032XrA+44U7M1d2w+CDCVRWcCJGK/otzPz7cw8yc5oS4Cn68wLVxw== dependencies: - "@sentry/types" "5.10.0" - "@sentry/utils" "5.10.2" + "@sentry/types" "5.11.0" + "@sentry/utils" "5.11.0" tslib "^1.9.3" -"@sentry/minimal@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.10.2.tgz#267c2f3aa6877a0fe7a86971942e83f3ee616580" - integrity sha512-GalixiM9sckYfompH5HHTp9XT2BcjawBkcl1DMEKUBEi37+kUq0bivOBmnN1G/I4/wWOUdnAI/kagDWaWpbZPg== +"@sentry/minimal@5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.11.0.tgz#5a5f334794f03044e7d0316757abd0a236fcb1f3" + integrity sha512-fplz8sCmYE9Hdm+qnoATls5FPKjVyXcCuav9UKFLV6L+MAPjWVINbHFPBcYAmR5bjK4/Otfi1SPCBe1MQT/FtA== dependencies: - "@sentry/hub" "5.10.2" - "@sentry/types" "5.10.0" + "@sentry/hub" "5.11.0" + "@sentry/types" "5.11.0" tslib "^1.9.3" -"@sentry/node@^5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.10.2.tgz#1f5d6deefb2c1549ddb542c10952cccf5f9a4ac2" - integrity sha512-1ib1hAhVtmfXOThpcCfR4S6wFopd6lHqgOMrAUPo9saHy8zseZPRC7iTWGoSPy2RMwjrURAk54VvFnLe7G+PdQ== +"@sentry/node@^5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.11.0.tgz#9342ae0669ad47389b6e0c3048ceed30464d68e7" + integrity sha512-WgcNTEDqud9eD2tT/2/MXmVUngivMeYmzVSUrRG05C7k9HiXwMr2v7H7HCMumlCLAqflr2qAsGa8tZa/nR+ZHw== dependencies: - "@sentry/apm" "5.10.2" - "@sentry/core" "5.10.2" - "@sentry/hub" "5.10.2" - "@sentry/types" "5.10.0" - "@sentry/utils" "5.10.2" + "@sentry/apm" "5.11.0" + "@sentry/core" "5.11.0" + "@sentry/hub" "5.11.0" + "@sentry/types" "5.11.0" + "@sentry/utils" "5.11.0" cookie "^0.3.1" - https-proxy-agent "^3.0.0" + https-proxy-agent "^4.0.0" lru_map "^0.3.3" tslib "^1.9.3" -"@sentry/types@5.10.0": - version "5.10.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.10.0.tgz#4f0ba31b6e4d5371112c38279f11f66c73b43746" - integrity sha512-TW20GzkCWsP6uAxR2JIpIkiitCKyIOfkyDsKBeLqYj4SaZjfvBPnzgNCcYR0L0UsP1/Es6oHooZfIGSkp6GGxQ== +"@sentry/types@5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.11.0.tgz#40f0f3174362928e033ddd9725d55e7c5cb7c5b6" + integrity sha512-1Uhycpmeo1ZK2GLvrtwZhTwIodJHcyIS6bn+t4IMkN9MFoo6ktbAfhvexBDW/IDtdLlCGJbfm8nIZerxy0QUpg== -"@sentry/utils@5.10.2": - version "5.10.2" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.10.2.tgz#261f575079d30aaf604e59f5f4de0aa21db22252" - integrity sha512-UcbbaFpYrGSV448lQ16Cr+W/MPuKUflQQUdrMCt5vgaf5+M7kpozlcji4GGGZUCXIA7oRP93ABoXj55s1OM9zw== +"@sentry/utils@5.11.0": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.11.0.tgz#c07313eaf2331ecdecfd240c350bb28c7bd38e9c" + integrity sha512-84MNM08ANmda/tWMBCCb9tga0b4ZD7tSo0i20RJalkdLk9zJmmepKw+sA5PyztO/YxkqAt9KijSmtIafd0LlOQ== dependencies: - "@sentry/types" "5.10.0" + "@sentry/types" "5.11.0" tslib "^1.9.3" "@sindresorhus/is@^0.14.0": @@ -1415,10 +1455,10 @@ dependencies: "@types/yargs-parser" "*" -"@types/yup@0.26.26": - version "0.26.26" - resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.26.26.tgz#2e7065384ac2b7711271d8790f26ac7d73f6a33d" - integrity sha512-5cLJLd8NIT7OfJLi7ScquRn/NWfmewBqJ92nT/FYfdpgKzyUNcR4n2BKEOQ7mOG8WuJXgomIvNl5P3sn9Akd4A== +"@types/yup@0.26.27": + version "0.26.27" + resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.26.27.tgz#b928b1d644ffe98766e1440131222aefd3ca8f89" + integrity sha512-Rlsq3DExOHfWur75nQUAa5I0fXA2vSrw0u0qK3SI4PAkyOWjNzZsTaK+U9/sofWm3ttwWYn+C92pSq0s4rob4w== "@types/zen-observable@^0.8.0": version "0.8.0" @@ -1511,12 +1551,10 @@ acorn@^7.1.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== -agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" +agent-base@5: + version "5.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" + integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== aggregate-error@3.0.1: version "3.0.1" @@ -1606,13 +1644,13 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -apollo-cache-control@^0.8.8: - version "0.8.8" - resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.8.8.tgz#c6de9ef3a154560f6cf26ce7159e62438c1ac022" - integrity sha512-hpIJg3Tmb6quA111lrVO+d3qcyYRlJ8JqbeQdcgwLT3fb2VQzk21SrBZYl2oMM4ZqSOWCZWg4/Cn9ARYqdWjKA== +apollo-cache-control@^0.8.10: + version "0.8.10" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.8.10.tgz#c104481ffa77ba32127ad8351ba8948c6382ff8d" + integrity sha512-1/CAEidIoY1PWw2mhwZChchK4fvLdHfdoB7AEikWMYFSbjYY6ZiayT+Q3z48wsiS/LTNugF/YJDJHQi4+qjuug== dependencies: apollo-server-env "^2.4.3" - graphql-extensions "^0.10.7" + graphql-extensions "^0.10.9" apollo-cache-inmemory@~1.6.5: version "1.6.5" @@ -1647,12 +1685,12 @@ apollo-client@~2.6.8: tslib "^1.10.0" zen-observable "^0.8.0" -apollo-datasource@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.6.3.tgz#b31e089e52adb92fabb536ab8501c502573ffe13" - integrity sha512-gRYyFVpJgHE2hhS+VxMeOerxXQ/QYxWG7T6QddfugJWYAG9DRCl65e2b7txcGq2NP3r+O1iCm4GNwhRBDJbd8A== +apollo-datasource@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.6.4.tgz#c0d1604b1a97e004844d4b61bd819a9a6b0a409f" + integrity sha512-u4eu6Q94q6KuZacZfdo4vCevA81F4QWeTYEXUvoksQMJpiacPHHe0DJrofKVKvxngUp5kCi1RnPXSc6kBY+/oA== dependencies: - apollo-server-caching "^0.5.0" + apollo-server-caching "^0.5.1" apollo-server-env "^2.4.3" apollo-engine-reporting-protobuf@^0.4.4: @@ -1662,18 +1700,19 @@ apollo-engine-reporting-protobuf@^0.4.4: dependencies: "@apollo/protobufjs" "^1.0.3" -apollo-engine-reporting@^1.4.11: - version "1.4.11" - resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-1.4.11.tgz#ea4501925c201e62729a11ce36284a89f1eaa4f5" - integrity sha512-7ZkbOGvPfWppN8+1KHzyHPrJTMOmrMUy38unao2c9TTToOAnEvx2MtUTo6mr3aw/g8UQYUf0x2Cq+K2YSlUTPw== +apollo-engine-reporting@^1.4.13: + version "1.4.13" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-1.4.13.tgz#522b3782014c444e9656b7bdc590bfc59da5e209" + integrity sha512-p5fVmQigNGXoxCHnu8Bb6itNfwtjGnoyLf9i4oP0vfdSnTjaNI8KM7zXv16t1YnE/wsqYuieCnleoPSBReTy9Q== dependencies: apollo-engine-reporting-protobuf "^0.4.4" apollo-graphql "^0.3.4" - apollo-server-caching "^0.5.0" + apollo-server-caching "^0.5.1" apollo-server-env "^2.4.3" - apollo-server-types "^0.2.8" + apollo-server-errors "^2.3.4" + apollo-server-types "^0.2.10" async-retry "^1.2.1" - graphql-extensions "^0.10.7" + graphql-extensions "^0.10.9" apollo-env@0.5.1, apollo-env@^0.5.1: version "0.5.1" @@ -1736,33 +1775,33 @@ apollo-link@^1.0.0, apollo-link@^1.2.13, apollo-link@^1.2.3: tslib "^1.9.3" zen-observable-ts "^0.8.20" -apollo-server-caching@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.5.0.tgz#446a37ce2d4e24c81833e276638330a634f7bd46" - integrity sha512-l7ieNCGxUaUAVAAp600HjbUJxVaxjJygtPV0tPTe1Q3HkPy6LEWoY6mNHV7T268g1hxtPTxcdRu7WLsJrg7ufw== +apollo-server-caching@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.5.1.tgz#5cd0536ad5473abb667cc82b59bc56b96fb35db6" + integrity sha512-L7LHZ3k9Ao5OSf2WStvQhxdsNVplRQi7kCAPfqf9Z3GBEnQ2uaL0EgO0hSmtVHfXTbk5CTRziMT1Pe87bXrFIw== dependencies: lru-cache "^5.0.0" -apollo-server-core@^2.9.13: - version "2.9.13" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.9.13.tgz#29fee69be56d30605b0a06cd755fd39e0409915f" - integrity sha512-iXTGNCtouB0Xe37ySovuZO69NBYOByJlZfUc87gj0pdcz0WbdfUp7qUtNzy3onp63Zo60TFkHWhGNcBJYFluzw== +apollo-server-core@^2.9.15: + version "2.9.15" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.9.15.tgz#fa18659d90430e2f9556191f9d873dbed6a58ca5" + integrity sha512-MgqtxZkUO2u7cSDQjp8feQlyHT/iZlKv3TV5kNy+xa9ewbfiR/qjziMsz46x+oVPBah+VH9WbGShSbVO0b2TJA== dependencies: "@apollographql/apollo-tools" "^0.4.0" "@apollographql/graphql-playground-html" "1.6.24" "@types/graphql-upload" "^8.0.0" "@types/ws" "^6.0.0" - apollo-cache-control "^0.8.8" - apollo-datasource "^0.6.3" - apollo-engine-reporting "^1.4.11" - apollo-server-caching "^0.5.0" + apollo-cache-control "^0.8.10" + apollo-datasource "^0.6.4" + apollo-engine-reporting "^1.4.13" + apollo-server-caching "^0.5.1" apollo-server-env "^2.4.3" apollo-server-errors "^2.3.4" - apollo-server-plugin-base "^0.6.8" - apollo-server-types "^0.2.8" - apollo-tracing "^0.8.8" + apollo-server-plugin-base "^0.6.10" + apollo-server-types "^0.2.10" + apollo-tracing "^0.8.10" fast-json-stable-stringify "^2.0.0" - graphql-extensions "^0.10.7" + graphql-extensions "^0.10.9" graphql-tag "^2.9.2" graphql-tools "^4.0.0" graphql-upload "^8.0.2" @@ -1783,10 +1822,10 @@ apollo-server-errors@^2.3.4: resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.3.4.tgz#b70ef01322f616cbcd876f3e0168a1a86b82db34" integrity sha512-Y0PKQvkrb2Kd18d1NPlHdSqmlr8TgqJ7JQcNIfhNDgdb45CnqZlxL1abuIRhr8tiw8OhVOcFxz2KyglBi8TKdA== -apollo-server-express@^2.9.13, apollo-server-express@^2.9.7: - version "2.9.13" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.9.13.tgz#abb00bcf85d86a6e0e9105ce3b7fae9a7748156b" - integrity sha512-M306e07dpZ8YpZx4VBYa0FWlt+wopj4Bwn0Iy1iJ6VjaRyGx2HCUJvLpHZ+D0TIXtQ2nX3DTYeOouVaDDwJeqQ== +apollo-server-express@^2.9.14, apollo-server-express@^2.9.15: + version "2.9.15" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.9.15.tgz#cd0b8c7275be8a6e120809c6c36147a29f3b8129" + integrity sha512-RrPFAW6QqxAGAlubdvxjluGc7SOr70H69ElLxDgXy3HREXN25Y4XZoCE+L3PoURwFy2mNtITZeDO7JKW1cbHNg== dependencies: "@apollographql/graphql-playground-html" "1.6.24" "@types/accepts" "^1.3.5" @@ -1794,8 +1833,8 @@ apollo-server-express@^2.9.13, apollo-server-express@^2.9.7: "@types/cors" "^2.8.4" "@types/express" "4.17.1" accepts "^1.3.5" - apollo-server-core "^2.9.13" - apollo-server-types "^0.2.8" + apollo-server-core "^2.9.15" + apollo-server-types "^0.2.10" body-parser "^1.18.3" cors "^2.8.4" express "^4.17.1" @@ -1805,47 +1844,47 @@ apollo-server-express@^2.9.13, apollo-server-express@^2.9.7: subscriptions-transport-ws "^0.9.16" type-is "^1.6.16" -apollo-server-plugin-base@^0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.6.8.tgz#94cb9a6d806b7057d1d42202292d2adcf2cf0e7a" - integrity sha512-0pKCjcg9gHBK8qlb280+N0jl99meixQtxXnMJFyIfD+45OpKQ+WolHIbO0oZgNEt7r/lNWwH8v3l5yYm1ghz1A== +apollo-server-plugin-base@^0.6.10: + version "0.6.10" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.6.10.tgz#33d3e2bb82fca22a00b6648a2f1c6b2cc032a8a0" + integrity sha512-/xT7UT/tbCDIoTQ4lcEQsJ0ACh7h7QG0BDmeSlDXjwDuENRI50bQ2QoluCMPitZXGe+FCQfLhvzFgzbsZGT0IA== dependencies: - apollo-server-types "^0.2.8" + apollo-server-types "^0.2.10" -apollo-server-testing@~2.9.13: - version "2.9.13" - resolved "https://registry.yarnpkg.com/apollo-server-testing/-/apollo-server-testing-2.9.13.tgz#7a4efc0eb01d7297716f089121c7440a620bb640" - integrity sha512-c1xl4g5KhMfPpL5xdzxPJLY53+yK/kMAWxIASthRrOSZNgStTe7pCAJ06Nk3NB8M5GwfJK3cJiVkLfZRSt9+jQ== +apollo-server-testing@~2.9.15: + version "2.9.15" + resolved "https://registry.yarnpkg.com/apollo-server-testing/-/apollo-server-testing-2.9.15.tgz#d7dfbd2d07b91f05b57927e471edce34d98dc126" + integrity sha512-R+v+QrOVmeP95xomvbky4jV1MN6e5ihijZkpc/Ir0JhJthWcIZluaMEJqFWZr4K5k0+G66aF+I8O/bh2LM+4GQ== dependencies: - apollo-server-core "^2.9.13" + apollo-server-core "^2.9.15" -apollo-server-types@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.2.8.tgz#729208a8dd72831af3aa4f1eb584022ada146e6b" - integrity sha512-5OclxkAqjhuO75tTNHpSO/+doJZ+VlRtTefnrPJdK/uwVew9U/VUCWkYdryZWwEyVe1nvQ/4E7RYR4tGb8l8wA== +apollo-server-types@^0.2.10: + version "0.2.10" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.2.10.tgz#017ee0c812e70b0846826834eb2c9eda036c1c7a" + integrity sha512-ke9ViPEWfW+2XLe66CaKGVZdS7duSLbamSKSprmmeMBd8s6tmjf0FumUVxV7X4quxPZi0OPo8x0LoLU7GWsmaA== dependencies: apollo-engine-reporting-protobuf "^0.4.4" - apollo-server-caching "^0.5.0" + apollo-server-caching "^0.5.1" apollo-server-env "^2.4.3" -apollo-server@~2.9.13: - version "2.9.13" - resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.9.13.tgz#f93005a2a9d2b29a047f170eeb900bf464bfe62d" - integrity sha512-Aedj/aHRMCDMUwtM+hXiliX1OkFNl1NyiQUADbwm6AMV3OrfT9TUbbSI1AN2qsx+rg6dIhpAiHLUf73uDy3V/g== +apollo-server@~2.9.15: + version "2.9.15" + resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.9.15.tgz#a8d62437fcd26d10351b83050df9e8e9c8ad9a71" + integrity sha512-b9FTRNpuMY2tax+Ln7e9cQdTxP8BBPe6kldbeIc3Rcl6AyHzfzuv682mJ5J87+oQwypx6xavtupXh5KHuQlJRw== dependencies: - apollo-server-core "^2.9.13" - apollo-server-express "^2.9.13" + apollo-server-core "^2.9.15" + apollo-server-express "^2.9.15" express "^4.0.0" graphql-subscriptions "^1.0.0" graphql-tools "^4.0.0" -apollo-tracing@^0.8.8: - version "0.8.8" - resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.8.8.tgz#bfaffd76dc12ed5cc1c1198b5411864affdb1b83" - integrity sha512-aIwT2PsH7VZZPaNrIoSjzLKMlG644d2Uf+GYcoMd3X6UEyg1sXdWqkKfCeoS6ChJKH2khO7MXAvOZC03UnCumQ== +apollo-tracing@^0.8.10: + version "0.8.10" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.8.10.tgz#e031a0e7fbd8662d4c2e3af03284a3eefeaf0a45" + integrity sha512-EjToHqHdDrjj0xBRnbie57lz3U81Onrs55YqHhvzaMv8gDAeKX3rnXiw5EfYZNxR7uutoyXH0iNKaYPyolWbZA== dependencies: apollo-server-env "^2.4.3" - graphql-extensions "^0.10.7" + graphql-extensions "^0.10.9" apollo-utilities@1.3.3, apollo-utilities@^1.0.1, apollo-utilities@^1.3.0, apollo-utilities@^1.3.3: version "1.3.3" @@ -1920,6 +1959,11 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -2235,7 +2279,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -2407,7 +2451,7 @@ cheerio-advanced-selectors@~2.0.1: resolved "https://registry.yarnpkg.com/cheerio-advanced-selectors/-/cheerio-advanced-selectors-2.0.1.tgz#fb5ec70a4599e8cec1cf669c6d9b90a3fa969c48" integrity sha512-5wHR8bpiD5pdUtaS81A6hnJezzoDzL1TLWfK6bxnLkIgEKPV26BlOdMCcvuj3fTE7JSalsTUeNU7AOD/u6bYhw== -cheerio@~1.0.0-rc.2, cheerio@~1.0.0-rc.3: +cheerio@~1.0.0-rc.3: version "1.0.0-rc.3" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== @@ -2485,16 +2529,11 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-stack@^2.0.0: +clean-stack@^2.0.0, clean-stack@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -clean-stack@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.0.0.tgz#301bfa9e8dd2d3d984c0e542f7aa67b996f63e0a" - integrity sha512-VEoL9Qh7I8s8iHnV53DaeWSt8NJ0g3khMfK6NiCPB7H657juhro+cSw2O88uo3bo0c0X5usamtXk0/Of0wXa5A== - cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" @@ -2593,7 +2632,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.8.1, commander@^2.9.0, commander@~2.20.0: +commander@^2.8.1, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2704,13 +2743,13 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.4.7: - version "3.4.8" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.4.8.tgz#f72e6a4ed76437ea710928f44615f926a81607d5" - integrity sha512-l3WTmnXHV2Sfu5VuD7EHE2w7y+K68+kULKt5RJg8ZJk3YhHF1qLD4O8v8AmNq+8vbOwnPFFDvds25/AoEvMqlQ== +core-js-compat@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9" + integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg== dependencies: browserslist "^4.8.2" - semver "^6.3.0" + semver "7.0.0" core-js@^2.4.0, core-js@^2.6.5: version "2.6.9" @@ -2798,11 +2837,6 @@ css-what@2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= - cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" @@ -2890,10 +2924,10 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-fns@2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.8.1.tgz#2109362ccb6c87c3ca011e9e31f702bc09e4123b" - integrity sha512-EL/C8IHvYRwAHYgFRse4MGAPSqlJVlOrhVYZ75iQBKrnv+ZedmYsgwH3t+BCDuZDXpoo07+q9j4qgSSOa7irJg== +date-fns@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.9.0.tgz#d0b175a5c37ed5f17b97e2272bbc1fa5aec677d2" + integrity sha512-khbFLu/MlzLjEzy9Gh8oY1hNt/Dvxw3J6Rbc28cVoYWQaC1S3YI4xwkF9ZWcjDLscbZlY9hISMr66RFzZagLsA== debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" @@ -2902,6 +2936,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + debug@^3.1.0, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -2909,13 +2950,6 @@ debug@^3.1.0, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -3046,6 +3080,13 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + dns-prefetch-control@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz#73988161841f3dcc81f47686d539a2c702c88624" @@ -3292,18 +3333,6 @@ es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -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" @@ -3339,10 +3368,10 @@ escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@~6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.7.0.tgz#9a876952e12df2b284adbd3440994bf1f39dfbb9" - integrity sha512-FamQVKM3jjUVwhG4hEMnbtsq7xOIDm+SY5iBPfR8gKsJoAB2IQnNF+bk1+8Fy44Nq7PPJaLvkRxILYdJWoguKQ== +eslint-config-prettier@~6.9.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.9.0.tgz#430d24822e82f7deb1e22a435bfa3999fae4ad64" + integrity sha512-k4E14HBtcLv0uqThaI6I/n1LEqROp8XaPu6SO9Z32u5NlGRC07Enu1Bh2KEFw4FNHbekH8yzbIU9kUGxbiGmCA== dependencies: get-stdin "^6.0.0" @@ -3367,12 +3396,12 @@ eslint-module-utils@^2.4.1: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-plugin-es@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976" - integrity sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ== +eslint-plugin-es@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz#98cb1bc8ab0aa807977855e11ad9d1c9422d014b" + integrity sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng== dependencies: - eslint-utils "^1.4.2" + eslint-utils "^2.0.0" regexpp "^3.0.0" eslint-plugin-import@~2.19.1: @@ -3393,20 +3422,20 @@ eslint-plugin-import@~2.19.1: read-pkg-up "^2.0.0" resolve "^1.12.0" -eslint-plugin-jest@~23.1.1: - version "23.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.1.1.tgz#1220ab53d5a4bf5c3c4cd07c0dabc6199d4064dd" - integrity sha512-2oPxHKNh4j1zmJ6GaCBuGcb8FVZU7YjFUOJzGOPnl9ic7VA/MGAskArLJiRIlnFUmi1EUxY+UiATAy8dv8s5JA== +eslint-plugin-jest@~23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.3.0.tgz#b1443d0c46d6a0de9ef3de78176dd6688c7d5326" + integrity sha512-GE6CR4ESJeu6Huw7vfZfaXHmX2R2kCFvf2X9OMcOxfP158yLKgLWz7PqLYTwRDACi84IhpmRxO8lK7GGwG05UQ== dependencies: "@typescript-eslint/experimental-utils" "^2.5.0" -eslint-plugin-node@~10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6" - integrity sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ== +eslint-plugin-node@~11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.0.0.tgz#365944bb0804c5d1d501182a9bc41a0ffefed726" + integrity sha512-chUs/NVID+sknFiJzxoN9lM7uKSOEta8GC8365hw1nDfwIPIjjpRSwwPvQanWv8dt/pDe9EV4anmVSwdiSndNg== dependencies: - eslint-plugin-es "^2.0.0" - eslint-utils "^1.4.2" + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" ignore "^5.1.1" minimatch "^3.0.4" resolve "^1.10.1" @@ -3437,22 +3466,29 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.2, eslint-utils@^1.4.3: +eslint-utils@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@~6.7.2: - version "6.7.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.7.2.tgz#c17707ca4ad7b2d8af986a33feba71e18a9fecd1" - integrity sha512-qMlSWJaCSxDFr8fBPvJM9kJwbazrhNcBU3+DszDW1OlEwKBBRWsJc7NJFelvwQpanHCR14cOLD41x8Eqvo3Nng== +eslint@~6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -3732,6 +3768,17 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== +fast-glob@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82" + integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -3742,6 +3789,13 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastq@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" + integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + dependencies: + reusify "^1.0.0" + fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" @@ -4037,14 +4091,14 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== dependencies: is-glob "^4.0.1" -glob@7.1.6, glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -4075,6 +4129,18 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globby@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154" + integrity sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -4133,14 +4199,14 @@ graphql-custom-directives@~0.2.14: moment "^2.22.2" numeral "^2.0.6" -graphql-extensions@^0.10.7: - version "0.10.7" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.10.7.tgz#ca9f8ec3cb0af1739b48ca42280ec9162ad116d1" - integrity sha512-YuP7VQxNePG4bWRQ5Vk+KRMbZ9r1IWCqCCogOMz/1ueeQ4gZe93eGRcb0vhpOdMFnCX6Vyvd4+sC+N6LR3YFOQ== +graphql-extensions@^0.10.9: + version "0.10.9" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.10.9.tgz#1b66baba8018c568f33a94e445134b614972a3db" + integrity sha512-NJdV8aGVGCrcm1Pbq8IbmV5FfLCAEPxgplh9EJU7qAP+Z4PenkuH6V6RAPRqIwwZ287m8/aDXKW+X0qFe8gyUQ== dependencies: "@apollographql/apollo-tools" "^0.4.0" apollo-server-env "^2.4.3" - apollo-server-types "^0.2.8" + apollo-server-types "^0.2.10" graphql-iso-date@~3.6.1: version "3.6.1" @@ -4159,14 +4225,14 @@ graphql-middleware@~4.0.2: dependencies: graphql-tools "^4.0.5" -graphql-shield@~7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/graphql-shield/-/graphql-shield-7.0.4.tgz#fdff8066f9fbb86b363e7dd6a9cf295dbbf8a09b" - integrity sha512-+SEz/tKx2uJAbMKzS7X0hCUWsZo54J8SARhXb5jNDG/RKur44mjIGfBnuBRszw73+dUdBvTlLl1j1WKwm0ZhEA== +graphql-shield@~7.0.7: + version "7.0.7" + resolved "https://registry.yarnpkg.com/graphql-shield/-/graphql-shield-7.0.7.tgz#6b1e029a291924482949e108569fd7f95ea18d61" + integrity sha512-T7Ds9ailm9dFQ/u7E4pmyE/nu6I7RbG4L2Bice6zqz3ajuV4AvMGB57mCg9xB5RFZ3wpVHd+s9aFLPB0FpWtjg== dependencies: - "@types/yup" "0.26.26" + "@types/yup" "0.26.27" object-hash "^2.0.0" - yup "^0.27.0" + yup "^0.28.0" graphql-subscriptions@^1.0.0: version "1.1.0" @@ -4214,9 +4280,9 @@ growly@^1.3.0: integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= handlebars@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" - integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== + version "4.5.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -4447,13 +4513,13 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.0.tgz#0106efa5d63d6d6f3ab87c999fa4877a3fd1ff97" - integrity sha512-y4jAxNEihqvBI5F3SaO2rtsjIOnnNA8sEbuiP+UhJZJHeM2NRm6c09ax2tgqme+SgUUvjao2fJXF4h3D6Cb2HQ== +https-proxy-agent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" + integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== dependencies: - agent-base "^4.3.0" - debug "^3.1.0" + agent-base "5" + debug "4" iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" @@ -4484,7 +4550,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1: +ignore@^5.1.1, ignore@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== @@ -5764,11 +5830,6 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -map-values-deep@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/map-values-deep/-/map-values-deep-1.0.2.tgz#b0176a1c463158ae33e24de0ce8150621a2b30d3" - integrity sha512-br+tp4aANql3WnpDRjD14H7hHopPlJRnzCL0ZlGCRHAQZTU0g0x1rUQFq/ikb3zZQK+lW2AG7RJi+CFfQ8kSPA== - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -5796,13 +5857,13 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge-graphql-schemas@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.7.3.tgz#220445a43b969564b874c580c4005fb7ebe3d473" - integrity sha512-qXROTOo3R/pfHYpPcrY59FCojdPGPUvyuh51FVeImrxVXEWulZ8tq0NZIFO5y8GK6/pl5m3FayJIhOJp/g1PkA== +merge-graphql-schemas@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.7.6.tgz#6fe0d6f35f14e3a9eb49de01277b43efec68596d" + integrity sha512-TSyBVPvyaKDKlqCqr5V/YoIa+DuqMEBb+ACZNPtadllNCc+LRr89vqNIqYSGiK2hhGgdla0qaJYGQ7FQrmiNzQ== dependencies: - "@graphql-toolkit/file-loading" "0.6.8" - "@graphql-toolkit/schema-merging" "0.6.8" + "@graphql-toolkit/file-loading" "0.9.0" + "@graphql-toolkit/schema-merging" "0.9.0" tslib "1.10.0" merge-stream@^2.0.0: @@ -5810,19 +5871,24 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -metascraper-audio@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-5.8.10.tgz#bc7bc0471ee178ab747baec4fb9bf7443078980d" - integrity sha512-uR4PCG7mxz7GLZ3I3x83sTCAaD/+MMTSf5rtP+shfdGJCm6h3mNmUpZm6hlBunmBx/PpDpwdI34rkl2A8SUjnQ== - dependencies: - "@metascraper/helpers" "^5.8.10" +merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== -metascraper-author@^5.8.7: - version "5.8.7" - resolved "https://registry.yarnpkg.com/metascraper-author/-/metascraper-author-5.8.7.tgz#c29db97a24af801101008a547caea6a33a56e467" - integrity sha512-PwuCZvHnDm10Q1zMQllpCLjtlYR1zSF+rDCRkf/TUuBC/ozz27/JkXDL+ml2nmK8IQGLGRUQKOzrQ0vVMFKvQw== +metascraper-audio@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-5.9.5.tgz#e20c6a6b2d436a5c84655063655b342dfe4b0432" + integrity sha512-UBvyF0MQe1NUDPNXYAOuprPhVasXNYVRof65CGeAxyD4tWA4FgMzeUlrtCSkWtR8BA70BsJ7UZgxJ04nfGij2g== dependencies: - "@metascraper/helpers" "^5.8.7" + "@metascraper/helpers" "^5.9.5" + +metascraper-author@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-author/-/metascraper-author-5.9.5.tgz#f753487a511913d6803fa02d3cdaf4fe6ebaff36" + integrity sha512-of0fUy8ykGrGvWpw3D3s41mftmgRMbn4F9lrqm/Y24BT34E3Am91lMIatU4mnkKiTA4V+6GNFZX5OiQtwJvx/Q== + dependencies: + "@metascraper/helpers" "^5.9.5" lodash "~4.17.15" metascraper-clearbit-logo@^5.3.0: @@ -5832,26 +5898,26 @@ metascraper-clearbit-logo@^5.3.0: dependencies: got "~9.6.0" -metascraper-date@^5.8.7: - version "5.8.7" - resolved "https://registry.yarnpkg.com/metascraper-date/-/metascraper-date-5.8.7.tgz#146733ecce34f8d4a53c7c6ddcfc51c033287757" - integrity sha512-9+IslaGg+J+4cwPU5qu/MEexkoWj7sBxycmCA6vgfuCQCqNwlQ68vk2a/UVDw8OJOYjwX81JGrzxOqrQP0/kXw== +metascraper-date@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-date/-/metascraper-date-5.9.5.tgz#7bd2cc4a6e3558d83488deef2071e180e10d5d1f" + integrity sha512-UUNi3NmQB8rP1JlIyZbIbUYCkFNf+qbrfrdGR+YvEtg1hoKWgrJV/3xQ9AGiEuijNFaCG/KlL9JxPata26pnlw== dependencies: - "@metascraper/helpers" "^5.8.7" + "@metascraper/helpers" "^5.9.5" -metascraper-description@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-5.8.10.tgz#1b69f59fa76263fcd2c15f8ce73052b81900177a" - integrity sha512-0stYkl5OPpM0yM6Dl3WcXxLjl2gY5k77E4seeHOqHAUx1EKXNgrSrtO0I3PX9p6vcxP+WBtK6zlqHYU4qAMlSA== +metascraper-description@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-5.9.5.tgz#1b397ff97eeee963c254416d16f0d13ee7bce319" + integrity sha512-dZwk/x6dUHKCaSvtBCsTECftCi2ZGoEQbjCyvVXF3aTGz9KRxLMePkWFhrG4UXdBPvlYFwGkHp7scoIDwCXNPQ== dependencies: - "@metascraper/helpers" "^5.8.10" + "@metascraper/helpers" "^5.9.5" -metascraper-image@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-5.8.10.tgz#fe21811ca88eef13e64812462fb5a21ee48933dc" - integrity sha512-WOPnTupaDEl58iZp0M6kFlUcRSRQFSPWATPUi3AeW31VJM2sepxmJlqc5qVFTen/Lm+kI23firrvEg5N8tFUVA== +metascraper-image@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-5.9.5.tgz#f3e3aa4ee1a442aa4ef813ceef8150bf10c83fdc" + integrity sha512-O3v6QQD/gUsUuNpW1zS+1+Rj/MffuilSnq64w8lDnGnO0/8P/MwBIJikcIfq5kTVCwk1tBsHdoKDvQMaE+b1yg== dependencies: - "@metascraper/helpers" "^5.8.10" + "@metascraper/helpers" "^5.9.5" metascraper-lang-detector@^4.10.2: version "4.10.2" @@ -5862,80 +5928,78 @@ metascraper-lang-detector@^4.10.2: franc "~4.0.0" iso-639-3 "~1.1.0" -metascraper-lang@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-5.8.10.tgz#b8827282dea500b68e49ebbe8b0081fb6b6584d5" - integrity sha512-qydko4UkLGqTimKzT+AkcIaXOo7/GkHGtclGiLae80lHeKzI5NG7kYN4eMv1r4BfBkcluSNeJ/P532T6ZD2Y1Q== +metascraper-lang@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-5.9.5.tgz#3767c40fbd91eacd5423edfd1ca313d043b4ddba" + integrity sha512-7U+/lDZPB+Rz+ETp2Iu/kbc3/s62RTEYu+SjqfF2pZtHRVJ82CdrgSryP1rq+z4qbAdpiTgIAq2TEgEa+yKbGQ== dependencies: - "@metascraper/helpers" "^5.8.10" + "@metascraper/helpers" "^5.9.5" -metascraper-logo@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.8.10.tgz#8e0dc0296d71db03307584ecdb57cd3fcbad1d4b" - integrity sha512-l5LkzZcVzrKclzf3JGx2cnCtPI/8Rf+EQV/SfXUqz7FUwgfT3uzRw9wBbqP25056ukh6aOuywGClTdnEu2PJcw== +metascraper-logo@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.9.5.tgz#1fee5b3de1c79380d50c8e2ecd3d102b6cb9f7d4" + integrity sha512-rbBLYVX4xSIzzeQJaUyibQYzjlNGlkyri14ixpIlCdlri3KQ0rRKnwQSeOSUlAu1rVsL7JlsMrhMDCb21dX9sQ== dependencies: - "@metascraper/helpers" "^5.8.10" + "@metascraper/helpers" "^5.9.5" -metascraper-publisher@^5.8.7: - version "5.8.7" - resolved "https://registry.yarnpkg.com/metascraper-publisher/-/metascraper-publisher-5.8.7.tgz#2b67f04db46123f9c6d57eaa3de610921fd28e01" - integrity sha512-vVfoyqGPxKWWQjvBL0gz4Xyol3QYdr5HWSs9DI7cLrlIDExOByPPah5bZVSijeseeKymyf36BvCm54+chOZN5g== +metascraper-publisher@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-publisher/-/metascraper-publisher-5.9.5.tgz#630483cc6be8ab14028a5a13b139d014fb7d4047" + integrity sha512-9lM7VMD2mtP1ZfceoIbSZyN1hpDHoUL5hqB+IL+3Lj8RNn+lHcgg/0zqnLrL5co+GxIbXS3Su5BByKnwmO7YqA== dependencies: - "@metascraper/helpers" "^5.8.7" + "@metascraper/helpers" "^5.9.5" -metascraper-soundcloud@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-5.8.10.tgz#c281a35e2e7289006bd304dfb4074f01451e7f26" - integrity sha512-IBGGBFrzRiS1bTyR9+eJwv+fPvC8KoggpAZnGPABep4ZhfajblI3B+8U1kIXHMaFR4b1BaD4d+tWh3gNLZCjwQ== +metascraper-soundcloud@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-5.9.5.tgz#a7dce92dce5c99b1816096e3501655bbf032e8bd" + integrity sha512-Um7mIu1EW8yQvgstaLUqmk+twt+ZENLD6jtcUmHNAlq3qm0DnmYBrUuLWtZWy6tT93id9ngiJC5FLL3c9wIKVw== dependencies: - "@metascraper/helpers" "^5.8.10" - tldts "~5.6.2" + "@metascraper/helpers" "^5.9.5" + tldts "~5.6.3" -metascraper-title@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-5.8.10.tgz#c25dc8e8ad7073c18c8d25db0b855f62d3d986bd" - integrity sha512-CauBJmLYtS+AZ9KJfnfJHp/tzUTo9yup56P/7aaOBcfVA5PWg3xdI1lVXJegmiTsBCyDEzWRVJ41f/ZlMjbAsg== +metascraper-title@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-5.9.5.tgz#4adc9b4bec6652acd435e5035e560a503281b41e" + integrity sha512-zRgWLjTUtunaLcFq/FLYy7aRxyfxJoHaTH1HwXmYTSjL6Fu55I1zjzkwy6NU4INwovhKinAsijc00Ednj4FIAg== dependencies: - "@metascraper/helpers" "^5.8.10" + "@metascraper/helpers" "^5.9.5" lodash "~4.17.15" -metascraper-url@^5.8.7: - version "5.8.7" - resolved "https://registry.yarnpkg.com/metascraper-url/-/metascraper-url-5.8.7.tgz#8c04a8f9b82af1058145f21788655b7b6b04fd9c" - integrity sha512-K79mT509wV6B1Ak9vSslAbDPQMMRjjWowVgjcby5bOyFpO2j7mQkQIZYobEFpYLHlpb2R9myWJaTKAZe9KrF0A== +metascraper-url@^5.8.13: + version "5.8.13" + resolved "https://registry.yarnpkg.com/metascraper-url/-/metascraper-url-5.8.13.tgz#ddeefbfee556a6eceb687ed9d4ff1f3ed9170bdf" + integrity sha512-jPezb6ICTU7LK6QuhIhXLmNkL7GfKHnNm8BDmOfI266tfLP7xiz0NZZHJA0+xsmRoP3iMCo3wLA1c7s3Kie75w== dependencies: - "@metascraper/helpers" "^5.8.7" + "@metascraper/helpers" "^5.8.13" -metascraper-video@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-5.8.10.tgz#c43bdc3d4dc7ff97b94d45e0050fb50091da27be" - integrity sha512-ofO7OLt73iMZM6IkA3iHtD1EzbEeiTYJK/xKBp+Awyl/dLUWKfsFjOAjkz9XDzLANRT+7+rwzqQmc+a2/rBVVg== +metascraper-video@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-5.9.5.tgz#707eb9726a96a64ecd8f234a7716c021ccf10f3f" + integrity sha512-ApYCnVpEPy3+sLHxjMVXUVolHgdEOwpaiH41win4h5HmDX6jz/gWg3ENaHWfRLTn94Gc3c2Fjkqg/dwShRK0/A== dependencies: - "@metascraper/helpers" "^5.8.10" + "@metascraper/helpers" "^5.9.5" lodash "~4.17.15" -metascraper-youtube@^5.8.10: - version "5.8.10" - resolved "https://registry.yarnpkg.com/metascraper-youtube/-/metascraper-youtube-5.8.10.tgz#c2b84b9faf8d4bd326a0a048e61cdbeefc7263ab" - integrity sha512-2QLqIqc8FWGJmGEwvoWDdEZnSCLg5lzH/3qZm0P9joFGA6WWrfpaONCVW4M72xfVHv/WwEblKZERzlbJNEhGVg== +metascraper-youtube@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper-youtube/-/metascraper-youtube-5.9.5.tgz#0d67c3619cfaf5434fe51bd3d18be6a6f1b31c7f" + integrity sha512-xC6e6l08/qdqNp7rtyMWPumIh0tCqNhWJkL8F5BjMZCGA3iL2OYh82v26qH/H4GdMZlxSsglNJQTjl8ywcdEmw== dependencies: - "@metascraper/helpers" "^5.8.10" + "@metascraper/helpers" "^5.9.5" get-video-id "~3.1.4" is-reachable "~4.0.0" p-locate "~4.1.0" -metascraper@^5.8.9: - version "5.8.9" - resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-5.8.9.tgz#7bb468f9660bd86be8dd774cab3457d098b87e61" - integrity sha512-vuOwnSaGIG8346ZAQCE+YqvpzFVXfaMvCUdLbb8spobz7BG3945WNa43NjSl2HK5iH1WYOibvSYRZdL6wQsRJg== +metascraper@^5.9.5: + version "5.9.5" + resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-5.9.5.tgz#d74c3d9207aaba8ff2a473b03b788eb189a12c02" + integrity sha512-fBql2kWB/GvgsIzYyqd+95klWHG8+HrZR2mVi/zmuI8JIUcLZhNBTp/tC4csFJXQY0SC4PitEalZoWOIyAEjuw== dependencies: - "@metascraper/helpers" "^5.8.7" - cheerio "~1.0.0-rc.2" + "@metascraper/helpers" "^5.9.5" + cheerio "~1.0.0-rc.3" cheerio-advanced-selectors "~2.0.1" lodash "~4.17.15" - map-values-deep "~1.0.2" - whoops "~4.0.2" - xss "~1.0.6" + whoops "~4.1.0" methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: version "1.1.2" @@ -5961,15 +6025,23 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + mime-db@1.40.0: version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== -mime-db@1.42.0: - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== +mime-db@1.43.0: + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.22, mime-types@~2.1.24: version "2.1.24" @@ -5978,12 +6050,12 @@ mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.22, mime-types@~2.1.24: dependencies: mime-db "1.40.0" -mime-types@~2.1.25: - version "2.1.25" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437" - integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== +mime-types@~2.1.26: + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== dependencies: - mime-db "1.42.0" + mime-db "1.43.0" mime@1.6.0, mime@^1.4.1: version "1.6.0" @@ -5995,10 +6067,10 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.0.0.tgz#0913ff0b121db44ef5848242c38bbb35d44cabde" - integrity sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA== +mimic-fn@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.0.0.tgz#76044cfa8818bbf6999c5c9acadf2d3649b14b4b" + integrity sha512-PiVO95TKvhiwgSwg1IdLYlCTdul38yZxZMIcnDSFIBUm4BNZha2qpQ4GpJ++15bHoKDtrW2D69lMfFwdFYtNZQ== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" @@ -6082,10 +6154,10 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mustache@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.1.0.tgz#9fba26e7aefc5709f07ff585abb7e0abced6c372" - integrity sha512-3Bxq1R5LBZp7fbFPZzFe5WN4s0q3+gxZaZuZVY+QctYJiCiVgXHOTIC0/HgZuOPFt/6BQcx5u0H2CUOxT/RoGQ== +mustache@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.2.1.tgz#89e78a9d207d78f2799b1e95764a25bf71a28322" + integrity sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA== mute-stream@0.0.8: version "0.0.8" @@ -6152,7 +6224,7 @@ neo-async@^2.6.0: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== -neo4j-driver@^1.7.3, neo4j-driver@^1.7.6, neo4j-driver@~1.7.6: +neo4j-driver@^1.7.6: version "1.7.6" resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-1.7.6.tgz#eccb135a71eba9048c68717444593a6424cffc49" integrity sha512-6c3ALO3vYDfUqNoCy8OFzq+fQ7q/ab3LCuJrmm8P04M7RmyRCCnUtJ8IzSTGbiZvyhcehGK+azNDAEJhxPV/hA== @@ -6161,10 +6233,20 @@ neo4j-driver@^1.7.3, neo4j-driver@^1.7.6, neo4j-driver@~1.7.6: text-encoding-utf-8 "^1.0.2" uri-js "^4.2.2" -neo4j-graphql-js@^2.10.2: - version "2.10.2" - resolved "https://registry.yarnpkg.com/neo4j-graphql-js/-/neo4j-graphql-js-2.10.2.tgz#e67d1aab6441b28f276adf0f6d655720983b9b84" - integrity sha512-CgtKEgrWgSJBjuKQ5CEPt4tcG1z14oAB3UWQjX8scDlUag0iWofgzpPlrc3brn+RitfeEc3FuMSru8E9dVDJPg== +neo4j-driver@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-4.0.1.tgz#b25ffde0f16602e94c46d097e16a8bacbd773d5a" + integrity sha512-SqBhXyyyayVs5gV/6BrgdKbcmU5AsYQXkFAiYO74XAE8XPLJ1HVR/Hu4wjonAX7+70DsalkWEiFN1c6UaCVzlQ== + dependencies: + "@babel/runtime" "^7.5.5" + rxjs "^6.5.2" + text-encoding-utf-8 "^1.0.2" + uri-js "^4.2.2" + +neo4j-graphql-js@^2.11.4: + version "2.11.4" + resolved "https://registry.yarnpkg.com/neo4j-graphql-js/-/neo4j-graphql-js-2.11.4.tgz#9d52db0d989df9329c0e8c6d99bfc499a41136ae" + integrity sha512-uxC2N3KoH4/X6JAyQybWe3w5c88YtkIuj1VRSWmVkk8MTaxsNDGyDi2jyppSqL3p7KzdLTv8+jmhKutmXoiufg== dependencies: "@babel/runtime" "^7.5.5" "@babel/runtime-corejs2" "^7.5.5" @@ -6172,12 +6254,12 @@ neo4j-graphql-js@^2.10.2: graphql "^14.2.1" graphql-auth-directives "^2.1.0" lodash "^4.17.15" - neo4j-driver "^1.7.3" + neo4j-driver "^4.0.1" -neode@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/neode/-/neode-0.3.6.tgz#7daf791eff6d170e52c338ea2e5cca6fdc6bfbe3" - integrity sha512-jCskCPobtHpsIIYQD72h5lRjMJEX70KwIeqgpt1VOLI+d1zJZvUlDkcOKgarAW0fmwtHIrPOP6mLPe5G/ZG9+g== +neode@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/neode/-/neode-0.3.7.tgz#766105307e138b1212957aceba538e89e3d784cb" + integrity sha512-XnRJyD6bZx4HyHBmnLHuVUKtSD3FhBPXYdh7/rqiFAwBDMOSySjMFjFCYmop+sF8IBZmliowDs8zkSHt27U1kw== dependencies: "@hapi/joi" "^15.1.0" dotenv "^4.0.0" @@ -6778,6 +6860,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" @@ -6788,7 +6875,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4: +picomatch@^2.0.4, picomatch@^2.0.5: version "2.1.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5" integrity sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA== @@ -7316,10 +7403,10 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff" + integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg== dependencies: path-parse "^1.0.6" @@ -7348,6 +7435,11 @@ retry@0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +reusify@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -7379,6 +7471,11 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" @@ -7391,6 +7488,13 @@ rxjs@^6.4.0: dependencies: tslib "^1.9.0" +rxjs@^6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -7474,6 +7578,11 @@ semver-diff@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -7509,11 +7618,6 @@ serve-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -7580,6 +7684,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -7589,10 +7698,10 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -slug@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/slug/-/slug-1.1.0.tgz#73eef5710416f515077bdf70c683bde4915913c9" - integrity sha512-NuIOjDQeTMPm+/AUIHJ5636mF3jOsYLFnoEErl9Tdpt4kpt4fOrAJxscH9mUgX1LtPaEqgPCawBg7A4yhoSWRg== +slug@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slug/-/slug-2.1.0.tgz#293f8d53de7e55c15871846fd1bc36114841a8c7" + integrity sha512-Q4foEgcE7E8UB/BFg4kEzFUICoppzsbbfRjrdKiOM4Z4EFZF5tdn6amkgeaGur3kI4lMWP2BoMv7XJcKZvLg9Q== dependencies: unicode ">= 0.3.1" @@ -8099,17 +8208,17 @@ tlds@^1.187.0, tlds@^1.203.0: resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== -tldts-core@^5.6.2: - version "5.6.2" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.6.2.tgz#e75eeaba52c621f0dd860b7a8500b6972bff9fc4" - integrity sha512-2dXHiqoqQ2bGen1SqSdwPWsZ5JiDKXW3CxdEZ9kyTfDZ/PBj8JaYiVAybn3W5IDtRqYB8ewHDScIYOedzE/lhg== +tldts-core@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.6.3.tgz#d80ce1e93b58ba0614701c28450360fc6986aaf1" + integrity sha512-E7Jtwgy5ZKXuKm3tb2Z73t0AgiGTnGnVrGfBAJj0nS2tENCclb/Ym5yt+wOdDW+8uJg0bI/BxHmbvUyLAYpcPQ== -tldts@~5.6.2: - version "5.6.2" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-5.6.2.tgz#6185e16f61b250dbd9ae2f319d371524acb50d76" - integrity sha512-U7m9bXEkB62JXbKQRagoBuemYyYQ4pqyu3PUXXySXFLviPDWEubAM9ENvAPzNmRu7J6izQJThfN+oC4ZI7zHCg== +tldts@~5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-5.6.3.tgz#89159b2180bf18d807bcf38438ef6e35fafa8d9f" + integrity sha512-h17D3Q9iRTeEdqncCR5MfRvwPxRbGFwx/g51ky2s6+2i9BicZOPFikc5FE2jG0Se+0bAPaaoZLytQ1kGhH1U0g== dependencies: - tldts-core "^5.6.2" + tldts-core "^5.6.3" tmp@^0.0.33: version "0.0.33" @@ -8308,11 +8417,11 @@ type@^1.0.1: integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg== uglify-js@^3.1.4: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + version "3.7.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9" + integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA== dependencies: - commander "~2.20.0" + commander "~2.20.3" source-map "~0.6.1" undefsafe@^2.0.2: @@ -8367,6 +8476,13 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" +unixify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA= + dependencies: + normalize-path "^2.1.1" + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -8617,13 +8733,13 @@ which@^1.2.9, which@^1.3.0: dependencies: isexe "^2.0.0" -whoops@~4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/whoops/-/whoops-4.0.2.tgz#60e1281d47a1600f5f5013059afaad369d83e9d4" - integrity sha512-b1ofth7xMOAkukgzMhAPKBrgieGJAgKVMyu54DXAOVLmkhpQEfNKe4wS0R7LbdxIsm6FD2CFUjBOdN7Sj+zLSg== +whoops@~4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/whoops/-/whoops-4.1.0.tgz#f42e51514c7af19a9491a44cabf2712292c6a8e1" + integrity sha512-42soctqvFs9FaU1r4ZadCy2F6A9dUc4SN3ud+tbDEdmyZDTeYBgKKqtIdo6NiQlnZnJegWRCyKLk2edYH9DsHA== dependencies: - clean-stack "~2.0.0" - mimic-fn "~2.0.0" + clean-stack "~2.2.0" + mimic-fn "~3.0.0" wide-align@^1.1.0: version "1.1.3" @@ -8737,14 +8853,6 @@ xregexp@^4.2.4: dependencies: "@babel/runtime-corejs2" "^7.2.0" -xss@~1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.6.tgz#eaf11e9fc476e3ae289944a1009efddd8a124b51" - integrity sha512-6Q9TPBeNyoTRxgZFk5Ggaepk/4vUOYdOsIUYvLehcsIZTFjaavbVnsuAkLA5lIFuug5hw8zxcB9tm01gsjph2A== - dependencies: - commander "^2.9.0" - cssfilter "0.0.10" - xtend@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -8789,10 +8897,10 @@ yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.1" -yup@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" - integrity sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ== +yup@^0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.28.0.tgz#fdc04d1a495465c83d3757a80c47616884baeddc" + integrity sha512-9ZmsB/PT6/m+oUKF8rT9lWhMMGfx5s/aNCCf8pMu/GEQA0Ro2tLOc+aX12GjfL67Vif5a3c7eZVuxGFqFScnJQ== dependencies: "@babel/runtime" "^7.0.0" fn-name "~2.0.1" diff --git a/locale/ru.json b/locale/ru.json deleted file mode 100644 index 75483edfb..000000000 --- a/locale/ru.json +++ /dev/null @@ -1,814 +0,0 @@ -{ - "actions": { - "cancel": "Отменить", - "create": "Создать", - "delete": "Удалить", - "edit": "Редактировать", - "loading": "загрузка", - "loadMore": "Загрузить ещё", - "save": "Сохранить" - }, - "admin": { - "categories": { - "categoryName": "Имя", - "name": "Категории", - "postCount": "Посты" - }, - "dashboard": { - "comments": "Комментарии", - "follows": "Подписки", - "invites": "Приглашения", - "name": "Панель управления", - "notifications": "Уведомления", - "organizations": "Организации", - "posts": "Посты", - "projects": "Проекты", - "shouts": "Выкрики", - "users": "Пользователи" - }, - "donations": { - "goal": "Необходимы ежемесячные пожертвования", - "name": "Информация о пожертвованиях", - "progress": "Пожертвования собраны", - "successfulUpdate": "Информация о пожертвованиях успешно обновлена!" - }, - "hashtags": { - "name": "Хэштеги", - "nameOfHashtag": "Имя", - "number": "№", - "tagCount": "Посты", - "tagCountUnique": "Пользователи" - }, - "invites": { - "description": "Приглашения — это замечательный способ завести друзей в своей сети ...", - "name": "Пригласить пользователей", - "title": "Пригласить людей" - }, - "name": "Администрирование", - "notifications": { - "name": "Уведомления" - }, - "organizations": { - "name": "Организации" - }, - "pages": { - "name": "Страницы" - }, - "settings": { - "name": "Настройки" - }, - "tags": { - "name": "Теги", - "tagCount": "Посты", - "tagCountUnique": "Пользователи" - }, - "users": { - "empty": "Пользователи не найдены", - "form": { - "placeholder": "Электронная почта, имя или описание" - }, - "name": "Пользователи", - "table": { - "columns": { - "createdAt": "Дата создания", - "email": "Эл. почта", - "name": "Имя", - "number": "№", - "role": "Роль", - "slug": "Slug" - } - } - } - }, - "code-of-conduct": { - "consequences": { - "description": "Если участник сообщества проявляет неприемлемое поведение, ответственные операторы, модераторы и администраторы сети могут принять соответствующие меры, включая, но не ограничиваясь:", - "list": { - "0": "Просьба о немедленном прекращении неприемлемого поведения", - "1": "Блокирование или удаление комментариев", - "2": "Временное исключение из соответствующего поста или другого контента", - "3": "Блокирование или удаление контента", - "4": "Временный запрет на добавление контента", - "5": "Временное исключение из сети", - "6": "Окончательное исключение из сети", - "7": "Передача сведений о нарушениях немецкого законодательства.", - "8": "Пропаганда или поощрение такого поведения." - }, - "title": "Последствия неприемлемого поведения" - }, - "expected-behaviour": { - "description": "Мы ожидаем и требуем от всех членов сообщества предерживаться следующих правил поведения:", - "list": { - "0": "Будьте внимательны и уважительны к тому, что пишете и делаете.", - "1": "Пытайтесь сотрудничать, прежде чем возникнет конфликт.", - "2": "Воздерживайтесь от поведения и высказываний, унижающих достоинство, дискриминационного или преследующего характера.", - "3": "Будьте внимательны к своему окружению и другим участникам. Информируйте лидеров сообщества об опасных ситуациях, когда кто-либо попал в беду или нарушает настоящий Кодекс поведения, даже если они кажутся незначительными." - }, - "title": "Ожидаемое поведение" - }, - "get-help": "Если вы стали жертвой или свидетелем неприемлемого поведения или у вас возникли какие-либо другие проблемы, пожалуйста, как можно скорее сообщите об этом организатору сообщества и укажите ссылку на соответствующий контент:", - "preamble": { - "description": "Human Connection - это некоммерческая социальная сеть знаний и действий следующего поколения. Создана людьми – для людей. С открытым исходным кодом, справедливая и прозрачная. Для позитивных локальных и глобальных изменений во всех сферах жизни. Мы полностью перестраиваем публичный обмен знаниями, идеями и проектами. Функции Human Connection объединяют людей – офлайн и онлайн – так что мы можем сделать мир лучше.", - "title": "Преамбула" - }, - "purpose": { - "description": "С помощью этих правил поведения мы регулируем основные принципы поведения в нашей социальной сети. При этом Устав ООН по правам человека является нашей ориентацией и лежит в основе нашего понимания ценностей. Правила поведения служат руководящими принципами для личного выступления и общения друг с другом. Любой, кто является активным пользователем в сети Human Connection, публикует сообщения, комментирует или контактирует с другими пользователями, в том числе за пределами сети, признает эти правила поведения обязательными.", - "title": "Цель" - }, - "subheader": "социальной сети \"Human Connection gGmbH\"", - "unacceptable-behaviour": { - "description": "В нашем сообществе неприемлемо следующее поведение:", - "list": { - "0": "Дискриминационные посты, комментарии, высказывания или оскорбления, в частности, касающиеся пола, сексуальной ориентации, расы, религии, политической или мировоззренческой ориентации, или инвалидности.", - "1": "Публикация или ссылка на явно порнографические материалы.", - "2": "Прославление или умаление жестоких, или бесчеловечных актов насилия.", - "3": "Публикация персональных данных других лиц без их согласия или угрозы (\"Доксинг\").", - "4": "Преднамеренное запугивание или преследование.", - "5": "Рекламировать продукты и услуги с коммерческим намерением.", - "6": "Преступное поведение или нарушение немецкого права.", - "7": "Одобрение или поощрение недопустимого поведения." - }, - "title": "Недопустимое поведение" - } - }, - "comment": { - "content": { - "unavailable-placeholder": "...этот комментарий больше не доступен" - }, - "delete": "Удалить комментарий", - "edit": "Редактировать комментарий", - "edited": "Изменен", - "menu": { - "delete": "Удалить комментарий", - "edit": "Редактировать комментарий" - }, - "show": { - "less": "показать меньше", - "more": "показать больше" - } - }, - "common": { - "category": "Категория ::: Категории ::: Категории", - "comment": "Комментарий::: Комментарии::: Комментарии", - "letsTalk": "Давай поговорим", - "loading": "загрузка", - "loadMore": "Загрузить ещё", - "moreInfo": "Больше информации", - "name": "Имя", - "organization": "Организация ::: Организации ::: Организации", - "post": "Пост ::: Посты ::: Посты", - "project": "Проект ::: Проекты ::: Проекты", - "reportContent": "Отчет", - "shout": "Выкрик ::: Выкрики ::: Выкрики", - "tag": "Тег ::: Теги ::: Теги", - "takeAction": "Принять меры", - "user": "Пользователь ::: Пользователи ::: Пользователи", - "validations": { - "categories": "Выберите от одной то трех категорий", - "email": "должен быть корректный адрес электронной почты", - "url": "должен быть корректный URL" - }, - "versus": "Против" - }, - "components": { - "enter-nonce": { - "form": { - "description": "Откройте папку \\\"Входящие\\\" и введите код из сообщения.", - "next": "Продолжить", - "nonce": "Введите код", - "validations": { - "length": "длина должна быть 6 символов" - } - } - }, - "password-reset": { - "change-password": { - "error": "Смена пароля не удалась. Может быть, код безопасности был неправильным?", - "help": "В случае возникновения проблем, не стесняйся обращаться за помощью, отправив нам письмо по адресу:", - "success": "Смена пароля прошла успешно!" - }, - "request": { - "form": { - "description": "На указанный адрес электронной почты будет отправлено сообщение с инструкциями для сброса пароля.", - "submit": "Отправить запрос", - "submitted": "На адрес {email}<\/b>было отправлено электронное письмо с дальнейшими инструкциями" - }, - "title": "Сбросить пароль" - } - }, - "registration": { - "create-user-account": { - "error": "Не удалось создать учетную запись!", - "help": "Может быть, подтверждение было недействительным? В случае возникновения проблем, не стесняйтесь обращаться за помощью, отправив нам письмо по электронной почте:", - "success": "Учетная запись успешно создана!", - "title": "Создать учетную запись" - }, - "signup": { - "form": { - "data-privacy": "Я прочитал и понял Заявление о конфиденциальности<\/ds-text><\/a>", - "description": "Для начала работы введите свой адрес электронной почты:", - "errors": { - "email-exists": "Уже есть учетная запись пользователя с этим адресом электронной почты!", - "invalid-invitation-token": "Похоже, что приглашение уже было использовано. Ссылку из приглашения можно использовать только один раз." - }, - "invitation-code": "Код приглашения: {code}<\/b>", - "minimum-age": "Мне 18 лет или более", - "no-commercial": "У меня нет коммерческих намерений, и я не представляю коммерческое предприятие или организацию.", - "no-political": "Я не от имени какой-либо партии или политической организации в сети.", - "submit": "Создать учетную запись", - "success": "Письмо со ссылкой для завершения регистрации было отправлено на {email} <\/b>", - "terms-and-condition": "Принимаю Условия и положения<\/ds-text><\/a>." - }, - "title": "Присоединяйся к Human Connection!", - "unavailable": "К сожалению, публичная регистрация пользователей на этом сервере сейчас недоступна." - } - } - }, - "contribution": { - "categories": { - "infoSelectedNoOfMaxCategories": "Выбрано {chosen} из {max} категорий" - }, - "category": { - "name": { - "animal-protection": "Защита животных", - "art-culture-sport": "Искусство, культура и спорт", - "consumption-sustainability": "Потребление и стабильность", - "cooperation-development": "Сотрудничество и развитие", - "democracy-politics": "Демократия и политика", - "economy-finances": "Экономика и финансы", - "education-sciences": "Образование и наука", - "energy-technology": "Энергия и технологии", - "environment-nature": "Окружающая среда и природа", - "freedom-of-speech": "Свобода слова", - "global-peace-nonviolence": "Глобальный мир и борьба с насилием", - "happiness-values": "Счастье и ценности", - "health-wellbeing": "Здоровье и благополучие", - "human-rights-justice": "Права человека и справедливость", - "it-internet-data-privacy": "ИТ, интернет и конфиденциальность", - "just-for-fun": "Просто для удовольствия" - } - }, - "delete": "Удалить", - "edit": "Редактировать", - "emotions-label": { - "angry": "Возмутительно", - "cry": "Плачу", - "funny": "Смешно", - "happy": "Счастлив", - "surprised": "Удивлен" - }, - "filterALL": "Просмотреть все посты", - "filterFollow": "Показать сообщения пользователей, на которых я подписан", - "languageSelectLabel": "Язык", - "languageSelectText": "Выберите язык", - "newPost": "Создать пост", - "success": "Сохранено!", - "teaserImage": { - "cropperConfirm": "Подтвердить" - }, - "title": "Заголовок" - }, - "delete": { - "cancel": "Отменить", - "comment": { - "message": "Вы уверены, что хотите удалить комментарий \"{name}<\/b>\"?", - "success": "Комментарий успешно удален!", - "title": "Удалить комментарий", - "type": "Комментарий" - }, - "contribution": { - "message": "Вы уверены, что хотите удалить пост \"{name}<\/b>\"?", - "success": "Пост успешно удален!", - "title": "Удалить пост", - "type": "Пост" - }, - "submit": "Удалить" - }, - "disable": { - "cancel": "Отменить", - "comment": { - "message": "Вы действительно хотите отключить комментарий от «{name}<\/b>»?", - "title": "Отключить комментарий", - "type": "Комментарий" - }, - "contribution": { - "message": "Вы действительно хотите отключить пост «{name}<\/b>»?", - "title": "Отключить пост", - "type": "Пост" - }, - "submit": "Отключить", - "success": "Успешно отключен", - "user": { - "message": "Вы действительно хотите отключить пользователя «{name}<\/b>»?", - "title": "Отключить пользователя", - "type": "Пользователь" - } - }, - "donations": { - "amount-of-total": "{amount} из {total} € собрано", - "donate-now": "Пожертвуйте сейчас", - "donations-for": "Пожертвования для" - }, - "editor": { - "embed": { - "always_allow": "Всегда отображать содержимое сторонних производителей (эту настройку можно изменить в любое время).", - "data_privacy_info": "Ваши данные еще не были переданы третьим лицам. Если вы воспроизведёте это видео, следующий провайдер, вероятно, зарегистрирует ваши данные пользователя:", - "data_privacy_warning": "Предупреждение о конфиденциальности данных!", - "play_now": "Смотреть сейчас" - }, - "hashtag": { - "addHashtag": "Новый хэштег", - "addLetter": "Введите букву", - "noHashtagsFound": "Хэштеги не найдены" - }, - "mention": { - "noUsersFound": "Пользователи не найдены" - }, - "placeholder": "Поделитесь своими вдохновляющими мыслями ..." - }, - "filter-menu": { - "clearSearch": "Очистить поиск", - "hashtag-search": "Поиск по #{hashtag}", - "title": "Ваш фильтр пузыря" - }, - "filter-posts": { - "categories": { - "all": "Все", - "header": "Категории" - }, - "followers": { - "label": "Мои подписки" - }, - "general": { - "header": "Другие фильтры" - }, - "language": { - "all": "Все", - "header": "Языки" - } - }, - "followButton": { - "follow": "Подписаться", - "following": "Вы подписаны" - }, - "index": { - "change-filter-settings": "Измените настройки фильтра, чтобы получить больше результатов.", - "no-results": "Посты не найдены." - }, - "login": { - "copy": "Авторизуйтесь, если у вас уже есть учетная запись Human Connection.", - "email": "Электронная почта", - "failure": "Неверный адрес электронной почты или пароль.", - "forgotPassword": "Забыли пароль?", - "hello": "Здравствуйте", - "login": "Вход", - "logout": "Выйти", - "moreInfo": "Что такое Human Connection?", - "moreInfoHint": "на страницу проекта", - "moreInfoURL": "https:\/\/human-connection.org\/en\/", - "no-account": "У вас нет аккаунта?", - "password": "Пароль", - "register": "Зарегистрируйтесь", - "success": "Вы вошли в систему!" - }, - "maintenance": { - "explanation": "В данный момент мы проводим плановое техническое обслуживание, пожалуйста, повторите попытку позже.", - "questions": "Любые вопросы или сообщения о проблемах отправляйте на электронную почту", - "title": "Human Connection на техническом обслуживании" - }, - "moderation": { - "name": "Модерация", - "reports": { - "author": "Автор", - "content": "Содержа́ние", - "decideButton": "Подтвердить", - "decided": "Решил", - "decideModal": { - "cancel": "Отменить", - "Comment": { - "disable": { - "message": "Вы действительно хотите, чтобы комментарий \"{name}<\/b>\" остановиться и отключен<\/b>?", - "title": "Окончательно отключить комментарий" - }, - "enable": { - "message": "Вы действительно хотите, чтобы комментарий \"{name}<\/b>\" остановиться и включен<\/b>?", - "title": "Окончательно включить комментарий" - } - }, - "Post": { - "disable": { - "message": "Вы действительно хотите, чтобы пост \"{name}<\/b>\" остановиться и отключен<\/b>?", - "title": "Окончательно отключить пост" - }, - "enable": { - "message": "Вы действительно хотите, чтобы пост \"{name}<\/b>\" остановиться и включен<\/b>?", - "title": "Окончательно включить пост" - } - }, - "submit": "Подтвердить решение", - "User": { - "disable": { - "message": "Вы действительно хотите, чтобы пользователь \"{name}<\/b>\" остановиться и отключен<\/b>?", - "title": "Окончательно отключить пользователя" - }, - "enable": { - "message": "Вы уверены, что хотите поделиться пользователем \"{name}<\/b>\"?", - "title": "Окончательно включить пост" - } - } - }, - "decision": "Решение", - "DecisionSuccess": "Решил успешно!", - "disabled": "Отключен", - "disabledAt": "Отключено на", - "disabledBy": "Отключил(а)", - "empty": "Поздравляю, модерировать нечего.", - "enabled": "Включен", - "enabledAt": "Включено на", - "enabledBy": "Включено с", - "filterLabel": { - "all": "Все", - "closed": "Закрыто", - "reviewed": "Рассмотренный", - "unreviewed": "Нерассмотренный" - }, - "moreDetails": "Посмотреть подробности", - "name": "Отчеты", - "noDecision": "Нет решения!", - "numberOfUsers": "{count} пользователи", - "previousDecision": "Предыдущее решение:", - "reasonCategory": "Категория", - "reasonDescription": "Описание", - "reportedOn": "Дата", - "reporter": "Сообщил(а)", - "status": "Текущее состояние", - "submitter": "Сообщил(а)" - } - }, - "notifications": { - "comment": "Комментарий", - "content": "Контент", - "empty": "Извините, на данный момент у вас нет уведомлений.", - "filterLabel": { - "all": "Все", - "read": "Прочитанные", - "unread": "Непрочитанные" - }, - "pageLink": "Все уведомления", - "post": "Пост", - "reason": { - "commented_on_post": "Комментарий к посту...", - "mentioned_in_comment": "Упоминание в комментарии....", - "mentioned_in_post": "Упоминание в посте...." - }, - "title": "Уведомления", - "user": "Пользователь" - }, - "post": { - "comment": { - "submit": "Комментировать", - "submitted": "Комментарий отправлен", - "updated": "Изменения сохраненные" - }, - "edited": "Изменен", - "menu": { - "delete": "Удалить пост", - "edit": "Редактировать пост", - "pin": "Закрепить пост", - "pinnedSuccessfully": "Пост больше не закреплен!", - "unpin": "Открепить пост", - "unpinnedSuccessfully": "Пост успешно не закреплено!" - }, - "moreInfo": { - "description": "Здесь содержится дополнительная информация по теме.", - "name": "Дополнительная информация", - "title": "Дополнительная информация", - "titleOfCategoriesSection": "Категории", - "titleOfHashtagsSection": "Хэштеги", - "titleOfRelatedContributionsSection": "Похожие посты" - }, - "name": "Пост", - "pinned": "Объявление", - "takeAction": { - "name": "Действовать" - } - }, - "profile": { - "commented": "Прокомментированные", - "follow": "Подписаться", - "followers": "Подписчики", - "following": "Подписки", - "invites": { - "description": "Введите адрес электронной почты для приглашения.", - "emailPlaceholder": "Электронная почта для приглашения", - "title": "Пригласите кого-нибудь в Human Connection!" - }, - "memberSince": "Участник с", - "name": "Мой профиль", - "network": { - "andMore": "и ещё {number} человек... ::: и ещё {number} человека... ::: и ещё {number} человек...", - "followedBy": "ваши подписчики:", - "followedByNobody": "у вас нет подписчиков.", - "following": "подписан на:", - "followingNobody": "ни на кого не подписан.", - "title": "Сеть" - }, - "shouted": "С выкриками", - "socialMedia": "Где еще я могу найти", - "userAnonym": "Анонимный" - }, - "quotes": { - "african": { - "author": "Африканская пословица", - "quote": "Много маленьких людей делают много маленьких вещей во многих маленьких местах, что может изменить мир до неузнаваемости." - } - }, - "release": { - "cancel": "Отменить", - "comment": { - "error": "Вы уже сообщили о комментарии!", - "message": "Вы уверены, что хотите показать комментарий \"{name}<\/b>\"?", - "title": "Показать комментарий", - "type": "Комментарий" - }, - "contribution": { - "error": "Вы уже сообщили о посте!", - "message": "Вы уверены, что хотите показать пост \"{name}<\/b>\"?", - "title": "Показать пост", - "type": "Пост" - }, - "submit": "Показать", - "success": "Успешно показан!", - "user": { - "error": "Вы уже сообщили о пользователе!", - "message": "Вы уверены, что хотите показать пользователя \"{name}<\/b>\"?", - "title": "Показать пользователя", - "type": "Пользователь" - } - }, - "report": { - "cancel": "Отменить", - "comment": { - "error": "Вы уже сообщили о посте!", - "message": "Вы действительно хотите сообщить о посте \" {name} <\/b>\"?", - "title": "Пожаловаться на комментарий", - "type": "Комментарий" - }, - "contribution": { - "error": "Вы уже сообщили о посте!", - "message": "Вы действительно хотите сообщить о посте \"{name}<\/b>\"?", - "title": "Пожаловаться на пост", - "type": "Пожаловаться на пост" - }, - "reason": { - "category": { - "invalid": "Пожалуйста, выберите подходящую категорию", - "label": "Выберите категорию:", - "options": { - "advert_products_services_commercial": "Реклама продуктов и услуг с коммерческим намерением.", - "criminal_behavior_violation_german_law": "Уголовное поведение или нарушении немецкого права.", - "discrimination_etc": "Дискриминационные посты, комментарии, заявления или оскорбления.", - "doxing": "Публикация персональных данных других лиц без их согласия или угроза публикации (\"Доксинг\").", - "glorific_trivia_of_cruel_inhuman_acts": "Прославление или умаление жестоких, или бесчеловечных актов насилия.", - "intentional_intimidation_stalking_persecution": "Преднамеренное запугивание или преследование.", - "other": "Другое ...", - "pornographic_content_links": "Публикация или ссылка на явно порнографический материал." - }, - "placeholder": "Категория ..." - }, - "description": { - "label": "Пожалуйста, объясните, почему хотите об этом сообщить?", - "placeholder": "Дополнительная информация ..." - } - }, - "submit": "Отправить", - "success": "Спасибо за сообщение!", - "user": { - "error": "Вы уже сообщили о пользователе!", - "message": "Вы действительно хотите сообщить о пользователе \"{name}<\/b>\"?", - "title": "Пожаловаться на пользователя", - "type": "Пользователь" - } - }, - "search": { - "failed": "Ничего не найдено", - "hint": "Что вы хотите найти?", - "placeholder": "Поиск" - }, - "settings": { - "blocked-users": { - "block": "Блокировать", - "columns": { - "name": "Имя", - "slug": "Псевдоним", - "unblock": "Разблокировать" - }, - "empty": "Вы пока никого не блокировали.", - "explanation": { - "closing": "На данный момент этого должно быть достаточно, чтобы заблокированные пользователи больше вас не беспокоили.", - "intro": "Если блокируете другого пользователя, происходит следующее:", - "notifications": "Заблокированные пользователи больше не будут получать уведомления об упоминаниях в ваших постах.", - "search": "Посты заблокированных пользователей не отображаются в результатах поиска.", - "their-perspective": "И наоборот — заблокированный пользователь больше не видит ваши посты в своей ленте.", - "your-perspective": "Посты заблокированного пользователя не отображаются в персональной ленте." - }, - "how-to": "Вы можете блокировать других пользователей на странице их профиля с помощью меню профиля.", - "name": "Заблокированные пользователи", - "unblock": "Разблокировать пользователей", - "unblocked": "{name} - снова разблокирован" - }, - "data": { - "labelBio": "О себе", - "labelCity": "Город или регион", - "labelName": "Имя", - "labelSlug": "Уникальное имя пользователя", - "name": "Персональные данные", - "namePlaceholder": "Маша Медведева", - "success": "Персональные данные были успешно обновлены!" - }, - "delete": { - "name": "Удалить аккаунт" - }, - "deleteUserAccount": { - "accountDescription": "Обратите внимание, что ваши посты и комментарии важны для сообщества. Если вы все равно хотите их удалить, то вы должны отметить соответствующие опции ниже.", - "accountWarning": "Вы НЕ СМОЖЕТЕ<\/b> восстановить свой аккаунт, посты или комментарии после удаления.", - "commentedCount": "Удалить мои комментарии: {count}", - "contributionsCount": "Удалить мои посты: {count}", - "name": "Удалить данные", - "pleaseConfirm": "Разрушительное действие!<\/b> Введите {confirm}<\/b> для подтверждения.", - "success": "Аккаунт успешно удален!" - }, - "download": { - "name": "Скачать данные" - }, - "email": { - "change-successful": "Адрес электронной почты был успешно изменен.", - "labelEmail": "Адрес электронной почты", - "labelNewEmail": "Новый адрес электронной почты", - "labelNonce": "Введите свой код", - "name": "Электронная почта", - "submitted": "Электронное письмо с подтверждением отправлено на {email}<\/b>.", - "success": "Новый адрес электронной почты был зарегистрирован.", - "validation": { - "same-email": "Это текущий адрес электронной почты." - }, - "verification-error": { - "explanation": "Причины могут быть разными:", - "message": "Адрес электронной почты не может быть изменен.", - "reason": { - "invalid-nonce": "Правильно ли указан код подтверждения?", - "no-email-request": "Вы уверены, что отправляли запрос на изменение своего адреса электронной почты?" - }, - "support": "Если проблема сохраняется, пожалуйста, свяжитесь с нами по электронной почте" - } - }, - "embeds": { - "info-description": "Вот список сторонних провайдеров, чей контент может отображаться в форме вставок кода, например, в виде встроенных видео:", - "name": "Сторонний контент", - "status": { - "change": { - "allow": "Конечно.", - "deny": "Нет, не надо", - "question": "Вы хотите, чтобы вставки кода сторонних провайдеров всегда отображались?" - }, - "description": "Значение по умолчанию -", - "disabled": { - "off": "сначала не отображать вставки кода сторонних провайдеров", - "on": "сразу отображать вставки кода сторонних провайдеров" - } - } - }, - "invites": { - "name": "Приглашения" - }, - "languages": { - "name": "Языки" - }, - "name": "Настройки", - "organizations": { - "name": "Мои организации" - }, - "privacy": { - "make-shouts-public": "Публиковать в моем публичном профиле статьи в которых я участвовал", - "name": "Конфиденциальность", - "success-update": "Настройки приватности сохранены" - }, - "security": { - "change-password": { - "button": "Изменить пароль", - "label-new-password": "Новый пароль", - "label-new-password-confirm": "Подтверждение пароля", - "label-old-password": "Старый пароль", - "message-new-password-confirm-required": "Требуется подтверждение пароля", - "message-new-password-missmatch": "Пароли не совпадают", - "message-new-password-required": "Требуется новый пароль", - "message-old-password-required": "Требуется свой старый пароль", - "passwordSecurity": "Безопасность пароля", - "passwordStrength0": "Очень небезопасный", - "passwordStrength1": "Небезопасный", - "passwordStrength2": "Посредственный", - "passwordStrength3": "Надежный", - "passwordStrength4": "Очень надежный", - "success": "Пароль успешно изменен!" - }, - "name": "Безопасность" - }, - "social-media": { - "name": "Социальные Медиа", - "placeholder": "Ссылка на профиль социальной сети", - "requireUnique": "Ссылка уже существует", - "submit": "Добавить ссылку", - "successAdd": "Добавлены социальные меди. Профиль обновлен!", - "successDelete": "Социальные Меди удалены. Профиль обновлен!" - }, - "validation": { - "slug": { - "alreadyTaken": "Это имя пользователя уже занято.", - "regex": "Допускаются только строчные буквы, цифры, подчеркивания или дефисы." - } - } - }, - "shoutButton": { - "shouted": "выкрикнули" - }, - "site": { - "back-to-login": "Вернуться на страницу входа", - "bank": "банковский счет", - "changelog": "Изменения", - "code-of-conduct": "Кодекс поведения", - "contact": "Контакт", - "data-privacy": "Конфиденциальность", - "director": "Управляющий директор", - "error-occurred": "Произошла ошибка.", - "faq": "ЧаВо (FAQ)", - "germany": "Германия", - "imprint": "Импрессум", - "made": "Сделано с ❤", - "register": "Регистрационный номер", - "responsible": "ответственный за содержание этой страницы (§ 55 Abs. 2 RStV)", - "taxident": "UST-ID. в соответствии с §27a Закона о налоге с продаж Германии:", - "termsAndConditions": "Условия и положения", - "thanks": "Спасибо!", - "tribunal": "Суд регистрации" - }, - "store": { - "posts": { - "orderBy": { - "newest": { - "label": "Сначала новые" - }, - "oldest": { - "label": "Сначала старые" - } - } - } - }, - "termsAndConditions": { - "addition": { - "description": " https:\/\/human-connection.org\/events\/ <\/a>", - "title": "Кроме того, мы регулярно проводим мероприятия, где вы также можете\\nподелиться своими впечатлениями и задать вопросы. Информацию о текущих событиях можно найти здесь:" - }, - "agree": "Я согласен(на)!", - "code-of-conduct": { - "description": "Наш кодекс поведения служит руководством для личного поведения и взаимодействия друг с другом. Каждый пользователь социальной сети Human Connection, который пишет статьи, комментирует или вступает в контакт с другими пользователями, даже за пределами сети, признает эти правила поведения обязательными. https:\/\/alpha.human-connection.org\/code-of-conduct<\/a>", - "title": "Кодекс поведения" - }, - "errors-and-feedback": { - "description": "Мы прилагаем все усилия для обеспечения безопасности и доступности нашей сети и данных. Каждый новый выпуск программного обеспечения проходит как автоматическое, так и ручное тестирование. Однако могут возникнуть непредвиденные ошибки. Поэтому мы благодарны за любые обнаруженные ошибки. Вы можете сообщить о любых обнаруженных ошибках, отправив электронное письмо в службу поддержки по адресу support@human-connection.org", - "title": "Ошибки и обратная связь" - }, - "help-and-questions": { - "description": "Для справки и вопросов мы собрали для вас исчерпывающую подборку часто задаваемых вопросов и ответов (FAQ). Вы можете найти их здесь: https:\/\/support.human-connection.org\/kb\/ <\/a>", - "title": "Помощь и вопросы" - }, - "moderation": { - "description": "Пока наши финансовые возможности не позволяют нам реализовать полноценную систему модерации, поэтому мы осуществляем упрощенную модерацию собственными силами и с помощью волонтёров. Мы специально обучаем этих модераторов, поэтому только они принимают соответствующие решения. Модераторы действуют анонимно. Вы можете сообщать нам о постах, комментариях и пользователях (например, если они предоставляют информацию в своем профиле или имеют изображения, которые нарушают настоящие Условия использования). При обращении вы можете указать причину и дать краткое пояснение. Мы рассмотрим обращение и применим санкции в случае необходимости, например, путем блокировки постов, комментариев или пользователей. К сожалению, в настоящее время ни вы ни пострадавший пользователь не получите от нас обратной связи, но мы планируем ряд улучшений в этом направлении. Несмотря на это, мы оставляем за собой право на применение санкций по причинам, которые не могут быть или ещё не указаны в нашем Кодексе поведения или настоящих Условиях использования.", - "title": "Модерация" - }, - "newTermsAndConditions": "Новые условия и положения", - "no-commercial-use": { - "description": "Использование Human Connection сети не допускается в коммерческих целях. Это включает, но не ограничивается рекламой продуктов с коммерческими целями, размещением партнерских ссылок, прямым привлечением пожертвований или предоставлением финансовой поддержки для целей, которые не признаются благотворительными для целей налогообложения.", - "title": "Нет коммерческого использования" - }, - "privacy-statement": { - "description": "Наша сеть — это социальная сеть знаний и действий. Поэтому для нас особенно важно, чтобы как можно больше контента было общедоступным. В процессе развития нашей сети будет добавлено больше возможностей для управления видимостью личных данных. Об этих новых функциях мы сообщим дополнительно. В противном случае вы должны думать о том, какие личные данные вы раскрываете о себе (или других). Это особенно актуально для содержания постов и комментариев, поскольку они имеют в основном общедоступный характер. Позже появятся возможности ограничения видимости вашего профиля. Часть условий использования — это наша политика конфиденциальности, которая информирует вас об обработке персональных данных в нашей сети: https:\/\/human-connection.org\/datenschutz\/#netzwerk<\/a> или https:\/\/human-connection.org\/datenschutz<\/a>. Наше заявление о конфиденциальности корректируется в соответствии с законодательством и характеристиками нашей сети и является действительной в настоящей версии.", - "title": "Заявление о конфиденциальности" - }, - "terms-of-service": { - "description": "Следующие условия использования являются основой для использования нашей сети. При регистрации вы должны принять их, а мы при необходимости сообщим вам об изменениях. Сеть Human Connection работает в Германии и поэтому регулируется немецким законодательством. Место юрисдикции - Kirchheim \/ Teck. Подробности в выходных данных: https:\/\/human-connection.org\/en\/imprint<\/a>.", - "title": "Условия обслуживания" - }, - "termsAndConditionsConfirmed": "Я прочитал(а) и подтверждаю Условия и положения<\/a>.", - "termsAndConditionsNewConfirm": "Я прочитал(а) и согласен(на) с новыми условиями.", - "termsAndConditionsNewConfirmText": "Пожалуйста, ознакомьтесь с новыми условиями использования!", - "use-and-license": { - "description": "Если размещаемый в сети контент защищен правами на интеллектуальную собственность, вы предоставляете нам неисключительную, передаваемую, сублицензируемую и всемирную лицензию на использование этого контента для публикации в нашей сети. Эта лицензия заканчивается, как только вы удаляете свой контент или учетную запись. Помните, что другие пользователи могут продолжать делиться вашим контентом, и мы не можем его удалить.", - "title": "Использование и лицензия" - } - }, - "user": { - "avatar": { - "submitted": "Успешная загрузка!" - } - } -} \ No newline at end of file diff --git a/neo4j/Dockerfile b/neo4j/Dockerfile index a180a18a2..22dabe114 100644 --- a/neo4j/Dockerfile +++ b/neo4j/Dockerfile @@ -1,4 +1,4 @@ -FROM neo4j:3.5.13-enterprise +FROM neo4j:3.5.14-enterprise LABEL Description="Neo4J database of the Social Network Human-Connection.org with preinstalled database constraints and indices" Vendor="Human Connection gGmbH" Version="0.0.1" Maintainer="Human Connection gGmbH (developer@human-connection.org)" ARG BUILD_COMMIT diff --git a/neo4j/db_manipulation/add_image_aspect_ratio.sh b/neo4j/db_manipulation/add_image_aspect_ratio.sh index 7fe2c5871..8e2a16a01 100755 --- a/neo4j/db_manipulation/add_image_aspect_ratio.sh +++ b/neo4j/db_manipulation/add_image_aspect_ratio.sh @@ -12,19 +12,11 @@ do sleep 1 done -shopt -s nullglob -for image in uploads/*; do - [ -e "$image" ] || continue - IMAGE_WIDTH=$( identify -format '%w' "$image" ) - IMAGE_HEIGHT=$( identify -format '%h' "$image" ) - IMAGE_ASPECT_RATIO=$(echo | awk "{ print ${IMAGE_WIDTH}/${IMAGE_HEIGHT}}") - - - echo "$image" - echo "$IMAGE_ASPECT_RATIO" - echo " - match (post:Post {image: '/"${image}"'}) - set post.imageAspectRatio = "${IMAGE_ASPECT_RATIO}" - return post; - " | cypher-shell -done +echo " + CALL apoc.periodic.iterate(' + CALL apoc.load.csv("out.csv") yield map as row return row + ',' + MATCH (post:Post) where post.image = row.image + set post.imageAspectRatio = row.aspectRatio + ', {batchSize:10000, iterateList:true, parallel:true}); +" | cypher-shell diff --git a/package.json b/package.json index 33c094201..e29c99586 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "human-connection", - "version": "0.1.13", + "version": "0.2.0", "description": "Fullstack and API tests with cypress and cucumber for Human Connection", "author": "Human Connection gGmbh", "license": "MIT", @@ -21,27 +21,27 @@ "version": "auto-changelog -p" }, "devDependencies": { - "@babel/core": "^7.7.5", - "@babel/preset-env": "^7.7.6", - "@babel/register": "^7.7.4", + "@babel/core": "^7.7.7", + "@babel/preset-env": "^7.7.7", + "@babel/register": "^7.7.7", "auto-changelog": "^1.16.2", "bcryptjs": "^2.4.3", "codecov": "^3.6.1", "cross-env": "^6.0.3", "cucumber": "^6.0.5", - "cypress": "^3.8.0", - "cypress-cucumber-preprocessor": "^1.18.0", - "cypress-file-upload": "^3.5.1", - "cypress-plugin-retries": "^1.5.0", - "date-fns": "^2.8.1", + "cypress": "^3.8.1", + "cypress-cucumber-preprocessor": "^1.19.0", + "cypress-file-upload": "^3.5.3", + "cypress-plugin-retries": "^1.5.2", + "date-fns": "^2.9.0", "dotenv": "^8.2.0", "expect": "^24.9.0", "faker": "Marak/faker.js#master", "graphql-request": "^1.8.2", - "neo4j-driver": "^1.7.6", - "neode": "^0.3.6", + "neo4j-driver": "^4.0.1", + "neode": "^0.3.7", "npm-run-all": "^4.1.5", - "slug": "^1.1.0" + "slug": "^2.1.0" }, "resolutions": { "set-value": "^2.0.1" diff --git a/webapp/Dockerfile b/webapp/Dockerfile index 91f19a486..29f7b2b13 100644 --- a/webapp/Dockerfile +++ b/webapp/Dockerfile @@ -1,4 +1,4 @@ -FROM node:13.3.0-alpine as base +FROM node:13.6.0-alpine as base LABEL Description="Web Frontend of the Social Network Human-Connection.org" Vendor="Human-Connection gGmbH" Version="0.0.1" Maintainer="Human-Connection gGmbH (developer@human-connection.org)" EXPOSE 3000 diff --git a/webapp/Dockerfile.maintenance b/webapp/Dockerfile.maintenance index adcaca13a..ee0db908a 100644 --- a/webapp/Dockerfile.maintenance +++ b/webapp/Dockerfile.maintenance @@ -1,4 +1,4 @@ -FROM node:13.3.0-alpine as build +FROM node:13.6.0-alpine as build LABEL Description="Maintenance page of the Social Network Human-Connection.org" Vendor="Human-Connection gGmbH" Version="0.0.1" Maintainer="Human-Connection gGmbH (developer@human-connection.org)" EXPOSE 3000 diff --git a/webapp/components/Category/index.vue b/webapp/components/Category/index.vue index a6410d750..91ec7613c 100644 --- a/webapp/components/Category/index.vue +++ b/webapp/components/Category/index.vue @@ -19,6 +19,9 @@ export default { .category-tag { display: inline-flex; align-items: center; + &.language { + float: right; + } > .base-icon { margin-right: $space-xx-small; diff --git a/webapp/components/ContributionForm/ContributionForm.spec.js b/webapp/components/ContributionForm/ContributionForm.spec.js index 8c50f30b6..a52169bd1 100644 --- a/webapp/components/ContributionForm/ContributionForm.spec.js +++ b/webapp/components/ContributionForm/ContributionForm.spec.js @@ -200,6 +200,7 @@ describe('ContributionForm.vue', () => { imageUpload: null, imageAspectRatio: null, image: null, + imageBlurred: false, }, } postTitleInput = wrapper.find('.ds-input') @@ -307,6 +308,7 @@ describe('ContributionForm.vue', () => { name: 'Democracy & Politics', }, ], + imageAspectRatio: 1, }, } wrapper = Wrapper() @@ -353,7 +355,7 @@ describe('ContributionForm.vue', () => { categoryIds: ['cat12'], image, imageUpload: null, - imageAspectRatio: null, + imageAspectRatio: 1, }, } }) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index eeba47b72..a8909f16a 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -10,6 +10,7 @@ + + + @@ -80,6 +97,7 @@ +
this.contribution.language === o.value) : null form.categoryIds = this.categoryIds(this.contribution.categories) + form.imageAspectRatio = this.contribution.imageAspectRatio + form.blurImage = this.contribution.imageBlurred } + return { form, formSchema: { @@ -167,6 +190,7 @@ export default { }, }, language: { required: true }, + blurImage: { required: false }, }, languageOptions, id, @@ -175,6 +199,7 @@ export default { users: [], contentMin: 3, hashtags: [], + elem: null, } }, computed: { @@ -195,6 +220,7 @@ export default { teaserImage, imageAspectRatio, categoryIds, + blurImage, } = this.form this.loading = true this.$apollo @@ -208,6 +234,7 @@ export default { language, image, imageUpload: teaserImage, + imageBlurred: blurImage, imageAspectRatio, }, }) @@ -273,28 +300,35 @@ export default { } - diff --git a/webapp/components/MasonryGrid/MasonryGridItem.spec.js b/webapp/components/MasonryGrid/MasonryGridItem.spec.js index 66b0607fd..86233efc9 100644 --- a/webapp/components/MasonryGrid/MasonryGridItem.spec.js +++ b/webapp/components/MasonryGrid/MasonryGridItem.spec.js @@ -1,4 +1,4 @@ -import { config, shallowMount } from '@vue/test-utils' +import { config, mount } from '@vue/test-utils' import MasonryGridItem from './MasonryGridItem' const localVue = global.localVue @@ -8,24 +8,39 @@ config.stubs['ds-grid-item'] = '' describe('MasonryGridItem', () => { let wrapper - beforeEach(() => { - wrapper = shallowMount(MasonryGridItem, { localVue }) - wrapper.vm.$parent.$emit = jest.fn() - }) + describe('given an imageAspectRatio', () => { + it('sets the initial rowSpan to 13 when the ratio is higher than 1.3', () => { + const propsData = { imageAspectRatio: 2 } + wrapper = mount(MasonryGridItem, { localVue, propsData }) - it('emits "calculating-item-height" when starting calculation', async () => { - wrapper.vm.calculateItemHeight() - await wrapper.vm.$nextTick() + expect(wrapper.vm.rowSpan).toBe(13) + }) - const firstCallArgument = wrapper.vm.$parent.$emit.mock.calls[0][0] - expect(firstCallArgument).toBe('calculating-item-height') - }) + it('sets the initial rowSpan to 15 when the ratio is between 1.3 and 1', () => { + const propsData = { imageAspectRatio: 1.1 } + wrapper = mount(MasonryGridItem, { localVue, propsData }) - it('emits "finished-calculating-item-height" after the calculation', async () => { - wrapper.vm.calculateItemHeight() - await wrapper.vm.$nextTick() + expect(wrapper.vm.rowSpan).toBe(15) + }) - const secondCallArgument = wrapper.vm.$parent.$emit.mock.calls[1][0] - expect(secondCallArgument).toBe('finished-calculating-item-height') + it('sets the initial rowSpan to 18 when the ratio is between 1 and 0.7', () => { + const propsData = { imageAspectRatio: 0.7 } + wrapper = mount(MasonryGridItem, { localVue, propsData }) + + expect(wrapper.vm.rowSpan).toBe(18) + }) + + it('sets the initial rowSpan to 25 when the ratio is lower than 0.7', () => { + const propsData = { imageAspectRatio: 0.3 } + wrapper = mount(MasonryGridItem, { localVue, propsData }) + expect(wrapper.vm.rowSpan).toBe(25) + }) + + describe('given no aspect ratio', () => { + it('sets the initial rowSpan to 8 when not given an imageAspectRatio', () => { + wrapper = mount(MasonryGridItem, { localVue }) + expect(wrapper.vm.rowSpan).toBe(8) + }) + }) }) }) diff --git a/webapp/components/MasonryGrid/MasonryGridItem.vue b/webapp/components/MasonryGrid/MasonryGridItem.vue index 937da8f1f..663060f87 100644 --- a/webapp/components/MasonryGrid/MasonryGridItem.vue +++ b/webapp/components/MasonryGrid/MasonryGridItem.vue @@ -5,6 +5,16 @@ diff --git a/webapp/components/PostCard/PostCard.vue b/webapp/components/PostCard/PostCard.vue index d5afe90e1..f9c1fa325 100644 --- a/webapp/components/PostCard/PostCard.vue +++ b/webapp/components/PostCard/PostCard.vue @@ -2,7 +2,12 @@ {}, }, }, + mounted() { + const width = this.$el.offsetWidth + const height = Math.min(width / this.post.imageAspectRatio, 2000) + const imageElement = this.$el.querySelector('.ds-card-image') + if (imageElement) { + imageElement.style.height = `${height}px` + } + }, computed: { ...mapGetters({ user: 'auth/user', @@ -143,23 +156,26 @@ export default { }, } - - diff --git a/webapp/components/TeaserImage/TeaserImage.vue b/webapp/components/TeaserImage/TeaserImage.vue index 95d94d70f..a08b9e0ef 100644 --- a/webapp/components/TeaserImage/TeaserImage.vue +++ b/webapp/components/TeaserImage/TeaserImage.vue @@ -140,7 +140,7 @@ export default {