From cc06d53a57f06a8759108164e2b3b2c040478c2b Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Thu, 27 Dec 2018 16:06:40 +0100 Subject: [PATCH 001/131] Inital minimal working version with graqhql, metascraper and oembed --- .babelrc | 12 + .eslintrc.js | 18 + .gitignore | 61 + .graphqlconfig | 3 + LICENSE | 21 + package.json | 53 + src/graphql-schema.js | 8 + src/index.js | 17 + src/schema.graphql | 19 + src/scraper.js | 128 ++ yarn.lock | 3799 +++++++++++++++++++++++++++++++++++++++++ 11 files changed, 4139 insertions(+) create mode 100644 .babelrc create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .graphqlconfig create mode 100755 LICENSE create mode 100644 package.json create mode 100644 src/graphql-schema.js create mode 100644 src/index.js create mode 100644 src/schema.graphql create mode 100644 src/scraper.js create mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..2d91b3635 --- /dev/null +++ b/.babelrc @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "10" + } + } + ] + ] +} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..ae2dcb316 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,18 @@ +module.exports = { + "extends": "standard", + "parser": "babel-eslint", + "env": { + "es6": true, + "node": true, + }, + "rules": { + "indent": [ + "error", + 2 + ], + "quotes": [ + "error", + "single" + ] + } +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..ad46b3088 --- /dev/null +++ b/.gitignore @@ -0,0 +1,61 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next diff --git a/.graphqlconfig b/.graphqlconfig new file mode 100644 index 000000000..ca328bc83 --- /dev/null +++ b/.graphqlconfig @@ -0,0 +1,3 @@ +{ + "schemaPath": "./src/schema.graphql" +} diff --git a/LICENSE b/LICENSE new file mode 100755 index 000000000..45cc9972b --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Human-Connection + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/package.json b/package.json new file mode 100644 index 000000000..4e59f09dd --- /dev/null +++ b/package.json @@ -0,0 +1,53 @@ +{ + "name": "nitro-embed", + "version": "0.0.1", + "description": "API Service for fetching URL Information like images, icons, descriptions etc. thourgh OpenGraph, oEmbed and other standards.", + "main": "src/index.js", + "scripts": { + "dev": "nodemon src/", + "start": "node src/", + "test": "test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Human-Connection/Nitro-Embed.git" + }, + "keywords": [ + "pengraph", + "oembed" + ], + "author": "Grzegorz Leoniec (http://app-interactive.de)", + "license": "MIT", + "bugs": { + "url": "https://github.com/Human-Connection/Nitro-Embed/issues" + }, + "homepage": "https://github.com/Human-Connection/Nitro-Embed#readme", + "dependencies": { + "@metascraper/helpers": "^4.8.5", + "apollo-server": "^2.3.1", + "got": "^9.5.0", + "graphql": "^14.0.2", + "lodash": "^4.17.11", + "metascraper": "^4.8.5", + "metascraper-audio": "^4.8.5", + "metascraper-author": "^4.8.5", + "metascraper-clearbit-logo": "^4.8.5", + "metascraper-date": "^4.8.5", + "metascraper-description": "^4.8.5", + "metascraper-image": "^4.8.5", + "metascraper-lang": "^4.8.5", + "metascraper-lang-detector": "^4.8.5", + "metascraper-logo": "^4.8.5", + "metascraper-logo-favicon": "^4.8.5", + "metascraper-publisher": "^4.8.5", + "metascraper-title": "^4.8.5", + "metascraper-url": "^4.8.5", + "metascraper-video": "^4.8.5", + "metascraper-youtube": "^4.8.5", + "request": "^2.88.0", + "request-promise-native": "^1.0.5" + }, + "devDependencies": { + "nodemon": "^1.18.9" + } +} diff --git a/src/graphql-schema.js b/src/graphql-schema.js new file mode 100644 index 000000000..332ec18bc --- /dev/null +++ b/src/graphql-schema.js @@ -0,0 +1,8 @@ +const fs = require('fs') +const path = require('path') + +const { gql } = require('apollo-server') + +module.exports = gql(fs + .readFileSync(path.join(__dirname, 'schema.graphql')) + .toString('utf-8')) diff --git a/src/index.js b/src/index.js new file mode 100644 index 000000000..7015e0a53 --- /dev/null +++ b/src/index.js @@ -0,0 +1,17 @@ +const { ApolloServer, gql } = require('apollo-server') +const scraper = require('./scraper.js') +const typeDefs = require('./graphql-schema.js') + +const resolvers = { + Query: { + async embed(obj, {url}, ctx, info) { + return await scraper.fetch(url) + } + } +} + +const server = new ApolloServer({ typeDefs, resolvers }) + +server.listen({ port: 3050 }).then(({ url }) => { + console.log(`🚀 Nitro Embed - Server is ready at ${url}`) +}) diff --git a/src/schema.graphql b/src/schema.graphql new file mode 100644 index 000000000..229745bb6 --- /dev/null +++ b/src/schema.graphql @@ -0,0 +1,19 @@ +type Embed { + type: String + title: String + author: String + publisher: String + date: String + description: String + url: String + image: String + audio: String + video: String + lang: String + logo: String + embed: String +} + +type Query { + embed(url: String!): Embed +} diff --git a/src/scraper.js b/src/scraper.js new file mode 100644 index 000000000..8c44dc0dd --- /dev/null +++ b/src/scraper.js @@ -0,0 +1,128 @@ +const metascraper = require('metascraper')([ + require('metascraper-author')(), + require('metascraper-date')(), + require('metascraper-description')(), + require('metascraper-image')(), + require('metascraper-lang')(), + require('metascraper-lang-detector')(), + require('metascraper-logo')(), + require('metascraper-logo-favicon')(), + // require('metascraper-clearbit-logo')(), + require('metascraper-publisher')(), + require('metascraper-title')(), + require('metascraper-url')(), + require('metascraper-video')(), + require('metascraper-youtube')() + + // require('./rules/metascraper-embed')() +]) +const got = require('got') +const request = require('request-promise-native') +const find = require('lodash/find') +const isEmpty = require('lodash/isEmpty') +const each = require('lodash/each') +const urlParser = require('url') + +// quick in memory cache +let cache = {} + +let oEmbedProviders = [] +const getEmbedProviders = async () => { + let providers = await request('https://oembed.com/providers.json') + providers = JSON.parse(providers) + oEmbedProviders = providers + return providers +} +getEmbedProviders() + +const removeEmptyAttrs = obj => { + let output = {} + each(obj, (o, k) => { + if (!isEmpty(o)) { + output[k] = o + } + }) + return output +} + +const scraper = { + async fetch(targetUrl) { + + if (targetUrl.indexOf('//youtu.be/')) { + // replace youtu.be to get proper results + targetUrl = targetUrl.replace('//youtu.be/', '//youtube.com/') + } + + let meta = {} + let embed = {} + + // only get data from requested services + await Promise.all([ + new Promise(async (resolve, reject) => { + try { + meta = await scraper.fetchMeta(targetUrl) + resolve() + } catch(err) { + resolve() + } + }), + new Promise(async (resolve, reject) => { + try { + embed = await scraper.fetchEmbed(targetUrl) + resolve() + } catch(err) { + resolve() + } + }) + ]) + return { + ...(removeEmptyAttrs(meta)), + ...(removeEmptyAttrs(embed)) + } + }, + async fetchEmbed(targetUrl) { + const url = urlParser.parse(targetUrl) + const embedMeta = find(oEmbedProviders, provider => { + return provider.provider_url.indexOf(url.hostname) >= 0 + }) + if (!embedMeta) { + return {} + } + const embedUrl = embedMeta.endpoints[0].url.replace('{format}', 'json') + + let data = await request(`${embedUrl}?url=${targetUrl}`) + if (data) { + data = JSON.parse(data) + + let output = { + type: data.type, + embed: data.html, + author: data.author_name, + date: data.upload_date ? new Date(data.upload_date).toISOString() : null + } + + return output + } + return {} + }, + async fetchMeta(targetUrl) { + + // const parsedURL = urlParser.parse(targetUrl) + // console.log(parsedURL) + + // get from cache + if (cache[targetUrl]) { + return cache[targetUrl] + } + + const { body: html, url } = await got(targetUrl) + const metadata = await metascraper({ html, url }) + + // write to cache + cache[targetUrl] = metadata + + return metadata + } +} + +module.exports = scraper diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..dd072e74a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3799 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apollographql/apollo-tools@^0.2.6": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.2.9.tgz#1e20999d11728ef47f8f812f2be0426b5dde1a51" + integrity sha512-AEIQwPkS0QLbkpb6WyRhV4aOMxuErasp47ABv5niDKOasQH8mrD8JSGKJAHuQxVe4kB8DE9sLRoc5qeQ0KFCHA== + dependencies: + apollo-env "0.2.5" + +"@apollographql/graphql-playground-html@^1.6.6": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.6.tgz#022209e28a2b547dcde15b219f0c50f47aa5beb3" + integrity sha512-lqK94b+caNtmKFs5oUVXlSpN3sm5IXZ+KfhMxOtr0LR2SqErzkoJilitjDvJ1WbjHlxLI7WtCjRmOLdOGJqtMQ== + +"@metascraper/helpers@^4.8.5": + version "4.8.5" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-4.8.5.tgz#1291fc121b543d4d7c1510a22d3b6d6780e74c64" + integrity sha512-nRkmAiYNvRUIYuXY0WrS3aRw+E+qBUTYfbP7xNjlIeAD/udWOLWr+nj0GdXe2hLUBebDK9luxpvYQ6wBQu+OZQ== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.5" + condense-whitespace "~1.0.0" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~2.0.0" + iso-639-3 "~1.1.0" + isostring "0.0.1" + lodash "~4.17.11" + mime-types "~2.1.21" + normalize-url "~4.1.0" + smartquotes "~2.3.1" + title "~3.4.0" + truncate "~2.0.1" + url-regex "~4.1.1" + video-extensions "~1.1.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" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.1.tgz#6402258dfe467532b26649ef076b4d11f74fb612" + integrity sha512-WljfOGkmSJe8SUkl+4TPvN2ec0dpUGVyfTBQLoXJUiILs+wBSc4Kvp2N3aAWE4VwwDSLGdmD3/bufS5BgZpVSQ== + dependencies: + defer-to-connect "^1.0.1" + +"@types/accepts@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + dependencies: + "@types/node" "*" + +"@types/body-parser@*", "@types/body-parser@1.17.0": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" + integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.32" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" + integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== + dependencies: + "@types/node" "*" + +"@types/cors@^2.8.4": + version "2.8.4" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" + integrity sha512-ipZjBVsm2tF/n8qFGOuGBkUij9X9ZswVi9G3bx/6dz7POpVa6gVHcj1wsX/LVEn9MMF41fxK/PnZPPoTD1UFPw== + dependencies: + "@types/express" "*" + +"@types/events@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + integrity sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA== + +"@types/express-serve-static-core@*": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" + integrity sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w== + dependencies: + "@types/events" "*" + "@types/node" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" + integrity sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + +"@types/long@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" + integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q== + +"@types/mime@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" + integrity sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA== + +"@types/node@*", "@types/node@^10.1.0": + version "10.12.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" + integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/serve-static@*": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" + integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/ws@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.1.tgz#ca7a3f3756aa12f62a0a62145ed14c6db25d5a28" + integrity sha512-EzH8k1gyZ4xih/MaZTXwT2xOkPiIMSrhQ9b8wrlX88L0T02eYsddatQlwVFlEPyEqV0ChpdpNnE51QPH6NVT4Q== + dependencies: + "@types/events" "*" + "@types/node" "*" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@^1.3.5, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +aggregate-error@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-1.0.0.tgz#888344dad0220a72e3af50906117f48771925fac" + integrity sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w= + dependencies: + clean-stack "^1.0.0" + indent-string "^3.0.0" + +ajv@^6.5.5: + version "6.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" + integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + dependencies: + string-width "^2.0.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^3.1.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +apollo-cache-control@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.4.0.tgz#fec343e6ec95aa4f1b88e07e62f067bee0c48397" + integrity sha512-WuriaNQIugTE8gYwfBWWCbbQTSKul/cV4JMi5UgqNIUvjHvnKZQLKbt5uYWow6QQNMkLT9hey8QPYkWpogkeSA== + dependencies: + apollo-server-env "2.2.0" + graphql-extensions "0.4.0" + +apollo-datasource@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.2.1.tgz#3ecef4efe64f7a04a43862f32027d38ac09e142c" + integrity sha512-r185+JTa5KuF1INeTAk7AEP76zwMN6c8Ph1lmpzJMNwBUEzTGnLClrccCskCBx4SxfnkdKbuQdwn9JwCJUWrdg== + dependencies: + apollo-server-caching "0.2.1" + apollo-server-env "2.2.0" + +apollo-engine-reporting-protobuf@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.2.0.tgz#2aaf4d2eddefe7924d469cf1135267bc0deadf73" + integrity sha512-qI+GJKN78UMJ9Aq/ORdiM2qymZ5yswem+/VDdVFocq+/e1QqxjnpKjQWISkswci5+WtpJl9SpHBNxG98uHDKkA== + dependencies: + protobufjs "^6.8.6" + +apollo-engine-reporting@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.2.0.tgz#e71816b1f46e782f8538c5a118148d4c0e628e25" + integrity sha512-Q6FfVb10v/nrv8FaFsPjIYlWh62jaYav3LuMgM9PsHWGK/zRQFXOEwLxcY2UCvG7O1moxF3XGmfBhMgo54py+Q== + dependencies: + apollo-engine-reporting-protobuf "0.2.0" + apollo-server-env "2.2.0" + async-retry "^1.2.1" + graphql-extensions "0.4.0" + lodash "^4.17.10" + +apollo-env@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.2.5.tgz#162c785bccd2aea69350a7600fab4b7147fc9da5" + integrity sha512-Gc7TEbwCl7jJVutnn8TWfzNSkrrqyoo0DP92BQJFU9pZbJhpidoXf2Sw1YwOJl82rRKH3ujM3C8vdZLOgpFcFA== + dependencies: + core-js "^3.0.0-beta.3" + node-fetch "^2.2.0" + +apollo-link@^1.2.3: + version "1.2.6" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.6.tgz#d9b5676d79c01eb4e424b95c7171697f6ad2b8da" + integrity sha512-sUNlA20nqIF3gG3F8eyMD+mO80fmf3dPZX+GUOs3MI9oZR8ug09H3F0UsWJMcpEg6h55Yy5wZ+BMmAjrbenF/Q== + dependencies: + apollo-utilities "^1.0.0" + zen-observable-ts "^0.8.13" + +apollo-server-caching@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.2.1.tgz#7e67f8c8cac829e622b394f0fb82579cabbeadfd" + integrity sha512-+U9F3X297LL8Gqy6ypfDNEv/DfV/tDht9Dr2z3AMaEkNW1bwO6rmdDL01zYxDuVDVq6Z3qSiNCSO2pXE2F0zmA== + dependencies: + lru-cache "^5.0.0" + +apollo-server-core@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.3.1.tgz#cbdc0020a0dfecf2220cf5062dbb304fdf56edf2" + integrity sha512-8jMWYOQIZi9mDJlHe2rXg8Cp4xKYogeRu23jkcNy+k5UjZL+eO+kHXbNFiTaP4HLYYEpe2XE3asxp6q5YUEQeQ== + dependencies: + "@apollographql/apollo-tools" "^0.2.6" + "@apollographql/graphql-playground-html" "^1.6.6" + "@types/ws" "^6.0.0" + apollo-cache-control "0.4.0" + apollo-datasource "0.2.1" + apollo-engine-reporting "0.2.0" + apollo-server-caching "0.2.1" + apollo-server-env "2.2.0" + apollo-server-errors "2.2.0" + apollo-server-plugin-base "0.2.1" + apollo-tracing "0.4.0" + graphql-extensions "0.4.1" + graphql-subscriptions "^1.0.0" + graphql-tag "^2.9.2" + graphql-tools "^4.0.0" + graphql-upload "^8.0.2" + json-stable-stringify "^1.0.1" + lodash "^4.17.10" + subscriptions-transport-ws "^0.9.11" + ws "^6.0.0" + +apollo-server-env@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.2.0.tgz#5eec5dbf46581f663fd6692b2e05c7e8ae6d6034" + integrity sha512-wjJiI5nQWPBpNmpiLP389Ezpstp71szS6DHAeTgYLb/ulCw3CTuuA+0/E1bsThVWiQaDeHZE0sE3yI8q2zrYiA== + dependencies: + node-fetch "^2.1.2" + util.promisify "^1.0.0" + +apollo-server-errors@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.2.0.tgz#5b452a1d6ff76440eb0f127511dc58031a8f3cb5" + integrity sha512-gV9EZG2tovFtT1cLuCTavnJu2DaKxnXPRNGSTo+SDI6IAk6cdzyW0Gje5N2+3LybI0Wq5KAbW6VLei31S4MWmg== + +apollo-server-express@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.3.1.tgz#0598e2fa0a0d9e6eb570c0bb6ce65c31810a9c09" + integrity sha512-J+rObr4GdT/5j6qTByUJoSvZSjTAX/7VqIkr2t+GxwcVUFGet2MdOHuV6rtWKc8CRgvVKfKN6iBrb2EOFcp2LQ== + dependencies: + "@apollographql/graphql-playground-html" "^1.6.6" + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.17.0" + "@types/cors" "^2.8.4" + "@types/express" "4.16.0" + accepts "^1.3.5" + apollo-server-core "2.3.1" + body-parser "^1.18.3" + cors "^2.8.4" + graphql-subscriptions "^1.0.0" + graphql-tools "^4.0.0" + type-is "^1.6.16" + +apollo-server-plugin-base@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.2.1.tgz#d08c9576f7f11ab6e212f352d482faaa4059a31e" + integrity sha512-497NIY9VWRYCrMSkgR11IrIUO4Fsy6aGgnpOJoTdLQAnkDD9SJDSRzwKj4gypUoTT2unfKDng4eMxXVZlHvjOw== + +apollo-server@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.3.1.tgz#4d2b6bbb48b44d86076680304705b8b7ae952d37" + integrity sha512-+S+/BhLJF9Ms99OK9HpC4P6rcVWTobWWKeLSVdgxqG487i/kwMrCAw/ICrDVJGeOGJRi6PndVu9XdHWHuX1lvQ== + dependencies: + apollo-server-core "2.3.1" + apollo-server-express "2.3.1" + express "^4.0.0" + graphql-subscriptions "^1.0.0" + graphql-tools "^4.0.0" + +apollo-tracing@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.4.0.tgz#4b939063f4292422ac5a3564b76d1d88dec0a916" + integrity sha512-BlM8iQUQva4fm0xD/pLwkcz0degfB9a/aAn4k4cK36eLVD8XUkl7ptEB0c+cwcj7tOYpV1r5QX1XwdayBzlHSg== + dependencies: + apollo-server-env "2.2.0" + graphql-extensions "0.4.0" + +apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: + version "1.0.27" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.27.tgz#77c550f9086552376eca3a48e234a1466b5b057e" + integrity sha512-nzrMQ89JMpNmYnVGJ4t8zN75gQbql27UDhlxNi+3OModp0Masx5g+fQmQJ5B4w2dpRuYOsdwFLmj3lQbwOKV1Q== + dependencies: + fast-json-stable-stringify "^2.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050" + integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + integrity sha1-GdOGodntxufByF04iu28xW0zYC0= + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== + +async-retry@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" + integrity sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q== + dependencies: + retry "0.12.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +audio-extensions@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/audio-extensions/-/audio-extensions-0.0.0.tgz#d0eefe077fb9eb625898eed9985890548cf1f8d2" + integrity sha1-0O7+B3+562JYmO7ZmFiQVIzx+NI= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +backo2@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" + integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== + +body-parser@1.18.3, body-parser@^1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" + on-finished "~2.3.0" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.0, braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +busboy@^0.2.14: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-5.2.1.tgz#41814b0460b68b9baf74f57f5a6046224d55d71e" + integrity sha512-+dLut9zvvuIM/MrtdHBVSh/QYJ9+uCKYoqww9cOYrndQH4O4rD/qH0IAwFhD5WJKfmWE6WgCOrLQPd/H5YJRVQ== + dependencies: + clone-response "^1.0.2" + get-stream "^4.0.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^1.0.1" + normalize-url "^3.1.0" + responselike "^1.0.2" + +camelcase@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chalk@^2.0.1, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +cheerio-advanced-selectors@~2.0.1: + version "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: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" + integrity sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + +chokidar@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.5" + optionalDependencies: + fsevents "^1.2.2" + +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + +chrono-node@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/chrono-node/-/chrono-node-1.3.5.tgz#a2495298a32da82bcc01ad9be7d77efa5e244122" + integrity sha1-oklSmKMtqCvMAa2b59d++l4kQSI= + dependencies: + moment "^2.10.3" + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^1.0.0, clean-stack@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" + integrity sha1-noIVAa6XmYbEax1m0tQy2y/UrjE= + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + +clipboardy@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2" + integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw== + dependencies: + arch "^2.1.0" + execa "^0.8.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collapse-white-space@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz#ce05cf49e54c3277ae573036a26851ba430a0091" + integrity sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== + dependencies: + delayed-stream "~1.0.0" + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +condense-whitespace@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" + integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js@^3.0.0-beta.3: + version "3.0.0-beta.6" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.0-beta.6.tgz#f1ee6c8bd9c1941f992fda01f886b3b40ceb1510" + integrity sha512-06k0SnRTdYGlTNek5vAqfxbQjTtMM0zC2xJ79T1QM5UkZS0JQegrOgDiGh43n1QICnOe5+bcvS0zOGTm2C7rBA== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@^2.8.4: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + dependencies: + capture-stack-trace "^1.0.0" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-what@2.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d" + integrity sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +defer-to-connect@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.1.tgz#41ec1dd670dc4c6dcbe7e54c9e44d784d025fe63" + integrity sha512-2e0FJesseUqQj671gvZWfUyxpnFx/5n4xleamlpCD3U6Fm5dh5qzmmLNxNhtmHF06+SYVHH8QU6FACffYTnj0Q== + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deprecated-decorator@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" + integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +dom-serializer@0, dom-serializer@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +domelementtype@1, domelementtype@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs= + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +es-abstract@^1.5.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +express@^4.0.0: + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.3" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.4" + qs "6.5.2" + range-parser "~1.2.0" + safe-buffer "5.1.2" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +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" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +file-extension@~4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/file-extension/-/file-extension-4.0.5.tgz#ae6cef34c28e7313a92baa4aa955755cacdf0ce3" + integrity sha512-l0rOL3aKkoi6ea7MNZe6OHgqYYpn48Qfflr8Pe9G9JPPTx5A+sfboK91ZufzIs59/lPqh351l0eb6iKU9J5oGg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +franc@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/franc/-/franc-4.0.0.tgz#365951bc787b92ffbb1c63c1c492d6b76cbd3a56" + integrity sha512-4991aLWY5sLg2fsyiOPflUjye5XBKyUO4V9O4FTBbQ7xKugvnmP9x3m3LlrpD7kq1BebMThNkEXnK52HaU3ZkQ== + dependencies: + trigram-utils "^1.0.0" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-capacitor@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-1.0.1.tgz#ff9dbfa14dfaf4472537720f19c3088ed9278df0" + integrity sha512-XdZK0Q78WP29Vm3FGgJRhRhrBm51PagovzWtW2kJ3Q6cYJbGtZqWSGTSPwvtEkyjIirFd7b8Yes/dpOYjt4RRQ== + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== + dependencies: + minipass "^2.2.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-src@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-src/-/get-src-1.0.1.tgz#ca11dbe4a93c7f3aa85cec95fcb0b2dfaa9539ee" + integrity sha1-yhHb5Kk8fzqoXOyV/LCy36qVOe4= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +get-video-id@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/get-video-id/-/get-video-id-3.1.0.tgz#44f025a99f824f8f54789dd5d0bf55d122531940" + integrity sha512-dWjLwCBtvGB8aP5S91Vs5W01dTaEykY43whz+wSS9G0zkuTmh7FZ1rZ4A5M33vf/8vvHPlMhLreUSdEJ4yW7Dw== + dependencies: + get-src "^1.0.1" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@^7.0.5: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +got@^9.3.2, got@^9.5.0, got@~9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.5.0.tgz#6fd0312c6b694c0a11d9119d95fd7daed174eb49" + integrity sha512-N+4kb6i9t1lauJ4NwLVVoFVLxZNa6i+iivtNzCSVw7+bVbTXoq0qXctdd8i9rj3lrI0zDk5NGzcO4bfpEP6Uuw== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.0" + cacheable-request "^5.1.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +graphql-extensions@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.4.0.tgz#5857c7b7b9f20dbccbfd88730fffa5963b3c61ee" + integrity sha512-8TUgIIUVpXWOcqq9RdmTSHUrhc3a/s+saKv9cCl8TYWHK9vyJIdea7ZaSKHGDthZNcsN+C3LulZYRL3Ah8ukoA== + dependencies: + "@apollographql/apollo-tools" "^0.2.6" + +graphql-extensions@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.4.1.tgz#92c49a8409ffbfb24559d7661ab60cc90d6086e4" + integrity sha512-Xei4rBxbsTHU6dYiq9y1xxbpRMU3+Os7yD3vXV5W4HbTaxRMizDmu6LAvV4oBEi0ttwICHARQjYTjDTDhHnxrQ== + dependencies: + "@apollographql/apollo-tools" "^0.2.6" + +graphql-subscriptions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.0.0.tgz#475267694b3bd465af6477dbab4263a3f62702b8" + integrity sha512-+ytmryoHF1LVf58NKEaNPRUzYyXplm120ntxfPcgOBC7TnK7Tv/4VRHeh4FAR9iL+O1bqhZs4nkibxQ+OA5cDQ== + dependencies: + iterall "^1.2.1" + +graphql-tag@^2.9.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.0.tgz#87da024be863e357551b2b8700e496ee2d4353ae" + integrity sha512-9FD6cw976TLLf9WYIUPCaaTpniawIjHWZSwIRZSjrfufJamcXbVVYfN2TWvJYbw0Xf2JjYbl1/f2+wDnBVw3/w== + +graphql-tools@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.3.tgz#23b5cb52c519212b1b2e4630a361464396ad264b" + integrity sha512-NNZM0WSnVLX1zIMUxu7SjzLZ4prCp15N5L2T2ro02OVyydZ0fuCnZYRnx/yK9xjGWbZA0Q58yEO//Bv/psJWrg== + dependencies: + apollo-link "^1.2.3" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql-upload@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-8.0.2.tgz#1c1f116f15b7f8485cf40ff593a21368f0f58856" + integrity sha512-u8a5tKPfJ0rU4MY+B3skabL8pEjMkm3tUzq25KBx6nT0yEWmqUO7Z5tdwvwYLFpkLwew94Gue0ARbZtar3gLTw== + dependencies: + busboy "^0.2.14" + fs-capacitor "^1.0.0" + http-errors "^1.7.1" + object-path "^0.11.4" + +graphql@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.0.2.tgz#7dded337a4c3fd2d075692323384034b357f5650" + integrity sha512-gUC4YYsaiSJT1h40krG3J+USGlwhzNTXSb4IOZljn9ag5Tj+RkoXrWp+Kh7WyE3t1NCfab5kzCuxBIvOMERMXw== + dependencies: + iterall "^1.2.2" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +htmlparser2@^3.10.0, htmlparser2@^3.9.1: + version "3.10.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" + integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ== + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.0.6" + +http-cache-semantics@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#6c2ef57e22090b177828708a52eaeae9d1d63e1b" + integrity sha512-OO/9K7uFN30qwAKvslzmCTbimZ/uRjtdN5S50vvWLwUKqFuZj0n96XyCzF5tHRHEO/Q4JYC01hv41gkX06gmHA== + +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.1.tgz#6a4ffe5d35188e1c39f872534690585852e1f027" + integrity sha512-jWEUgtZWGSMba9I1N3gc1HmvpBUaNC9vDdA46yScAdp+C5rdEuKWUBLWTQpW9FwSWSbYYs++b6SDCxf9UEJzfw== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +image-extensions@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/image-extensions/-/image-extensions-1.1.0.tgz#b8e6bf6039df0056e333502a00b6637a3105d894" + integrity sha1-uOa/YDnfAFbjM1AqALZjejEF2JQ= + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= + +ipaddr.js@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" + integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-port-reachable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-port-reachable/-/is-port-reachable-2.0.0.tgz#54d13d654917eb433ae3ee2dcbc3774f2cd44eb2" + integrity sha1-VNE9ZUkX60M64+4ty8N3TyzUTrI= + +is-reachable@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-reachable/-/is-reachable-3.0.0.tgz#73ac3e3ff1d77af49b1dcd8d02a4bcf2721a4cec" + integrity sha512-bviQzO/xMpY1HV/4vLdLQ2waQu8D9elkNZTKsA1UOlWytU7XnLKP8Yn6GOkoZ52VEiwCCkj7biBhKGbgjtyDRg== + dependencies: + arrify "^1.0.1" + got "^9.3.2" + is-port-reachable "^2.0.0" + p-any "^1.1.0" + p-timeout "^2.0.1" + port-numbers "^4.0.4" + prepend-http "^2.0.0" + router-ips "^1.0.0" + url-parse "^1.4.4" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-relative-url@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-2.0.0.tgz#72902d7fe04b3d4792e7db15f9db84b7204c9cef" + integrity sha1-cpAtf+BLPUeS59sV+duEtyBMnO8= + dependencies: + is-absolute-url "^2.0.0" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +iso-639-3@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" + integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isostring@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isostring/-/isostring-0.0.1.tgz#ddb608efbfc89cda86db9cb16be090a788134c7f" + integrity sha1-3bYI77/InNqG25yxa+CQp4gTTH8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" + integrity sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA== + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + dependencies: + package-json "^4.0.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.mergewith@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== + +lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@~4.17.10, lodash@~4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +metascraper-audio@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-4.8.5.tgz#1738fdac2f5731f5172edca233834b087c9f4c29" + integrity sha512-GuoYuE/+fEkKYOsd658iYlRo2XOWqxKKZM6yMPKnpSOXWJSySZWhfmPoFkz40tadwfBWx01nKnIwwopmiZFXEQ== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-author@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-author/-/metascraper-author-4.8.5.tgz#444f4685bff8ba4a5aae65a8378bd0b0686e3407" + integrity sha512-3RppM4OjUI7+aWzMoFhIBlqRXi5GZ+1p7N4fYO2ztEDZFopyIHuMK9AbBgmHUb7OEeVvSMKh6OAGV7lRANuYyQ== + dependencies: + "@metascraper/helpers" "^4.8.5" + lodash "~4.17.10" + +metascraper-clearbit-logo@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-clearbit-logo/-/metascraper-clearbit-logo-4.8.5.tgz#d1e672f1804f7edce507317eb6aeb94a88f29529" + integrity sha512-D53DO9gQFwDqgq6r0qbV92YFpLZTW3Zck17WmlkmPbl9wDLH8EOP5AC0S4h9hu40qwqR2gSqIaH298iQJ+gYvA== + dependencies: + got "~9.5.0" + qsm "~2.1.0" + +metascraper-date@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-date/-/metascraper-date-4.8.5.tgz#9494ac9b4e99e9bd79d7e39972263c87a49f3054" + integrity sha512-m+9deKQDNrrR8O91z0ZQcDnCK7QHFGZnBR8rPYFoWaXxbLVsST5YlT5A6+tYUTswfqjP1FK+r9R0t+5UQA7Ydw== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-description@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-4.8.5.tgz#9155b5c7f64e997f8f12209e0140e7de25614e01" + integrity sha512-0oPEiRXgAyJoQstEPgua0OZ4wD35Htf1oSMzJvejn6rYdfXaeI8RREVtsL/TsUmizyf/iKlneslnfH4/+iN42g== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-image@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-4.8.5.tgz#f679fb4ca110e7aa84dab77813b1d18a7e9fb05d" + integrity sha512-hTvZU2NCnWBOs0xUI8Dz1/ZSPYdf6+UpCp/T9CN9+eyZIA8iRZGqlsPeNIJjVHQ9jf7k2ypnSeYrZnInjXGHcA== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-lang-detector@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-lang-detector/-/metascraper-lang-detector-4.8.5.tgz#68cea1b2b9640393da21ce9717d88a3fe956f015" + integrity sha512-jYyhBjkUoGGl7OHtP7ALUuOwNs9bh/smstQIJIuIM42y7DNccQh1sRLBvcLdweRYB6wr6HIsWo/tdhIhpu/WFQ== + dependencies: + "@metascraper/helpers" "^4.8.5" + franc "~4.0.0" + iso-639-3 "~1.1.0" + +metascraper-lang@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-4.8.5.tgz#6857fd6f45f41203f769b1e3d82d98841aed4ff6" + integrity sha512-HAw+k96lAz9w+RWYNH40CSrV/cuB4sbD4iVfp4taPz2tZ5K0UZnS+OPT9ZJWnSUCkNCWL988TBwza+6N9niI9w== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-logo-favicon@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-logo-favicon/-/metascraper-logo-favicon-4.8.5.tgz#cd6e8aec1be3bf9a944566ea4ce28f837364068f" + integrity sha512-5MxzyHGzySG7axIv5WTRfQ3IAl4E9+F1JGd5+CLGDr1CctOlSUbCcyPo2D5KVJpXDBbL1pW7P7mEvl2Vxz/9jg== + dependencies: + "@metascraper/helpers" "^4.8.5" + got "~9.5.0" + lodash "~4.17.11" + +metascraper-logo@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-4.8.5.tgz#45cb44618e41a5b69c9da8fb28ae4061281b2033" + integrity sha512-fu6Ff9niFt+2HdZgaAI3B5LOIf5BTXA80sE2p+9iW4w3BH15r6N+N42COmVtjHAyJSxYpEWzlF0E3+hnR9qp1g== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-publisher@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-publisher/-/metascraper-publisher-4.8.5.tgz#762d4f257123987b812a919173991432062641b7" + integrity sha512-9DvfBTy+X+rXoKujAC6BHwgfqkekWGZx5ci1JNG13ypYUKztyATrKxy2XUSImUFfL0F7zHVLd3QxrknKimNq2Q== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-title@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-4.8.5.tgz#406de3b443442b34cfffba207d4b53de9343ad98" + integrity sha512-h7MNKZNWUUlA92WsjXg5UyBquyNu6NY7XfDLoi+G62DIBZkXAfrsFkchigyqEJhTDaEH0ualw3RoqzYaEHJkoQ== + dependencies: + "@metascraper/helpers" "^4.8.5" + lodash "~4.17.10" + +metascraper-url@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-url/-/metascraper-url-4.8.5.tgz#37fe18af596da0e0b999a85dce1b30b6d8adb4fb" + integrity sha512-hmAzyQnRTjYrgb9UI6eEbPoiTqbEl0tUOHDKBNy27lMUxcozvJo16SEUUJKdgyMD2QNXGbmnnze8YyK+nVgaBA== + dependencies: + "@metascraper/helpers" "^4.8.5" + +metascraper-video@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-4.8.5.tgz#d70129ea04889ce9dfcd4216ea71757b4ea1390b" + integrity sha512-EWWcaFYUChHoA2Q9dbALTHB0sETRlDaendGDCXrJo2fQHlBiO/iioCiuUvTJg1UDCF1hFlNWxsBqSBxO9d2wvA== + dependencies: + "@metascraper/helpers" "^4.8.5" + lodash "~4.17.11" + +metascraper-youtube@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-youtube/-/metascraper-youtube-4.8.5.tgz#1f0ccb0170b3844dbc05c831c17c1944c1996c4b" + integrity sha512-CoFdoL9E8+EQe1dYXM5BXciE5A6JMwqCHyaao4hLiAthTCGtAXHTXivSCEqcQckwnKAjxkujVH7DrLixJOFNjw== + dependencies: + "@metascraper/helpers" "^4.8.5" + get-video-id "~3.1.0" + is-reachable "~3.0.0" + p-locate "~3.0.0" + +metascraper@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-4.8.5.tgz#5d8f5aa2190d273a3dbf7abbfb38f1e5c7201403" + integrity sha512-BcM8suZkX6j2MsSRO2O69UXJzqbG7Pr5frOYOv/6zm1qn/RmYgxElFJl9MQfbpewpIhEkFrmfRJqOxnYGPRDgQ== + dependencies: + "@metascraper/helpers" "^4.8.5" + cheerio "~1.0.0-rc.2" + cheerio-advanced-selectors "~2.0.1" + lodash "~4.17.11" + p-reduce "~1.0.0" + sanitize-html "~1.20.0" + whoops "~4.0.1" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" + integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== + +mime-types@^2.1.12, mime-types@~2.1.18, mime-types@~2.1.19, mime-types@~2.1.21: + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" + integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== + dependencies: + mime-db "~1.37.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + +mimic-fn@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + integrity sha1-5md4PZLonb00KBi1IwudYqZyrRg= + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minipass@^2.2.1, minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +moment@^2.10.3: + version "2.23.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225" + integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +n-gram@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/n-gram/-/n-gram-1.1.0.tgz#c07fb7d6d59aa42d10fbf680fc4c46a30766c1ee" + integrity sha512-S5dWZFQxmEVf7cfyxK9sVyvB0mmTxgL6z9Ww77q20oG8fidOgkwZqsgj7+4DkZVqxdE/Y+0KLU55yw08ssKqkA== + +nan@^2.9.2: + version "2.12.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" + integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +needle@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= + +node-fetch@^2.1.2, node-fetch@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" + integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +nodemon@^1.18.9: + version "1.18.9" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.9.tgz#90b467efd3b3c81b9453380aeb2a2cba535d0ead" + integrity sha512-oj/eEVTEI47pzYAjGkpcNw0xYwTl4XSTUQv2NPQI6PpN3b75PhpuYk3Vb3U80xHCyM2Jm+1j68ULHXl4OR3Afw== + dependencies: + chokidar "^2.0.4" + debug "^3.1.0" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.6" + semver "^5.5.0" + supports-color "^5.2.0" + touch "^3.1.0" + undefsafe "^2.0.2" + update-notifier "^2.5.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-url@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@~4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.1.0.tgz#307e74c87473efa81969ad1b4bb91f1990178904" + integrity sha512-X781mkWeK6PDMAZJfGn/wnwil4dV6pIdF9euiNqtA89uJvZuNDJO2YyJxiwpPhTQcF5pYUU1v+kcOxzYV6rZlA== + +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== + +npm-packlist@^1.1.6: + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-keys@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== + +object-path@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" + integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-any@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-any/-/p-any-1.1.0.tgz#1d03835c7eed1e34b8e539c47b7b60d0d015d4e1" + integrity sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g== + dependencies: + p-some "^2.0.0" + +p-cancelable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.0.0.tgz#07e9c6d22c31f9c6784cb4f1e1454a79b6d9e2d6" + integrity sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" + integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g== + dependencies: + p-try "^2.0.0" + +p-locate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-reduce@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-some@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-some/-/p-some-2.0.1.tgz#65d87c8b154edbcf5221d167778b6d2e150f6f06" + integrity sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY= + dependencies: + aggregate-error "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" + +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +port-numbers@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/port-numbers/-/port-numbers-4.0.4.tgz#fe1c1fa7cd551f4ceb835b3bbf88c07baa0783d7" + integrity sha512-iicgo0Gltog+OinSw/ESmKOLi4Kfus/OQ6KfN4iOObYVh/Ap13PlFIBulPooBMKnEVm2SUO3Fs2Lk6T9culk1Q== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss@^7.0.5: + version "7.0.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.7.tgz#2754d073f77acb4ef08f1235c36c5721a7201614" + integrity sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.5.0" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + +protobufjs@^6.8.6: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +proxy-addr@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" + integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.8.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.1.31" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" + integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== + +pstree.remy@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.6.tgz#73a55aad9e2d95814927131fbf4dc1b62d259f47" + integrity sha512-NdF35+QsqD7EgNEI5mkI/X+UwaxVEbQaz9f4IooEmMUv6ZPmlTQYGjBPJGgrlzNdjSvIy4MWMg6Q6vCgBO2K+w== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.5.2, qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +qsm@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/qsm/-/qsm-2.1.0.tgz#53c5d28424e2900e1b83d8e958bc916552322516" + integrity sha512-v+5GHA5DkXpqHGXnrZMqft2I2esvq7BJTm+EKN3L+BFzKcx/JwmazJzrebOjuOzYrJreT+JS13K78TReKkI17Q== + +querystringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" + integrity sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg== + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.2, readable-stream@^2.0.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.1.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz#ed6bbc6c5ba58b090039ff18ce670515795aeb06" + integrity sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +registry-auth-token@^3.0.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + dependencies: + rc "^1.0.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= + dependencies: + lodash "^4.13.1" + +request-promise-native@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + +request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== + dependencies: + glob "^7.0.5" + +router-ips@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/router-ips/-/router-ips-1.0.0.tgz#44e00858ebebc0133d58e40b2cd8a1fbb04203f5" + integrity sha1-ROAIWOvrwBM9WOQLLNih+7BCA/U= + +safe-buffer@5.1.2, safe-buffer@^5.0.1, 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" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-html@~1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.20.0.tgz#9a602beb1c9faf960fb31f9890f61911cc4d9156" + integrity sha512-BpxXkBoAG+uKCHjoXFmox6kCSYpnulABoGcZ/R3QyY9ndXbIM5S94eOr1IqnzTG8TnbmXaxWoDDzKC5eJv7fEQ== + dependencies: + chalk "^2.4.1" + htmlparser2 "^3.10.0" + lodash.clonedeep "^4.5.0" + lodash.escaperegexp "^4.1.2" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.mergewith "^4.6.1" + postcss "^7.0.5" + srcset "^1.0.0" + xtend "^4.0.1" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + +semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +smartquotes@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/smartquotes/-/smartquotes-2.3.1.tgz#01ebb595d6c7a9e24d90e8cb95c17d0e1af49407" + integrity sha1-Aeu1ldbHqeJNkOjLlcF9Dhr0lAc= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +srcset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz#a5669de12b42f3b1d5e83ed03c71046fc48f41ef" + integrity sha1-pWad4StC87HV6D7QPHEEb8SPQe8= + dependencies: + array-uniq "^1.0.2" + number-is-nan "^1.0.0" + +sshpk@^1.7.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.0.tgz#1d4963a2fbffe58050aa9084ca20be81741c07de" + integrity sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +subscriptions-transport-ws@^0.9.11: + version "0.9.15" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.15.tgz#68a8b7ba0037d8c489fb2f5a102d1494db297d0d" + integrity sha512-f9eBfWdHsePQV67QIX+VRhf++dn1adyC/PZHP6XI5AfKnZ4n0FW+v5omxwdHVpd4xq2ZijaHEcmlQrhBY79ZWQ== + dependencies: + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0" + +supports-color@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= + dependencies: + has-flag "^2.0.0" + +supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +symbol-observable@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +tar@^4: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.4" + minizlib "^1.1.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +title@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/title/-/title-3.4.0.tgz#17cdfae82602f87777f137047d36ec283389c9e3" + integrity sha512-gabSoHN82rROEFIkWr9GkwqTFihjdvumQflWsvwiNeIDpJbZOYrg3bXpR0SY4QcghGM1k5QrnI4k6XAiJwOWVw== + dependencies: + arg "1.0.0" + chalk "2.3.0" + clipboardy "1.2.2" + titleize "1.0.0" + +titleize@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" + integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= + +tlds@^1.187.0: + version "1.203.1" + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" + integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tough-cookie@>=2.3.3: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +trigram-utils@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trigram-utils/-/trigram-utils-1.0.1.tgz#9248b88393c696095640eafd8d529d30761094da" + integrity sha512-9xJJ3zcPO/b60f9TF8svW9Q0HdpPebiTh2juIVSqcptwvxybOtek+YwbC+k1qf9TosNYyyC4JtSSFDGw+EE+gQ== + dependencies: + collapse-white-space "^1.0.3" + n-gram "^1.0.0" + trim "0.0.1" + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +truncate@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" + integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-is@^1.6.16, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +undefsafe@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" + integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= + dependencies: + debug "^2.2.0" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== + +update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8" + integrity sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg== + dependencies: + querystringify "^2.0.0" + requires-port "^1.0.0" + +url-regex@~4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-4.1.1.tgz#a5617b22e15e26dac57ce74c3f52088bcdfec995" + integrity sha512-ViSDgDPNKkrQHI81GLCjdDN+Rsk3tAW/uLXlBOJxtcHzWZjta58Z0APXhfXzS89YszsheMnEvXeDXsWUB53wwA== + dependencies: + ip-regex "^1.0.1" + tlds "^1.187.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.1.0, uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +video-extensions@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/video-extensions/-/video-extensions-1.1.0.tgz#eaa86b45f29a853c2b873e9d8e23b513712997d6" + integrity sha1-6qhrRfKahTwrhz6djiO1E3Epl9Y= + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +whoops@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/whoops/-/whoops-4.0.1.tgz#568d1768386fde94a27d80983bf207e453e78f20" + integrity sha512-XlSRD73wKOGE7SgOAsy6HCkcKDS6AQjjLW7egPzYOSOPU99H1QTioxobQ4cCP7a5ACjzNdd3/nxUXOn6ysijkA== + dependencies: + clean-stack "~1.3.0" + mimic-fn "~1.1.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.0.0: + version "6.1.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8" + integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw== + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + +xtend@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +zen-observable-ts@^0.8.13: + version "0.8.13" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.13.tgz#ae1fd77c84ef95510188b1f8bca579d7a5448fc2" + integrity sha512-WDb8SM0tHCb6c0l1k60qXWlm1ok3zN9U4VkLdnBKQwIYwUoB9psH7LIFgR+JVCCMmBxUgOjskIid8/N02k/2Bg== + dependencies: + zen-observable "^0.8.0" + +zen-observable@^0.8.0: + version "0.8.11" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.11.tgz#d3415885eeeb42ee5abb9821c95bb518fcd6d199" + integrity sha512-N3xXQVr4L61rZvGMpWe8XoCGX8vhU35dPyQ4fm5CY/KDlG0F75un14hjbckPXTDuKUY6V0dqR2giT6xN8Y4GEQ== From 3b49e9fa84a86f854df02d5b1ec7fb725d7db204 Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Thu, 27 Dec 2018 16:41:32 +0100 Subject: [PATCH 002/131] Create README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..c2ed048b4 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Nitro-Embed +API Service for fetching URL Information like images, icons, descriptions etc. thourgh OpenGraph, oEmbed and other standards. + +> early version of simpler embed api with Metascraper and oEmbed for better results. + +## TODOS +- [x] Metascraper +- [x] oEmbed +- [ ] API Cache +- [ ] Image Caching From 18bfc85dcaa707ee9443f224f70d22cd3750eb3c Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Fri, 28 Dec 2018 12:55:42 +0100 Subject: [PATCH 003/131] added 404 error, better error correction for oEmbed, audio and soundcloud --- package.json | 1 + src/scraper.js | 27 +++++++++++++++++++++++---- yarn.lock | 7 +++++++ 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 4e59f09dd..77ea21967 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "metascraper-logo": "^4.8.5", "metascraper-logo-favicon": "^4.8.5", "metascraper-publisher": "^4.8.5", + "metascraper-soundcloud": "^4.8.5", "metascraper-title": "^4.8.5", "metascraper-url": "^4.8.5", "metascraper-video": "^4.8.5", diff --git a/src/scraper.js b/src/scraper.js index 8c44dc0dd..834fad11c 100644 --- a/src/scraper.js +++ b/src/scraper.js @@ -11,11 +11,15 @@ const metascraper = require('metascraper')([ require('metascraper-publisher')(), require('metascraper-title')(), require('metascraper-url')(), + require('metascraper-audio')(), + require('metascraper-soundcloud')(), require('metascraper-video')(), require('metascraper-youtube')() // require('./rules/metascraper-embed')() ]) +const { ApolloError } = require('apollo-server') + const got = require('got') const request = require('request-promise-native') const find = require('lodash/find') @@ -69,31 +73,46 @@ const scraper = { new Promise(async (resolve, reject) => { try { embed = await scraper.fetchEmbed(targetUrl) + console.log(embed) resolve() } catch(err) { + console.error(err) resolve() } }) ]) - return { + + const output = { ...(removeEmptyAttrs(meta)), ...(removeEmptyAttrs(embed)) } + + if (isEmpty(output)) { + throw new ApolloError('Not found', 404) + } + + return output }, async fetchEmbed(targetUrl) { const url = urlParser.parse(targetUrl) const embedMeta = find(oEmbedProviders, provider => { return provider.provider_url.indexOf(url.hostname) >= 0 }) + console.log('embedMeta', embedMeta) if (!embedMeta) { return {} } const embedUrl = embedMeta.endpoints[0].url.replace('{format}', 'json') - let data = await request(`${embedUrl}?url=${targetUrl}`) - if (data) { + let data + try { + data = await request(`${embedUrl}?url=${targetUrl}`) data = JSON.parse(data) - + } catch (err) { + data = await request(`${embedUrl}?url=${targetUrl}&format=json`) + data = JSON.parse(data) + } + if (data) { let output = { type: data.type, embed: data.html, diff --git a/yarn.lock b/yarn.lock index dd072e74a..3db4db7b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2275,6 +2275,13 @@ metascraper-publisher@^4.8.5: dependencies: "@metascraper/helpers" "^4.8.5" +metascraper-soundcloud@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-4.8.5.tgz#6593ba8a26fedbb4a3bebc6d2803e22b38278621" + integrity sha512-fChxmwqCLyans9RKKg1jaL7dh/6twIBgaQm/NjvlKcp4+V39J85wQlZPHBgoXl+K/uMwy94wMftKWWQ1Hxxgkw== + dependencies: + "@metascraper/helpers" "^4.8.5" + metascraper-title@^4.8.5: version "4.8.5" resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-4.8.5.tgz#406de3b443442b34cfffba207d4b53de9343ad98" From f44121bcc117b2e7e9421de1a3b755d325ea1bfa Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Fri, 28 Dec 2018 13:03:09 +0100 Subject: [PATCH 004/131] better logging and only in dev --- src/index.js | 4 ++++ src/scraper.js | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index 7015e0a53..7c6e1432e 100644 --- a/src/index.js +++ b/src/index.js @@ -12,6 +12,10 @@ const resolvers = { const server = new ApolloServer({ typeDefs, resolvers }) +if (process.env.NODE_ENV !== 'production') { + process.env.DEBUG = true +} + server.listen({ port: 3050 }).then(({ url }) => { console.log(`🚀 Nitro Embed - Server is ready at ${url}`) }) diff --git a/src/scraper.js b/src/scraper.js index 834fad11c..6bed1a522 100644 --- a/src/scraper.js +++ b/src/scraper.js @@ -67,16 +67,20 @@ const scraper = { meta = await scraper.fetchMeta(targetUrl) resolve() } catch(err) { + if (process.env.DEBUG) { + console.error(`ERROR at fetchMeta | ${err.message}`) + } resolve() } }), new Promise(async (resolve, reject) => { try { embed = await scraper.fetchEmbed(targetUrl) - console.log(embed) resolve() } catch(err) { - console.error(err) + if (process.env.DEBUG) { + console.error(`ERROR at fetchEmbed | ${err.message}`) + } resolve() } }) @@ -98,7 +102,6 @@ const scraper = { const embedMeta = find(oEmbedProviders, provider => { return provider.provider_url.indexOf(url.hostname) >= 0 }) - console.log('embedMeta', embedMeta) if (!embedMeta) { return {} } From 32fad6118c092511f1f4dc6c85a380590ea24b0b Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Fri, 28 Dec 2018 16:08:39 +0100 Subject: [PATCH 005/131] fix youtube start parameter --- src/scraper.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/scraper.js b/src/scraper.js index 6bed1a522..8dc80effa 100644 --- a/src/scraper.js +++ b/src/scraper.js @@ -19,6 +19,7 @@ const metascraper = require('metascraper')([ // require('./rules/metascraper-embed')() ]) const { ApolloError } = require('apollo-server') +const parseUrl = require('url') const got = require('got') const request = require('request-promise-native') @@ -57,6 +58,8 @@ const scraper = { targetUrl = targetUrl.replace('//youtu.be/', '//youtube.com/') } + const url = parseUrl.parse(targetUrl, true) + let meta = {} let embed = {} @@ -95,6 +98,13 @@ const scraper = { throw new ApolloError('Not found', 404) } + // fix youtube start parameter + const YouTubeStartParam = url.query.t || url.query.start + if (output.publisher === 'YouTube' && YouTubeStartParam) { + output.embed = output.embed.replace('?feature=oembed', `?feature=oembed&start=${YouTubeStartParam}`) + output.url += `&start=${YouTubeStartParam}` + } + return output }, async fetchEmbed(targetUrl) { From f8f0ff3d06a51a9b1fba54d169894f734054c2d3 Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Fri, 28 Dec 2018 16:35:36 +0100 Subject: [PATCH 006/131] added sources to results from which data was aggregated --- src/schema.graphql | 1 + src/scraper.js | 33 ++++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/schema.graphql b/src/schema.graphql index 229745bb6..e7108d3ef 100644 --- a/src/schema.graphql +++ b/src/schema.graphql @@ -12,6 +12,7 @@ type Embed { lang: String logo: String embed: String + sources: [String] } type Query { diff --git a/src/scraper.js b/src/scraper.js index 8dc80effa..9399cad6c 100644 --- a/src/scraper.js +++ b/src/scraper.js @@ -26,6 +26,8 @@ const request = require('request-promise-native') const find = require('lodash/find') const isEmpty = require('lodash/isEmpty') const each = require('lodash/each') +const isArray = require('lodash/isArray') +const mergeWith = require('lodash/mergeWith') const urlParser = require('url') // quick in memory cache @@ -52,12 +54,15 @@ const removeEmptyAttrs = obj => { const scraper = { async fetch(targetUrl) { - if (targetUrl.indexOf('//youtu.be/')) { // replace youtu.be to get proper results targetUrl = targetUrl.replace('//youtu.be/', '//youtube.com/') } + if (cache[targetUrl]) { + return cache[targetUrl] + } + const url = parseUrl.parse(targetUrl, true) let meta = {} @@ -89,10 +94,15 @@ const scraper = { }) ]) - const output = { - ...(removeEmptyAttrs(meta)), - ...(removeEmptyAttrs(embed)) - } + const output = mergeWith( + meta, + embed, + (objValue, srcValue) => { + if (isArray(objValue)) { + return objValue.concat(srcValue); + } + } + ) if (isEmpty(output)) { throw new ApolloError('Not found', 404) @@ -105,6 +115,9 @@ const scraper = { output.url += `&start=${YouTubeStartParam}` } + // write to cache + cache[targetUrl] = output + return output }, async fetchEmbed(targetUrl) { @@ -133,6 +146,8 @@ const scraper = { date: data.upload_date ? new Date(data.upload_date).toISOString() : null } + output.sources = ['oembed'] + return output } return {} @@ -142,16 +157,12 @@ const scraper = { // const parsedURL = urlParser.parse(targetUrl) // console.log(parsedURL) - // get from cache - if (cache[targetUrl]) { - return cache[targetUrl] - } + // get from cach const { body: html, url } = await got(targetUrl) const metadata = await metascraper({ html, url }) - // write to cache - cache[targetUrl] = metadata + metadata.sources = ['resource'] return metadata } From 8e71c27b52af9b30d8eec5712b4c7a95be954a52 Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Fri, 28 Dec 2018 19:43:29 +0100 Subject: [PATCH 007/131] fallback to link type where possible --- src/scraper.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/scraper.js b/src/scraper.js index 9399cad6c..7b1a6ad60 100644 --- a/src/scraper.js +++ b/src/scraper.js @@ -140,7 +140,7 @@ const scraper = { } if (data) { let output = { - type: data.type, + type: data.type || 'link', embed: data.html, author: data.author_name, date: data.upload_date ? new Date(data.upload_date).toISOString() : null @@ -163,6 +163,7 @@ const scraper = { const metadata = await metascraper({ html, url }) metadata.sources = ['resource'] + metadata.type = 'link' return metadata } From 053cc868883e7ad2d3dd982bf402c6c50b698c8b Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Fri, 28 Dec 2018 19:52:32 +0100 Subject: [PATCH 008/131] Improved readme --- README.md | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c2ed048b4..d8c0706a1 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,45 @@ API Service for fetching URL Information like images, icons, descriptions etc. t > early version of simpler embed api with Metascraper and oEmbed for better results. -## TODOS +## Todo`s - [x] Metascraper - [x] oEmbed - [ ] API Cache - [ ] Image Caching + + +## Install and start development server + +Install dependencies +```shell +yarn install +``` + +Start development server +```shell +yarn dev +``` + +## Example Request +Use the following request by posting it against the endpoint or open the url the `yarn dev` script did gave you and fire it there to get your first result. + +```grapql +{ + embed(url: "https://human-connection.org") { + type + embed + title + description + author + publisher + url + date + image + audio + video + lang + logo + sources + } +} +``` From 9ddf89d874461363035ba881228542080884a2e6 Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Fri, 28 Dec 2018 19:58:48 +0100 Subject: [PATCH 009/131] Added API Playground screenshot --- README.md | 5 +++++ screenshot.png | Bin 0 -> 110105 bytes 2 files changed, 5 insertions(+) create mode 100644 screenshot.png diff --git a/README.md b/README.md index d8c0706a1..be2a17020 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,17 @@ API Service for fetching URL Information like images, icons, descriptions etc. t > early version of simpler embed api with Metascraper and oEmbed for better results. +![API Screenshot](screenshot.png) + +--- + ## Todo`s - [x] Metascraper - [x] oEmbed - [ ] API Cache - [ ] Image Caching +--- ## Install and start development server diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..e8359c47f4baced42a4d8f72b03094aefe2b6223 GIT binary patch literal 110105 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≶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ℜee zMUr*mO4o}!vO5#UZ$^{1bwmNp`zW6EqR_m6hnf?N#OUO{)#X7?4+011Er2Yo)YKl@ zy Date: Fri, 28 Dec 2018 20:01:42 +0100 Subject: [PATCH 010/131] Upgraded screenshot --- screenshot.png | Bin 110105 -> 114913 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index e8359c47f4baced42a4d8f72b03094aefe2b6223..cd6f87fbaacef64332cafcf2116b7d784255db29 100644 GIT binary patch literal 114913 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 z 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%0Aq{F9TVjYF| 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 literal 110105 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≶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ℜee zMUr*mO4o}!vO5#UZ$^{1bwmNp`zW6EqR_m6hnf?N#OUO{)#X7?4+011Er2Yo)YKl@ zy Date: Sat, 29 Dec 2018 14:15:22 +0100 Subject: [PATCH 011/131] Use string for extension.code instead of number "404" --- src/scraper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scraper.js b/src/scraper.js index 7b1a6ad60..d81d06690 100644 --- a/src/scraper.js +++ b/src/scraper.js @@ -105,7 +105,7 @@ const scraper = { ) if (isEmpty(output)) { - throw new ApolloError('Not found', 404) + throw new ApolloError('Not found', 'NOT_FOUND') } // fix youtube start parameter From 6461a43befcdcfbb21644990dadfcb5540e3ea24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 18 Feb 2019 04:50:56 +0000 Subject: [PATCH 012/131] Bump got from 9.5.0 to 9.6.0 Bumps [got](https://github.com/sindresorhus/got) from 9.5.0 to 9.6.0. - [Release notes](https://github.com/sindresorhus/got/releases) - [Commits](https://github.com/sindresorhus/got/compare/v9.5.0...v9.6.0) Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 40 +++++++++++++++++++++++++++++++++++----- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 77ea21967..bb509a161 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "dependencies": { "@metascraper/helpers": "^4.8.5", "apollo-server": "^2.3.1", - "got": "^9.5.0", + "got": "^9.6.0", "graphql": "^14.0.2", "lodash": "^4.17.11", "metascraper": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index 3db4db7b9..fb6a48441 100644 --- a/yarn.lock +++ b/yarn.lock @@ -94,10 +94,10 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@szmarczak/http-timer@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.1.tgz#6402258dfe467532b26649ef076b4d11f74fb612" - integrity sha512-WljfOGkmSJe8SUkl+4TPvN2ec0dpUGVyfTBQLoXJUiILs+wBSc4Kvp2N3aAWE4VwwDSLGdmD3/bufS5BgZpVSQ== +"@szmarczak/http-timer@^1.1.0", "@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" @@ -648,6 +648,19 @@ cacheable-request@^5.1.0: normalize-url "^3.1.0" responselike "^1.0.2" +cacheable-request@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.0.0.tgz#4a1727414e02ac4af82560c4da1b61daa3fa2b63" + integrity sha512-2N7AmszH/WPPpl5Z3XMw1HAP+8d+xugnKQAeKvxFZ/04dbT/CAznqwbl+7eSr3HkwdepNwtb2yx3CAMQWvG01Q== + dependencies: + clone-response "^1.0.2" + get-stream "^4.0.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^1.0.1" + normalize-url "^3.1.0" + responselike "^1.0.2" + camelcase@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -1475,7 +1488,24 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -got@^9.3.2, got@^9.5.0, got@~9.5.0: +got@^9.3.2, got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +got@~9.5.0: version "9.5.0" resolved "https://registry.yarnpkg.com/got/-/got-9.5.0.tgz#6fd0312c6b694c0a11d9119d95fd7daed174eb49" integrity sha512-N+4kb6i9t1lauJ4NwLVVoFVLxZNa6i+iivtNzCSVw7+bVbTXoq0qXctdd8i9rj3lrI0zDk5NGzcO4bfpEP6Uuw== From f228eb3e3c769d4a18dab38b88f9ebd2dfa30dab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 18 Mar 2019 05:00:26 +0000 Subject: [PATCH 013/131] Bump metascraper from 4.8.5 to 4.10.3 Bumps [metascraper](https://github.com/microlinkhq/metascraper) from 4.8.5 to 4.10.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.8.5...v4.10.3) Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 212 +++++++++++++++++++++------------------------------ 2 files changed, 88 insertions(+), 126 deletions(-) diff --git a/package.json b/package.json index 77ea21967..ca9fc9664 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "got": "^9.5.0", "graphql": "^14.0.2", "lodash": "^4.17.11", - "metascraper": "^4.8.5", + "metascraper": "^4.10.3", "metascraper-audio": "^4.8.5", "metascraper-author": "^4.8.5", "metascraper-clearbit-logo": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index 3db4db7b9..58eac6aa8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,24 +14,25 @@ resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.6.tgz#022209e28a2b547dcde15b219f0c50f47aa5beb3" integrity sha512-lqK94b+caNtmKFs5oUVXlSpN3sm5IXZ+KfhMxOtr0LR2SqErzkoJilitjDvJ1WbjHlxLI7WtCjRmOLdOGJqtMQ== -"@metascraper/helpers@^4.8.5": - version "4.8.5" - resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-4.8.5.tgz#1291fc121b543d4d7c1510a22d3b6d6780e74c64" - integrity sha512-nRkmAiYNvRUIYuXY0WrS3aRw+E+qBUTYfbP7xNjlIeAD/udWOLWr+nj0GdXe2hLUBebDK9luxpvYQ6wBQu+OZQ== +"@metascraper/helpers@^4.10.2", "@metascraper/helpers@^4.8.5": + version "4.10.2" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-4.10.2.tgz#864e49c71468548441f3a1ab68fdb2913855821b" + integrity sha512-l2IyF2X4ytz5Mj/TaVenmjEhEZCCj+Qb1PnIbW10Kas/qg0O58x5hBAHsszkSWQSx/OvnDvT2Mpft77qcBa77g== dependencies: audio-extensions "0.0.0" - chrono-node "~1.3.5" + chrono-node "~1.3.11" condense-whitespace "~1.0.0" file-extension "~4.0.5" image-extensions "~1.1.0" is-relative-url "~2.0.0" + is-uri "~1.2.0" iso-639-3 "~1.1.0" isostring "0.0.1" lodash "~4.17.11" - mime-types "~2.1.21" - normalize-url "~4.1.0" + mime-types "~2.1.22" + normalize-url "~4.2.0" smartquotes "~2.3.1" - title "~3.4.0" + title "~3.4.1" truncate "~2.0.1" url-regex "~4.1.1" video-extensions "~1.1.0" @@ -440,11 +441,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-uniq@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -672,7 +668,7 @@ chalk@2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chalk@^2.0.1, chalk@^2.4.1: +chalk@^2.0.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== @@ -723,12 +719,12 @@ chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== -chrono-node@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/chrono-node/-/chrono-node-1.3.5.tgz#a2495298a32da82bcc01ad9be7d77efa5e244122" - integrity sha1-oklSmKMtqCvMAa2b59d++l4kQSI= +chrono-node@~1.3.11: + version "1.3.11" + resolved "https://registry.yarnpkg.com/chrono-node/-/chrono-node-1.3.11.tgz#b86a26b7e3157edcc4fe3374e1b6f90caedc8e39" + integrity sha512-jDWRnY6nYvzfV3HPYBqo+tot7tcsUs9i3arGbMdI0TouPSXP2C2y/Ctp27rxKTQDi6yuTxAB2cw+Q6igGhOhdQ== dependencies: - moment "^2.10.3" + moment "2.21.0" ci-info@^1.5.0: version "1.6.0" @@ -745,11 +741,16 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-stack@^1.0.0, clean-stack@~1.3.0: +clean-stack@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" integrity sha1-noIVAa6XmYbEax1m0tQy2y/UrjE= +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" @@ -1622,7 +1623,7 @@ has@^1.0.1: dependencies: function-bind "^1.1.1" -htmlparser2@^3.10.0, htmlparser2@^3.9.1: +htmlparser2@^3.9.1: version "3.10.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ== @@ -1966,6 +1967,14 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-uri@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-uri/-/is-uri-1.2.0.tgz#b92ff234af68c0ed97d2eed46492d01793b7d420" + integrity sha1-uS/yNK9owO2X0u7UZJLQF5O31CA= + dependencies: + parse-uri "~1.0.0" + punycode2 "~1.0.0" + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -2103,36 +2112,11 @@ latest-version@^3.0.0: dependencies: package-json "^4.0.0" -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= - -lodash.mergewith@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" - integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== - lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@~4.17.10, lodash@~4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -2315,18 +2299,17 @@ metascraper-youtube@^4.8.5: is-reachable "~3.0.0" p-locate "~3.0.0" -metascraper@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-4.8.5.tgz#5d8f5aa2190d273a3dbf7abbfb38f1e5c7201403" - integrity sha512-BcM8suZkX6j2MsSRO2O69UXJzqbG7Pr5frOYOv/6zm1qn/RmYgxElFJl9MQfbpewpIhEkFrmfRJqOxnYGPRDgQ== +metascraper@^4.10.3: + version "4.10.3" + resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-4.10.3.tgz#8a97ed2e914e81d1dbc1f17a5b1e64f1b804493f" + integrity sha512-wNQm5A/PIxWcahaMwI+b3rOmmXRDNmjyF6Q15dHYXEqYoGl3dFaaT4lnTTm8yntvE+fOj8+o51ON2FBdstxbsA== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^4.10.2" cheerio "~1.0.0-rc.2" cheerio-advanced-selectors "~2.0.1" lodash "~4.17.11" - p-reduce "~1.0.0" - sanitize-html "~1.20.0" - whoops "~4.0.1" + p-reduce "~2.0.0" + whoops "~4.0.2" methods@~1.1.2: version "1.1.2" @@ -2357,22 +2340,34 @@ mime-db@~1.37.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== -mime-types@^2.1.12, mime-types@~2.1.18, mime-types@~2.1.19, mime-types@~2.1.21: +mime-db@~1.38.0: + version "1.38.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" + integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== + +mime-types@^2.1.12, mime-types@~2.1.18, mime-types@~2.1.19: version "2.1.21" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== dependencies: mime-db "~1.37.0" +mime-types@~2.1.22: + version "2.1.22" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" + integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== + dependencies: + mime-db "~1.38.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== -mimic-fn@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" - integrity sha1-5md4PZLonb00KBi1IwudYqZyrRg= +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-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" @@ -2426,10 +2421,10 @@ mkdirp@^0.5.0, mkdirp@^0.5.1: dependencies: minimist "0.0.8" -moment@^2.10.3: - version "2.23.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225" - integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA== +moment@2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" + integrity sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ== ms@2.0.0: version "2.0.0" @@ -2546,10 +2541,10 @@ normalize-url@^3.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -normalize-url@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.1.0.tgz#307e74c87473efa81969ad1b4bb91f1990178904" - integrity sha512-X781mkWeK6PDMAZJfGn/wnwil4dV6pIdF9euiNqtA89uJvZuNDJO2YyJxiwpPhTQcF5pYUU1v+kcOxzYV6rZlA== +normalize-url@~4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.2.0.tgz#e747f16b58e6d7f391495fd86415fa04ec7c9897" + integrity sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg== npm-bundled@^1.0.1: version "1.0.5" @@ -2707,10 +2702,10 @@ p-locate@~3.0.0: dependencies: p-limit "^2.0.0" -p-reduce@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= +p-reduce@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.0.0.tgz#365a26916213650711124881a6bdc4e32c2bfe36" + integrity sha512-VcNNEqiYIkRCGeUHELY5dUrnQHCRwL6eIH/L9oSbl/PsvyHQXD1ws/MFwuEb+6dgH/URCfROVUqOYL37eHi2kQ== p-some@^2.0.0: version "2.0.1" @@ -2741,6 +2736,11 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" +parse-uri@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.0.tgz#2872dcc22f1a797acde1583d8a0ac29552ddac20" + integrity sha1-KHLcwi8aeXrN4Vg9igrClVLdrCA= + parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -2803,15 +2803,6 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss@^7.0.5: - version "7.0.7" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.7.tgz#2754d073f77acb4ef08f1235c36c5721a7201614" - integrity sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.5.0" - prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -2877,6 +2868,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode2@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/punycode2/-/punycode2-1.0.0.tgz#e2b4b9a9a8ff157d0b84438e203181ee7892dfd8" + integrity sha1-4rS5qaj/FX0LhEOOIDGB7niS39g= + punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -3104,22 +3100,6 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sanitize-html@~1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.20.0.tgz#9a602beb1c9faf960fb31f9890f61911cc4d9156" - integrity sha512-BpxXkBoAG+uKCHjoXFmox6kCSYpnulABoGcZ/R3QyY9ndXbIM5S94eOr1IqnzTG8TnbmXaxWoDDzKC5eJv7fEQ== - dependencies: - chalk "^2.4.1" - htmlparser2 "^3.10.0" - lodash.clonedeep "^4.5.0" - lodash.escaperegexp "^4.1.2" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.mergewith "^4.6.1" - postcss "^7.0.5" - srcset "^1.0.0" - xtend "^4.0.1" - sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -3269,11 +3249,6 @@ source-map@^0.5.6: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -3281,14 +3256,6 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -srcset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz#a5669de12b42f3b1d5e83ed03c71046fc48f41ef" - integrity sha1-pWad4StC87HV6D7QPHEEb8SPQe8= - dependencies: - array-uniq "^1.0.2" - number-is-nan "^1.0.0" - sshpk@^1.7.0: version "1.16.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.0.tgz#1d4963a2fbffe58050aa9084ca20be81741c07de" @@ -3410,7 +3377,7 @@ supports-color@^4.0.0: dependencies: has-flag "^2.0.0" -supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.2.0, supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -3447,10 +3414,10 @@ timed-out@^4.0.0: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= -title@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/title/-/title-3.4.0.tgz#17cdfae82602f87777f137047d36ec283389c9e3" - integrity sha512-gabSoHN82rROEFIkWr9GkwqTFihjdvumQflWsvwiNeIDpJbZOYrg3bXpR0SY4QcghGM1k5QrnI4k6XAiJwOWVw== +title@~3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/title/-/title-3.4.1.tgz#166177c48f52ae9b73afe9901a183f0b6c97b2e6" + integrity sha512-CoIakPr4Gi91bm4Xp6xTuZ3EENxPcKgOJzHzrhSdUatGtFMeVJa2qxI4WNhJHgz0Jak5Ck6jY2UNFM71/yBIsw== dependencies: arg "1.0.0" chalk "2.3.0" @@ -3723,13 +3690,13 @@ which@^1.2.9: dependencies: isexe "^2.0.0" -whoops@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/whoops/-/whoops-4.0.1.tgz#568d1768386fde94a27d80983bf207e453e78f20" - integrity sha512-XlSRD73wKOGE7SgOAsy6HCkcKDS6AQjjLW7egPzYOSOPU99H1QTioxobQ4cCP7a5ACjzNdd3/nxUXOn6ysijkA== +whoops@~4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/whoops/-/whoops-4.0.2.tgz#60e1281d47a1600f5f5013059afaad369d83e9d4" + integrity sha512-b1ofth7xMOAkukgzMhAPKBrgieGJAgKVMyu54DXAOVLmkhpQEfNKe4wS0R7LbdxIsm6FD2CFUjBOdN7Sj+zLSg== dependencies: - clean-stack "~1.3.0" - mimic-fn "~1.1.0" + clean-stack "~2.0.0" + mimic-fn "~2.0.0" wide-align@^1.1.0: version "1.1.3" @@ -3778,11 +3745,6 @@ xdg-basedir@^3.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= -xtend@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= - yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" From f7ef09acbf9e6927c08ed1739d40ee0a5fdd991b Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Sat, 18 May 2019 18:20:43 -0700 Subject: [PATCH 014/131] add UpdateComment mutation --- backend/src/resolvers/comments.js | 96 +++++++++++++++++++++++++++---- 1 file changed, 84 insertions(+), 12 deletions(-) diff --git a/backend/src/resolvers/comments.js b/backend/src/resolvers/comments.js index d4775b235..8023fb334 100644 --- a/backend/src/resolvers/comments.js +++ b/backend/src/resolvers/comments.js @@ -16,18 +16,22 @@ export default { delete params.postId if (!params.content || content.length < COMMENT_MIN_LENGTH) { - throw new UserInputError(`Comment must be at least ${COMMENT_MIN_LENGTH} character long!`) + throw new UserInputError( + `Comment must be at least ${COMMENT_MIN_LENGTH} character long!` + ) } if (!postId.trim()) { throw new UserInputError(NO_POST_ERR_MESSAGE) } const session = context.driver.session() - const postQueryRes = await session.run(` + const postQueryRes = await session.run( + ` MATCH (post:Post {id: $postId}) - RETURN post`, { - postId - } + RETURN post`, + { + postId + } ) const [post] = postQueryRes.records.map(record => { return record.get('post') @@ -36,20 +40,88 @@ export default { if (!post) { throw new UserInputError(NO_POST_ERR_MESSAGE) } - const comment = await neo4jgraphql(object, params, context, resolveInfo, false) + const comment = await neo4jgraphql( + object, + params, + context, + resolveInfo, + false + ) - await session.run(` + await session.run( + ` MATCH (post:Post {id: $postId}), (comment:Comment {id: $commentId}), (author:User {id: $userId}) MERGE (post)<-[:COMMENTS]-(comment)<-[:WROTE]-(author) - RETURN post`, { - userId: context.user.id, - postId, - commentId: comment.id - } + RETURN post`, + { + userId: context.user.id, + postId, + commentId: comment.id + } ) session.close() return comment + }, + UpdateComment: async (object, params, context, resolveInfo) => { + // Strip element tags and remove leading/trailing white spaces from content + const content = params.content.replace(/<(?:.|\n)*?>/gm, '').trim() + const { id } = params + console.log(id) + // Check length of content + if (!params.content || content.length < COMMENT_MIN_LENGTH) { + throw new UserInputError( + `Comment must be at least ${COMMENT_MIN_LENGTH} character long!` + ) + } + + // Check if comment exists + const session = context.driver.session() + const commentQueryRes = await session.run( + ` + MATCH (comment: COMMENT) + WHERE id(comment)=$id + RETURN comment`, + { + id + } + ) + console.log(id) + console.log(commentQueryRes) + // Destructure content from session results array + const [comment] = commentQueryRes.records.map(record => { + console.log(record.get('comment')) + return record.get('comment') + }) + + // Send error message if cannot find a matching comment. + // if (!comment) { + // throw new UserInputError(NO_COMMENT_ERR_MESSAGE) + // } + + // Update comment. + // const commentRev = await neo4jgraphql( + // object, + // params, + // context, + // resolveInfo, + // false + // ) + + // await session.run( + // ` + // MATCH (comment:Comment) + // WHERE id(comment)=$id, + // SET comment.content = $content + // `, + // { + // id, + // content + // } + // ) + session.close() + + // return commentRev } } } From 7ddbab83e98e09cfac41e3ed18ea2fb5eb468faa Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Sat, 18 May 2019 23:32:24 -0700 Subject: [PATCH 015/131] 552-update_comment --- backend/src/resolvers/comments.js | 54 +++++++++++++++---------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/backend/src/resolvers/comments.js b/backend/src/resolvers/comments.js index 8023fb334..72d2f96fb 100644 --- a/backend/src/resolvers/comments.js +++ b/backend/src/resolvers/comments.js @@ -40,6 +40,7 @@ export default { if (!post) { throw new UserInputError(NO_POST_ERR_MESSAGE) } + const comment = await neo4jgraphql( object, params, @@ -67,7 +68,6 @@ export default { // Strip element tags and remove leading/trailing white spaces from content const content = params.content.replace(/<(?:.|\n)*?>/gm, '').trim() const { id } = params - console.log(id) // Check length of content if (!params.content || content.length < COMMENT_MIN_LENGTH) { throw new UserInputError( @@ -79,49 +79,47 @@ export default { const session = context.driver.session() const commentQueryRes = await session.run( ` - MATCH (comment: COMMENT) - WHERE id(comment)=$id + MATCH (comment: Comment { id:$id}) RETURN comment`, { id } ) - console.log(id) - console.log(commentQueryRes) + // Destructure content from session results array const [comment] = commentQueryRes.records.map(record => { - console.log(record.get('comment')) + const a = record.get('comment') + console.log(a) return record.get('comment') }) // Send error message if cannot find a matching comment. - // if (!comment) { - // throw new UserInputError(NO_COMMENT_ERR_MESSAGE) - // } + if (!comment) { + throw new UserInputError(NO_COMMENT_ERR_MESSAGE) + } // Update comment. - // const commentRev = await neo4jgraphql( - // object, - // params, - // context, - // resolveInfo, - // false - // ) + const commentRev = await neo4jgraphql( + object, + params, + context, + resolveInfo, + false + ) - // await session.run( - // ` - // MATCH (comment:Comment) - // WHERE id(comment)=$id, - // SET comment.content = $content - // `, - // { - // id, - // content - // } - // ) + await session.run( + ` + MATCH (comment: Comment { id:$id}) + SET comment.content = 'bbb' + `, + { + id, + content + } + ) session.close() - // return commentRev + return commentRev } } } From 3fe8e9a2886e3f5a1872b4e3612b2ad70aa639de Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Sat, 18 May 2019 23:42:17 -0700 Subject: [PATCH 016/131] 552-update_comment --- backend/src/resolvers/comments.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/backend/src/resolvers/comments.js b/backend/src/resolvers/comments.js index 72d2f96fb..6dea8e51b 100644 --- a/backend/src/resolvers/comments.js +++ b/backend/src/resolvers/comments.js @@ -88,8 +88,6 @@ export default { // Destructure content from session results array const [comment] = commentQueryRes.records.map(record => { - const a = record.get('comment') - console.log(a) return record.get('comment') }) @@ -110,7 +108,7 @@ export default { await session.run( ` MATCH (comment: Comment { id:$id}) - SET comment.content = 'bbb' + SET comment.content = $content `, { id, From 8a8ed5131e010e75b156b8a80cefe1618dcd9072 Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Fri, 24 May 2019 08:03:39 -0700 Subject: [PATCH 017/131] refactor backend and add UI --- backend/src/middleware/validation/index.js | 21 ++- backend/src/resolvers/comments.js | 59 --------- webapp/components/Comment.vue | 29 ++++- webapp/components/ContentMenu.vue | 2 +- .../components/comments/CommentList/index.vue | 20 +-- .../comments/EditCommentForm/index.vue | 122 ++++++++++++++++++ 6 files changed, 170 insertions(+), 83 deletions(-) create mode 100644 webapp/components/comments/EditCommentForm/index.vue diff --git a/backend/src/middleware/validation/index.js b/backend/src/middleware/validation/index.js index de9be72e9..faf95beaf 100644 --- a/backend/src/middleware/validation/index.js +++ b/backend/src/middleware/validation/index.js @@ -22,10 +22,29 @@ const validateUrl = async (resolve, root, args, context, info) => { } } +const validateComment = async (resolve, root, args, context, info) => { + const COMMENT_MIN_LENGTH = 1 + const content = args.content.replace(/<(?:.|\n)*?>/gm, '').trim() + if (!args.content || content.length < COMMENT_MIN_LENGTH) { + throw new UserInputError( + `Comment must be at least ${COMMENT_MIN_LENGTH} character long!` + ) + } + const NO_POST_ERR_MESSAGE = 'Comment cannot be created without a post!' + const { postId } = args + if (!postId) { + throw new UserInputError(NO_POST_ERR_MESSAGE) + } + + return await resolve(root, args, context, info) +} + export default { Mutation: { CreateUser: validateUsername, UpdateUser: validateUsername, - CreateSocialMedia: validateUrl + CreateSocialMedia: validateUrl, + CreateComment: validateComment, + UpdateComment: validateComment } } diff --git a/backend/src/resolvers/comments.js b/backend/src/resolvers/comments.js index 6dea8e51b..f3cfea378 100644 --- a/backend/src/resolvers/comments.js +++ b/backend/src/resolvers/comments.js @@ -1,13 +1,9 @@ import { neo4jgraphql } from 'neo4j-graphql-js' import { UserInputError } from 'apollo-server' -const COMMENT_MIN_LENGTH = 1 -const NO_POST_ERR_MESSAGE = 'Comment cannot be created without a post!' - export default { Mutation: { CreateComment: async (object, params, context, resolveInfo) => { - const content = params.content.replace(/<(?:.|\n)*?>/gm, '').trim() const { postId } = params // Adding relationship from comment to post by passing in the postId, // but we do not want to create the comment with postId as an attribute @@ -15,15 +11,6 @@ export default { // before comment creation. delete params.postId - if (!params.content || content.length < COMMENT_MIN_LENGTH) { - throw new UserInputError( - `Comment must be at least ${COMMENT_MIN_LENGTH} character long!` - ) - } - if (!postId.trim()) { - throw new UserInputError(NO_POST_ERR_MESSAGE) - } - const session = context.driver.session() const postQueryRes = await session.run( ` @@ -65,38 +52,6 @@ export default { return comment }, UpdateComment: async (object, params, context, resolveInfo) => { - // Strip element tags and remove leading/trailing white spaces from content - const content = params.content.replace(/<(?:.|\n)*?>/gm, '').trim() - const { id } = params - // Check length of content - if (!params.content || content.length < COMMENT_MIN_LENGTH) { - throw new UserInputError( - `Comment must be at least ${COMMENT_MIN_LENGTH} character long!` - ) - } - - // Check if comment exists - const session = context.driver.session() - const commentQueryRes = await session.run( - ` - MATCH (comment: Comment { id:$id}) - RETURN comment`, - { - id - } - ) - - // Destructure content from session results array - const [comment] = commentQueryRes.records.map(record => { - return record.get('comment') - }) - - // Send error message if cannot find a matching comment. - if (!comment) { - throw new UserInputError(NO_COMMENT_ERR_MESSAGE) - } - - // Update comment. const commentRev = await neo4jgraphql( object, params, @@ -104,20 +59,6 @@ export default { resolveInfo, false ) - - await session.run( - ` - MATCH (comment: Comment { id:$id}) - SET comment.content = $content - `, - { - id, - content - } - ) - session.close() - - return commentRev } } } diff --git a/webapp/components/Comment.vue b/webapp/components/Comment.vue index 13edc9c0d..906575880 100644 --- a/webapp/components/Comment.vue +++ b/webapp/components/Comment.vue @@ -22,15 +22,20 @@ :resource="comment" style="float-right" :is-owner="isAuthor(author.id)" + v-on:showEditCommentMenu="editCommentMenu" /> - -
+ +
+ +
+
@@ -39,13 +44,22 @@ import { mapGetters } from 'vuex' import HcUser from '~/components/User' import ContentMenu from '~/components/ContentMenu' +import HcEditCommentForm from '~/components/comments/EditCommentForm' +import gql from 'graphql-tag' export default { components: { HcUser, - ContentMenu + ContentMenu, + HcEditCommentForm + }, + data() { + return { + openEditCommentMenu: false + } }, props: { + post: { type: Object, default: () => {} }, comment: { type: Object, default() { @@ -69,6 +83,9 @@ export default { methods: { isAuthor(id) { return this.user.id === id + }, + editCommentMenu(showMenu) { + this.openEditCommentMenu = showMenu } } } diff --git a/webapp/components/ContentMenu.vue b/webapp/components/ContentMenu.vue index 29473d6b2..5f4cd54e7 100644 --- a/webapp/components/ContentMenu.vue +++ b/webapp/components/ContentMenu.vue @@ -90,7 +90,7 @@ export default { name: this.$t(`comment.edit`), callback: () => { /* eslint-disable-next-line no-console */ - console.log('EDIT COMMENT') + this.$emit('showEditCommentMenu', true) }, icon: 'edit' }) diff --git a/webapp/components/comments/CommentList/index.vue b/webapp/components/comments/CommentList/index.vue index 57b720087..5a682bba6 100644 --- a/webapp/components/comments/CommentList/index.vue +++ b/webapp/components/comments/CommentList/index.vue @@ -12,23 +12,11 @@ >{{ comments.length }}  Comments - -
- + +
+
- +
From 8c7009097a274c04fa22631429b1c7f57c90cad4 Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Fri, 24 May 2019 08:22:56 -0700 Subject: [PATCH 018/131] 552-update_comment --- webapp/components/comments/EditCommentForm/index.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/webapp/components/comments/EditCommentForm/index.vue b/webapp/components/comments/EditCommentForm/index.vue index 216e47604..562b80b48 100644 --- a/webapp/components/comments/EditCommentForm/index.vue +++ b/webapp/components/comments/EditCommentForm/index.vue @@ -97,7 +97,6 @@ export default { this.disabled = false this.$emit('showEditCommentMenu', false) }) - //@Todo close edit comment window .catch(err => { this.$toast.error(err.message) }) From a5f6390f97a2b9e9ec614bc43e4b023b9540e35e Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Thu, 30 May 2019 15:47:55 -0700 Subject: [PATCH 019/131] 552-update_comment --- backend/src/middleware/validation/index.js | 7 ++++--- backend/src/resolvers/comments.js | 10 +++------- webapp/package.json | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/backend/src/middleware/validation/index.js b/backend/src/middleware/validation/index.js index faf95beaf..a7238ab03 100644 --- a/backend/src/middleware/validation/index.js +++ b/backend/src/middleware/validation/index.js @@ -7,7 +7,9 @@ const validateUsername = async (resolve, root, args, context, info) => { /* eslint-disable-next-line no-return-await */ return await resolve(root, args, context, info) } else { - throw new UserInputError(`Username must be at least ${USERNAME_MIN_LENGTH} characters long!`) + throw new UserInputError( + `Username must be at least ${USERNAME_MIN_LENGTH} characters long!` + ) } } @@ -35,8 +37,7 @@ const validateComment = async (resolve, root, args, context, info) => { if (!postId) { throw new UserInputError(NO_POST_ERR_MESSAGE) } - - return await resolve(root, args, context, info) + return resolve(root, args, context, info) } export default { diff --git a/backend/src/resolvers/comments.js b/backend/src/resolvers/comments.js index f3cfea378..2515ba36a 100644 --- a/backend/src/resolvers/comments.js +++ b/backend/src/resolvers/comments.js @@ -1,6 +1,8 @@ import { neo4jgraphql } from 'neo4j-graphql-js' import { UserInputError } from 'apollo-server' +const NO_POST_ERR_MESSAGE = 'Comment cannot be created without a post!' + export default { Mutation: { CreateComment: async (object, params, context, resolveInfo) => { @@ -52,13 +54,7 @@ export default { return comment }, UpdateComment: async (object, params, context, resolveInfo) => { - const commentRev = await neo4jgraphql( - object, - params, - context, - resolveInfo, - false - ) + await neo4jgraphql(object, params, context, resolveInfo, false) } } } diff --git a/webapp/package.json b/webapp/package.json index a3e8b44b9..62007112d 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -104,4 +104,4 @@ "vue-jest": "~3.0.4", "vue-svg-loader": "~0.12.0" } -} \ No newline at end of file +} From 788979eedfd82cda726ba2d69b821c43c98fd6bf Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Wed, 5 Jun 2019 18:12:22 -0700 Subject: [PATCH 020/131] add update comment jest test --- backend/src/middleware/validation/index.js | 3 ++- backend/src/resolvers/comments.spec.js | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/backend/src/middleware/validation/index.js b/backend/src/middleware/validation/index.js index a7238ab03..2da25a605 100644 --- a/backend/src/middleware/validation/index.js +++ b/backend/src/middleware/validation/index.js @@ -37,7 +37,8 @@ const validateComment = async (resolve, root, args, context, info) => { if (!postId) { throw new UserInputError(NO_POST_ERR_MESSAGE) } - return resolve(root, args, context, info) + /* eslint-disable-next-line no-return-await */ + return await resolve(root, args, context, info) } export default { diff --git a/backend/src/resolvers/comments.spec.js b/backend/src/resolvers/comments.spec.js index 87a0df270..952850759 100644 --- a/backend/src/resolvers/comments.spec.js +++ b/backend/src/resolvers/comments.spec.js @@ -175,4 +175,24 @@ describe('CreateComment', () => { expect(Comment).toEqual([{ postId: null }]) }) }) + +describe('UpdateComment', () => { + const updateCommentMutation = ` + mutation($postId: ID, $content: String!, $id: ID!) { + UpdateComment(postId: $postId, content: $content, id: $id) { + id + content + } + } + ` + updateCommentVariables = { + postId: 'p1', + content: 'Comment is updated', + id: 'c8' + } + + it('updates a comment', async () = { + + }) +}) }) From 8d4ed065c7c5984e9a764ac4ac976cf2c7030751 Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Wed, 5 Jun 2019 18:42:17 -0700 Subject: [PATCH 021/131] add post.comment.updated --- webapp/components/comments/EditCommentForm/index.vue | 2 +- webapp/locales/en.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/webapp/components/comments/EditCommentForm/index.vue b/webapp/components/comments/EditCommentForm/index.vue index 562b80b48..5a28062a9 100644 --- a/webapp/components/comments/EditCommentForm/index.vue +++ b/webapp/components/comments/EditCommentForm/index.vue @@ -93,7 +93,7 @@ export default { .then(res => { this.loading = false this.$root.$emit('refetchPostComments') - this.$toast.success(this.$t('post.comment.submitted')) + this.$toast.success(this.$t('post.comment.updated')) this.disabled = false this.$emit('showEditCommentMenu', false) }) diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 186b31d41..975917c78 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -145,7 +145,8 @@ }, "comment": { "submit": "Comment", - "submitted": "Comment Submitted" + "submitted": "Comment Submitted", + "updated": "Comment Updated" } }, "quotes": { From 0401e3b92947ae8319f4b6238e2da0de0edd9359 Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Thu, 6 Jun 2019 15:58:32 -0700 Subject: [PATCH 022/131] add update comment to comments.spec --- backend/src/resolvers/comments.spec.js | 59 ++++++++++++++++---------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/backend/src/resolvers/comments.spec.js b/backend/src/resolvers/comments.spec.js index 952850759..7784a889f 100644 --- a/backend/src/resolvers/comments.spec.js +++ b/backend/src/resolvers/comments.spec.js @@ -20,7 +20,7 @@ afterEach(async () => { await factory.cleanDatabase() }) -describe('CreateComment', () => { +describe('Comment Functionality', () => { const createCommentMutation = ` mutation($postId: ID, $content: String!) { CreateComment(postId: $postId, content: $content) { @@ -78,7 +78,37 @@ describe('CreateComment', () => { } } - await expect(client.request(createCommentMutation, createCommentVariables)).resolves.toMatchObject(expected) + await expect( + client.request(createCommentMutation, createCommentVariables) + ).resolves.toMatchObject(expected) + }) + + it('updates a comment', async () => { + await client.request(createCommentMutation, createCommentVariables) + + const updateCommentMutation = ` + mutation($postId: ID, $content: String!, $id: ID!) { + UpdateComment(postId: $postId, content: $content, id: $id) { + id + content + } + } + ` + let updateCommentVariables = { + postId: 'p1', + content: 'Comment is updated', + id: 'c8' + } + + const expected = { + UpdateComment: { + content: 'Comment is updated' + } + } + + await expect( + client.request(updateCommentMutation, updateCommentVariables) + ).resolves.toMatchObject(expected) }) it('assigns the authenticated user as author', async () => { @@ -171,28 +201,11 @@ describe('CreateComment', () => { } await client.request(createCommentMutation, createCommentVariables) - const { Comment } = await client.request(commentQueryForPostId, commentQueryVariablesByContent) + const { Comment } = await client.request( + commentQueryForPostId, + commentQueryVariablesByContent + ) expect(Comment).toEqual([{ postId: null }]) }) }) - -describe('UpdateComment', () => { - const updateCommentMutation = ` - mutation($postId: ID, $content: String!, $id: ID!) { - UpdateComment(postId: $postId, content: $content, id: $id) { - id - content - } - } - ` - updateCommentVariables = { - postId: 'p1', - content: 'Comment is updated', - id: 'c8' - } - - it('updates a comment', async () = { - - }) -}) }) From ae9d508ada81ded368cd6adf6463b30d0ea8d410 Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Sat, 8 Jun 2019 15:59:15 -0700 Subject: [PATCH 023/131] Revise "updated":"Changes Saved" --- webapp/locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 50a7b497d..521f681c0 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -154,7 +154,7 @@ "comment": { "submit": "Comment", "submitted": "Comment Submitted", - "updated": "Comment Updated" + "updated": "Changes Saved" } }, "comment": { From 3cc05c0916f66fc7290fe63c62f527e5b7db6752 Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Thu, 13 Jun 2019 13:00:20 -0700 Subject: [PATCH 024/131] add backend managecomments tests --- .../src/middleware/permissionsMiddleware.js | 1 + backend/src/middleware/validation/index.js | 10 +- backend/src/schema/resolvers/comments.js | 9 + backend/src/schema/resolvers/comments.spec.js | 199 ++++++++++++------ 4 files changed, 147 insertions(+), 72 deletions(-) diff --git a/backend/src/middleware/permissionsMiddleware.js b/backend/src/middleware/permissionsMiddleware.js index bc9b4c525..83f5cd29b 100644 --- a/backend/src/middleware/permissionsMiddleware.js +++ b/backend/src/middleware/permissionsMiddleware.js @@ -113,6 +113,7 @@ const permissions = shield({ enable: isModerator, disable: isModerator, CreateComment: isAuthenticated, + UpdateComment: isAuthor, DeleteComment: isAuthor, // CreateUser: allow, }, diff --git a/backend/src/middleware/validation/index.js b/backend/src/middleware/validation/index.js index ec69b9a3a..e296bb866 100644 --- a/backend/src/middleware/validation/index.js +++ b/backend/src/middleware/validation/index.js @@ -22,17 +22,12 @@ const validateUrl = async (resolve, root, args, context, info) => { } } -const validateComment = async (resolve, root, args, context, info) => { +const validateUpdateComment = async (resolve, root, args, context, info) => { const COMMENT_MIN_LENGTH = 1 const content = args.content.replace(/<(?:.|\n)*?>/gm, '').trim() if (!args.content || content.length < COMMENT_MIN_LENGTH) { throw new UserInputError(`Comment must be at least ${COMMENT_MIN_LENGTH} character long!`) } - const NO_POST_ERR_MESSAGE = 'Comment cannot be created without a post!' - const { postId } = args - if (!postId) { - throw new UserInputError(NO_POST_ERR_MESSAGE) - } /* eslint-disable-next-line no-return-await */ return await resolve(root, args, context, info) } @@ -42,7 +37,6 @@ export default { CreateUser: validateUsername, UpdateUser: validateUsername, CreateSocialMedia: validateUrl, - CreateComment: validateComment, - UpdateComment: validateComment, + UpdateComment: validateUpdateComment, }, } diff --git a/backend/src/schema/resolvers/comments.js b/backend/src/schema/resolvers/comments.js index f28ef2792..8bca3bb98 100644 --- a/backend/src/schema/resolvers/comments.js +++ b/backend/src/schema/resolvers/comments.js @@ -1,11 +1,13 @@ import { neo4jgraphql } from 'neo4j-graphql-js' import { UserInputError } from 'apollo-server' +const COMMENT_MIN_LENGTH = 1 const NO_POST_ERR_MESSAGE = 'Comment cannot be created without a post!' export default { Mutation: { CreateComment: async (object, params, context, resolveInfo) => { + const content = params.content.replace(/<(?:.|\n)*?>/gm, '').trim() const { postId } = params // Adding relationship from comment to post by passing in the postId, // but we do not want to create the comment with postId as an attribute @@ -13,6 +15,13 @@ export default { // before comment creation. delete params.postId + if (!params.content || content.length < COMMENT_MIN_LENGTH) { + throw new UserInputError(`Comment must be at least ${COMMENT_MIN_LENGTH} character long!`) + } + if (!postId.trim()) { + throw new UserInputError(NO_POST_ERR_MESSAGE) + } + const session = context.driver.session() const postQueryRes = await session.run( ` diff --git a/backend/src/schema/resolvers/comments.spec.js b/backend/src/schema/resolvers/comments.spec.js index 55b946bb9..00d139a62 100644 --- a/backend/src/schema/resolvers/comments.spec.js +++ b/backend/src/schema/resolvers/comments.spec.js @@ -9,9 +9,10 @@ let createCommentVariables let createPostVariables let createCommentVariablesSansPostId let createCommentVariablesWithNonExistentPost +let asAuthor beforeEach(async () => { - await factory.create('User', { + asAuthor = await factory.create('User', { email: 'test@example.org', password: '1234', }) @@ -211,22 +212,9 @@ describe('CreateComment', () => { }) }) -describe('DeleteComment', () => { - const deleteCommentMutation = gql` - mutation($id: ID!) { - DeleteComment(id: $id) { - id - } - } - ` - - let deleteCommentVariables = { - id: 'c1', - } - +describe('ManageComments', () => { beforeEach(async () => { - const asAuthor = Factory() - await asAuthor.create('User', { + asAuthor = await factory.create('User', { email: 'author@example.org', password: '1234', }) @@ -245,55 +233,138 @@ describe('DeleteComment', () => { }) }) - describe('unauthenticated', () => { - it('throws authorization error', async () => { - client = new GraphQLClient(host) - await expect(client.request(deleteCommentMutation, deleteCommentVariables)).rejects.toThrow( - 'Not Authorised', - ) - }) - }) - - describe('authenticated but not the author', () => { - beforeEach(async () => { - let headers - headers = await login({ - email: 'test@example.org', - password: '1234', - }) - client = new GraphQLClient(host, { - headers, - }) - }) - - it('throws authorization error', async () => { - await expect(client.request(deleteCommentMutation, deleteCommentVariables)).rejects.toThrow( - 'Not Authorised', - ) - }) - }) - - describe('authenticated as author', () => { - beforeEach(async () => { - let headers - headers = await login({ - email: 'author@example.org', - password: '1234', - }) - client = new GraphQLClient(host, { - headers, - }) - }) - - it('deletes the comment', async () => { - const expected = { - DeleteComment: { - id: 'c1', - }, + describe('UpdateComment', () => { + const updateCommentMutation = gql` + mutation($content: String!, $id: ID!) { + UpdateComment(content: $content, id: $id) { + id + content + } } - await expect(client.request(deleteCommentMutation, deleteCommentVariables)).resolves.toEqual( - expected, - ) + ` + + let updateCommentVariables = { + id: 'c1', + content: 'The comment is updated', + } + + describe('unauthenticated', () => { + it('throws authorization error', async () => { + client = new GraphQLClient(host) + await expect(client.request(updateCommentMutation, updateCommentVariables)).rejects.toThrow( + 'Not Authorised', + ) + }) + }) + + describe('authenticated but not the author', () => { + beforeEach(async () => { + let headers + headers = await login({ + email: 'test@example.org', + password: '1234', + }) + client = new GraphQLClient(host, { + headers, + }) + }) + + it('throws authorization error', async () => { + await expect(client.request(updateCommentMutation, updateCommentVariables)).rejects.toThrow( + 'Not Authorised', + ) + }) + }) + + describe('authenticated as author', () => { + beforeEach(async () => { + let headers + headers = await login({ + email: 'author@example.org', + password: '1234', + }) + client = new GraphQLClient(host, { + headers, + }) + }) + + it('updates the comment', async () => { + const expected = { + UpdateComment: { + id: 'c1', + content: 'The comment is updated', + }, + } + await expect( + client.request(updateCommentMutation, updateCommentVariables), + ).resolves.toEqual(expected) + }) + }) + }) + + describe('DeleteComment', () => { + const deleteCommentMutation = gql` + mutation($id: ID!) { + DeleteComment(id: $id) { + id + } + } + ` + + let deleteCommentVariables = { + id: 'c1', + } + + describe('unauthenticated', () => { + it('throws authorization error', async () => { + client = new GraphQLClient(host) + await expect(client.request(deleteCommentMutation, deleteCommentVariables)).rejects.toThrow( + 'Not Authorised', + ) + }) + }) + + describe('authenticated but not the author', () => { + beforeEach(async () => { + let headers + headers = await login({ + email: 'test@example.org', + password: '1234', + }) + client = new GraphQLClient(host, { + headers, + }) + }) + + it('throws authorization error', async () => { + await expect(client.request(deleteCommentMutation, deleteCommentVariables)).rejects.toThrow( + 'Not Authorised', + ) + }) + }) + + describe('authenticated as author', () => { + beforeEach(async () => { + let headers + headers = await login({ + email: 'author@example.org', + password: '1234', + }) + client = new GraphQLClient(host, { + headers, + }) + }) + + it('deletes the comment', async () => { + const expected = { + DeleteComment: { + id: 'c1', + }, + } + await expect( + client.request(deleteCommentMutation, deleteCommentVariables), + ).resolves.toEqual(expected) + }) }) }) }) From d3624ab493a5a1ba9abcf914d735498550005d69 Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Mon, 17 Jun 2019 12:38:11 +0200 Subject: [PATCH 025/131] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index be2a17020..82e9a4a91 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,8 @@ API Service for fetching URL Information like images, icons, descriptions etc. t ## Todo`s - [x] Metascraper - [x] oEmbed -- [ ] API Cache +- [ ] Temporary API Cache in some DB? +- [ ] Scrape for meta tags - [ ] Image Caching --- From 2a81c5bfad7dae74dba195bd605bb0a9481a64a3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2019 04:24:11 +0000 Subject: [PATCH 026/131] Bump metascraper-description from 4.8.5 to 5.5.0 Bumps [metascraper-description](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.8.5...v5.5.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 167 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 161 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 77ea21967..3b13897fe 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "metascraper-author": "^4.8.5", "metascraper-clearbit-logo": "^4.8.5", "metascraper-date": "^4.8.5", - "metascraper-description": "^4.8.5", + "metascraper-description": "^5.5.0", "metascraper-image": "^4.8.5", "metascraper-lang": "^4.8.5", "metascraper-lang-detector": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index 3db4db7b9..563b7e78b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -36,6 +36,31 @@ url-regex "~4.1.1" video-extensions "~1.1.0" +"@metascraper/helpers@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.5.0.tgz#38033895e404f3913791047b85b457ee84804880" + integrity sha512-VdWKWxcYVd3uzPNxr4Aucl+LSmvLzwgrvF+EIX6pNN+n66mMjimnVSTENQaWo7/aYOxF7IPyC9aBlIq9C1JDXA== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~2.0.0" + entities "~1.1.2" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~3.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.2.0" + isostring "0.0.1" + lodash "~4.17.11" + mem "~5.1.0" + mime-types "~2.1.24" + normalize-url "~4.3.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.1.0" + url-regex "~5.0.0" + video-extensions "~1.1.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" @@ -723,6 +748,13 @@ chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== +chrono-node@~1.3.11: + version "1.3.11" + resolved "https://registry.yarnpkg.com/chrono-node/-/chrono-node-1.3.11.tgz#b86a26b7e3157edcc4fe3374e1b6f90caedc8e39" + integrity sha512-jDWRnY6nYvzfV3HPYBqo+tot7tcsUs9i3arGbMdI0TouPSXP2C2y/Ctp27rxKTQDi6yuTxAB2cw+Q6igGhOhdQ== + dependencies: + moment "2.21.0" + chrono-node@~1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/chrono-node/-/chrono-node-1.3.5.tgz#a2495298a32da82bcc01ad9be7d77efa5e244122" @@ -822,6 +854,11 @@ condense-whitespace@~1.0.0: resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= +condense-whitespace@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-2.0.0.tgz#94e9644938f66aa7be4b8849f8f0b3cec97d6b3a" + integrity sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw== + configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" @@ -1106,7 +1143,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^1.1.1, entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1, entities@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== @@ -1738,6 +1775,11 @@ ip-regex@^1.0.1: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -1748,6 +1790,11 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.0.tgz#eb21d69df2ed8ef72a3e6f243e216563036a0913" + integrity sha512-3OkP8XrM2Xq4/IxsJnClfMp3OaM3TAatLPLKPeWcxLBTrpe6hihwtX+XZfJTcXg/FTRi4qjy0y/C5qiyNxY24g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -1944,6 +1991,13 @@ is-relative-url@~2.0.0: dependencies: is-absolute-url "^2.0.0" +is-relative-url@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -1966,6 +2020,14 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-uri@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-uri/-/is-uri-1.2.0.tgz#b92ff234af68c0ed97d2eed46492d01793b7d420" + integrity sha1-uS/yNK9owO2X0u7UZJLQF5O31CA= + dependencies: + parse-uri "~1.0.0" + punycode2 "~1.0.0" + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -1991,6 +2053,11 @@ iso-639-3@~1.1.0: resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== +iso-639-3@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.2.0.tgz#eee1f5e6ca2bbb33e3ecc910857c1c12e8b295be" + integrity sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2170,6 +2237,13 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2187,6 +2261,15 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.0.tgz#b94ee9b888d26928dd9d91cab107fa04b925730b" + integrity sha512-9egM8rCo4wKiKuTwK1nFlSk39HbgluK93EgUmmboF85CVuKp7PoAwK3C8krkJeeFiH/ltExwVxcu+i2dKZYtDw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -2222,12 +2305,12 @@ metascraper-date@^4.8.5: dependencies: "@metascraper/helpers" "^4.8.5" -metascraper-description@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-4.8.5.tgz#9155b5c7f64e997f8f12209e0140e7de25614e01" - integrity sha512-0oPEiRXgAyJoQstEPgua0OZ4wD35Htf1oSMzJvejn6rYdfXaeI8RREVtsL/TsUmizyf/iKlneslnfH4/+iN42g== +metascraper-description@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-5.5.0.tgz#ccea262aee9513de3f9de7006256f3ff06028282" + integrity sha512-HgAm1JEE3cYbMGZFOWrAaZQp0nwVifIcYA/DQsFRBWhS47Yb5XgnRIWnxYrww6dnPwMzmveCqxpzyi94lD5+/g== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^5.5.0" metascraper-image@^4.8.5: version "4.8.5" @@ -2352,6 +2435,11 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +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.37.0: version "1.37.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" @@ -2364,11 +2452,23 @@ mime-types@^2.1.12, mime-types@~2.1.18, mime-types@~2.1.19, mime-types@~2.1.21: dependencies: mime-db "~1.37.0" +mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-fn@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -2426,6 +2526,11 @@ mkdirp@^0.5.0, mkdirp@^0.5.1: dependencies: minimist "0.0.8" +moment@2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" + integrity sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ== + moment@^2.10.3: version "2.23.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225" @@ -2551,6 +2656,11 @@ normalize-url@~4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.1.0.tgz#307e74c87473efa81969ad1b4bb91f1990178904" integrity sha512-X781mkWeK6PDMAZJfGn/wnwil4dV6pIdF9euiNqtA89uJvZuNDJO2YyJxiwpPhTQcF5pYUU1v+kcOxzYV6rZlA== +normalize-url@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -2688,11 +2798,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.0.0.tgz#07e9c6d22c31f9c6784cb4f1e1454a79b6d9e2d6" integrity sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" @@ -2741,6 +2861,11 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" +parse-uri@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.0.tgz#2872dcc22f1a797acde1583d8a0ac29552ddac20" + integrity sha1-KHLcwi8aeXrN4Vg9igrClVLdrCA= + parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -2877,6 +3002,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode2@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/punycode2/-/punycode2-1.0.0.tgz#e2b4b9a9a8ff157d0b84438e203181ee7892dfd8" + integrity sha1-4rS5qaj/FX0LhEOOIDGB7niS39g= + punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -3457,12 +3587,22 @@ title@~3.4.0: clipboardy "1.2.2" titleize "1.0.0" +title@~3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/title/-/title-3.4.1.tgz#166177c48f52ae9b73afe9901a183f0b6c97b2e6" + integrity sha512-CoIakPr4Gi91bm4Xp6xTuZ3EENxPcKgOJzHzrhSdUatGtFMeVJa2qxI4WNhJHgz0Jak5Ck6jY2UNFM71/yBIsw== + dependencies: + arg "1.0.0" + chalk "2.3.0" + clipboardy "1.2.2" + titleize "1.0.0" + titleize@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= -tlds@^1.187.0: +tlds@^1.187.0, tlds@^1.203.0: version "1.203.1" resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== @@ -3544,6 +3684,11 @@ truncate@~2.0.1: resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= +truncate@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.1.0.tgz#391183563a25cffbd4d613a1d00ae5844c9e55d3" + integrity sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -3669,6 +3814,14 @@ url-regex@~4.1.1: ip-regex "^1.0.1" tlds "^1.187.0" +url-regex@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" From 912b94d43c829622fb637fa0318d0675fd992fb8 Mon Sep 17 00:00:00 2001 From: ALau2088 Date: Thu, 27 Jun 2019 10:59:53 -0700 Subject: [PATCH 027/131] add EditCommentForm spec.js --- backend/src/schema/resolvers/comments.js | 3 -- webapp/components/Comment.vue | 8 +-- webapp/components/ContentMenu.vue | 4 +- .../components/comments/CommentList/index.vue | 11 ++-- .../comments/EditCommentForm/index.vue | 50 +++++++++---------- 5 files changed, 36 insertions(+), 40 deletions(-) diff --git a/backend/src/schema/resolvers/comments.js b/backend/src/schema/resolvers/comments.js index be257d912..d2e296596 100644 --- a/backend/src/schema/resolvers/comments.js +++ b/backend/src/schema/resolvers/comments.js @@ -74,9 +74,6 @@ export default { session.close() return commentReturnedWithAuthor }, - UpdateComment: async (object, params, context, resolveInfo) => { - await neo4jgraphql(object, params, context, resolveInfo, false) - }, DeleteComment: async (object, params, context, resolveInfo) => { const comment = await neo4jgraphql(object, params, context, resolveInfo, false) diff --git a/webapp/components/Comment.vue b/webapp/components/Comment.vue index a119328f1..a134787ff 100644 --- a/webapp/components/Comment.vue +++ b/webapp/components/Comment.vue @@ -1,13 +1,13 @@ diff --git a/webapp/components/ContentMenu.vue b/webapp/components/ContentMenu.vue index 8f5fe1eff..cb164678a 100644 --- a/webapp/components/ContentMenu.vue +++ b/webapp/components/ContentMenu.vue @@ -3,7 +3,7 @@ @@ -16,7 +16,7 @@ :parents="item.parents" @click.stop.prevent="openItem(item.route, toggleMenu)" > - + {{ item.route.name }} diff --git a/webapp/components/comments/CommentList/index.vue b/webapp/components/comments/CommentList/index.vue index 8f1cbc3d0..d1c91fef0 100644 --- a/webapp/components/comments/CommentList/index.vue +++ b/webapp/components/comments/CommentList/index.vue @@ -2,17 +2,20 @@

- + {{ comments.length }}  Comments + > + {{ comments.length }} + +   Comments

- +
- +
From 4ceff96df9a206a8763e53d769be36ad8eedaf98 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:55:48 +0000 Subject: [PATCH 028/131] Bump metascraper-clearbit-logo from 4.8.5 to 5.3.0 Bumps [metascraper-clearbit-logo](https://github.com/microlinkhq/metascraper-clearbit-logo) from 4.8.5 to 5.3.0. - [Release notes](https://github.com/microlinkhq/metascraper-clearbit-logo/releases) - [Commits](https://github.com/microlinkhq/metascraper-clearbit-logo/commits) Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 2028fc435..e271f5df1 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "metascraper": "^4.10.3", "metascraper-audio": "^4.8.5", "metascraper-author": "^4.8.5", - "metascraper-clearbit-logo": "^4.8.5", + "metascraper-clearbit-logo": "^5.3.0", "metascraper-date": "^4.8.5", "metascraper-description": "^4.8.5", "metascraper-image": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index f70892040..0d1ee8ad6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1489,7 +1489,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -got@^9.3.2, got@^9.6.0: +got@^9.3.2, got@^9.6.0, got@~9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== @@ -2221,13 +2221,12 @@ metascraper-author@^4.8.5: "@metascraper/helpers" "^4.8.5" lodash "~4.17.10" -metascraper-clearbit-logo@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-clearbit-logo/-/metascraper-clearbit-logo-4.8.5.tgz#d1e672f1804f7edce507317eb6aeb94a88f29529" - integrity sha512-D53DO9gQFwDqgq6r0qbV92YFpLZTW3Zck17WmlkmPbl9wDLH8EOP5AC0S4h9hu40qwqR2gSqIaH298iQJ+gYvA== +metascraper-clearbit-logo@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/metascraper-clearbit-logo/-/metascraper-clearbit-logo-5.3.0.tgz#e4596dbaf35503635d585a705f4119c7eddc6773" + integrity sha512-Vg9m8cj2yEIUDrRjvCORvf8vgq2HLsWLVqNnIactNUPJ+Lcly5Xcxh5TcmHYp5Qx5DtNUCoKlakomYHn8mOjqg== dependencies: - got "~9.5.0" - qsm "~2.1.0" + got "~9.6.0" metascraper-date@^4.8.5: version "4.8.5" @@ -2918,11 +2917,6 @@ qs@6.5.2, qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -qsm@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/qsm/-/qsm-2.1.0.tgz#53c5d28424e2900e1b83d8e958bc916552322516" - integrity sha512-v+5GHA5DkXpqHGXnrZMqft2I2esvq7BJTm+EKN3L+BFzKcx/JwmazJzrebOjuOzYrJreT+JS13K78TReKkI17Q== - querystringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" From 69b1a2587cd6cc7ed00116a7173c77f6238c036a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:56:03 +0000 Subject: [PATCH 029/131] Bump metascraper-video from 4.8.5 to 5.5.0 Bumps [metascraper-video](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.8.5...v5.5.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 127 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 121 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 2028fc435..965aa5391 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "metascraper-soundcloud": "^4.8.5", "metascraper-title": "^4.8.5", "metascraper-url": "^4.8.5", - "metascraper-video": "^4.8.5", + "metascraper-video": "^5.5.0", "metascraper-youtube": "^4.8.5", "request": "^2.88.0", "request-promise-native": "^1.0.5" diff --git a/yarn.lock b/yarn.lock index f70892040..c31657455 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,6 +37,31 @@ url-regex "~4.1.1" video-extensions "~1.1.0" +"@metascraper/helpers@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.5.0.tgz#38033895e404f3913791047b85b457ee84804880" + integrity sha512-VdWKWxcYVd3uzPNxr4Aucl+LSmvLzwgrvF+EIX6pNN+n66mMjimnVSTENQaWo7/aYOxF7IPyC9aBlIq9C1JDXA== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~2.0.0" + entities "~1.1.2" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~3.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.2.0" + isostring "0.0.1" + lodash "~4.17.11" + mem "~5.1.0" + mime-types "~2.1.24" + normalize-url "~4.3.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.1.0" + url-regex "~5.0.0" + video-extensions "~1.1.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" @@ -836,6 +861,11 @@ condense-whitespace@~1.0.0: resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= +condense-whitespace@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-2.0.0.tgz#94e9644938f66aa7be4b8849f8f0b3cec97d6b3a" + integrity sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw== + configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" @@ -1120,7 +1150,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^1.1.1, entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1, entities@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== @@ -1769,6 +1799,11 @@ ip-regex@^1.0.1: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -1779,6 +1814,11 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.0.tgz#eb21d69df2ed8ef72a3e6f243e216563036a0913" + integrity sha512-3OkP8XrM2Xq4/IxsJnClfMp3OaM3TAatLPLKPeWcxLBTrpe6hihwtX+XZfJTcXg/FTRi4qjy0y/C5qiyNxY24g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -1975,6 +2015,13 @@ is-relative-url@~2.0.0: dependencies: is-absolute-url "^2.0.0" +is-relative-url@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -2030,6 +2077,11 @@ iso-639-3@~1.1.0: resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== +iso-639-3@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.2.0.tgz#eee1f5e6ca2bbb33e3ecc910857c1c12e8b295be" + integrity sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2184,6 +2236,13 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2201,6 +2260,15 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -2311,12 +2379,12 @@ metascraper-url@^4.8.5: dependencies: "@metascraper/helpers" "^4.8.5" -metascraper-video@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-4.8.5.tgz#d70129ea04889ce9dfcd4216ea71757b4ea1390b" - integrity sha512-EWWcaFYUChHoA2Q9dbALTHB0sETRlDaendGDCXrJo2fQHlBiO/iioCiuUvTJg1UDCF1hFlNWxsBqSBxO9d2wvA== +metascraper-video@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-5.5.0.tgz#b12995c4d235cb9dd92cb87e43ba3bdbc945b56d" + integrity sha512-FOqnOCRB7Y2xfSu9Apag2kdL4kjbN2J68UQd9+E65pFtel4xHbPfJ16/+CTJyX7svzIc90zr9+1n4hHGiI1dkg== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^5.5.0" lodash "~4.17.11" metascraper-youtube@^4.8.5: @@ -2365,6 +2433,11 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +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.37.0: version "1.37.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" @@ -2389,11 +2462,23 @@ mime-types@~2.1.22: dependencies: mime-db "~1.38.0" +mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mimic-fn@^2.1.0: + version "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" @@ -2576,6 +2661,11 @@ normalize-url@~4.2.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.2.0.tgz#e747f16b58e6d7f391495fd86415fa04ec7c9897" integrity sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg== +normalize-url@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -2713,11 +2803,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.0.0.tgz#07e9c6d22c31f9c6784cb4f1e1454a79b6d9e2d6" integrity sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" @@ -3459,7 +3559,7 @@ titleize@1.0.0: resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= -tlds@^1.187.0: +tlds@^1.187.0, tlds@^1.203.0: version "1.203.1" resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== @@ -3541,6 +3641,11 @@ truncate@~2.0.1: resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= +truncate@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.1.0.tgz#391183563a25cffbd4d613a1d00ae5844c9e55d3" + integrity sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -3666,6 +3771,14 @@ url-regex@~4.1.1: ip-regex "^1.0.1" tlds "^1.187.0" +url-regex@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" From b7ef87e24e00497af1ec5fafb85b24ae21efc3ca Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:56:04 +0000 Subject: [PATCH 030/131] Bump metascraper-logo from 4.8.5 to 5.5.0 Bumps [metascraper-logo](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.8.5...v5.5.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 127 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 121 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 2028fc435..b29f7483e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "metascraper-image": "^4.8.5", "metascraper-lang": "^4.8.5", "metascraper-lang-detector": "^4.8.5", - "metascraper-logo": "^4.8.5", + "metascraper-logo": "^5.5.0", "metascraper-logo-favicon": "^4.8.5", "metascraper-publisher": "^4.8.5", "metascraper-soundcloud": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index f70892040..f36fd5d89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,6 +37,31 @@ url-regex "~4.1.1" video-extensions "~1.1.0" +"@metascraper/helpers@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.5.0.tgz#38033895e404f3913791047b85b457ee84804880" + integrity sha512-VdWKWxcYVd3uzPNxr4Aucl+LSmvLzwgrvF+EIX6pNN+n66mMjimnVSTENQaWo7/aYOxF7IPyC9aBlIq9C1JDXA== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~2.0.0" + entities "~1.1.2" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~3.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.2.0" + isostring "0.0.1" + lodash "~4.17.11" + mem "~5.1.0" + mime-types "~2.1.24" + normalize-url "~4.3.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.1.0" + url-regex "~5.0.0" + video-extensions "~1.1.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" @@ -836,6 +861,11 @@ condense-whitespace@~1.0.0: resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= +condense-whitespace@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-2.0.0.tgz#94e9644938f66aa7be4b8849f8f0b3cec97d6b3a" + integrity sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw== + configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" @@ -1120,7 +1150,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^1.1.1, entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1, entities@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== @@ -1769,6 +1799,11 @@ ip-regex@^1.0.1: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -1779,6 +1814,11 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.0.tgz#eb21d69df2ed8ef72a3e6f243e216563036a0913" + integrity sha512-3OkP8XrM2Xq4/IxsJnClfMp3OaM3TAatLPLKPeWcxLBTrpe6hihwtX+XZfJTcXg/FTRi4qjy0y/C5qiyNxY24g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -1975,6 +2015,13 @@ is-relative-url@~2.0.0: dependencies: is-absolute-url "^2.0.0" +is-relative-url@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -2030,6 +2077,11 @@ iso-639-3@~1.1.0: resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== +iso-639-3@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.2.0.tgz#eee1f5e6ca2bbb33e3ecc910857c1c12e8b295be" + integrity sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2184,6 +2236,13 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2201,6 +2260,15 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -2275,12 +2343,12 @@ metascraper-logo-favicon@^4.8.5: got "~9.5.0" lodash "~4.17.11" -metascraper-logo@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-4.8.5.tgz#45cb44618e41a5b69c9da8fb28ae4061281b2033" - integrity sha512-fu6Ff9niFt+2HdZgaAI3B5LOIf5BTXA80sE2p+9iW4w3BH15r6N+N42COmVtjHAyJSxYpEWzlF0E3+hnR9qp1g== +metascraper-logo@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.5.0.tgz#3c69bfe6e12c09501193aefc195cfb8e00f6580c" + integrity sha512-MnnJX4zUouaRv7NBJPiEwOMWgHTp/50GgDJzAsR6HHnxHGh0jRSx6vg1zb8QotNFhWu4ev68so39IXCYVD3aHA== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^5.5.0" metascraper-publisher@^4.8.5: version "4.8.5" @@ -2365,6 +2433,11 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +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.37.0: version "1.37.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" @@ -2389,11 +2462,23 @@ mime-types@~2.1.22: dependencies: mime-db "~1.38.0" +mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mimic-fn@^2.1.0: + version "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" @@ -2576,6 +2661,11 @@ normalize-url@~4.2.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.2.0.tgz#e747f16b58e6d7f391495fd86415fa04ec7c9897" integrity sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg== +normalize-url@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -2713,11 +2803,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.0.0.tgz#07e9c6d22c31f9c6784cb4f1e1454a79b6d9e2d6" integrity sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" @@ -3459,7 +3559,7 @@ titleize@1.0.0: resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= -tlds@^1.187.0: +tlds@^1.187.0, tlds@^1.203.0: version "1.203.1" resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== @@ -3541,6 +3641,11 @@ truncate@~2.0.1: resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= +truncate@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.1.0.tgz#391183563a25cffbd4d613a1d00ae5844c9e55d3" + integrity sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -3666,6 +3771,14 @@ url-regex@~4.1.1: ip-regex "^1.0.1" tlds "^1.187.0" +url-regex@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" From d1efdad55e8bef3d96f1d2737ff9778a5df6b9c6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:56:08 +0000 Subject: [PATCH 031/131] Bump metascraper-description from 4.8.5 to 5.5.0 Bumps [metascraper-description](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.8.5...v5.5.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 127 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 121 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 2028fc435..d16bf64f3 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "metascraper-author": "^4.8.5", "metascraper-clearbit-logo": "^4.8.5", "metascraper-date": "^4.8.5", - "metascraper-description": "^4.8.5", + "metascraper-description": "^5.5.0", "metascraper-image": "^4.8.5", "metascraper-lang": "^4.8.5", "metascraper-lang-detector": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index f70892040..f851a7c7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,6 +37,31 @@ url-regex "~4.1.1" video-extensions "~1.1.0" +"@metascraper/helpers@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.5.0.tgz#38033895e404f3913791047b85b457ee84804880" + integrity sha512-VdWKWxcYVd3uzPNxr4Aucl+LSmvLzwgrvF+EIX6pNN+n66mMjimnVSTENQaWo7/aYOxF7IPyC9aBlIq9C1JDXA== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~2.0.0" + entities "~1.1.2" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~3.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.2.0" + isostring "0.0.1" + lodash "~4.17.11" + mem "~5.1.0" + mime-types "~2.1.24" + normalize-url "~4.3.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.1.0" + url-regex "~5.0.0" + video-extensions "~1.1.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" @@ -836,6 +861,11 @@ condense-whitespace@~1.0.0: resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= +condense-whitespace@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-2.0.0.tgz#94e9644938f66aa7be4b8849f8f0b3cec97d6b3a" + integrity sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw== + configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" @@ -1120,7 +1150,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^1.1.1, entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1, entities@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== @@ -1769,6 +1799,11 @@ ip-regex@^1.0.1: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -1779,6 +1814,11 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.0.tgz#eb21d69df2ed8ef72a3e6f243e216563036a0913" + integrity sha512-3OkP8XrM2Xq4/IxsJnClfMp3OaM3TAatLPLKPeWcxLBTrpe6hihwtX+XZfJTcXg/FTRi4qjy0y/C5qiyNxY24g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -1975,6 +2015,13 @@ is-relative-url@~2.0.0: dependencies: is-absolute-url "^2.0.0" +is-relative-url@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -2030,6 +2077,11 @@ iso-639-3@~1.1.0: resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== +iso-639-3@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.2.0.tgz#eee1f5e6ca2bbb33e3ecc910857c1c12e8b295be" + integrity sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2184,6 +2236,13 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2201,6 +2260,15 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -2236,12 +2304,12 @@ metascraper-date@^4.8.5: dependencies: "@metascraper/helpers" "^4.8.5" -metascraper-description@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-4.8.5.tgz#9155b5c7f64e997f8f12209e0140e7de25614e01" - integrity sha512-0oPEiRXgAyJoQstEPgua0OZ4wD35Htf1oSMzJvejn6rYdfXaeI8RREVtsL/TsUmizyf/iKlneslnfH4/+iN42g== +metascraper-description@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-5.5.0.tgz#ccea262aee9513de3f9de7006256f3ff06028282" + integrity sha512-HgAm1JEE3cYbMGZFOWrAaZQp0nwVifIcYA/DQsFRBWhS47Yb5XgnRIWnxYrww6dnPwMzmveCqxpzyi94lD5+/g== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^5.5.0" metascraper-image@^4.8.5: version "4.8.5" @@ -2365,6 +2433,11 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +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.37.0: version "1.37.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" @@ -2389,11 +2462,23 @@ mime-types@~2.1.22: dependencies: mime-db "~1.38.0" +mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mimic-fn@^2.1.0: + version "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" @@ -2576,6 +2661,11 @@ normalize-url@~4.2.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.2.0.tgz#e747f16b58e6d7f391495fd86415fa04ec7c9897" integrity sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg== +normalize-url@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -2713,11 +2803,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.0.0.tgz#07e9c6d22c31f9c6784cb4f1e1454a79b6d9e2d6" integrity sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" @@ -3459,7 +3559,7 @@ titleize@1.0.0: resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= -tlds@^1.187.0: +tlds@^1.187.0, tlds@^1.203.0: version "1.203.1" resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== @@ -3541,6 +3641,11 @@ truncate@~2.0.1: resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= +truncate@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.1.0.tgz#391183563a25cffbd4d613a1d00ae5844c9e55d3" + integrity sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -3666,6 +3771,14 @@ url-regex@~4.1.1: ip-regex "^1.0.1" tlds "^1.187.0" +url-regex@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" From 82dcc99b6c9e6dd6de93e8f3d5b5cb83afd8561c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:56:08 +0000 Subject: [PATCH 032/131] Bump metascraper-audio from 4.8.5 to 5.5.0 Bumps [metascraper-audio](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.8.5...v5.5.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 127 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 121 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 2028fc435..1715834f1 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "graphql": "^14.0.2", "lodash": "^4.17.11", "metascraper": "^4.10.3", - "metascraper-audio": "^4.8.5", + "metascraper-audio": "^5.5.0", "metascraper-author": "^4.8.5", "metascraper-clearbit-logo": "^4.8.5", "metascraper-date": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index f70892040..5017882aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,6 +37,31 @@ url-regex "~4.1.1" video-extensions "~1.1.0" +"@metascraper/helpers@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.5.0.tgz#38033895e404f3913791047b85b457ee84804880" + integrity sha512-VdWKWxcYVd3uzPNxr4Aucl+LSmvLzwgrvF+EIX6pNN+n66mMjimnVSTENQaWo7/aYOxF7IPyC9aBlIq9C1JDXA== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~2.0.0" + entities "~1.1.2" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~3.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.2.0" + isostring "0.0.1" + lodash "~4.17.11" + mem "~5.1.0" + mime-types "~2.1.24" + normalize-url "~4.3.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.1.0" + url-regex "~5.0.0" + video-extensions "~1.1.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" @@ -836,6 +861,11 @@ condense-whitespace@~1.0.0: resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= +condense-whitespace@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-2.0.0.tgz#94e9644938f66aa7be4b8849f8f0b3cec97d6b3a" + integrity sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw== + configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" @@ -1120,7 +1150,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^1.1.1, entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1, entities@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== @@ -1769,6 +1799,11 @@ ip-regex@^1.0.1: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -1779,6 +1814,11 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.0.tgz#eb21d69df2ed8ef72a3e6f243e216563036a0913" + integrity sha512-3OkP8XrM2Xq4/IxsJnClfMp3OaM3TAatLPLKPeWcxLBTrpe6hihwtX+XZfJTcXg/FTRi4qjy0y/C5qiyNxY24g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -1975,6 +2015,13 @@ is-relative-url@~2.0.0: dependencies: is-absolute-url "^2.0.0" +is-relative-url@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -2030,6 +2077,11 @@ iso-639-3@~1.1.0: resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== +iso-639-3@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.2.0.tgz#eee1f5e6ca2bbb33e3ecc910857c1c12e8b295be" + integrity sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2184,6 +2236,13 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2201,17 +2260,26 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -metascraper-audio@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-4.8.5.tgz#1738fdac2f5731f5172edca233834b087c9f4c29" - integrity sha512-GuoYuE/+fEkKYOsd658iYlRo2XOWqxKKZM6yMPKnpSOXWJSySZWhfmPoFkz40tadwfBWx01nKnIwwopmiZFXEQ== +metascraper-audio@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-5.5.0.tgz#e8515b25964555271270049356795f1d5f48aeef" + integrity sha512-gsSwLbHUzqZNPro+ld2fr9xzUKn5cp1pG428paacnrUnEPlisLiyWBFUkEwgSQR91vKSYsdn9ZUPwTS2GWDTcA== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^5.5.0" metascraper-author@^4.8.5: version "4.8.5" @@ -2365,6 +2433,11 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +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.37.0: version "1.37.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" @@ -2389,11 +2462,23 @@ mime-types@~2.1.22: dependencies: mime-db "~1.38.0" +mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mimic-fn@^2.1.0: + version "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" @@ -2576,6 +2661,11 @@ normalize-url@~4.2.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.2.0.tgz#e747f16b58e6d7f391495fd86415fa04ec7c9897" integrity sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg== +normalize-url@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -2713,11 +2803,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.0.0.tgz#07e9c6d22c31f9c6784cb4f1e1454a79b6d9e2d6" integrity sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" @@ -3459,7 +3559,7 @@ titleize@1.0.0: resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= -tlds@^1.187.0: +tlds@^1.187.0, tlds@^1.203.0: version "1.203.1" resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== @@ -3541,6 +3641,11 @@ truncate@~2.0.1: resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= +truncate@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.1.0.tgz#391183563a25cffbd4d613a1d00ae5844c9e55d3" + integrity sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -3666,6 +3771,14 @@ url-regex@~4.1.1: ip-regex "^1.0.1" tlds "^1.187.0" +url-regex@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" From af8ed1c007467243f4bd73f1456cc8d73ac0f585 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:56:08 +0000 Subject: [PATCH 033/131] Bump apollo-server from 2.3.1 to 2.6.7 Bumps [apollo-server](https://github.com/apollographql/apollo-server) from 2.3.1 to 2.6.7. - [Release notes](https://github.com/apollographql/apollo-server/releases) - [Changelog](https://github.com/apollographql/apollo-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-server/compare/apollo-server@2.3.1...apollo-server@2.6.7) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 256 +++++++++++++++++++++++++++------------------------ 2 files changed, 139 insertions(+), 119 deletions(-) diff --git a/package.json b/package.json index 2028fc435..39b157213 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "homepage": "https://github.com/Human-Connection/Nitro-Embed#readme", "dependencies": { "@metascraper/helpers": "^4.8.5", - "apollo-server": "^2.3.1", + "apollo-server": "^2.6.7", "got": "^9.6.0", "graphql": "^14.0.2", "lodash": "^4.17.11", diff --git a/yarn.lock b/yarn.lock index f70892040..a05c9261d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,17 @@ # yarn lockfile v1 -"@apollographql/apollo-tools@^0.2.6": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.2.9.tgz#1e20999d11728ef47f8f812f2be0426b5dde1a51" - integrity sha512-AEIQwPkS0QLbkpb6WyRhV4aOMxuErasp47ABv5niDKOasQH8mrD8JSGKJAHuQxVe4kB8DE9sLRoc5qeQ0KFCHA== +"@apollographql/apollo-tools@^0.3.6": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.3.7.tgz#3bc9c35b9fff65febd4ddc0c1fc04677693a3d40" + integrity sha512-+ertvzAwzkYmuUtT8zH3Zi6jPdyxZwOgnYaZHY7iLnMVJDhQKWlkyjLMF8wyzlPiEdDImVUMm5lOIBZo7LkGlg== dependencies: - apollo-env "0.2.5" + apollo-env "0.5.1" -"@apollographql/graphql-playground-html@^1.6.6": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.6.tgz#022209e28a2b547dcde15b219f0c50f47aa5beb3" - integrity sha512-lqK94b+caNtmKFs5oUVXlSpN3sm5IXZ+KfhMxOtr0LR2SqErzkoJilitjDvJ1WbjHlxLI7WtCjRmOLdOGJqtMQ== +"@apollographql/graphql-playground-html@1.6.20": + version "1.6.20" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.20.tgz#bf9f2acdf319c0959fad8ec1239741dd2ead4e8d" + integrity sha512-3LWZa80HcP70Pl+H4KhLDJ7S0px+9/c8GTXdl6SpunRecUaB27g/oOQnAjNHLHdbWuGE0uyqcuGiTfbKB3ilaQ== "@metascraper/helpers@^4.10.2", "@metascraper/helpers@^4.8.5": version "4.10.2" @@ -145,7 +145,7 @@ "@types/node" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@4.16.0": +"@types/express@*": version "4.16.0" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" integrity sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w== @@ -154,6 +154,15 @@ "@types/express-serve-static-core" "*" "@types/serve-static" "*" +"@types/express@4.17.0": + version "4.17.0" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.0.tgz#49eaedb209582a86f12ed9b725160f12d04ef287" + integrity sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" @@ -253,47 +262,57 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -apollo-cache-control@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.4.0.tgz#fec343e6ec95aa4f1b88e07e62f067bee0c48397" - integrity sha512-WuriaNQIugTE8gYwfBWWCbbQTSKul/cV4JMi5UgqNIUvjHvnKZQLKbt5uYWow6QQNMkLT9hey8QPYkWpogkeSA== +apollo-cache-control@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.7.4.tgz#0cb5c7be0e0dd0c44b1257144cd7f9f2a3c374e6" + integrity sha512-TVACHwcEF4wfHo5H9FLnoNjo0SLDo2jPW+bXs9aw0Y4Z2UisskSAPnIYOqUPnU8SoeNvs7zWgbLizq11SRTJtg== dependencies: - apollo-server-env "2.2.0" - graphql-extensions "0.4.0" + apollo-server-env "2.4.0" + graphql-extensions "0.7.4" -apollo-datasource@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.2.1.tgz#3ecef4efe64f7a04a43862f32027d38ac09e142c" - integrity sha512-r185+JTa5KuF1INeTAk7AEP76zwMN6c8Ph1lmpzJMNwBUEzTGnLClrccCskCBx4SxfnkdKbuQdwn9JwCJUWrdg== +apollo-datasource@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.5.0.tgz#7a8c97e23da7b9c15cb65103d63178ab19eca5e9" + integrity sha512-SVXxJyKlWguuDjxkY/WGlC/ykdsTmPxSF0z8FenagcQ91aPURXzXP1ZDz5PbamY+0iiCRubazkxtTQw4GWTFPg== dependencies: - apollo-server-caching "0.2.1" - apollo-server-env "2.2.0" + apollo-server-caching "0.4.0" + apollo-server-env "2.4.0" -apollo-engine-reporting-protobuf@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.2.0.tgz#2aaf4d2eddefe7924d469cf1135267bc0deadf73" - integrity sha512-qI+GJKN78UMJ9Aq/ORdiM2qymZ5yswem+/VDdVFocq+/e1QqxjnpKjQWISkswci5+WtpJl9SpHBNxG98uHDKkA== +apollo-engine-reporting-protobuf@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.3.1.tgz#a581257fa8e3bb115ce38bf1b22e052d1475ad69" + integrity sha512-Ui3nPG6BSZF8BEqxFs6EkX6mj2OnFLMejxEHSOdM82bakyeouCGd7J0fiy8AD6liJoIyc4X7XfH4ZGGMvMh11A== dependencies: protobufjs "^6.8.6" -apollo-engine-reporting@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.2.0.tgz#e71816b1f46e782f8538c5a118148d4c0e628e25" - integrity sha512-Q6FfVb10v/nrv8FaFsPjIYlWh62jaYav3LuMgM9PsHWGK/zRQFXOEwLxcY2UCvG7O1moxF3XGmfBhMgo54py+Q== +apollo-engine-reporting@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-1.3.5.tgz#075424d39dfe77a20f96e8e33b7ae52d58c38e1e" + integrity sha512-pSwjPgXK/elFsR22LXALtT3jI4fpEpeTNTHgNwLVLohaolusMYgBc/9FnVyFWFfMFS9k+3RmfeQdHhZ6T7WKFQ== dependencies: - apollo-engine-reporting-protobuf "0.2.0" - apollo-server-env "2.2.0" + apollo-engine-reporting-protobuf "0.3.1" + apollo-graphql "^0.3.3" + apollo-server-core "2.6.7" + apollo-server-env "2.4.0" async-retry "^1.2.1" - graphql-extensions "0.4.0" - lodash "^4.17.10" + graphql-extensions "0.7.6" -apollo-env@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.2.5.tgz#162c785bccd2aea69350a7600fab4b7147fc9da5" - integrity sha512-Gc7TEbwCl7jJVutnn8TWfzNSkrrqyoo0DP92BQJFU9pZbJhpidoXf2Sw1YwOJl82rRKH3ujM3C8vdZLOgpFcFA== +apollo-env@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.5.1.tgz#b9b0195c16feadf0fe9fd5563edb0b9b7d9e97d3" + integrity sha512-fndST2xojgSdH02k5hxk1cbqA9Ti8RX4YzzBoAB4oIe1Puhq7+YlhXGXfXB5Y4XN0al8dLg+5nAkyjNAR2qZTw== dependencies: - core-js "^3.0.0-beta.3" + core-js "^3.0.1" node-fetch "^2.2.0" + sha.js "^2.4.11" + +apollo-graphql@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.3.3.tgz#ce1df194f6e547ad3ce1e35b42f9c211766e1658" + integrity sha512-t3CO/xIDVsCG2qOvx2MEbuu4b/6LzQjcBBwiVnxclmmFyAxYCIe7rpPlnLHSq7HyOMlCWDMozjoeWfdqYSaLqQ== + dependencies: + apollo-env "0.5.1" + lodash.sortby "^4.7.0" apollo-link@^1.2.3: version "1.2.6" @@ -303,93 +322,93 @@ apollo-link@^1.2.3: apollo-utilities "^1.0.0" zen-observable-ts "^0.8.13" -apollo-server-caching@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.2.1.tgz#7e67f8c8cac829e622b394f0fb82579cabbeadfd" - integrity sha512-+U9F3X297LL8Gqy6ypfDNEv/DfV/tDht9Dr2z3AMaEkNW1bwO6rmdDL01zYxDuVDVq6Z3qSiNCSO2pXE2F0zmA== +apollo-server-caching@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.4.0.tgz#e82917590d723c0adc1fa52900e79e93ad65e4d9" + integrity sha512-GTOZdbLhrSOKYNWMYgaqX5cVNSMT0bGUTZKV8/tYlyYmsB6ey7l6iId3Q7UpHS6F6OR2lstz5XaKZ+T3fDfPzQ== dependencies: lru-cache "^5.0.0" -apollo-server-core@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.3.1.tgz#cbdc0020a0dfecf2220cf5062dbb304fdf56edf2" - integrity sha512-8jMWYOQIZi9mDJlHe2rXg8Cp4xKYogeRu23jkcNy+k5UjZL+eO+kHXbNFiTaP4HLYYEpe2XE3asxp6q5YUEQeQ== +apollo-server-core@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.6.7.tgz#85b0310f40cfec43a702569c73af16d88776a6f0" + integrity sha512-HfOGLvEwPgDWTvd3ZKRPEkEnICKb7xadn1Mci4+auMTsL/NVkfpjPa8cdzubi/kS2/MvioIn7Bg74gmiSLghGQ== dependencies: - "@apollographql/apollo-tools" "^0.2.6" - "@apollographql/graphql-playground-html" "^1.6.6" + "@apollographql/apollo-tools" "^0.3.6" + "@apollographql/graphql-playground-html" "1.6.20" "@types/ws" "^6.0.0" - apollo-cache-control "0.4.0" - apollo-datasource "0.2.1" - apollo-engine-reporting "0.2.0" - apollo-server-caching "0.2.1" - apollo-server-env "2.2.0" - apollo-server-errors "2.2.0" - apollo-server-plugin-base "0.2.1" - apollo-tracing "0.4.0" - graphql-extensions "0.4.1" + apollo-cache-control "0.7.4" + apollo-datasource "0.5.0" + apollo-engine-reporting "1.3.5" + apollo-server-caching "0.4.0" + apollo-server-env "2.4.0" + apollo-server-errors "2.3.0" + apollo-server-plugin-base "0.5.6" + apollo-tracing "0.7.3" + fast-json-stable-stringify "^2.0.0" + graphql-extensions "0.7.6" graphql-subscriptions "^1.0.0" graphql-tag "^2.9.2" graphql-tools "^4.0.0" graphql-upload "^8.0.2" - json-stable-stringify "^1.0.1" - lodash "^4.17.10" + sha.js "^2.4.11" subscriptions-transport-ws "^0.9.11" ws "^6.0.0" -apollo-server-env@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.2.0.tgz#5eec5dbf46581f663fd6692b2e05c7e8ae6d6034" - integrity sha512-wjJiI5nQWPBpNmpiLP389Ezpstp71szS6DHAeTgYLb/ulCw3CTuuA+0/E1bsThVWiQaDeHZE0sE3yI8q2zrYiA== +apollo-server-env@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.0.tgz#6611556c6b627a1636eed31317d4f7ea30705872" + integrity sha512-7ispR68lv92viFeu5zsRUVGP+oxsVI3WeeBNniM22Cx619maBUwcYTIC3+Y3LpXILhLZCzA1FASZwusgSlyN9w== dependencies: node-fetch "^2.1.2" util.promisify "^1.0.0" -apollo-server-errors@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.2.0.tgz#5b452a1d6ff76440eb0f127511dc58031a8f3cb5" - integrity sha512-gV9EZG2tovFtT1cLuCTavnJu2DaKxnXPRNGSTo+SDI6IAk6cdzyW0Gje5N2+3LybI0Wq5KAbW6VLei31S4MWmg== +apollo-server-errors@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.3.0.tgz#700622b66a16dffcad3b017e4796749814edc061" + integrity sha512-rUvzwMo2ZQgzzPh2kcJyfbRSfVKRMhfIlhY7BzUfM4x6ZT0aijlgsf714Ll3Mbf5Fxii32kD0A/DmKsTecpccw== -apollo-server-express@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.3.1.tgz#0598e2fa0a0d9e6eb570c0bb6ce65c31810a9c09" - integrity sha512-J+rObr4GdT/5j6qTByUJoSvZSjTAX/7VqIkr2t+GxwcVUFGet2MdOHuV6rtWKc8CRgvVKfKN6iBrb2EOFcp2LQ== +apollo-server-express@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.6.7.tgz#22307e08b75be1553f4099d00028abe52597767d" + integrity sha512-qbCQM+8LxXpwPNN5Sdvcb+Sne8zuCORFt25HJtPJRkHlyBUzOd7JA7SEnUn5e2geTiiGoVIU5leh+++C51udTw== dependencies: - "@apollographql/graphql-playground-html" "^1.6.6" + "@apollographql/graphql-playground-html" "1.6.20" "@types/accepts" "^1.3.5" "@types/body-parser" "1.17.0" "@types/cors" "^2.8.4" - "@types/express" "4.16.0" + "@types/express" "4.17.0" accepts "^1.3.5" - apollo-server-core "2.3.1" + apollo-server-core "2.6.7" body-parser "^1.18.3" cors "^2.8.4" graphql-subscriptions "^1.0.0" graphql-tools "^4.0.0" type-is "^1.6.16" -apollo-server-plugin-base@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.2.1.tgz#d08c9576f7f11ab6e212f352d482faaa4059a31e" - integrity sha512-497NIY9VWRYCrMSkgR11IrIUO4Fsy6aGgnpOJoTdLQAnkDD9SJDSRzwKj4gypUoTT2unfKDng4eMxXVZlHvjOw== +apollo-server-plugin-base@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.5.6.tgz#3a7128437a0f845e7d873fa43ef091ff7bf27975" + integrity sha512-wJvcPqfm/kiBwY5JZT85t2A4pcHv24xdQIpWMNt1zsnx77lIZqJmhsc22eSUSrlnYqUMXC4XMVgSUfAO4oI9wg== -apollo-server@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.3.1.tgz#4d2b6bbb48b44d86076680304705b8b7ae952d37" - integrity sha512-+S+/BhLJF9Ms99OK9HpC4P6rcVWTobWWKeLSVdgxqG487i/kwMrCAw/ICrDVJGeOGJRi6PndVu9XdHWHuX1lvQ== +apollo-server@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.6.7.tgz#b707ede529b4d45f2f00a74f3b457658b0e62e83" + integrity sha512-4wk9JykURLed6CnNIj9jhU6ueeTVmGBTyAnnvnlhRrOf50JAFszUErZIKg6lw5vVr5riaByrGFIkMBTySCHgPQ== dependencies: - apollo-server-core "2.3.1" - apollo-server-express "2.3.1" + apollo-server-core "2.6.7" + apollo-server-express "2.6.7" express "^4.0.0" graphql-subscriptions "^1.0.0" graphql-tools "^4.0.0" -apollo-tracing@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.4.0.tgz#4b939063f4292422ac5a3564b76d1d88dec0a916" - integrity sha512-BlM8iQUQva4fm0xD/pLwkcz0degfB9a/aAn4k4cK36eLVD8XUkl7ptEB0c+cwcj7tOYpV1r5QX1XwdayBzlHSg== +apollo-tracing@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.7.3.tgz#8533e3e2dca2d5a25e8439ce498ea33ff4d159ee" + integrity sha512-H6fSC+awQGnfDyYdGIB0UQUhcUC3n5Vy+ujacJ0bY6R+vwWeZOQvu7wRHNjk/rbOSTLCo9A0OcVX7huRyu9SZg== dependencies: - apollo-server-env "2.2.0" - graphql-extensions "0.4.0" + apollo-server-env "2.4.0" + graphql-extensions "0.7.4" apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: version "1.0.27" @@ -878,10 +897,10 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^3.0.0-beta.3: - version "3.0.0-beta.6" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.0-beta.6.tgz#f1ee6c8bd9c1941f992fda01f886b3b40ceb1510" - integrity sha512-06k0SnRTdYGlTNek5vAqfxbQjTtMM0zC2xJ79T1QM5UkZS0JQegrOgDiGh43n1QICnOe5+bcvS0zOGTm2C7rBA== +core-js@^3.0.1: + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" + integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -1528,19 +1547,19 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== -graphql-extensions@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.4.0.tgz#5857c7b7b9f20dbccbfd88730fffa5963b3c61ee" - integrity sha512-8TUgIIUVpXWOcqq9RdmTSHUrhc3a/s+saKv9cCl8TYWHK9vyJIdea7ZaSKHGDthZNcsN+C3LulZYRL3Ah8ukoA== +graphql-extensions@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.7.4.tgz#78327712822281d5778b9210a55dc59c93a9c184" + integrity sha512-Ly+DiTDU+UtlfPGQkqmBX2SWMr9OT3JxMRwpB9K86rDNDBTJtG6AE2kliQKKE+hg1+945KAimO7Ep+YAvS7ywg== dependencies: - "@apollographql/apollo-tools" "^0.2.6" + "@apollographql/apollo-tools" "^0.3.6" -graphql-extensions@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.4.1.tgz#92c49a8409ffbfb24559d7661ab60cc90d6086e4" - integrity sha512-Xei4rBxbsTHU6dYiq9y1xxbpRMU3+Os7yD3vXV5W4HbTaxRMizDmu6LAvV4oBEi0ttwICHARQjYTjDTDhHnxrQ== +graphql-extensions@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.7.6.tgz#80cdddf08b0af12525529d1922ee2ea0d0cc8ecf" + integrity sha512-RV00O3YFD1diehvdja180BlKOGWgeigr/8/Wzr6lXwLcFtk6FecQC/7nf6oW1qhuXczHyNjt/uCr0WWbWq6mYg== dependencies: - "@apollographql/apollo-tools" "^0.2.6" + "@apollographql/apollo-tools" "^0.3.6" graphql-subscriptions@^1.0.0: version "1.0.0" @@ -2077,23 +2096,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -2147,7 +2154,12 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@~4.17.10, lodash@~4.17.11: +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.11, lodash@~4.17.10, lodash@~4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -3206,6 +3218,14 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" From b8725f1591e7c214e65659dd328403b0570c505e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:56:09 +0000 Subject: [PATCH 034/131] Bump metascraper-url from 4.8.5 to 5.5.0 Bumps [metascraper-url](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.8.5...v5.5.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 127 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 121 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 2028fc435..e4fbe7e47 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "metascraper-publisher": "^4.8.5", "metascraper-soundcloud": "^4.8.5", "metascraper-title": "^4.8.5", - "metascraper-url": "^4.8.5", + "metascraper-url": "^5.5.0", "metascraper-video": "^4.8.5", "metascraper-youtube": "^4.8.5", "request": "^2.88.0", diff --git a/yarn.lock b/yarn.lock index f70892040..25b617619 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,6 +37,31 @@ url-regex "~4.1.1" video-extensions "~1.1.0" +"@metascraper/helpers@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.5.0.tgz#38033895e404f3913791047b85b457ee84804880" + integrity sha512-VdWKWxcYVd3uzPNxr4Aucl+LSmvLzwgrvF+EIX6pNN+n66mMjimnVSTENQaWo7/aYOxF7IPyC9aBlIq9C1JDXA== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~2.0.0" + entities "~1.1.2" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~3.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.2.0" + isostring "0.0.1" + lodash "~4.17.11" + mem "~5.1.0" + mime-types "~2.1.24" + normalize-url "~4.3.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.1.0" + url-regex "~5.0.0" + video-extensions "~1.1.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" @@ -836,6 +861,11 @@ condense-whitespace@~1.0.0: resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= +condense-whitespace@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-2.0.0.tgz#94e9644938f66aa7be4b8849f8f0b3cec97d6b3a" + integrity sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw== + configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" @@ -1120,7 +1150,7 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^1.1.1, entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1, entities@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== @@ -1769,6 +1799,11 @@ ip-regex@^1.0.1: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -1779,6 +1814,11 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.0.tgz#eb21d69df2ed8ef72a3e6f243e216563036a0913" + integrity sha512-3OkP8XrM2Xq4/IxsJnClfMp3OaM3TAatLPLKPeWcxLBTrpe6hihwtX+XZfJTcXg/FTRi4qjy0y/C5qiyNxY24g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -1975,6 +2015,13 @@ is-relative-url@~2.0.0: dependencies: is-absolute-url "^2.0.0" +is-relative-url@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -2030,6 +2077,11 @@ iso-639-3@~1.1.0: resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== +iso-639-3@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.2.0.tgz#eee1f5e6ca2bbb33e3ecc910857c1c12e8b295be" + integrity sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -2184,6 +2236,13 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2201,6 +2260,15 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +mem@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -2304,12 +2372,12 @@ metascraper-title@^4.8.5: "@metascraper/helpers" "^4.8.5" lodash "~4.17.10" -metascraper-url@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-url/-/metascraper-url-4.8.5.tgz#37fe18af596da0e0b999a85dce1b30b6d8adb4fb" - integrity sha512-hmAzyQnRTjYrgb9UI6eEbPoiTqbEl0tUOHDKBNy27lMUxcozvJo16SEUUJKdgyMD2QNXGbmnnze8YyK+nVgaBA== +metascraper-url@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/metascraper-url/-/metascraper-url-5.5.0.tgz#c2d98cfa3512121c7c662e35a859d8d4dda06c79" + integrity sha512-niQQENVT6J6HpLZjgjqY7AHwnyGAKiDUbHUiFTVgXRXxXxRNEBSF9QEk4y0dylM48aNdrlKrjn5P/1HLWzs2NA== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^5.5.0" metascraper-video@^4.8.5: version "4.8.5" @@ -2365,6 +2433,11 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +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.37.0: version "1.37.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" @@ -2389,11 +2462,23 @@ mime-types@~2.1.22: dependencies: mime-db "~1.38.0" +mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mimic-fn@^2.1.0: + version "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" @@ -2576,6 +2661,11 @@ normalize-url@~4.2.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.2.0.tgz#e747f16b58e6d7f391495fd86415fa04ec7c9897" integrity sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg== +normalize-url@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -2713,11 +2803,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.0.0.tgz#07e9c6d22c31f9c6784cb4f1e1454a79b6d9e2d6" integrity sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" @@ -3459,7 +3559,7 @@ titleize@1.0.0: resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= -tlds@^1.187.0: +tlds@^1.187.0, tlds@^1.203.0: version "1.203.1" resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== @@ -3541,6 +3641,11 @@ truncate@~2.0.1: resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= +truncate@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.1.0.tgz#391183563a25cffbd4d613a1d00ae5844c9e55d3" + integrity sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -3666,6 +3771,14 @@ url-regex@~4.1.1: ip-regex "^1.0.1" tlds "^1.187.0" +url-regex@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" From 721c75eeeaf015a1309ca82fc3363d32e580bbfa Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2019 19:58:37 +0000 Subject: [PATCH 035/131] Bump metascraper-soundcloud from 4.8.5 to 5.5.3 Bumps [metascraper-soundcloud](https://github.com/microlinkhq/metascraper-soundcloud) from 4.8.5 to 5.5.3. - [Release notes](https://github.com/microlinkhq/metascraper-soundcloud/releases) - [Commits](https://github.com/microlinkhq/metascraper-soundcloud/commits) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5922490cf..7ccba186e 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "metascraper-logo": "^4.8.5", "metascraper-logo-favicon": "^4.8.5", "metascraper-publisher": "^4.8.5", - "metascraper-soundcloud": "^4.8.5", + "metascraper-soundcloud": "^5.5.3", "metascraper-title": "^4.8.5", "metascraper-url": "^4.8.5", "metascraper-video": "^4.8.5", diff --git a/yarn.lock b/yarn.lock index c027764c0..3b15a333a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2269,6 +2269,11 @@ mem@~5.1.0: mimic-fn "^2.1.0" p-is-promise "^2.1.0" +memoize-one@~5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.4.tgz#005928aced5c43d890a4dfab18ca908b0ec92cbc" + integrity sha512-P0z5IeAH6qHHGkJIXWw0xC2HNEgkx/9uWWBQw64FJj3/ol14VYdfVGWWr0fXfjhhv3TKVIqUq65os6O4GUNksA== + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -2356,12 +2361,14 @@ metascraper-publisher@^4.8.5: dependencies: "@metascraper/helpers" "^4.8.5" -metascraper-soundcloud@^4.8.5: - version "4.8.5" - resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-4.8.5.tgz#6593ba8a26fedbb4a3bebc6d2803e22b38278621" - integrity sha512-fChxmwqCLyans9RKKg1jaL7dh/6twIBgaQm/NjvlKcp4+V39J85wQlZPHBgoXl+K/uMwy94wMftKWWQ1Hxxgkw== +metascraper-soundcloud@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-5.5.3.tgz#6f54d5da12b617cff49eb7730ff4ff59f910e60e" + integrity sha512-e7rhediMbulUlLYwEsVmsWqoiy2EqYBrjHt9V6ASTnUeA/0o9/RjPQx7FYMp5p/RnSO0jTqj29TN8c94amPzqA== dependencies: - "@metascraper/helpers" "^4.8.5" + "@metascraper/helpers" "^5.5.0" + memoize-one "~5.0.4" + tldts "~5.2.0" metascraper-title@^4.8.5: version "4.8.5" @@ -3558,6 +3565,11 @@ 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@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-5.2.1.tgz#8fe745feb8b822deda8d3677cf836a77028056db" + integrity sha512-/K8BtLl2ZQUmd3E5ecwlf73+7fPIBKBQpGg/6cQtclobqyDy6bQ8shgXwHiw9SDUmaBAQvJe832o4MFNeWk29g== + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" From cc6819e77bf7472e99471ff9bc4290bd3274f380 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 3 Jul 2019 08:47:30 -0300 Subject: [PATCH 036/131] Root commit for master branch From eabb58e851d6a76802a7d7de8e3d6842c9d1dd3d Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 3 Jul 2019 08:51:39 -0300 Subject: [PATCH 037/131] Merge in Nitro-Embed --- Human-Connection/.codecov.yml => .codecov.yml | 0 .../.gitbook.yaml => .gitbook.yaml | 0 .../assets/grafik (1).png | Bin .../assets/grafik-1 (1).png | Bin .../.gitbook => .gitbook}/assets/grafik-1.png | Bin .../.gitbook => .gitbook}/assets/grafik-4.png | Bin .../.gitbook => .gitbook}/assets/grafik.png | Bin .../assets/graphql-playground (1).png | Bin .../assets/graphql-playground.png | Bin .../assets/humanconnection (1).png | Bin .../assets/humanconnection.png | Bin .../assets/lets_get_together.png | Bin .../assets/screenshot (1).png | Bin ...-neo4j-download-center-current-releases.png | Bin .../assets/screenshot-styleguide (1).png | Bin .../assets/screenshot-styleguide (2).png | Bin .../assets/screenshot-styleguide.png | Bin .../assets/screenshot.png | Bin .../.github => .github}/ISSUE_TEMPLATE.md | 0 .../ISSUE_TEMPLATE/bug_report.md | 0 .../ISSUE_TEMPLATE/feature_request.md | 0 .../ISSUE_TEMPLATE/question.md | 0 .../PULL_REQUEST_TEMPLATE.md | 0 Human-Connection/.gitignore => .gitignore | 0 Human-Connection/.travis.yml => .travis.yml | 0 .../.vscode => .vscode}/extensions.json | 0 .../.vscode => .vscode}/settings.json | 0 .../CODE_OF_CONDUCT.md => CODE_OF_CONDUCT.md | 0 .../CONTRIBUTING.md => CONTRIBUTING.md | 0 .../maintenance-worker/binaries/.env | 6 ------ .../maintenance-worker/migration/mongo/.env | 17 ----------------- .../maintenance-worker/migration/neo4j/.env | 16 ---------------- .../styleguide/src/system/icons/svg/bold.svg | 5 ----- .../styleguide/src/system/icons/svg/italic.svg | 5 ----- .../src/system/icons/svg/list-ol.svg | 5 ----- .../src/system/icons/svg/list-ul.svg | 5 ----- .../src/system/icons/svg/paragraph.svg | 5 ----- .../src/system/icons/svg/quote-right.svg | 5 ----- Human-Connection/LICENSE.md => LICENSE.md | 0 Human-Connection/README.md => README.md | 0 Human-Connection/SUMMARY.md => SUMMARY.md | 0 {Human-Connection/backend => backend}/.babelrc | 0 .../backend => backend}/.codecov.yml | 0 .../backend => backend}/.dockerignore | 0 .../backend => backend}/.env.template | 0 .../backend => backend}/.eslintrc.js | 0 .../backend => backend}/.gitignore | 0 .../backend => backend}/.graphqlconfig | 0 .../backend => backend}/.prettierrc.js | 0 .../backend => backend}/Dockerfile | 0 .../backend => backend}/README.md | 0 .../backend => backend}/graphql-playground.png | Bin .../backend => backend}/graphql.md | 0 .../backend => backend}/humanconnection.png | Bin .../backend => backend}/package.json | 0 .../backend => backend}/public/.gitkeep | 0 .../img/badges/fundraisingbox_de_airship.svg | 0 .../img/badges/fundraisingbox_de_alienship.svg | 0 .../img/badges/fundraisingbox_de_balloon.svg | 0 .../badges/fundraisingbox_de_bigballoon.svg | 0 .../img/badges/fundraisingbox_de_crane.svg | 0 .../img/badges/fundraisingbox_de_glider.svg | 0 .../badges/fundraisingbox_de_helicopter.svg | 0 .../img/badges/fundraisingbox_de_starter.svg | 0 .../public/img/badges/indiegogo_en_bear.svg | 0 .../public/img/badges/indiegogo_en_panda.svg | 0 .../public/img/badges/indiegogo_en_rabbit.svg | 0 .../public/img/badges/indiegogo_en_racoon.svg | 0 .../public/img/badges/indiegogo_en_rhino.svg | 0 .../public/img/badges/indiegogo_en_tiger.svg | 0 .../public/img/badges/indiegogo_en_turtle.svg | 0 .../public/img/badges/indiegogo_en_whale.svg | 0 .../public/img/badges/indiegogo_en_wolf.svg | 0 .../public/img/badges/user_role_admin.svg | 0 .../public/img/badges/user_role_developer.svg | 0 .../public/img/badges/user_role_moderator.svg | 0 .../public/img/badges/wooold_de_bee.svg | 0 .../public/img/badges/wooold_de_butterfly.svg | 0 .../img/badges/wooold_de_double_rainbow.svg | 0 .../img/badges/wooold_de_end_of_rainbow.svg | 0 .../public/img/badges/wooold_de_flower.svg | 0 .../public/img/badges/wooold_de_lifetree.svg | 0 .../img/badges/wooold_de_magic_rainbow.svg | 0 .../img/badges/wooold_de_super_founder.svg | 0 .../public/uploads/.gitkeep | 0 .../src/activitypub/ActivityPub.js | 0 .../src/activitypub/Collections.js | 0 .../src/activitypub/NitroDataSource.js | 0 .../src/activitypub/routes/inbox.js | 0 .../src/activitypub/routes/index.js | 0 .../src/activitypub/routes/serveUser.js | 0 .../src/activitypub/routes/user.js | 0 .../src/activitypub/routes/verify.js | 0 .../src/activitypub/routes/webFinger.js | 0 .../activitypub/security/httpSignature.spec.js | 0 .../src/activitypub/security/index.js | 0 .../src/activitypub/utils/activity.js | 0 .../src/activitypub/utils/actor.js | 0 .../src/activitypub/utils/collection.js | 0 .../src/activitypub/utils/index.js | 0 .../src/bootstrap/directives.js | 0 .../backend => backend}/src/bootstrap/neo4j.js | 0 .../src/bootstrap/scalars.js | 0 .../backend => backend}/src/config/index.js | 0 .../src/helpers/asyncForEach.js | 0 .../src/helpers/walkRecursive.js | 0 .../backend => backend}/src/index.js | 0 .../backend => backend}/src/jest/helpers.js | 0 .../backend => backend}/src/jwt/decode.js | 0 .../backend => backend}/src/jwt/encode.js | 0 .../src/middleware/activityPubMiddleware.js | 0 .../src/middleware/dateTimeMiddleware.js | 0 .../src/middleware/excerptMiddleware.js | 0 .../filterBubble/filterBubble.spec.js | 0 .../src/middleware/includedFieldsMiddleware.js | 0 .../src/middleware/index.js | 0 .../src/middleware/nodes/locations.js | 0 .../notifications/extractIds/index.js | 0 .../notifications/extractIds/spec.js | 0 .../src/middleware/notifications/index.js | 0 .../src/middleware/notifications/spec.js | 0 .../src/middleware/orderByMiddleware.js | 0 .../src/middleware/orderByMiddleware.spec.js | 0 .../src/middleware/passwordMiddleware.js | 0 .../src/middleware/permissionsMiddleware.js | 0 .../middleware/permissionsMiddleware.spec.js | 0 .../src/middleware/sluggifyMiddleware.js | 0 .../src/middleware/slugify/uniqueSlug.js | 0 .../src/middleware/slugify/uniqueSlug.spec.js | 0 .../src/middleware/slugifyMiddleware.spec.js | 0 .../src/middleware/softDeleteMiddleware.js | 0 .../middleware/softDeleteMiddleware.spec.js | 0 .../src/middleware/userMiddleware.js | 0 .../src/middleware/validation/index.js | 0 .../src/middleware/xssMiddleware.js | 0 .../backend => backend}/src/mocks/index.js | 0 .../backend => backend}/src/schema/index.js | 0 .../src/schema/resolvers/badges.spec.js | 0 .../src/schema/resolvers/comments.js | 0 .../src/schema/resolvers/comments.spec.js | 0 .../src/schema/resolvers/fileUpload/index.js | 0 .../src/schema/resolvers/fileUpload/spec.js | 0 .../src/schema/resolvers/follow.js | 0 .../src/schema/resolvers/follow.spec.js | 0 .../src/schema/resolvers/index.js | 0 .../src/schema/resolvers/moderation.js | 0 .../src/schema/resolvers/moderation.spec.js | 0 .../src/schema/resolvers/notifications.js | 0 .../src/schema/resolvers/notifications.spec.js | 0 .../src/schema/resolvers/passwordReset.js | 0 .../src/schema/resolvers/passwordReset.spec.js | 0 .../resolvers/passwordReset/emailTemplates.js | 0 .../src/schema/resolvers/posts.js | 0 .../src/schema/resolvers/posts.spec.js | 0 .../src/schema/resolvers/reports.js | 0 .../src/schema/resolvers/reports.spec.js | 0 .../src/schema/resolvers/rewards.js | 0 .../src/schema/resolvers/rewards.spec.js | 0 .../src/schema/resolvers/shout.js | 0 .../src/schema/resolvers/shout.spec.js | 0 .../src/schema/resolvers/socialMedia.js | 0 .../src/schema/resolvers/socialMedia.spec.js | 0 .../src/schema/resolvers/statistics.js | 0 .../src/schema/resolvers/user_management.js | 0 .../schema/resolvers/user_management.spec.js | 0 .../src/schema/resolvers/users.js | 0 .../src/schema/resolvers/users.spec.js | 0 .../src/schema/types/enum/BadgeStatus.gql | 0 .../src/schema/types/enum/BadgeType.gql | 0 .../src/schema/types/enum/UserGroup.gql | 0 .../src/schema/types/enum/Visibility.gql | 0 .../src/schema/types/index.js | 0 .../src/schema/types/scalar/Date.gql_ | 0 .../src/schema/types/scalar/DateTime.gql_ | 0 .../src/schema/types/scalar/Time.gql_ | 0 .../src/schema/types/scalar/Upload.gql | 0 .../src/schema/types/schema.gql | 0 .../src/schema/types/schema_full.gql_ | 0 .../src/schema/types/type/Badge.gql | 0 .../src/schema/types/type/Category.gql | 0 .../src/schema/types/type/Comment.gql | 0 .../src/schema/types/type/Post.gql | 0 .../src/schema/types/type/Tag.gql | 0 .../src/schema/types/type/User.gql | 0 .../src/seed/factories/badges.js | 0 .../src/seed/factories/categories.js | 0 .../src/seed/factories/comments.js | 0 .../src/seed/factories/index.js | 0 .../src/seed/factories/notifications.js | 0 .../src/seed/factories/organizations.js | 0 .../src/seed/factories/posts.js | 0 .../src/seed/factories/reports.js | 0 .../src/seed/factories/tags.js | 0 .../src/seed/factories/users.js | 0 .../backend => backend}/src/seed/reset-db.js | 0 .../backend => backend}/src/seed/seed-db.js | 0 .../src/seed/seed-helpers.js | 0 .../backend => backend}/src/server.js | 0 .../test/features/activity-delete.feature | 0 .../test/features/activity-follow.feature | 0 .../test/features/activity-like.feature | 0 .../test/features/collection.feature | 0 .../test/features/object-article.feature | 0 .../test/features/support/steps.js | 0 .../test/features/webfinger.feature | 0 .../backend => backend}/test/features/world.js | 0 .../backend => backend}/testing.md | 0 .../backend => backend}/yarn.lock | 0 ....template.json => cypress.env.template.json | 0 Human-Connection/cypress.json => cypress.json | 0 .../cypress => cypress}/README.md | 0 .../cypress => cypress}/features.md | 0 .../cypress => cypress}/fixtures/example.json | 0 .../fixtures/onourjourney.png | Bin .../cypress => cypress}/fixtures/users.json | 0 .../administration/TagsAndCategories.feature | 0 .../integration/common/admin.js | 0 .../integration/common/post.js | 0 .../integration/common/profile.js | 0 .../integration/common/report.js | 0 .../integration/common/search.js | 0 .../integration/common/settings.js | 0 .../integration/common/steps.js | 0 .../Internationalization.feature | 0 .../integration/moderation/HidePosts.feature | 0 .../moderation/ReportContent.feature | 0 .../integration/notifications/Mentions.feature | 0 .../integration/post/Comment.feature | 0 .../integration/post/PersistentLinks.feature | 0 .../integration/post/WritePost.feature | 0 .../integration/search/Search.feature | 0 .../user_account/ChangePassword.feature | 0 .../integration/user_account/Login.feature | 0 .../user_profile/AboutMeAndLocation.feature | 0 .../user_profile/SocialMedia.feature | 0 .../UploadUserProfileImage.feature | 0 .../cypress => cypress}/plugins/index.js | 0 .../cypress => cypress}/support/commands.js | 0 .../cypress => cypress}/support/factories.js | 0 .../cypress => cypress}/support/helpers.js | 0 .../cypress => cypress}/support/index.js | 0 .../deployment => deployment}/.gitignore | 0 .../deployment => deployment}/README.md | 0 .../digital-ocean/README.md | 0 .../digital-ocean/dashboard/README.md | 0 .../digital-ocean/dashboard/admin-user.yaml | 0 .../dashboard/dashboard-screenshot.png | Bin .../digital-ocean/dashboard/role-binding.yaml | 0 .../digital-ocean/https/.gitignore | 0 .../digital-ocean/https/README.md | 0 .../digital-ocean/https/ip-address.png | Bin .../digital-ocean/https/namespace.yaml | 0 .../https/templates/ingress.template.yaml | 0 .../https/templates/issuer.template.yaml | 0 .../human-connection/README.md | 0 .../human-connection/deployment-backend.yaml | 0 .../human-connection/deployment-neo4j.yaml | 0 .../human-connection/deployment-web.yaml | 0 .../human-connection/mailserver/README.md | 0 .../mailserver/deployment-mailserver.yaml | 0 .../mailserver/service-mailserver.yaml | 0 .../human-connection/service-backend.yaml | 0 .../human-connection/service-neo4j.yaml | 0 .../human-connection/service-web.yaml | 0 .../templates/configmap.template.yaml | 0 .../templates/secrets.template.yaml | 0 .../legacy-migration/README.md | 0 .../legacy-migration/maintenance-worker.yaml | 0 .../maintenance-worker/.dockerignore | 0 .../maintenance-worker/.gitignore | 0 .../maintenance-worker/Dockerfile | 0 .../maintenance-worker/binaries/idle | 0 .../binaries/import_legacy_db | 0 .../binaries/import_legacy_uploads | 0 .../maintenance-worker/known_hosts | 0 .../migration/mongo/export.sh | 0 .../migration/neo4j/badges/badges.cql | 0 .../migration/neo4j/badges/delete.cql | 0 .../migration/neo4j/categories/categories.cql | 0 .../migration/neo4j/categories/delete.cql | 0 .../migration/neo4j/comments/comments.cql | 0 .../migration/neo4j/comments/delete.cql | 0 .../neo4j/contributions/contributions.cql | 0 .../migration/neo4j/contributions/delete.cql | 0 .../migration/neo4j/delete_all.cql | 0 .../migration/neo4j/emotions/delete.cql | 0 .../migration/neo4j/emotions/emotions.cql | 0 .../migration/neo4j/follows/delete.cql | 0 .../migration/neo4j/follows/follows.cql | 0 .../migration/neo4j/import.sh | 0 .../migration/neo4j/invites/delete.cql | 0 .../migration/neo4j/invites/invites.cql | 0 .../migration/neo4j/notifications/delete.cql | 0 .../neo4j/notifications/notifications.cql | 0 .../migration/neo4j/organizations/delete.cql | 0 .../neo4j/organizations/organizations.cql | 0 .../migration/neo4j/pages/delete.cql | 0 .../migration/neo4j/pages/pages.cql | 0 .../migration/neo4j/projects/delete.cql | 0 .../migration/neo4j/projects/projects.cql | 0 .../migration/neo4j/settings/delete.cql | 0 .../migration/neo4j/settings/settings.cql | 0 .../migration/neo4j/shouts/delete.cql | 0 .../migration/neo4j/shouts/shouts.cql | 0 .../migration/neo4j/status/delete.cql | 0 .../migration/neo4j/status/status.cql | 0 .../neo4j/systemnotifications/delete.cql | 0 .../systemnotifications.cql | 0 .../migration/neo4j/users/delete.cql | 0 .../migration/neo4j/users/users.cql | 0 .../migration/neo4j/userscandos/delete.cql | 0 .../neo4j/userscandos/userscandos.cql | 0 .../migration/neo4j/usersettings/delete.cql | 0 .../neo4j/usersettings/usersettings.cql | 0 .../minikube/README.md | 0 .../deployment => deployment}/namespace.yaml | 0 .../volumes/README.md | 0 .../volumes/neo4j-data.yaml | 0 .../volumes/neo4j-offline-backup/README.md | 0 .../volumes/reclaim-policy/README.md | 0 .../volumes/uploads.yaml | 0 .../volumes/velero/README.md | 0 .../volumes/volume-snapshots/README.md | 0 .../digital-ocean-volume-snapshots.png | Bin .../volumes/volume-snapshots/neo4j-data.yaml | 0 .../volumes/volume-snapshots/snapshot.yaml | 0 ...nance.yml => docker-compose.maintenance.yml | 0 ...override.yml => docker-compose.override.yml | 0 ...ose.travis.yml => docker-compose.travis.yml | 0 .../docker-compose.yml => docker-compose.yml | 0 ...umentation.md => edit-this-documentation.md | 0 .../installation.md => installation.md | 0 .../neo4j => neo4j}/.env.template | 0 {Human-Connection/neo4j => neo4j}/.gitignore | 0 {Human-Connection/neo4j => neo4j}/Dockerfile | 0 {Human-Connection/neo4j => neo4j}/README.md | 0 {Human-Connection/neo4j => neo4j}/db_setup.sh | 0 .../neo4j => neo4j}/entrypoint.sh | 0 Human-Connection/package.json => package.json | 0 .../scripts => scripts}/deploy.sh | 0 .../scripts => scripts}/docker_push.sh | 0 .../scripts => scripts}/patch-deployment.yaml | 0 .../scripts => scripts}/setup_kubernetes.sh | 0 Human-Connection/testing.md => testing.md | 0 {Human-Connection/webapp => webapp}/.babelrc | 0 .../webapp => webapp}/.dockerignore | 0 .../webapp => webapp}/.editorconfig | 0 .../webapp => webapp}/.env.template | 0 .../webapp => webapp}/.eslintignore | 0 .../webapp => webapp}/.eslintrc.js | 0 {Human-Connection/webapp => webapp}/.gitignore | 0 .../webapp => webapp}/.prettierrc.js | 0 {Human-Connection/webapp => webapp}/Dockerfile | 0 {Human-Connection/webapp => webapp}/README.md | 0 {Human-Connection/webapp => webapp}/assets.md | 0 .../assets/styles/imports/_toast.scss | 0 .../assets/styles/imports/_tooltip.scss | 0 .../webapp => webapp}/assets/styles/main.scss | 0 .../webapp => webapp}/components.md | 0 .../components/Avatar/Avatar.spec.js | 0 .../components/Avatar/Avatar.vue | 0 .../components/Badges.spec.js | 0 .../webapp => webapp}/components/Badges.vue | 0 .../CategoriesSelect/CategoriesSelect.spec.js | 0 .../CategoriesSelect/CategoriesSelect.vue | 0 .../components/Category/Readme.md | 0 .../components/Category/index.spec.js | 0 .../components/Category/index.vue | 0 .../components/Comment.spec.js | 0 .../webapp => webapp}/components/Comment.vue | 0 .../components/ContentMenu.vue | 0 .../ContributionForm/ContributionForm.spec.js | 0 .../ContributionForm/ContributionForm.vue | 0 .../webapp => webapp}/components/CountTo.vue | 0 .../components/DeleteData/DeleteData.spec.js | 0 .../components/DeleteData/DeleteData.vue | 0 .../webapp => webapp}/components/Dropdown.vue | 0 .../components/Editor/index.vue | 0 .../components/Editor/nodes/Mention.js | 0 .../components/Editor/plugins/eventHandler.js | 0 .../components/Editor/spec.js | 0 .../webapp => webapp}/components/Empty.vue | 0 .../components/FilterMenu/FilterMenu.spec.js | 0 .../components/FilterMenu/FilterMenu.vue | 0 .../components/FollowButton.vue | 0 .../webapp => webapp}/components/LoadMore.vue | 0 .../LocaleSwitch/LocaleSwitch.spec.js | 0 .../components/LocaleSwitch/LocaleSwitch.vue | 0 .../webapp => webapp}/components/Logo.vue | 0 .../webapp => webapp}/components/Modal.spec.js | 0 .../webapp => webapp}/components/Modal.vue | 0 .../components/Modal/ConfirmModal.spec.js | 0 .../components/Modal/ConfirmModal.vue | 0 .../components/Modal/DisableModal.spec.js | 0 .../components/Modal/DisableModal.vue | 0 .../components/Modal/ReportModal.spec.js | 0 .../components/Modal/ReportModal.vue | 0 .../components/Password/Change.spec.js | 0 .../components/Password/Change.vue | 0 .../components/Password/Strength.vue | 0 .../PasswordReset/ChangePassword.spec.js | 0 .../PasswordReset/ChangePassword.vue | 0 .../components/PasswordReset/Request.spec.js | 0 .../components/PasswordReset/Request.vue | 0 .../PasswordReset/VerifyCode.spec.js | 0 .../components/PasswordReset/VerifyCode.vue | 0 .../components/PostCard/index.spec.js | 0 .../components/PostCard/index.vue | 0 .../components/RelativeDateTime/Readme.md | 0 .../components/RelativeDateTime/index.vue | 0 .../components/RelativeDateTime/spec.js | 0 .../ReleaseModal/ReleaseModal.spec.js | 0 .../components/ReleaseModal/ReleaseModal.vue | 0 .../components/Ribbon/index.spec.js | 0 .../components/Ribbon/index.vue | 0 .../components/SearchInput.spec.js | 0 .../components/SearchInput.vue | 0 .../components/ShoutButton.vue | 0 .../webapp => webapp}/components/Tag/Readme.md | 0 .../webapp => webapp}/components/Tag/index.vue | 0 .../webapp => webapp}/components/Tag/spec.js | 0 .../components/TeaserImage/TeaserImage.spec.js | 0 .../components/TeaserImage/TeaserImage.vue | 0 .../components/Upload/index.vue | 0 .../components/Upload/spec.js | 0 .../components/User/index.vue | 0 .../webapp => webapp}/components/User/spec.js | 0 .../components/comments/CommentForm/index.vue | 0 .../components/comments/CommentForm/spec.js | 0 .../comments/CommentList/CommentList.spec.js | 0 .../components/comments/CommentList/index.vue | 0 .../notifications/Notification/index.vue | 0 .../notifications/Notification/spec.js | 0 .../notifications/NotificationList/index.vue | 0 .../notifications/NotificationList/spec.js | 0 .../notifications/NotificationMenu/index.vue | 0 .../notifications/NotificationMenu/spec.js | 0 .../components/utils/PostHelpers.js | 0 .../graphql/CommentMutations.js | 0 .../webapp => webapp}/graphql/CommentQuery.js | 0 .../graphql/ModerationListQuery.js | 0 .../graphql/PostCommentsQuery.js | 0 .../webapp => webapp}/graphql/PostMutations.js | 0 .../webapp => webapp}/graphql/PostQuery.js | 0 .../graphql/UserProfile/Post.js | 0 .../graphql/UserProfile/User.js | 0 {Human-Connection/webapp => webapp}/layouts.md | 0 .../webapp => webapp}/layouts/blank.vue | 0 .../webapp => webapp}/layouts/default.vue | 0 .../webapp => webapp}/locales/de.json | 0 .../webapp => webapp}/locales/en.json | 0 .../webapp => webapp}/locales/es.json | 0 .../webapp => webapp}/locales/fr.json | 0 .../webapp => webapp}/locales/index.js | 0 .../webapp => webapp}/locales/it.json | 0 .../webapp => webapp}/locales/nl.json | 0 .../webapp => webapp}/locales/pl.json | 0 .../webapp => webapp}/locales/pt.json | 0 .../webapp => webapp}/lokalise.png | Bin .../webapp => webapp}/middleware.md | 0 .../middleware/authenticated.js | 0 .../webapp => webapp}/middleware/isAdmin.js | 0 .../middleware/isModerator.js | 0 .../mixins/persistentLinks.js | 0 .../webapp => webapp}/mixins/seo.js | 0 .../webapp => webapp}/nuxt.config.js | 0 .../webapp => webapp}/package.json | 0 {Human-Connection/webapp => webapp}/pages.md | 0 .../webapp => webapp}/pages/admin.vue | 0 .../pages/admin/categories.vue | 0 .../webapp => webapp}/pages/admin/index.vue | 0 .../pages/admin/notifications.vue | 0 .../pages/admin/organizations.vue | 0 .../webapp => webapp}/pages/admin/pages.vue | 0 .../webapp => webapp}/pages/admin/settings.vue | 0 .../webapp => webapp}/pages/admin/tags.vue | 0 .../webapp => webapp}/pages/admin/users.vue | 0 .../webapp => webapp}/pages/index.vue | 0 .../webapp => webapp}/pages/login.vue | 0 .../webapp => webapp}/pages/logout.vue | 0 .../webapp => webapp}/pages/moderation.vue | 0 .../pages/moderation/index.vue | 0 .../webapp => webapp}/pages/password-reset.vue | 0 .../pages/password-reset/change-password.vue | 0 .../pages/password-reset/request.vue | 0 .../pages/password-reset/verify-code.vue | 0 .../webapp => webapp}/pages/post/_id.vue | 0 .../pages/post/_id/_slug/index.spec.js | 0 .../pages/post/_id/_slug/index.vue | 0 .../pages/post/_id/_slug/more-info.vue | 0 .../pages/post/_id/_slug/take-action.vue | 0 .../webapp => webapp}/pages/post/create.vue | 0 .../webapp => webapp}/pages/post/edit/_id.vue | 0 .../webapp => webapp}/pages/profile/_id.vue | 0 .../pages/profile/_id/_slug.spec.js | 0 .../pages/profile/_id/_slug.vue | 0 .../webapp => webapp}/pages/settings.vue | 0 .../pages/settings/data-download.vue | 0 .../pages/settings/delete-account.vue | 0 .../pages/settings/index.spec.js | 0 .../webapp => webapp}/pages/settings/index.vue | 0 .../pages/settings/invites.vue | 0 .../pages/settings/languages.vue | 0 .../pages/settings/my-organizations.vue | 0 .../pages/settings/my-social-media.spec.js | 0 .../pages/settings/my-social-media.vue | 0 .../pages/settings/security.vue | 0 {Human-Connection/webapp => webapp}/plugins.md | 0 .../webapp => webapp}/plugins/apollo-config.js | 0 .../webapp => webapp}/plugins/axios.js | 0 .../webapp => webapp}/plugins/i18n.js | 0 .../webapp => webapp}/plugins/izi-toast.js | 0 .../webapp => webapp}/plugins/keep-alive.js | 0 .../plugins/styleguide-dev.js | 0 .../webapp => webapp}/plugins/styleguide.js | 0 .../webapp => webapp}/plugins/v-tooltip.js | 0 .../plugins/vue-directives.js | 0 .../webapp => webapp}/plugins/vue-filters.js | 0 .../screenshot-styleguide.png | Bin .../webapp => webapp}/screenshot.png | Bin .../webapp => webapp}/server/index.js | 0 {Human-Connection/webapp => webapp}/static.md | 0 .../webapp => webapp}/static/favicon.ico | Bin .../static/img/empty-state.svg | 0 .../static/img/empty/alert.svg | 0 .../static/img/empty/docs.svg | 0 .../static/img/empty/events.svg | 0 .../static/img/empty/file.svg | 0 .../static/img/empty/messages.svg | 0 .../static/img/empty/tasks.svg | 0 .../static/img/locale-flags/de.svg | 0 .../static/img/locale-flags/en.svg | 0 .../static/img/locale-flags/es.svg | 0 .../static/img/locale-flags/fr.svg | 0 .../static/img/locale-flags/it.svg | 0 .../static/img/locale-flags/nl.svg | 0 .../static/img/locale-flags/pl.svg | 0 .../static/img/locale-flags/pt.svg | 0 .../static/img/sign-up/alpha-invite.png | Bin .../static/img/sign-up/alpha-invite2x.png | Bin .../static/img/sign-up/humanconnection.png | Bin .../static/img/sign-up/humanconnection.svg | 0 .../static/img/sign-up/nicetomeetyou.png | Bin .../static/img/sign-up/nicetomeetyou.svg | 0 .../static/img/sign-up/onourjourney.png | Bin .../static/img/sign-up/onourjourney.svg | 0 {Human-Connection/webapp => webapp}/store.md | 0 .../webapp => webapp}/store/auth.js | 0 .../webapp => webapp}/store/auth.test.js | 0 .../webapp => webapp}/store/editor.js | 0 .../webapp => webapp}/store/editor.spec.js | 0 .../webapp => webapp}/store/index.js | 0 .../webapp => webapp}/store/modal.js | 0 .../webapp => webapp}/store/notifications.js | 0 .../webapp => webapp}/store/search.js | 0 .../webapp => webapp}/styleguide.md | 0 {Human-Connection/webapp => webapp}/testing.md | 0 {Human-Connection/webapp => webapp}/yarn.lock | 0 Human-Connection/yarn.lock => yarn.lock | 0 559 files changed, 69 deletions(-) rename Human-Connection/.codecov.yml => .codecov.yml (100%) rename Human-Connection/.gitbook.yaml => .gitbook.yaml (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/grafik (1).png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/grafik-1 (1).png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/grafik-1.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/grafik-4.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/grafik.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/graphql-playground (1).png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/graphql-playground.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/humanconnection (1).png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/humanconnection.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/lets_get_together.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/screenshot (1).png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/screenshot-neo4j-download-center-current-releases.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/screenshot-styleguide (1).png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/screenshot-styleguide (2).png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/screenshot-styleguide.png (100%) rename {Human-Connection/.gitbook => .gitbook}/assets/screenshot.png (100%) rename {Human-Connection/.github => .github}/ISSUE_TEMPLATE.md (100%) rename {Human-Connection/.github => .github}/ISSUE_TEMPLATE/bug_report.md (100%) rename {Human-Connection/.github => .github}/ISSUE_TEMPLATE/feature_request.md (100%) rename {Human-Connection/.github => .github}/ISSUE_TEMPLATE/question.md (100%) rename {Human-Connection/.github => .github}/PULL_REQUEST_TEMPLATE.md (100%) rename Human-Connection/.gitignore => .gitignore (100%) rename Human-Connection/.travis.yml => .travis.yml (100%) rename {Human-Connection/.vscode => .vscode}/extensions.json (100%) rename {Human-Connection/.vscode => .vscode}/settings.json (100%) rename Human-Connection/CODE_OF_CONDUCT.md => CODE_OF_CONDUCT.md (100%) rename Human-Connection/CONTRIBUTING.md => CONTRIBUTING.md (100%) delete mode 100644 Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/.env delete mode 100644 Human-Connection/deployment/legacy-migration/maintenance-worker/migration/mongo/.env delete mode 100644 Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/.env delete mode 100755 Human-Connection/webapp/styleguide/src/system/icons/svg/bold.svg delete mode 100755 Human-Connection/webapp/styleguide/src/system/icons/svg/italic.svg delete mode 100755 Human-Connection/webapp/styleguide/src/system/icons/svg/list-ol.svg delete mode 100755 Human-Connection/webapp/styleguide/src/system/icons/svg/list-ul.svg delete mode 100755 Human-Connection/webapp/styleguide/src/system/icons/svg/paragraph.svg delete mode 100755 Human-Connection/webapp/styleguide/src/system/icons/svg/quote-right.svg rename Human-Connection/LICENSE.md => LICENSE.md (100%) rename Human-Connection/README.md => README.md (100%) rename Human-Connection/SUMMARY.md => SUMMARY.md (100%) rename {Human-Connection/backend => backend}/.babelrc (100%) rename {Human-Connection/backend => backend}/.codecov.yml (100%) rename {Human-Connection/backend => backend}/.dockerignore (100%) rename {Human-Connection/backend => backend}/.env.template (100%) rename {Human-Connection/backend => backend}/.eslintrc.js (100%) rename {Human-Connection/backend => backend}/.gitignore (100%) rename {Human-Connection/backend => backend}/.graphqlconfig (100%) rename {Human-Connection/backend => backend}/.prettierrc.js (100%) rename {Human-Connection/backend => backend}/Dockerfile (100%) rename {Human-Connection/backend => backend}/README.md (100%) rename {Human-Connection/backend => backend}/graphql-playground.png (100%) rename {Human-Connection/backend => backend}/graphql.md (100%) rename {Human-Connection/backend => backend}/humanconnection.png (100%) rename {Human-Connection/backend => backend}/package.json (100%) rename {Human-Connection/backend => backend}/public/.gitkeep (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_airship.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_alienship.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_balloon.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_bigballoon.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_crane.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_glider.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_helicopter.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/fundraisingbox_de_starter.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_bear.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_panda.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_rabbit.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_racoon.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_rhino.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_tiger.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_turtle.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_whale.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/indiegogo_en_wolf.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/user_role_admin.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/user_role_developer.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/user_role_moderator.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_bee.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_butterfly.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_double_rainbow.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_end_of_rainbow.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_flower.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_lifetree.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_magic_rainbow.svg (100%) rename {Human-Connection/backend => backend}/public/img/badges/wooold_de_super_founder.svg (100%) rename {Human-Connection/backend => backend}/public/uploads/.gitkeep (100%) rename {Human-Connection/backend => backend}/src/activitypub/ActivityPub.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/Collections.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/NitroDataSource.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/routes/inbox.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/routes/index.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/routes/serveUser.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/routes/user.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/routes/verify.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/routes/webFinger.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/security/httpSignature.spec.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/security/index.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/utils/activity.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/utils/actor.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/utils/collection.js (100%) rename {Human-Connection/backend => backend}/src/activitypub/utils/index.js (100%) rename {Human-Connection/backend => backend}/src/bootstrap/directives.js (100%) rename {Human-Connection/backend => backend}/src/bootstrap/neo4j.js (100%) rename {Human-Connection/backend => backend}/src/bootstrap/scalars.js (100%) rename {Human-Connection/backend => backend}/src/config/index.js (100%) rename {Human-Connection/backend => backend}/src/helpers/asyncForEach.js (100%) rename {Human-Connection/backend => backend}/src/helpers/walkRecursive.js (100%) rename {Human-Connection/backend => backend}/src/index.js (100%) rename {Human-Connection/backend => backend}/src/jest/helpers.js (100%) rename {Human-Connection/backend => backend}/src/jwt/decode.js (100%) rename {Human-Connection/backend => backend}/src/jwt/encode.js (100%) rename {Human-Connection/backend => backend}/src/middleware/activityPubMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/dateTimeMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/excerptMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/filterBubble/filterBubble.spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/includedFieldsMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/index.js (100%) rename {Human-Connection/backend => backend}/src/middleware/nodes/locations.js (100%) rename {Human-Connection/backend => backend}/src/middleware/notifications/extractIds/index.js (100%) rename {Human-Connection/backend => backend}/src/middleware/notifications/extractIds/spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/notifications/index.js (100%) rename {Human-Connection/backend => backend}/src/middleware/notifications/spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/orderByMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/orderByMiddleware.spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/passwordMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/permissionsMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/permissionsMiddleware.spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/sluggifyMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/slugify/uniqueSlug.js (100%) rename {Human-Connection/backend => backend}/src/middleware/slugify/uniqueSlug.spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/slugifyMiddleware.spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/softDeleteMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/softDeleteMiddleware.spec.js (100%) rename {Human-Connection/backend => backend}/src/middleware/userMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/middleware/validation/index.js (100%) rename {Human-Connection/backend => backend}/src/middleware/xssMiddleware.js (100%) rename {Human-Connection/backend => backend}/src/mocks/index.js (100%) rename {Human-Connection/backend => backend}/src/schema/index.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/badges.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/comments.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/comments.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/fileUpload/index.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/fileUpload/spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/follow.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/follow.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/index.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/moderation.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/moderation.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/notifications.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/notifications.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/passwordReset.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/passwordReset.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/passwordReset/emailTemplates.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/posts.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/posts.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/reports.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/reports.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/rewards.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/rewards.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/shout.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/shout.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/socialMedia.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/socialMedia.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/statistics.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/user_management.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/user_management.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/users.js (100%) rename {Human-Connection/backend => backend}/src/schema/resolvers/users.spec.js (100%) rename {Human-Connection/backend => backend}/src/schema/types/enum/BadgeStatus.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/enum/BadgeType.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/enum/UserGroup.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/enum/Visibility.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/index.js (100%) rename {Human-Connection/backend => backend}/src/schema/types/scalar/Date.gql_ (100%) rename {Human-Connection/backend => backend}/src/schema/types/scalar/DateTime.gql_ (100%) rename {Human-Connection/backend => backend}/src/schema/types/scalar/Time.gql_ (100%) rename {Human-Connection/backend => backend}/src/schema/types/scalar/Upload.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/schema.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/schema_full.gql_ (100%) rename {Human-Connection/backend => backend}/src/schema/types/type/Badge.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/type/Category.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/type/Comment.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/type/Post.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/type/Tag.gql (100%) rename {Human-Connection/backend => backend}/src/schema/types/type/User.gql (100%) rename {Human-Connection/backend => backend}/src/seed/factories/badges.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/categories.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/comments.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/index.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/notifications.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/organizations.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/posts.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/reports.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/tags.js (100%) rename {Human-Connection/backend => backend}/src/seed/factories/users.js (100%) rename {Human-Connection/backend => backend}/src/seed/reset-db.js (100%) rename {Human-Connection/backend => backend}/src/seed/seed-db.js (100%) rename {Human-Connection/backend => backend}/src/seed/seed-helpers.js (100%) rename {Human-Connection/backend => backend}/src/server.js (100%) rename {Human-Connection/backend => backend}/test/features/activity-delete.feature (100%) rename {Human-Connection/backend => backend}/test/features/activity-follow.feature (100%) rename {Human-Connection/backend => backend}/test/features/activity-like.feature (100%) rename {Human-Connection/backend => backend}/test/features/collection.feature (100%) rename {Human-Connection/backend => backend}/test/features/object-article.feature (100%) rename {Human-Connection/backend => backend}/test/features/support/steps.js (100%) rename {Human-Connection/backend => backend}/test/features/webfinger.feature (100%) rename {Human-Connection/backend => backend}/test/features/world.js (100%) rename {Human-Connection/backend => backend}/testing.md (100%) rename {Human-Connection/backend => backend}/yarn.lock (100%) rename Human-Connection/cypress.env.template.json => cypress.env.template.json (100%) rename Human-Connection/cypress.json => cypress.json (100%) rename {Human-Connection/cypress => cypress}/README.md (100%) rename {Human-Connection/cypress => cypress}/features.md (100%) rename {Human-Connection/cypress => cypress}/fixtures/example.json (100%) rename {Human-Connection/cypress => cypress}/fixtures/onourjourney.png (100%) rename {Human-Connection/cypress => cypress}/fixtures/users.json (100%) rename {Human-Connection/cypress => cypress}/integration/administration/TagsAndCategories.feature (100%) rename {Human-Connection/cypress => cypress}/integration/common/admin.js (100%) rename {Human-Connection/cypress => cypress}/integration/common/post.js (100%) rename {Human-Connection/cypress => cypress}/integration/common/profile.js (100%) rename {Human-Connection/cypress => cypress}/integration/common/report.js (100%) rename {Human-Connection/cypress => cypress}/integration/common/search.js (100%) rename {Human-Connection/cypress => cypress}/integration/common/settings.js (100%) rename {Human-Connection/cypress => cypress}/integration/common/steps.js (100%) rename {Human-Connection/cypress => cypress}/integration/internationalization/Internationalization.feature (100%) rename {Human-Connection/cypress => cypress}/integration/moderation/HidePosts.feature (100%) rename {Human-Connection/cypress => cypress}/integration/moderation/ReportContent.feature (100%) rename {Human-Connection/cypress => cypress}/integration/notifications/Mentions.feature (100%) rename {Human-Connection/cypress => cypress}/integration/post/Comment.feature (100%) rename {Human-Connection/cypress => cypress}/integration/post/PersistentLinks.feature (100%) rename {Human-Connection/cypress => cypress}/integration/post/WritePost.feature (100%) rename {Human-Connection/cypress => cypress}/integration/search/Search.feature (100%) rename {Human-Connection/cypress => cypress}/integration/user_account/ChangePassword.feature (100%) rename {Human-Connection/cypress => cypress}/integration/user_account/Login.feature (100%) rename {Human-Connection/cypress => cypress}/integration/user_profile/AboutMeAndLocation.feature (100%) rename {Human-Connection/cypress => cypress}/integration/user_profile/SocialMedia.feature (100%) rename {Human-Connection/cypress => cypress}/integration/user_profile/UploadUserProfileImage.feature (100%) rename {Human-Connection/cypress => cypress}/plugins/index.js (100%) rename {Human-Connection/cypress => cypress}/support/commands.js (100%) rename {Human-Connection/cypress => cypress}/support/factories.js (100%) rename {Human-Connection/cypress => cypress}/support/helpers.js (100%) rename {Human-Connection/cypress => cypress}/support/index.js (100%) rename {Human-Connection/deployment => deployment}/.gitignore (100%) rename {Human-Connection/deployment => deployment}/README.md (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/README.md (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/dashboard/README.md (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/dashboard/admin-user.yaml (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/dashboard/dashboard-screenshot.png (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/dashboard/role-binding.yaml (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/https/.gitignore (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/https/README.md (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/https/ip-address.png (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/https/namespace.yaml (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/https/templates/ingress.template.yaml (100%) rename {Human-Connection/deployment => deployment}/digital-ocean/https/templates/issuer.template.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/README.md (100%) rename {Human-Connection/deployment => deployment}/human-connection/deployment-backend.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/deployment-neo4j.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/deployment-web.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/mailserver/README.md (100%) rename {Human-Connection/deployment => deployment}/human-connection/mailserver/deployment-mailserver.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/mailserver/service-mailserver.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/service-backend.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/service-neo4j.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/service-web.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/templates/configmap.template.yaml (100%) rename {Human-Connection/deployment => deployment}/human-connection/templates/secrets.template.yaml (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/README.md (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker.yaml (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/.dockerignore (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/.gitignore (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/Dockerfile (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/binaries/idle (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/binaries/import_legacy_db (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/binaries/import_legacy_uploads (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/known_hosts (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/mongo/export.sh (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/badges/badges.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/badges/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/categories/categories.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/categories/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/comments/comments.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/comments/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/contributions/contributions.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/contributions/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/delete_all.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/emotions/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/emotions/emotions.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/follows/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/follows/follows.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/import.sh (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/invites/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/invites/invites.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/notifications/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/notifications/notifications.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/organizations/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/organizations/organizations.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/pages/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/pages/pages.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/projects/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/projects/projects.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/settings/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/settings/settings.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/shouts/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/shouts/shouts.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/status/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/status/status.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/systemnotifications.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/users/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/userscandos/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/userscandos/userscandos.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/usersettings/delete.cql (100%) rename {Human-Connection/deployment => deployment}/legacy-migration/maintenance-worker/migration/neo4j/usersettings/usersettings.cql (100%) rename {Human-Connection/deployment => deployment}/minikube/README.md (100%) rename {Human-Connection/deployment => deployment}/namespace.yaml (100%) rename {Human-Connection/deployment => deployment}/volumes/README.md (100%) rename {Human-Connection/deployment => deployment}/volumes/neo4j-data.yaml (100%) rename {Human-Connection/deployment => deployment}/volumes/neo4j-offline-backup/README.md (100%) rename {Human-Connection/deployment => deployment}/volumes/reclaim-policy/README.md (100%) rename {Human-Connection/deployment => deployment}/volumes/uploads.yaml (100%) rename {Human-Connection/deployment => deployment}/volumes/velero/README.md (100%) rename {Human-Connection/deployment => deployment}/volumes/volume-snapshots/README.md (100%) rename {Human-Connection/deployment => deployment}/volumes/volume-snapshots/digital-ocean-volume-snapshots.png (100%) rename {Human-Connection/deployment => deployment}/volumes/volume-snapshots/neo4j-data.yaml (100%) rename {Human-Connection/deployment => deployment}/volumes/volume-snapshots/snapshot.yaml (100%) rename Human-Connection/docker-compose.maintenance.yml => docker-compose.maintenance.yml (100%) rename Human-Connection/docker-compose.override.yml => docker-compose.override.yml (100%) rename Human-Connection/docker-compose.travis.yml => docker-compose.travis.yml (100%) rename Human-Connection/docker-compose.yml => docker-compose.yml (100%) rename Human-Connection/edit-this-documentation.md => edit-this-documentation.md (100%) rename Human-Connection/installation.md => installation.md (100%) rename {Human-Connection/neo4j => neo4j}/.env.template (100%) rename {Human-Connection/neo4j => neo4j}/.gitignore (100%) rename {Human-Connection/neo4j => neo4j}/Dockerfile (100%) rename {Human-Connection/neo4j => neo4j}/README.md (100%) rename {Human-Connection/neo4j => neo4j}/db_setup.sh (100%) rename {Human-Connection/neo4j => neo4j}/entrypoint.sh (100%) rename Human-Connection/package.json => package.json (100%) rename {Human-Connection/scripts => scripts}/deploy.sh (100%) rename {Human-Connection/scripts => scripts}/docker_push.sh (100%) rename {Human-Connection/scripts => scripts}/patch-deployment.yaml (100%) rename {Human-Connection/scripts => scripts}/setup_kubernetes.sh (100%) rename Human-Connection/testing.md => testing.md (100%) rename {Human-Connection/webapp => webapp}/.babelrc (100%) rename {Human-Connection/webapp => webapp}/.dockerignore (100%) rename {Human-Connection/webapp => webapp}/.editorconfig (100%) rename {Human-Connection/webapp => webapp}/.env.template (100%) rename {Human-Connection/webapp => webapp}/.eslintignore (100%) rename {Human-Connection/webapp => webapp}/.eslintrc.js (100%) rename {Human-Connection/webapp => webapp}/.gitignore (100%) rename {Human-Connection/webapp => webapp}/.prettierrc.js (100%) rename {Human-Connection/webapp => webapp}/Dockerfile (100%) rename {Human-Connection/webapp => webapp}/README.md (100%) rename {Human-Connection/webapp => webapp}/assets.md (100%) rename {Human-Connection/webapp => webapp}/assets/styles/imports/_toast.scss (100%) rename {Human-Connection/webapp => webapp}/assets/styles/imports/_tooltip.scss (100%) rename {Human-Connection/webapp => webapp}/assets/styles/main.scss (100%) rename {Human-Connection/webapp => webapp}/components.md (100%) rename {Human-Connection/webapp => webapp}/components/Avatar/Avatar.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Avatar/Avatar.vue (100%) rename {Human-Connection/webapp => webapp}/components/Badges.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Badges.vue (100%) rename {Human-Connection/webapp => webapp}/components/CategoriesSelect/CategoriesSelect.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/CategoriesSelect/CategoriesSelect.vue (100%) rename {Human-Connection/webapp => webapp}/components/Category/Readme.md (100%) rename {Human-Connection/webapp => webapp}/components/Category/index.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Category/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/Comment.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Comment.vue (100%) rename {Human-Connection/webapp => webapp}/components/ContentMenu.vue (100%) rename {Human-Connection/webapp => webapp}/components/ContributionForm/ContributionForm.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/ContributionForm/ContributionForm.vue (100%) rename {Human-Connection/webapp => webapp}/components/CountTo.vue (100%) rename {Human-Connection/webapp => webapp}/components/DeleteData/DeleteData.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/DeleteData/DeleteData.vue (100%) rename {Human-Connection/webapp => webapp}/components/Dropdown.vue (100%) rename {Human-Connection/webapp => webapp}/components/Editor/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/Editor/nodes/Mention.js (100%) rename {Human-Connection/webapp => webapp}/components/Editor/plugins/eventHandler.js (100%) rename {Human-Connection/webapp => webapp}/components/Editor/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Empty.vue (100%) rename {Human-Connection/webapp => webapp}/components/FilterMenu/FilterMenu.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/FilterMenu/FilterMenu.vue (100%) rename {Human-Connection/webapp => webapp}/components/FollowButton.vue (100%) rename {Human-Connection/webapp => webapp}/components/LoadMore.vue (100%) rename {Human-Connection/webapp => webapp}/components/LocaleSwitch/LocaleSwitch.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/LocaleSwitch/LocaleSwitch.vue (100%) rename {Human-Connection/webapp => webapp}/components/Logo.vue (100%) rename {Human-Connection/webapp => webapp}/components/Modal.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Modal.vue (100%) rename {Human-Connection/webapp => webapp}/components/Modal/ConfirmModal.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Modal/ConfirmModal.vue (100%) rename {Human-Connection/webapp => webapp}/components/Modal/DisableModal.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Modal/DisableModal.vue (100%) rename {Human-Connection/webapp => webapp}/components/Modal/ReportModal.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Modal/ReportModal.vue (100%) rename {Human-Connection/webapp => webapp}/components/Password/Change.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Password/Change.vue (100%) rename {Human-Connection/webapp => webapp}/components/Password/Strength.vue (100%) rename {Human-Connection/webapp => webapp}/components/PasswordReset/ChangePassword.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/PasswordReset/ChangePassword.vue (100%) rename {Human-Connection/webapp => webapp}/components/PasswordReset/Request.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/PasswordReset/Request.vue (100%) rename {Human-Connection/webapp => webapp}/components/PasswordReset/VerifyCode.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/PasswordReset/VerifyCode.vue (100%) rename {Human-Connection/webapp => webapp}/components/PostCard/index.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/PostCard/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/RelativeDateTime/Readme.md (100%) rename {Human-Connection/webapp => webapp}/components/RelativeDateTime/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/RelativeDateTime/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/ReleaseModal/ReleaseModal.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/ReleaseModal/ReleaseModal.vue (100%) rename {Human-Connection/webapp => webapp}/components/Ribbon/index.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/Ribbon/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/SearchInput.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/SearchInput.vue (100%) rename {Human-Connection/webapp => webapp}/components/ShoutButton.vue (100%) rename {Human-Connection/webapp => webapp}/components/Tag/Readme.md (100%) rename {Human-Connection/webapp => webapp}/components/Tag/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/Tag/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/TeaserImage/TeaserImage.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/TeaserImage/TeaserImage.vue (100%) rename {Human-Connection/webapp => webapp}/components/Upload/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/Upload/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/User/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/User/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/comments/CommentForm/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/comments/CommentForm/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/comments/CommentList/CommentList.spec.js (100%) rename {Human-Connection/webapp => webapp}/components/comments/CommentList/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/notifications/Notification/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/notifications/Notification/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/notifications/NotificationList/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/notifications/NotificationList/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/notifications/NotificationMenu/index.vue (100%) rename {Human-Connection/webapp => webapp}/components/notifications/NotificationMenu/spec.js (100%) rename {Human-Connection/webapp => webapp}/components/utils/PostHelpers.js (100%) rename {Human-Connection/webapp => webapp}/graphql/CommentMutations.js (100%) rename {Human-Connection/webapp => webapp}/graphql/CommentQuery.js (100%) rename {Human-Connection/webapp => webapp}/graphql/ModerationListQuery.js (100%) rename {Human-Connection/webapp => webapp}/graphql/PostCommentsQuery.js (100%) rename {Human-Connection/webapp => webapp}/graphql/PostMutations.js (100%) rename {Human-Connection/webapp => webapp}/graphql/PostQuery.js (100%) rename {Human-Connection/webapp => webapp}/graphql/UserProfile/Post.js (100%) rename {Human-Connection/webapp => webapp}/graphql/UserProfile/User.js (100%) rename {Human-Connection/webapp => webapp}/layouts.md (100%) rename {Human-Connection/webapp => webapp}/layouts/blank.vue (100%) rename {Human-Connection/webapp => webapp}/layouts/default.vue (100%) rename {Human-Connection/webapp => webapp}/locales/de.json (100%) rename {Human-Connection/webapp => webapp}/locales/en.json (100%) rename {Human-Connection/webapp => webapp}/locales/es.json (100%) rename {Human-Connection/webapp => webapp}/locales/fr.json (100%) rename {Human-Connection/webapp => webapp}/locales/index.js (100%) rename {Human-Connection/webapp => webapp}/locales/it.json (100%) rename {Human-Connection/webapp => webapp}/locales/nl.json (100%) rename {Human-Connection/webapp => webapp}/locales/pl.json (100%) rename {Human-Connection/webapp => webapp}/locales/pt.json (100%) rename {Human-Connection/webapp => webapp}/lokalise.png (100%) rename {Human-Connection/webapp => webapp}/middleware.md (100%) rename {Human-Connection/webapp => webapp}/middleware/authenticated.js (100%) rename {Human-Connection/webapp => webapp}/middleware/isAdmin.js (100%) rename {Human-Connection/webapp => webapp}/middleware/isModerator.js (100%) rename {Human-Connection/webapp => webapp}/mixins/persistentLinks.js (100%) rename {Human-Connection/webapp => webapp}/mixins/seo.js (100%) rename {Human-Connection/webapp => webapp}/nuxt.config.js (100%) rename {Human-Connection/webapp => webapp}/package.json (100%) rename {Human-Connection/webapp => webapp}/pages.md (100%) rename {Human-Connection/webapp => webapp}/pages/admin.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/categories.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/index.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/notifications.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/organizations.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/pages.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/settings.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/tags.vue (100%) rename {Human-Connection/webapp => webapp}/pages/admin/users.vue (100%) rename {Human-Connection/webapp => webapp}/pages/index.vue (100%) rename {Human-Connection/webapp => webapp}/pages/login.vue (100%) rename {Human-Connection/webapp => webapp}/pages/logout.vue (100%) rename {Human-Connection/webapp => webapp}/pages/moderation.vue (100%) rename {Human-Connection/webapp => webapp}/pages/moderation/index.vue (100%) rename {Human-Connection/webapp => webapp}/pages/password-reset.vue (100%) rename {Human-Connection/webapp => webapp}/pages/password-reset/change-password.vue (100%) rename {Human-Connection/webapp => webapp}/pages/password-reset/request.vue (100%) rename {Human-Connection/webapp => webapp}/pages/password-reset/verify-code.vue (100%) rename {Human-Connection/webapp => webapp}/pages/post/_id.vue (100%) rename {Human-Connection/webapp => webapp}/pages/post/_id/_slug/index.spec.js (100%) rename {Human-Connection/webapp => webapp}/pages/post/_id/_slug/index.vue (100%) rename {Human-Connection/webapp => webapp}/pages/post/_id/_slug/more-info.vue (100%) rename {Human-Connection/webapp => webapp}/pages/post/_id/_slug/take-action.vue (100%) rename {Human-Connection/webapp => webapp}/pages/post/create.vue (100%) rename {Human-Connection/webapp => webapp}/pages/post/edit/_id.vue (100%) rename {Human-Connection/webapp => webapp}/pages/profile/_id.vue (100%) rename {Human-Connection/webapp => webapp}/pages/profile/_id/_slug.spec.js (100%) rename {Human-Connection/webapp => webapp}/pages/profile/_id/_slug.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/data-download.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/delete-account.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/index.spec.js (100%) rename {Human-Connection/webapp => webapp}/pages/settings/index.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/invites.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/languages.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/my-organizations.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/my-social-media.spec.js (100%) rename {Human-Connection/webapp => webapp}/pages/settings/my-social-media.vue (100%) rename {Human-Connection/webapp => webapp}/pages/settings/security.vue (100%) rename {Human-Connection/webapp => webapp}/plugins.md (100%) rename {Human-Connection/webapp => webapp}/plugins/apollo-config.js (100%) rename {Human-Connection/webapp => webapp}/plugins/axios.js (100%) rename {Human-Connection/webapp => webapp}/plugins/i18n.js (100%) rename {Human-Connection/webapp => webapp}/plugins/izi-toast.js (100%) rename {Human-Connection/webapp => webapp}/plugins/keep-alive.js (100%) rename {Human-Connection/webapp => webapp}/plugins/styleguide-dev.js (100%) rename {Human-Connection/webapp => webapp}/plugins/styleguide.js (100%) rename {Human-Connection/webapp => webapp}/plugins/v-tooltip.js (100%) rename {Human-Connection/webapp => webapp}/plugins/vue-directives.js (100%) rename {Human-Connection/webapp => webapp}/plugins/vue-filters.js (100%) rename {Human-Connection/webapp => webapp}/screenshot-styleguide.png (100%) rename {Human-Connection/webapp => webapp}/screenshot.png (100%) rename {Human-Connection/webapp => webapp}/server/index.js (100%) rename {Human-Connection/webapp => webapp}/static.md (100%) rename {Human-Connection/webapp => webapp}/static/favicon.ico (100%) rename {Human-Connection/webapp => webapp}/static/img/empty-state.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/empty/alert.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/empty/docs.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/empty/events.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/empty/file.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/empty/messages.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/empty/tasks.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/de.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/en.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/es.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/fr.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/it.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/nl.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/pl.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/locale-flags/pt.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/alpha-invite.png (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/alpha-invite2x.png (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/humanconnection.png (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/humanconnection.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/nicetomeetyou.png (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/nicetomeetyou.svg (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/onourjourney.png (100%) rename {Human-Connection/webapp => webapp}/static/img/sign-up/onourjourney.svg (100%) rename {Human-Connection/webapp => webapp}/store.md (100%) rename {Human-Connection/webapp => webapp}/store/auth.js (100%) rename {Human-Connection/webapp => webapp}/store/auth.test.js (100%) rename {Human-Connection/webapp => webapp}/store/editor.js (100%) rename {Human-Connection/webapp => webapp}/store/editor.spec.js (100%) rename {Human-Connection/webapp => webapp}/store/index.js (100%) rename {Human-Connection/webapp => webapp}/store/modal.js (100%) rename {Human-Connection/webapp => webapp}/store/notifications.js (100%) rename {Human-Connection/webapp => webapp}/store/search.js (100%) rename {Human-Connection/webapp => webapp}/styleguide.md (100%) rename {Human-Connection/webapp => webapp}/testing.md (100%) rename {Human-Connection/webapp => webapp}/yarn.lock (100%) rename Human-Connection/yarn.lock => yarn.lock (100%) diff --git a/Human-Connection/.codecov.yml b/.codecov.yml similarity index 100% rename from Human-Connection/.codecov.yml rename to .codecov.yml diff --git a/Human-Connection/.gitbook.yaml b/.gitbook.yaml similarity index 100% rename from Human-Connection/.gitbook.yaml rename to .gitbook.yaml diff --git a/Human-Connection/.gitbook/assets/grafik (1).png b/.gitbook/assets/grafik (1).png similarity index 100% rename from Human-Connection/.gitbook/assets/grafik (1).png rename to .gitbook/assets/grafik (1).png diff --git a/Human-Connection/.gitbook/assets/grafik-1 (1).png b/.gitbook/assets/grafik-1 (1).png similarity index 100% rename from Human-Connection/.gitbook/assets/grafik-1 (1).png rename to .gitbook/assets/grafik-1 (1).png diff --git a/Human-Connection/.gitbook/assets/grafik-1.png b/.gitbook/assets/grafik-1.png similarity index 100% rename from Human-Connection/.gitbook/assets/grafik-1.png rename to .gitbook/assets/grafik-1.png diff --git a/Human-Connection/.gitbook/assets/grafik-4.png b/.gitbook/assets/grafik-4.png similarity index 100% rename from Human-Connection/.gitbook/assets/grafik-4.png rename to .gitbook/assets/grafik-4.png diff --git a/Human-Connection/.gitbook/assets/grafik.png b/.gitbook/assets/grafik.png similarity index 100% rename from Human-Connection/.gitbook/assets/grafik.png rename to .gitbook/assets/grafik.png diff --git a/Human-Connection/.gitbook/assets/graphql-playground (1).png b/.gitbook/assets/graphql-playground (1).png similarity index 100% rename from Human-Connection/.gitbook/assets/graphql-playground (1).png rename to .gitbook/assets/graphql-playground (1).png diff --git a/Human-Connection/.gitbook/assets/graphql-playground.png b/.gitbook/assets/graphql-playground.png similarity index 100% rename from Human-Connection/.gitbook/assets/graphql-playground.png rename to .gitbook/assets/graphql-playground.png diff --git a/Human-Connection/.gitbook/assets/humanconnection (1).png b/.gitbook/assets/humanconnection (1).png similarity index 100% rename from Human-Connection/.gitbook/assets/humanconnection (1).png rename to .gitbook/assets/humanconnection (1).png diff --git a/Human-Connection/.gitbook/assets/humanconnection.png b/.gitbook/assets/humanconnection.png similarity index 100% rename from Human-Connection/.gitbook/assets/humanconnection.png rename to .gitbook/assets/humanconnection.png diff --git a/Human-Connection/.gitbook/assets/lets_get_together.png b/.gitbook/assets/lets_get_together.png similarity index 100% rename from Human-Connection/.gitbook/assets/lets_get_together.png rename to .gitbook/assets/lets_get_together.png diff --git a/Human-Connection/.gitbook/assets/screenshot (1).png b/.gitbook/assets/screenshot (1).png similarity index 100% rename from Human-Connection/.gitbook/assets/screenshot (1).png rename to .gitbook/assets/screenshot (1).png diff --git a/Human-Connection/.gitbook/assets/screenshot-neo4j-download-center-current-releases.png b/.gitbook/assets/screenshot-neo4j-download-center-current-releases.png similarity index 100% rename from Human-Connection/.gitbook/assets/screenshot-neo4j-download-center-current-releases.png rename to .gitbook/assets/screenshot-neo4j-download-center-current-releases.png diff --git a/Human-Connection/.gitbook/assets/screenshot-styleguide (1).png b/.gitbook/assets/screenshot-styleguide (1).png similarity index 100% rename from Human-Connection/.gitbook/assets/screenshot-styleguide (1).png rename to .gitbook/assets/screenshot-styleguide (1).png diff --git a/Human-Connection/.gitbook/assets/screenshot-styleguide (2).png b/.gitbook/assets/screenshot-styleguide (2).png similarity index 100% rename from Human-Connection/.gitbook/assets/screenshot-styleguide (2).png rename to .gitbook/assets/screenshot-styleguide (2).png diff --git a/Human-Connection/.gitbook/assets/screenshot-styleguide.png b/.gitbook/assets/screenshot-styleguide.png similarity index 100% rename from Human-Connection/.gitbook/assets/screenshot-styleguide.png rename to .gitbook/assets/screenshot-styleguide.png diff --git a/Human-Connection/.gitbook/assets/screenshot.png b/.gitbook/assets/screenshot.png similarity index 100% rename from Human-Connection/.gitbook/assets/screenshot.png rename to .gitbook/assets/screenshot.png diff --git a/Human-Connection/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md similarity index 100% rename from Human-Connection/.github/ISSUE_TEMPLATE.md rename to .github/ISSUE_TEMPLATE.md diff --git a/Human-Connection/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from Human-Connection/.github/ISSUE_TEMPLATE/bug_report.md rename to .github/ISSUE_TEMPLATE/bug_report.md diff --git a/Human-Connection/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from Human-Connection/.github/ISSUE_TEMPLATE/feature_request.md rename to .github/ISSUE_TEMPLATE/feature_request.md diff --git a/Human-Connection/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md similarity index 100% rename from Human-Connection/.github/ISSUE_TEMPLATE/question.md rename to .github/ISSUE_TEMPLATE/question.md diff --git a/Human-Connection/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from Human-Connection/.github/PULL_REQUEST_TEMPLATE.md rename to .github/PULL_REQUEST_TEMPLATE.md diff --git a/Human-Connection/.gitignore b/.gitignore similarity index 100% rename from Human-Connection/.gitignore rename to .gitignore diff --git a/Human-Connection/.travis.yml b/.travis.yml similarity index 100% rename from Human-Connection/.travis.yml rename to .travis.yml diff --git a/Human-Connection/.vscode/extensions.json b/.vscode/extensions.json similarity index 100% rename from Human-Connection/.vscode/extensions.json rename to .vscode/extensions.json diff --git a/Human-Connection/.vscode/settings.json b/.vscode/settings.json similarity index 100% rename from Human-Connection/.vscode/settings.json rename to .vscode/settings.json diff --git a/Human-Connection/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md similarity index 100% rename from Human-Connection/CODE_OF_CONDUCT.md rename to CODE_OF_CONDUCT.md diff --git a/Human-Connection/CONTRIBUTING.md b/CONTRIBUTING.md similarity index 100% rename from Human-Connection/CONTRIBUTING.md rename to CONTRIBUTING.md diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/.env b/Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/.env deleted file mode 100644 index 773918095..000000000 --- a/Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/.env +++ /dev/null @@ -1,6 +0,0 @@ -# SSH Access -# SSH_USERNAME='username' -# SSH_HOST='example.org' - -# UPLOADS_DIRECTORY=/var/www/api/uploads -OUTPUT_DIRECTORY='/uploads/' \ No newline at end of file diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/mongo/.env b/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/mongo/.env deleted file mode 100644 index 4c5f9e18c..000000000 --- a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/mongo/.env +++ /dev/null @@ -1,17 +0,0 @@ -# SSH Access -# SSH_USERNAME='username' -# SSH_HOST='example.org' - -# Mongo DB on Remote Maschine -# MONGODB_USERNAME='mongouser' -# MONGODB_PASSWORD='mongopassword' -# MONGODB_DATABASE='mongodatabase' -# MONGODB_AUTH_DB='admin' - -# Export Settings -# On Windows this resolves to C:\Users\dornhoeschen\AppData\Local\Temp\mongo-export (MinGW) -EXPORT_PATH='/tmp/mongo-export/' -EXPORT_MONGOEXPORT_BIN='mongoexport' -MONGO_EXPORT_SPLIT_SIZE=100 -# On Windows use something like this -# EXPORT_MONGOEXPORT_BIN='C:\Program Files\MongoDB\Server\3.6\bin\mongoexport.exe' diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/.env b/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/.env deleted file mode 100644 index 16220f3e6..000000000 --- a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/.env +++ /dev/null @@ -1,16 +0,0 @@ -# Neo4J Settings -# NEO4J_USERNAME='neo4j' -# NEO4J_PASSWORD='letmein' - -# Import Settings -# On Windows this resolves to C:\Users\dornhoeschen\AppData\Local\Temp\mongo-export (MinGW) -IMPORT_PATH='/tmp/mongo-export/' -IMPORT_CHUNK_PATH='/tmp/mongo-export/splits/' - -IMPORT_CHUNK_PATH_CQL='/tmp/mongo-export/splits/' -# On Windows this path needs to be windows style since the cypher-shell runs native - note the forward slash -# IMPORT_CHUNK_PATH_CQL='C:/Users/dornhoeschen/AppData/Local/Temp/mongo-export/splits/' - -IMPORT_CYPHERSHELL_BIN='cypher-shell' -# On Windows use something like this -# IMPORT_CYPHERSHELL_BIN='C:\Program Files\neo4j-community\bin\cypher-shell.bat' \ No newline at end of file diff --git a/Human-Connection/webapp/styleguide/src/system/icons/svg/bold.svg b/Human-Connection/webapp/styleguide/src/system/icons/svg/bold.svg deleted file mode 100755 index c3516808d..000000000 --- a/Human-Connection/webapp/styleguide/src/system/icons/svg/bold.svg +++ /dev/null @@ -1,5 +0,0 @@ - - -bold - - diff --git a/Human-Connection/webapp/styleguide/src/system/icons/svg/italic.svg b/Human-Connection/webapp/styleguide/src/system/icons/svg/italic.svg deleted file mode 100755 index 81d29483c..000000000 --- a/Human-Connection/webapp/styleguide/src/system/icons/svg/italic.svg +++ /dev/null @@ -1,5 +0,0 @@ - - -italic - - diff --git a/Human-Connection/webapp/styleguide/src/system/icons/svg/list-ol.svg b/Human-Connection/webapp/styleguide/src/system/icons/svg/list-ol.svg deleted file mode 100755 index f3fb101ac..000000000 --- a/Human-Connection/webapp/styleguide/src/system/icons/svg/list-ol.svg +++ /dev/null @@ -1,5 +0,0 @@ - - -list-ol - - diff --git a/Human-Connection/webapp/styleguide/src/system/icons/svg/list-ul.svg b/Human-Connection/webapp/styleguide/src/system/icons/svg/list-ul.svg deleted file mode 100755 index d565a8064..000000000 --- a/Human-Connection/webapp/styleguide/src/system/icons/svg/list-ul.svg +++ /dev/null @@ -1,5 +0,0 @@ - - -list-ul - - diff --git a/Human-Connection/webapp/styleguide/src/system/icons/svg/paragraph.svg b/Human-Connection/webapp/styleguide/src/system/icons/svg/paragraph.svg deleted file mode 100755 index 26365f984..000000000 --- a/Human-Connection/webapp/styleguide/src/system/icons/svg/paragraph.svg +++ /dev/null @@ -1,5 +0,0 @@ - - -paragraph - - diff --git a/Human-Connection/webapp/styleguide/src/system/icons/svg/quote-right.svg b/Human-Connection/webapp/styleguide/src/system/icons/svg/quote-right.svg deleted file mode 100755 index 4e6469624..000000000 --- a/Human-Connection/webapp/styleguide/src/system/icons/svg/quote-right.svg +++ /dev/null @@ -1,5 +0,0 @@ - - -quote-right - - diff --git a/Human-Connection/LICENSE.md b/LICENSE.md similarity index 100% rename from Human-Connection/LICENSE.md rename to LICENSE.md diff --git a/Human-Connection/README.md b/README.md similarity index 100% rename from Human-Connection/README.md rename to README.md diff --git a/Human-Connection/SUMMARY.md b/SUMMARY.md similarity index 100% rename from Human-Connection/SUMMARY.md rename to SUMMARY.md diff --git a/Human-Connection/backend/.babelrc b/backend/.babelrc similarity index 100% rename from Human-Connection/backend/.babelrc rename to backend/.babelrc diff --git a/Human-Connection/backend/.codecov.yml b/backend/.codecov.yml similarity index 100% rename from Human-Connection/backend/.codecov.yml rename to backend/.codecov.yml diff --git a/Human-Connection/backend/.dockerignore b/backend/.dockerignore similarity index 100% rename from Human-Connection/backend/.dockerignore rename to backend/.dockerignore diff --git a/Human-Connection/backend/.env.template b/backend/.env.template similarity index 100% rename from Human-Connection/backend/.env.template rename to backend/.env.template diff --git a/Human-Connection/backend/.eslintrc.js b/backend/.eslintrc.js similarity index 100% rename from Human-Connection/backend/.eslintrc.js rename to backend/.eslintrc.js diff --git a/Human-Connection/backend/.gitignore b/backend/.gitignore similarity index 100% rename from Human-Connection/backend/.gitignore rename to backend/.gitignore diff --git a/Human-Connection/backend/.graphqlconfig b/backend/.graphqlconfig similarity index 100% rename from Human-Connection/backend/.graphqlconfig rename to backend/.graphqlconfig diff --git a/Human-Connection/backend/.prettierrc.js b/backend/.prettierrc.js similarity index 100% rename from Human-Connection/backend/.prettierrc.js rename to backend/.prettierrc.js diff --git a/Human-Connection/backend/Dockerfile b/backend/Dockerfile similarity index 100% rename from Human-Connection/backend/Dockerfile rename to backend/Dockerfile diff --git a/Human-Connection/backend/README.md b/backend/README.md similarity index 100% rename from Human-Connection/backend/README.md rename to backend/README.md diff --git a/Human-Connection/backend/graphql-playground.png b/backend/graphql-playground.png similarity index 100% rename from Human-Connection/backend/graphql-playground.png rename to backend/graphql-playground.png diff --git a/Human-Connection/backend/graphql.md b/backend/graphql.md similarity index 100% rename from Human-Connection/backend/graphql.md rename to backend/graphql.md diff --git a/Human-Connection/backend/humanconnection.png b/backend/humanconnection.png similarity index 100% rename from Human-Connection/backend/humanconnection.png rename to backend/humanconnection.png diff --git a/Human-Connection/backend/package.json b/backend/package.json similarity index 100% rename from Human-Connection/backend/package.json rename to backend/package.json diff --git a/Human-Connection/backend/public/.gitkeep b/backend/public/.gitkeep similarity index 100% rename from Human-Connection/backend/public/.gitkeep rename to backend/public/.gitkeep diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_airship.svg b/backend/public/img/badges/fundraisingbox_de_airship.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_airship.svg rename to backend/public/img/badges/fundraisingbox_de_airship.svg diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_alienship.svg b/backend/public/img/badges/fundraisingbox_de_alienship.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_alienship.svg rename to backend/public/img/badges/fundraisingbox_de_alienship.svg diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_balloon.svg b/backend/public/img/badges/fundraisingbox_de_balloon.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_balloon.svg rename to backend/public/img/badges/fundraisingbox_de_balloon.svg diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_bigballoon.svg b/backend/public/img/badges/fundraisingbox_de_bigballoon.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_bigballoon.svg rename to backend/public/img/badges/fundraisingbox_de_bigballoon.svg diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_crane.svg b/backend/public/img/badges/fundraisingbox_de_crane.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_crane.svg rename to backend/public/img/badges/fundraisingbox_de_crane.svg diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_glider.svg b/backend/public/img/badges/fundraisingbox_de_glider.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_glider.svg rename to backend/public/img/badges/fundraisingbox_de_glider.svg diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_helicopter.svg b/backend/public/img/badges/fundraisingbox_de_helicopter.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_helicopter.svg rename to backend/public/img/badges/fundraisingbox_de_helicopter.svg diff --git a/Human-Connection/backend/public/img/badges/fundraisingbox_de_starter.svg b/backend/public/img/badges/fundraisingbox_de_starter.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/fundraisingbox_de_starter.svg rename to backend/public/img/badges/fundraisingbox_de_starter.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_bear.svg b/backend/public/img/badges/indiegogo_en_bear.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_bear.svg rename to backend/public/img/badges/indiegogo_en_bear.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_panda.svg b/backend/public/img/badges/indiegogo_en_panda.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_panda.svg rename to backend/public/img/badges/indiegogo_en_panda.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_rabbit.svg b/backend/public/img/badges/indiegogo_en_rabbit.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_rabbit.svg rename to backend/public/img/badges/indiegogo_en_rabbit.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_racoon.svg b/backend/public/img/badges/indiegogo_en_racoon.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_racoon.svg rename to backend/public/img/badges/indiegogo_en_racoon.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_rhino.svg b/backend/public/img/badges/indiegogo_en_rhino.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_rhino.svg rename to backend/public/img/badges/indiegogo_en_rhino.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_tiger.svg b/backend/public/img/badges/indiegogo_en_tiger.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_tiger.svg rename to backend/public/img/badges/indiegogo_en_tiger.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_turtle.svg b/backend/public/img/badges/indiegogo_en_turtle.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_turtle.svg rename to backend/public/img/badges/indiegogo_en_turtle.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_whale.svg b/backend/public/img/badges/indiegogo_en_whale.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_whale.svg rename to backend/public/img/badges/indiegogo_en_whale.svg diff --git a/Human-Connection/backend/public/img/badges/indiegogo_en_wolf.svg b/backend/public/img/badges/indiegogo_en_wolf.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/indiegogo_en_wolf.svg rename to backend/public/img/badges/indiegogo_en_wolf.svg diff --git a/Human-Connection/backend/public/img/badges/user_role_admin.svg b/backend/public/img/badges/user_role_admin.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/user_role_admin.svg rename to backend/public/img/badges/user_role_admin.svg diff --git a/Human-Connection/backend/public/img/badges/user_role_developer.svg b/backend/public/img/badges/user_role_developer.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/user_role_developer.svg rename to backend/public/img/badges/user_role_developer.svg diff --git a/Human-Connection/backend/public/img/badges/user_role_moderator.svg b/backend/public/img/badges/user_role_moderator.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/user_role_moderator.svg rename to backend/public/img/badges/user_role_moderator.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_bee.svg b/backend/public/img/badges/wooold_de_bee.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_bee.svg rename to backend/public/img/badges/wooold_de_bee.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_butterfly.svg b/backend/public/img/badges/wooold_de_butterfly.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_butterfly.svg rename to backend/public/img/badges/wooold_de_butterfly.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_double_rainbow.svg b/backend/public/img/badges/wooold_de_double_rainbow.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_double_rainbow.svg rename to backend/public/img/badges/wooold_de_double_rainbow.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_end_of_rainbow.svg b/backend/public/img/badges/wooold_de_end_of_rainbow.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_end_of_rainbow.svg rename to backend/public/img/badges/wooold_de_end_of_rainbow.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_flower.svg b/backend/public/img/badges/wooold_de_flower.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_flower.svg rename to backend/public/img/badges/wooold_de_flower.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_lifetree.svg b/backend/public/img/badges/wooold_de_lifetree.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_lifetree.svg rename to backend/public/img/badges/wooold_de_lifetree.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_magic_rainbow.svg b/backend/public/img/badges/wooold_de_magic_rainbow.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_magic_rainbow.svg rename to backend/public/img/badges/wooold_de_magic_rainbow.svg diff --git a/Human-Connection/backend/public/img/badges/wooold_de_super_founder.svg b/backend/public/img/badges/wooold_de_super_founder.svg similarity index 100% rename from Human-Connection/backend/public/img/badges/wooold_de_super_founder.svg rename to backend/public/img/badges/wooold_de_super_founder.svg diff --git a/Human-Connection/backend/public/uploads/.gitkeep b/backend/public/uploads/.gitkeep similarity index 100% rename from Human-Connection/backend/public/uploads/.gitkeep rename to backend/public/uploads/.gitkeep diff --git a/Human-Connection/backend/src/activitypub/ActivityPub.js b/backend/src/activitypub/ActivityPub.js similarity index 100% rename from Human-Connection/backend/src/activitypub/ActivityPub.js rename to backend/src/activitypub/ActivityPub.js diff --git a/Human-Connection/backend/src/activitypub/Collections.js b/backend/src/activitypub/Collections.js similarity index 100% rename from Human-Connection/backend/src/activitypub/Collections.js rename to backend/src/activitypub/Collections.js diff --git a/Human-Connection/backend/src/activitypub/NitroDataSource.js b/backend/src/activitypub/NitroDataSource.js similarity index 100% rename from Human-Connection/backend/src/activitypub/NitroDataSource.js rename to backend/src/activitypub/NitroDataSource.js diff --git a/Human-Connection/backend/src/activitypub/routes/inbox.js b/backend/src/activitypub/routes/inbox.js similarity index 100% rename from Human-Connection/backend/src/activitypub/routes/inbox.js rename to backend/src/activitypub/routes/inbox.js diff --git a/Human-Connection/backend/src/activitypub/routes/index.js b/backend/src/activitypub/routes/index.js similarity index 100% rename from Human-Connection/backend/src/activitypub/routes/index.js rename to backend/src/activitypub/routes/index.js diff --git a/Human-Connection/backend/src/activitypub/routes/serveUser.js b/backend/src/activitypub/routes/serveUser.js similarity index 100% rename from Human-Connection/backend/src/activitypub/routes/serveUser.js rename to backend/src/activitypub/routes/serveUser.js diff --git a/Human-Connection/backend/src/activitypub/routes/user.js b/backend/src/activitypub/routes/user.js similarity index 100% rename from Human-Connection/backend/src/activitypub/routes/user.js rename to backend/src/activitypub/routes/user.js diff --git a/Human-Connection/backend/src/activitypub/routes/verify.js b/backend/src/activitypub/routes/verify.js similarity index 100% rename from Human-Connection/backend/src/activitypub/routes/verify.js rename to backend/src/activitypub/routes/verify.js diff --git a/Human-Connection/backend/src/activitypub/routes/webFinger.js b/backend/src/activitypub/routes/webFinger.js similarity index 100% rename from Human-Connection/backend/src/activitypub/routes/webFinger.js rename to backend/src/activitypub/routes/webFinger.js diff --git a/Human-Connection/backend/src/activitypub/security/httpSignature.spec.js b/backend/src/activitypub/security/httpSignature.spec.js similarity index 100% rename from Human-Connection/backend/src/activitypub/security/httpSignature.spec.js rename to backend/src/activitypub/security/httpSignature.spec.js diff --git a/Human-Connection/backend/src/activitypub/security/index.js b/backend/src/activitypub/security/index.js similarity index 100% rename from Human-Connection/backend/src/activitypub/security/index.js rename to backend/src/activitypub/security/index.js diff --git a/Human-Connection/backend/src/activitypub/utils/activity.js b/backend/src/activitypub/utils/activity.js similarity index 100% rename from Human-Connection/backend/src/activitypub/utils/activity.js rename to backend/src/activitypub/utils/activity.js diff --git a/Human-Connection/backend/src/activitypub/utils/actor.js b/backend/src/activitypub/utils/actor.js similarity index 100% rename from Human-Connection/backend/src/activitypub/utils/actor.js rename to backend/src/activitypub/utils/actor.js diff --git a/Human-Connection/backend/src/activitypub/utils/collection.js b/backend/src/activitypub/utils/collection.js similarity index 100% rename from Human-Connection/backend/src/activitypub/utils/collection.js rename to backend/src/activitypub/utils/collection.js diff --git a/Human-Connection/backend/src/activitypub/utils/index.js b/backend/src/activitypub/utils/index.js similarity index 100% rename from Human-Connection/backend/src/activitypub/utils/index.js rename to backend/src/activitypub/utils/index.js diff --git a/Human-Connection/backend/src/bootstrap/directives.js b/backend/src/bootstrap/directives.js similarity index 100% rename from Human-Connection/backend/src/bootstrap/directives.js rename to backend/src/bootstrap/directives.js diff --git a/Human-Connection/backend/src/bootstrap/neo4j.js b/backend/src/bootstrap/neo4j.js similarity index 100% rename from Human-Connection/backend/src/bootstrap/neo4j.js rename to backend/src/bootstrap/neo4j.js diff --git a/Human-Connection/backend/src/bootstrap/scalars.js b/backend/src/bootstrap/scalars.js similarity index 100% rename from Human-Connection/backend/src/bootstrap/scalars.js rename to backend/src/bootstrap/scalars.js diff --git a/Human-Connection/backend/src/config/index.js b/backend/src/config/index.js similarity index 100% rename from Human-Connection/backend/src/config/index.js rename to backend/src/config/index.js diff --git a/Human-Connection/backend/src/helpers/asyncForEach.js b/backend/src/helpers/asyncForEach.js similarity index 100% rename from Human-Connection/backend/src/helpers/asyncForEach.js rename to backend/src/helpers/asyncForEach.js diff --git a/Human-Connection/backend/src/helpers/walkRecursive.js b/backend/src/helpers/walkRecursive.js similarity index 100% rename from Human-Connection/backend/src/helpers/walkRecursive.js rename to backend/src/helpers/walkRecursive.js diff --git a/Human-Connection/backend/src/index.js b/backend/src/index.js similarity index 100% rename from Human-Connection/backend/src/index.js rename to backend/src/index.js diff --git a/Human-Connection/backend/src/jest/helpers.js b/backend/src/jest/helpers.js similarity index 100% rename from Human-Connection/backend/src/jest/helpers.js rename to backend/src/jest/helpers.js diff --git a/Human-Connection/backend/src/jwt/decode.js b/backend/src/jwt/decode.js similarity index 100% rename from Human-Connection/backend/src/jwt/decode.js rename to backend/src/jwt/decode.js diff --git a/Human-Connection/backend/src/jwt/encode.js b/backend/src/jwt/encode.js similarity index 100% rename from Human-Connection/backend/src/jwt/encode.js rename to backend/src/jwt/encode.js diff --git a/Human-Connection/backend/src/middleware/activityPubMiddleware.js b/backend/src/middleware/activityPubMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/activityPubMiddleware.js rename to backend/src/middleware/activityPubMiddleware.js diff --git a/Human-Connection/backend/src/middleware/dateTimeMiddleware.js b/backend/src/middleware/dateTimeMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/dateTimeMiddleware.js rename to backend/src/middleware/dateTimeMiddleware.js diff --git a/Human-Connection/backend/src/middleware/excerptMiddleware.js b/backend/src/middleware/excerptMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/excerptMiddleware.js rename to backend/src/middleware/excerptMiddleware.js diff --git a/Human-Connection/backend/src/middleware/filterBubble/filterBubble.spec.js b/backend/src/middleware/filterBubble/filterBubble.spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/filterBubble/filterBubble.spec.js rename to backend/src/middleware/filterBubble/filterBubble.spec.js diff --git a/Human-Connection/backend/src/middleware/includedFieldsMiddleware.js b/backend/src/middleware/includedFieldsMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/includedFieldsMiddleware.js rename to backend/src/middleware/includedFieldsMiddleware.js diff --git a/Human-Connection/backend/src/middleware/index.js b/backend/src/middleware/index.js similarity index 100% rename from Human-Connection/backend/src/middleware/index.js rename to backend/src/middleware/index.js diff --git a/Human-Connection/backend/src/middleware/nodes/locations.js b/backend/src/middleware/nodes/locations.js similarity index 100% rename from Human-Connection/backend/src/middleware/nodes/locations.js rename to backend/src/middleware/nodes/locations.js diff --git a/Human-Connection/backend/src/middleware/notifications/extractIds/index.js b/backend/src/middleware/notifications/extractIds/index.js similarity index 100% rename from Human-Connection/backend/src/middleware/notifications/extractIds/index.js rename to backend/src/middleware/notifications/extractIds/index.js diff --git a/Human-Connection/backend/src/middleware/notifications/extractIds/spec.js b/backend/src/middleware/notifications/extractIds/spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/notifications/extractIds/spec.js rename to backend/src/middleware/notifications/extractIds/spec.js diff --git a/Human-Connection/backend/src/middleware/notifications/index.js b/backend/src/middleware/notifications/index.js similarity index 100% rename from Human-Connection/backend/src/middleware/notifications/index.js rename to backend/src/middleware/notifications/index.js diff --git a/Human-Connection/backend/src/middleware/notifications/spec.js b/backend/src/middleware/notifications/spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/notifications/spec.js rename to backend/src/middleware/notifications/spec.js diff --git a/Human-Connection/backend/src/middleware/orderByMiddleware.js b/backend/src/middleware/orderByMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/orderByMiddleware.js rename to backend/src/middleware/orderByMiddleware.js diff --git a/Human-Connection/backend/src/middleware/orderByMiddleware.spec.js b/backend/src/middleware/orderByMiddleware.spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/orderByMiddleware.spec.js rename to backend/src/middleware/orderByMiddleware.spec.js diff --git a/Human-Connection/backend/src/middleware/passwordMiddleware.js b/backend/src/middleware/passwordMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/passwordMiddleware.js rename to backend/src/middleware/passwordMiddleware.js diff --git a/Human-Connection/backend/src/middleware/permissionsMiddleware.js b/backend/src/middleware/permissionsMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/permissionsMiddleware.js rename to backend/src/middleware/permissionsMiddleware.js diff --git a/Human-Connection/backend/src/middleware/permissionsMiddleware.spec.js b/backend/src/middleware/permissionsMiddleware.spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/permissionsMiddleware.spec.js rename to backend/src/middleware/permissionsMiddleware.spec.js diff --git a/Human-Connection/backend/src/middleware/sluggifyMiddleware.js b/backend/src/middleware/sluggifyMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/sluggifyMiddleware.js rename to backend/src/middleware/sluggifyMiddleware.js diff --git a/Human-Connection/backend/src/middleware/slugify/uniqueSlug.js b/backend/src/middleware/slugify/uniqueSlug.js similarity index 100% rename from Human-Connection/backend/src/middleware/slugify/uniqueSlug.js rename to backend/src/middleware/slugify/uniqueSlug.js diff --git a/Human-Connection/backend/src/middleware/slugify/uniqueSlug.spec.js b/backend/src/middleware/slugify/uniqueSlug.spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/slugify/uniqueSlug.spec.js rename to backend/src/middleware/slugify/uniqueSlug.spec.js diff --git a/Human-Connection/backend/src/middleware/slugifyMiddleware.spec.js b/backend/src/middleware/slugifyMiddleware.spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/slugifyMiddleware.spec.js rename to backend/src/middleware/slugifyMiddleware.spec.js diff --git a/Human-Connection/backend/src/middleware/softDeleteMiddleware.js b/backend/src/middleware/softDeleteMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/softDeleteMiddleware.js rename to backend/src/middleware/softDeleteMiddleware.js diff --git a/Human-Connection/backend/src/middleware/softDeleteMiddleware.spec.js b/backend/src/middleware/softDeleteMiddleware.spec.js similarity index 100% rename from Human-Connection/backend/src/middleware/softDeleteMiddleware.spec.js rename to backend/src/middleware/softDeleteMiddleware.spec.js diff --git a/Human-Connection/backend/src/middleware/userMiddleware.js b/backend/src/middleware/userMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/userMiddleware.js rename to backend/src/middleware/userMiddleware.js diff --git a/Human-Connection/backend/src/middleware/validation/index.js b/backend/src/middleware/validation/index.js similarity index 100% rename from Human-Connection/backend/src/middleware/validation/index.js rename to backend/src/middleware/validation/index.js diff --git a/Human-Connection/backend/src/middleware/xssMiddleware.js b/backend/src/middleware/xssMiddleware.js similarity index 100% rename from Human-Connection/backend/src/middleware/xssMiddleware.js rename to backend/src/middleware/xssMiddleware.js diff --git a/Human-Connection/backend/src/mocks/index.js b/backend/src/mocks/index.js similarity index 100% rename from Human-Connection/backend/src/mocks/index.js rename to backend/src/mocks/index.js diff --git a/Human-Connection/backend/src/schema/index.js b/backend/src/schema/index.js similarity index 100% rename from Human-Connection/backend/src/schema/index.js rename to backend/src/schema/index.js diff --git a/Human-Connection/backend/src/schema/resolvers/badges.spec.js b/backend/src/schema/resolvers/badges.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/badges.spec.js rename to backend/src/schema/resolvers/badges.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/comments.js b/backend/src/schema/resolvers/comments.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/comments.js rename to backend/src/schema/resolvers/comments.js diff --git a/Human-Connection/backend/src/schema/resolvers/comments.spec.js b/backend/src/schema/resolvers/comments.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/comments.spec.js rename to backend/src/schema/resolvers/comments.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/fileUpload/index.js b/backend/src/schema/resolvers/fileUpload/index.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/fileUpload/index.js rename to backend/src/schema/resolvers/fileUpload/index.js diff --git a/Human-Connection/backend/src/schema/resolvers/fileUpload/spec.js b/backend/src/schema/resolvers/fileUpload/spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/fileUpload/spec.js rename to backend/src/schema/resolvers/fileUpload/spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/follow.js b/backend/src/schema/resolvers/follow.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/follow.js rename to backend/src/schema/resolvers/follow.js diff --git a/Human-Connection/backend/src/schema/resolvers/follow.spec.js b/backend/src/schema/resolvers/follow.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/follow.spec.js rename to backend/src/schema/resolvers/follow.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/index.js b/backend/src/schema/resolvers/index.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/index.js rename to backend/src/schema/resolvers/index.js diff --git a/Human-Connection/backend/src/schema/resolvers/moderation.js b/backend/src/schema/resolvers/moderation.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/moderation.js rename to backend/src/schema/resolvers/moderation.js diff --git a/Human-Connection/backend/src/schema/resolvers/moderation.spec.js b/backend/src/schema/resolvers/moderation.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/moderation.spec.js rename to backend/src/schema/resolvers/moderation.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/notifications.js b/backend/src/schema/resolvers/notifications.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/notifications.js rename to backend/src/schema/resolvers/notifications.js diff --git a/Human-Connection/backend/src/schema/resolvers/notifications.spec.js b/backend/src/schema/resolvers/notifications.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/notifications.spec.js rename to backend/src/schema/resolvers/notifications.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/passwordReset.js b/backend/src/schema/resolvers/passwordReset.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/passwordReset.js rename to backend/src/schema/resolvers/passwordReset.js diff --git a/Human-Connection/backend/src/schema/resolvers/passwordReset.spec.js b/backend/src/schema/resolvers/passwordReset.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/passwordReset.spec.js rename to backend/src/schema/resolvers/passwordReset.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/passwordReset/emailTemplates.js b/backend/src/schema/resolvers/passwordReset/emailTemplates.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/passwordReset/emailTemplates.js rename to backend/src/schema/resolvers/passwordReset/emailTemplates.js diff --git a/Human-Connection/backend/src/schema/resolvers/posts.js b/backend/src/schema/resolvers/posts.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/posts.js rename to backend/src/schema/resolvers/posts.js diff --git a/Human-Connection/backend/src/schema/resolvers/posts.spec.js b/backend/src/schema/resolvers/posts.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/posts.spec.js rename to backend/src/schema/resolvers/posts.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/reports.js b/backend/src/schema/resolvers/reports.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/reports.js rename to backend/src/schema/resolvers/reports.js diff --git a/Human-Connection/backend/src/schema/resolvers/reports.spec.js b/backend/src/schema/resolvers/reports.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/reports.spec.js rename to backend/src/schema/resolvers/reports.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/rewards.js b/backend/src/schema/resolvers/rewards.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/rewards.js rename to backend/src/schema/resolvers/rewards.js diff --git a/Human-Connection/backend/src/schema/resolvers/rewards.spec.js b/backend/src/schema/resolvers/rewards.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/rewards.spec.js rename to backend/src/schema/resolvers/rewards.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/shout.js b/backend/src/schema/resolvers/shout.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/shout.js rename to backend/src/schema/resolvers/shout.js diff --git a/Human-Connection/backend/src/schema/resolvers/shout.spec.js b/backend/src/schema/resolvers/shout.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/shout.spec.js rename to backend/src/schema/resolvers/shout.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/socialMedia.js b/backend/src/schema/resolvers/socialMedia.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/socialMedia.js rename to backend/src/schema/resolvers/socialMedia.js diff --git a/Human-Connection/backend/src/schema/resolvers/socialMedia.spec.js b/backend/src/schema/resolvers/socialMedia.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/socialMedia.spec.js rename to backend/src/schema/resolvers/socialMedia.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/statistics.js b/backend/src/schema/resolvers/statistics.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/statistics.js rename to backend/src/schema/resolvers/statistics.js diff --git a/Human-Connection/backend/src/schema/resolvers/user_management.js b/backend/src/schema/resolvers/user_management.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/user_management.js rename to backend/src/schema/resolvers/user_management.js diff --git a/Human-Connection/backend/src/schema/resolvers/user_management.spec.js b/backend/src/schema/resolvers/user_management.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/user_management.spec.js rename to backend/src/schema/resolvers/user_management.spec.js diff --git a/Human-Connection/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/users.js rename to backend/src/schema/resolvers/users.js diff --git a/Human-Connection/backend/src/schema/resolvers/users.spec.js b/backend/src/schema/resolvers/users.spec.js similarity index 100% rename from Human-Connection/backend/src/schema/resolvers/users.spec.js rename to backend/src/schema/resolvers/users.spec.js diff --git a/Human-Connection/backend/src/schema/types/enum/BadgeStatus.gql b/backend/src/schema/types/enum/BadgeStatus.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/enum/BadgeStatus.gql rename to backend/src/schema/types/enum/BadgeStatus.gql diff --git a/Human-Connection/backend/src/schema/types/enum/BadgeType.gql b/backend/src/schema/types/enum/BadgeType.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/enum/BadgeType.gql rename to backend/src/schema/types/enum/BadgeType.gql diff --git a/Human-Connection/backend/src/schema/types/enum/UserGroup.gql b/backend/src/schema/types/enum/UserGroup.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/enum/UserGroup.gql rename to backend/src/schema/types/enum/UserGroup.gql diff --git a/Human-Connection/backend/src/schema/types/enum/Visibility.gql b/backend/src/schema/types/enum/Visibility.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/enum/Visibility.gql rename to backend/src/schema/types/enum/Visibility.gql diff --git a/Human-Connection/backend/src/schema/types/index.js b/backend/src/schema/types/index.js similarity index 100% rename from Human-Connection/backend/src/schema/types/index.js rename to backend/src/schema/types/index.js diff --git a/Human-Connection/backend/src/schema/types/scalar/Date.gql_ b/backend/src/schema/types/scalar/Date.gql_ similarity index 100% rename from Human-Connection/backend/src/schema/types/scalar/Date.gql_ rename to backend/src/schema/types/scalar/Date.gql_ diff --git a/Human-Connection/backend/src/schema/types/scalar/DateTime.gql_ b/backend/src/schema/types/scalar/DateTime.gql_ similarity index 100% rename from Human-Connection/backend/src/schema/types/scalar/DateTime.gql_ rename to backend/src/schema/types/scalar/DateTime.gql_ diff --git a/Human-Connection/backend/src/schema/types/scalar/Time.gql_ b/backend/src/schema/types/scalar/Time.gql_ similarity index 100% rename from Human-Connection/backend/src/schema/types/scalar/Time.gql_ rename to backend/src/schema/types/scalar/Time.gql_ diff --git a/Human-Connection/backend/src/schema/types/scalar/Upload.gql b/backend/src/schema/types/scalar/Upload.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/scalar/Upload.gql rename to backend/src/schema/types/scalar/Upload.gql diff --git a/Human-Connection/backend/src/schema/types/schema.gql b/backend/src/schema/types/schema.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/schema.gql rename to backend/src/schema/types/schema.gql diff --git a/Human-Connection/backend/src/schema/types/schema_full.gql_ b/backend/src/schema/types/schema_full.gql_ similarity index 100% rename from Human-Connection/backend/src/schema/types/schema_full.gql_ rename to backend/src/schema/types/schema_full.gql_ diff --git a/Human-Connection/backend/src/schema/types/type/Badge.gql b/backend/src/schema/types/type/Badge.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/type/Badge.gql rename to backend/src/schema/types/type/Badge.gql diff --git a/Human-Connection/backend/src/schema/types/type/Category.gql b/backend/src/schema/types/type/Category.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/type/Category.gql rename to backend/src/schema/types/type/Category.gql diff --git a/Human-Connection/backend/src/schema/types/type/Comment.gql b/backend/src/schema/types/type/Comment.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/type/Comment.gql rename to backend/src/schema/types/type/Comment.gql diff --git a/Human-Connection/backend/src/schema/types/type/Post.gql b/backend/src/schema/types/type/Post.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/type/Post.gql rename to backend/src/schema/types/type/Post.gql diff --git a/Human-Connection/backend/src/schema/types/type/Tag.gql b/backend/src/schema/types/type/Tag.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/type/Tag.gql rename to backend/src/schema/types/type/Tag.gql diff --git a/Human-Connection/backend/src/schema/types/type/User.gql b/backend/src/schema/types/type/User.gql similarity index 100% rename from Human-Connection/backend/src/schema/types/type/User.gql rename to backend/src/schema/types/type/User.gql diff --git a/Human-Connection/backend/src/seed/factories/badges.js b/backend/src/seed/factories/badges.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/badges.js rename to backend/src/seed/factories/badges.js diff --git a/Human-Connection/backend/src/seed/factories/categories.js b/backend/src/seed/factories/categories.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/categories.js rename to backend/src/seed/factories/categories.js diff --git a/Human-Connection/backend/src/seed/factories/comments.js b/backend/src/seed/factories/comments.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/comments.js rename to backend/src/seed/factories/comments.js diff --git a/Human-Connection/backend/src/seed/factories/index.js b/backend/src/seed/factories/index.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/index.js rename to backend/src/seed/factories/index.js diff --git a/Human-Connection/backend/src/seed/factories/notifications.js b/backend/src/seed/factories/notifications.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/notifications.js rename to backend/src/seed/factories/notifications.js diff --git a/Human-Connection/backend/src/seed/factories/organizations.js b/backend/src/seed/factories/organizations.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/organizations.js rename to backend/src/seed/factories/organizations.js diff --git a/Human-Connection/backend/src/seed/factories/posts.js b/backend/src/seed/factories/posts.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/posts.js rename to backend/src/seed/factories/posts.js diff --git a/Human-Connection/backend/src/seed/factories/reports.js b/backend/src/seed/factories/reports.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/reports.js rename to backend/src/seed/factories/reports.js diff --git a/Human-Connection/backend/src/seed/factories/tags.js b/backend/src/seed/factories/tags.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/tags.js rename to backend/src/seed/factories/tags.js diff --git a/Human-Connection/backend/src/seed/factories/users.js b/backend/src/seed/factories/users.js similarity index 100% rename from Human-Connection/backend/src/seed/factories/users.js rename to backend/src/seed/factories/users.js diff --git a/Human-Connection/backend/src/seed/reset-db.js b/backend/src/seed/reset-db.js similarity index 100% rename from Human-Connection/backend/src/seed/reset-db.js rename to backend/src/seed/reset-db.js diff --git a/Human-Connection/backend/src/seed/seed-db.js b/backend/src/seed/seed-db.js similarity index 100% rename from Human-Connection/backend/src/seed/seed-db.js rename to backend/src/seed/seed-db.js diff --git a/Human-Connection/backend/src/seed/seed-helpers.js b/backend/src/seed/seed-helpers.js similarity index 100% rename from Human-Connection/backend/src/seed/seed-helpers.js rename to backend/src/seed/seed-helpers.js diff --git a/Human-Connection/backend/src/server.js b/backend/src/server.js similarity index 100% rename from Human-Connection/backend/src/server.js rename to backend/src/server.js diff --git a/Human-Connection/backend/test/features/activity-delete.feature b/backend/test/features/activity-delete.feature similarity index 100% rename from Human-Connection/backend/test/features/activity-delete.feature rename to backend/test/features/activity-delete.feature diff --git a/Human-Connection/backend/test/features/activity-follow.feature b/backend/test/features/activity-follow.feature similarity index 100% rename from Human-Connection/backend/test/features/activity-follow.feature rename to backend/test/features/activity-follow.feature diff --git a/Human-Connection/backend/test/features/activity-like.feature b/backend/test/features/activity-like.feature similarity index 100% rename from Human-Connection/backend/test/features/activity-like.feature rename to backend/test/features/activity-like.feature diff --git a/Human-Connection/backend/test/features/collection.feature b/backend/test/features/collection.feature similarity index 100% rename from Human-Connection/backend/test/features/collection.feature rename to backend/test/features/collection.feature diff --git a/Human-Connection/backend/test/features/object-article.feature b/backend/test/features/object-article.feature similarity index 100% rename from Human-Connection/backend/test/features/object-article.feature rename to backend/test/features/object-article.feature diff --git a/Human-Connection/backend/test/features/support/steps.js b/backend/test/features/support/steps.js similarity index 100% rename from Human-Connection/backend/test/features/support/steps.js rename to backend/test/features/support/steps.js diff --git a/Human-Connection/backend/test/features/webfinger.feature b/backend/test/features/webfinger.feature similarity index 100% rename from Human-Connection/backend/test/features/webfinger.feature rename to backend/test/features/webfinger.feature diff --git a/Human-Connection/backend/test/features/world.js b/backend/test/features/world.js similarity index 100% rename from Human-Connection/backend/test/features/world.js rename to backend/test/features/world.js diff --git a/Human-Connection/backend/testing.md b/backend/testing.md similarity index 100% rename from Human-Connection/backend/testing.md rename to backend/testing.md diff --git a/Human-Connection/backend/yarn.lock b/backend/yarn.lock similarity index 100% rename from Human-Connection/backend/yarn.lock rename to backend/yarn.lock diff --git a/Human-Connection/cypress.env.template.json b/cypress.env.template.json similarity index 100% rename from Human-Connection/cypress.env.template.json rename to cypress.env.template.json diff --git a/Human-Connection/cypress.json b/cypress.json similarity index 100% rename from Human-Connection/cypress.json rename to cypress.json diff --git a/Human-Connection/cypress/README.md b/cypress/README.md similarity index 100% rename from Human-Connection/cypress/README.md rename to cypress/README.md diff --git a/Human-Connection/cypress/features.md b/cypress/features.md similarity index 100% rename from Human-Connection/cypress/features.md rename to cypress/features.md diff --git a/Human-Connection/cypress/fixtures/example.json b/cypress/fixtures/example.json similarity index 100% rename from Human-Connection/cypress/fixtures/example.json rename to cypress/fixtures/example.json diff --git a/Human-Connection/cypress/fixtures/onourjourney.png b/cypress/fixtures/onourjourney.png similarity index 100% rename from Human-Connection/cypress/fixtures/onourjourney.png rename to cypress/fixtures/onourjourney.png diff --git a/Human-Connection/cypress/fixtures/users.json b/cypress/fixtures/users.json similarity index 100% rename from Human-Connection/cypress/fixtures/users.json rename to cypress/fixtures/users.json diff --git a/Human-Connection/cypress/integration/administration/TagsAndCategories.feature b/cypress/integration/administration/TagsAndCategories.feature similarity index 100% rename from Human-Connection/cypress/integration/administration/TagsAndCategories.feature rename to cypress/integration/administration/TagsAndCategories.feature diff --git a/Human-Connection/cypress/integration/common/admin.js b/cypress/integration/common/admin.js similarity index 100% rename from Human-Connection/cypress/integration/common/admin.js rename to cypress/integration/common/admin.js diff --git a/Human-Connection/cypress/integration/common/post.js b/cypress/integration/common/post.js similarity index 100% rename from Human-Connection/cypress/integration/common/post.js rename to cypress/integration/common/post.js diff --git a/Human-Connection/cypress/integration/common/profile.js b/cypress/integration/common/profile.js similarity index 100% rename from Human-Connection/cypress/integration/common/profile.js rename to cypress/integration/common/profile.js diff --git a/Human-Connection/cypress/integration/common/report.js b/cypress/integration/common/report.js similarity index 100% rename from Human-Connection/cypress/integration/common/report.js rename to cypress/integration/common/report.js diff --git a/Human-Connection/cypress/integration/common/search.js b/cypress/integration/common/search.js similarity index 100% rename from Human-Connection/cypress/integration/common/search.js rename to cypress/integration/common/search.js diff --git a/Human-Connection/cypress/integration/common/settings.js b/cypress/integration/common/settings.js similarity index 100% rename from Human-Connection/cypress/integration/common/settings.js rename to cypress/integration/common/settings.js diff --git a/Human-Connection/cypress/integration/common/steps.js b/cypress/integration/common/steps.js similarity index 100% rename from Human-Connection/cypress/integration/common/steps.js rename to cypress/integration/common/steps.js diff --git a/Human-Connection/cypress/integration/internationalization/Internationalization.feature b/cypress/integration/internationalization/Internationalization.feature similarity index 100% rename from Human-Connection/cypress/integration/internationalization/Internationalization.feature rename to cypress/integration/internationalization/Internationalization.feature diff --git a/Human-Connection/cypress/integration/moderation/HidePosts.feature b/cypress/integration/moderation/HidePosts.feature similarity index 100% rename from Human-Connection/cypress/integration/moderation/HidePosts.feature rename to cypress/integration/moderation/HidePosts.feature diff --git a/Human-Connection/cypress/integration/moderation/ReportContent.feature b/cypress/integration/moderation/ReportContent.feature similarity index 100% rename from Human-Connection/cypress/integration/moderation/ReportContent.feature rename to cypress/integration/moderation/ReportContent.feature diff --git a/Human-Connection/cypress/integration/notifications/Mentions.feature b/cypress/integration/notifications/Mentions.feature similarity index 100% rename from Human-Connection/cypress/integration/notifications/Mentions.feature rename to cypress/integration/notifications/Mentions.feature diff --git a/Human-Connection/cypress/integration/post/Comment.feature b/cypress/integration/post/Comment.feature similarity index 100% rename from Human-Connection/cypress/integration/post/Comment.feature rename to cypress/integration/post/Comment.feature diff --git a/Human-Connection/cypress/integration/post/PersistentLinks.feature b/cypress/integration/post/PersistentLinks.feature similarity index 100% rename from Human-Connection/cypress/integration/post/PersistentLinks.feature rename to cypress/integration/post/PersistentLinks.feature diff --git a/Human-Connection/cypress/integration/post/WritePost.feature b/cypress/integration/post/WritePost.feature similarity index 100% rename from Human-Connection/cypress/integration/post/WritePost.feature rename to cypress/integration/post/WritePost.feature diff --git a/Human-Connection/cypress/integration/search/Search.feature b/cypress/integration/search/Search.feature similarity index 100% rename from Human-Connection/cypress/integration/search/Search.feature rename to cypress/integration/search/Search.feature diff --git a/Human-Connection/cypress/integration/user_account/ChangePassword.feature b/cypress/integration/user_account/ChangePassword.feature similarity index 100% rename from Human-Connection/cypress/integration/user_account/ChangePassword.feature rename to cypress/integration/user_account/ChangePassword.feature diff --git a/Human-Connection/cypress/integration/user_account/Login.feature b/cypress/integration/user_account/Login.feature similarity index 100% rename from Human-Connection/cypress/integration/user_account/Login.feature rename to cypress/integration/user_account/Login.feature diff --git a/Human-Connection/cypress/integration/user_profile/AboutMeAndLocation.feature b/cypress/integration/user_profile/AboutMeAndLocation.feature similarity index 100% rename from Human-Connection/cypress/integration/user_profile/AboutMeAndLocation.feature rename to cypress/integration/user_profile/AboutMeAndLocation.feature diff --git a/Human-Connection/cypress/integration/user_profile/SocialMedia.feature b/cypress/integration/user_profile/SocialMedia.feature similarity index 100% rename from Human-Connection/cypress/integration/user_profile/SocialMedia.feature rename to cypress/integration/user_profile/SocialMedia.feature diff --git a/Human-Connection/cypress/integration/user_profile/UploadUserProfileImage.feature b/cypress/integration/user_profile/UploadUserProfileImage.feature similarity index 100% rename from Human-Connection/cypress/integration/user_profile/UploadUserProfileImage.feature rename to cypress/integration/user_profile/UploadUserProfileImage.feature diff --git a/Human-Connection/cypress/plugins/index.js b/cypress/plugins/index.js similarity index 100% rename from Human-Connection/cypress/plugins/index.js rename to cypress/plugins/index.js diff --git a/Human-Connection/cypress/support/commands.js b/cypress/support/commands.js similarity index 100% rename from Human-Connection/cypress/support/commands.js rename to cypress/support/commands.js diff --git a/Human-Connection/cypress/support/factories.js b/cypress/support/factories.js similarity index 100% rename from Human-Connection/cypress/support/factories.js rename to cypress/support/factories.js diff --git a/Human-Connection/cypress/support/helpers.js b/cypress/support/helpers.js similarity index 100% rename from Human-Connection/cypress/support/helpers.js rename to cypress/support/helpers.js diff --git a/Human-Connection/cypress/support/index.js b/cypress/support/index.js similarity index 100% rename from Human-Connection/cypress/support/index.js rename to cypress/support/index.js diff --git a/Human-Connection/deployment/.gitignore b/deployment/.gitignore similarity index 100% rename from Human-Connection/deployment/.gitignore rename to deployment/.gitignore diff --git a/Human-Connection/deployment/README.md b/deployment/README.md similarity index 100% rename from Human-Connection/deployment/README.md rename to deployment/README.md diff --git a/Human-Connection/deployment/digital-ocean/README.md b/deployment/digital-ocean/README.md similarity index 100% rename from Human-Connection/deployment/digital-ocean/README.md rename to deployment/digital-ocean/README.md diff --git a/Human-Connection/deployment/digital-ocean/dashboard/README.md b/deployment/digital-ocean/dashboard/README.md similarity index 100% rename from Human-Connection/deployment/digital-ocean/dashboard/README.md rename to deployment/digital-ocean/dashboard/README.md diff --git a/Human-Connection/deployment/digital-ocean/dashboard/admin-user.yaml b/deployment/digital-ocean/dashboard/admin-user.yaml similarity index 100% rename from Human-Connection/deployment/digital-ocean/dashboard/admin-user.yaml rename to deployment/digital-ocean/dashboard/admin-user.yaml diff --git a/Human-Connection/deployment/digital-ocean/dashboard/dashboard-screenshot.png b/deployment/digital-ocean/dashboard/dashboard-screenshot.png similarity index 100% rename from Human-Connection/deployment/digital-ocean/dashboard/dashboard-screenshot.png rename to deployment/digital-ocean/dashboard/dashboard-screenshot.png diff --git a/Human-Connection/deployment/digital-ocean/dashboard/role-binding.yaml b/deployment/digital-ocean/dashboard/role-binding.yaml similarity index 100% rename from Human-Connection/deployment/digital-ocean/dashboard/role-binding.yaml rename to deployment/digital-ocean/dashboard/role-binding.yaml diff --git a/Human-Connection/deployment/digital-ocean/https/.gitignore b/deployment/digital-ocean/https/.gitignore similarity index 100% rename from Human-Connection/deployment/digital-ocean/https/.gitignore rename to deployment/digital-ocean/https/.gitignore diff --git a/Human-Connection/deployment/digital-ocean/https/README.md b/deployment/digital-ocean/https/README.md similarity index 100% rename from Human-Connection/deployment/digital-ocean/https/README.md rename to deployment/digital-ocean/https/README.md diff --git a/Human-Connection/deployment/digital-ocean/https/ip-address.png b/deployment/digital-ocean/https/ip-address.png similarity index 100% rename from Human-Connection/deployment/digital-ocean/https/ip-address.png rename to deployment/digital-ocean/https/ip-address.png diff --git a/Human-Connection/deployment/digital-ocean/https/namespace.yaml b/deployment/digital-ocean/https/namespace.yaml similarity index 100% rename from Human-Connection/deployment/digital-ocean/https/namespace.yaml rename to deployment/digital-ocean/https/namespace.yaml diff --git a/Human-Connection/deployment/digital-ocean/https/templates/ingress.template.yaml b/deployment/digital-ocean/https/templates/ingress.template.yaml similarity index 100% rename from Human-Connection/deployment/digital-ocean/https/templates/ingress.template.yaml rename to deployment/digital-ocean/https/templates/ingress.template.yaml diff --git a/Human-Connection/deployment/digital-ocean/https/templates/issuer.template.yaml b/deployment/digital-ocean/https/templates/issuer.template.yaml similarity index 100% rename from Human-Connection/deployment/digital-ocean/https/templates/issuer.template.yaml rename to deployment/digital-ocean/https/templates/issuer.template.yaml diff --git a/Human-Connection/deployment/human-connection/README.md b/deployment/human-connection/README.md similarity index 100% rename from Human-Connection/deployment/human-connection/README.md rename to deployment/human-connection/README.md diff --git a/Human-Connection/deployment/human-connection/deployment-backend.yaml b/deployment/human-connection/deployment-backend.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/deployment-backend.yaml rename to deployment/human-connection/deployment-backend.yaml diff --git a/Human-Connection/deployment/human-connection/deployment-neo4j.yaml b/deployment/human-connection/deployment-neo4j.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/deployment-neo4j.yaml rename to deployment/human-connection/deployment-neo4j.yaml diff --git a/Human-Connection/deployment/human-connection/deployment-web.yaml b/deployment/human-connection/deployment-web.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/deployment-web.yaml rename to deployment/human-connection/deployment-web.yaml diff --git a/Human-Connection/deployment/human-connection/mailserver/README.md b/deployment/human-connection/mailserver/README.md similarity index 100% rename from Human-Connection/deployment/human-connection/mailserver/README.md rename to deployment/human-connection/mailserver/README.md diff --git a/Human-Connection/deployment/human-connection/mailserver/deployment-mailserver.yaml b/deployment/human-connection/mailserver/deployment-mailserver.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/mailserver/deployment-mailserver.yaml rename to deployment/human-connection/mailserver/deployment-mailserver.yaml diff --git a/Human-Connection/deployment/human-connection/mailserver/service-mailserver.yaml b/deployment/human-connection/mailserver/service-mailserver.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/mailserver/service-mailserver.yaml rename to deployment/human-connection/mailserver/service-mailserver.yaml diff --git a/Human-Connection/deployment/human-connection/service-backend.yaml b/deployment/human-connection/service-backend.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/service-backend.yaml rename to deployment/human-connection/service-backend.yaml diff --git a/Human-Connection/deployment/human-connection/service-neo4j.yaml b/deployment/human-connection/service-neo4j.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/service-neo4j.yaml rename to deployment/human-connection/service-neo4j.yaml diff --git a/Human-Connection/deployment/human-connection/service-web.yaml b/deployment/human-connection/service-web.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/service-web.yaml rename to deployment/human-connection/service-web.yaml diff --git a/Human-Connection/deployment/human-connection/templates/configmap.template.yaml b/deployment/human-connection/templates/configmap.template.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/templates/configmap.template.yaml rename to deployment/human-connection/templates/configmap.template.yaml diff --git a/Human-Connection/deployment/human-connection/templates/secrets.template.yaml b/deployment/human-connection/templates/secrets.template.yaml similarity index 100% rename from Human-Connection/deployment/human-connection/templates/secrets.template.yaml rename to deployment/human-connection/templates/secrets.template.yaml diff --git a/Human-Connection/deployment/legacy-migration/README.md b/deployment/legacy-migration/README.md similarity index 100% rename from Human-Connection/deployment/legacy-migration/README.md rename to deployment/legacy-migration/README.md diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker.yaml b/deployment/legacy-migration/maintenance-worker.yaml similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker.yaml rename to deployment/legacy-migration/maintenance-worker.yaml diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/.dockerignore b/deployment/legacy-migration/maintenance-worker/.dockerignore similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/.dockerignore rename to deployment/legacy-migration/maintenance-worker/.dockerignore diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/.gitignore b/deployment/legacy-migration/maintenance-worker/.gitignore similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/.gitignore rename to deployment/legacy-migration/maintenance-worker/.gitignore diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/Dockerfile b/deployment/legacy-migration/maintenance-worker/Dockerfile similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/Dockerfile rename to deployment/legacy-migration/maintenance-worker/Dockerfile diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/idle b/deployment/legacy-migration/maintenance-worker/binaries/idle similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/idle rename to deployment/legacy-migration/maintenance-worker/binaries/idle diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db b/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db rename to deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_uploads b/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_uploads similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_uploads rename to deployment/legacy-migration/maintenance-worker/binaries/import_legacy_uploads diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/known_hosts b/deployment/legacy-migration/maintenance-worker/known_hosts similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/known_hosts rename to deployment/legacy-migration/maintenance-worker/known_hosts diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/mongo/export.sh b/deployment/legacy-migration/maintenance-worker/migration/mongo/export.sh similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/mongo/export.sh rename to deployment/legacy-migration/maintenance-worker/migration/mongo/export.sh diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/badges.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/badges.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/badges.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/badges.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/badges/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/categories.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/categories.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/categories.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/categories.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/categories/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/comments.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/comments.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/comments.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/comments.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/comments/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/contributions.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/contributions.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/contributions.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/contributions.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/contributions/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/delete_all.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/delete_all.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/delete_all.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/delete_all.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/emotions.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/emotions.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/emotions.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/emotions/emotions.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/follows.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/follows.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/follows.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/follows/follows.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh b/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/invites.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/invites.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/invites.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/invites/invites.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/notifications.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/notifications.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/notifications.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/notifications/notifications.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/organizations.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/organizations.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/organizations.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/organizations/organizations.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/pages.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/pages.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/pages.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/pages/pages.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/projects.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/projects.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/projects.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/projects/projects.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/settings.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/settings.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/settings.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/settings/settings.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/shouts.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/shouts.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/shouts.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/shouts/shouts.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/status/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/status/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/status/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/status/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/status/status.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/status/status.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/status/status.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/status/status.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/systemnotifications.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/systemnotifications.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/systemnotifications.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/systemnotifications/systemnotifications.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/users/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/userscandos.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/userscandos.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/userscandos.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/userscandos/userscandos.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/delete.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/delete.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/delete.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/delete.cql diff --git a/Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/usersettings.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/usersettings.cql similarity index 100% rename from Human-Connection/deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/usersettings.cql rename to deployment/legacy-migration/maintenance-worker/migration/neo4j/usersettings/usersettings.cql diff --git a/Human-Connection/deployment/minikube/README.md b/deployment/minikube/README.md similarity index 100% rename from Human-Connection/deployment/minikube/README.md rename to deployment/minikube/README.md diff --git a/Human-Connection/deployment/namespace.yaml b/deployment/namespace.yaml similarity index 100% rename from Human-Connection/deployment/namespace.yaml rename to deployment/namespace.yaml diff --git a/Human-Connection/deployment/volumes/README.md b/deployment/volumes/README.md similarity index 100% rename from Human-Connection/deployment/volumes/README.md rename to deployment/volumes/README.md diff --git a/Human-Connection/deployment/volumes/neo4j-data.yaml b/deployment/volumes/neo4j-data.yaml similarity index 100% rename from Human-Connection/deployment/volumes/neo4j-data.yaml rename to deployment/volumes/neo4j-data.yaml diff --git a/Human-Connection/deployment/volumes/neo4j-offline-backup/README.md b/deployment/volumes/neo4j-offline-backup/README.md similarity index 100% rename from Human-Connection/deployment/volumes/neo4j-offline-backup/README.md rename to deployment/volumes/neo4j-offline-backup/README.md diff --git a/Human-Connection/deployment/volumes/reclaim-policy/README.md b/deployment/volumes/reclaim-policy/README.md similarity index 100% rename from Human-Connection/deployment/volumes/reclaim-policy/README.md rename to deployment/volumes/reclaim-policy/README.md diff --git a/Human-Connection/deployment/volumes/uploads.yaml b/deployment/volumes/uploads.yaml similarity index 100% rename from Human-Connection/deployment/volumes/uploads.yaml rename to deployment/volumes/uploads.yaml diff --git a/Human-Connection/deployment/volumes/velero/README.md b/deployment/volumes/velero/README.md similarity index 100% rename from Human-Connection/deployment/volumes/velero/README.md rename to deployment/volumes/velero/README.md diff --git a/Human-Connection/deployment/volumes/volume-snapshots/README.md b/deployment/volumes/volume-snapshots/README.md similarity index 100% rename from Human-Connection/deployment/volumes/volume-snapshots/README.md rename to deployment/volumes/volume-snapshots/README.md diff --git a/Human-Connection/deployment/volumes/volume-snapshots/digital-ocean-volume-snapshots.png b/deployment/volumes/volume-snapshots/digital-ocean-volume-snapshots.png similarity index 100% rename from Human-Connection/deployment/volumes/volume-snapshots/digital-ocean-volume-snapshots.png rename to deployment/volumes/volume-snapshots/digital-ocean-volume-snapshots.png diff --git a/Human-Connection/deployment/volumes/volume-snapshots/neo4j-data.yaml b/deployment/volumes/volume-snapshots/neo4j-data.yaml similarity index 100% rename from Human-Connection/deployment/volumes/volume-snapshots/neo4j-data.yaml rename to deployment/volumes/volume-snapshots/neo4j-data.yaml diff --git a/Human-Connection/deployment/volumes/volume-snapshots/snapshot.yaml b/deployment/volumes/volume-snapshots/snapshot.yaml similarity index 100% rename from Human-Connection/deployment/volumes/volume-snapshots/snapshot.yaml rename to deployment/volumes/volume-snapshots/snapshot.yaml diff --git a/Human-Connection/docker-compose.maintenance.yml b/docker-compose.maintenance.yml similarity index 100% rename from Human-Connection/docker-compose.maintenance.yml rename to docker-compose.maintenance.yml diff --git a/Human-Connection/docker-compose.override.yml b/docker-compose.override.yml similarity index 100% rename from Human-Connection/docker-compose.override.yml rename to docker-compose.override.yml diff --git a/Human-Connection/docker-compose.travis.yml b/docker-compose.travis.yml similarity index 100% rename from Human-Connection/docker-compose.travis.yml rename to docker-compose.travis.yml diff --git a/Human-Connection/docker-compose.yml b/docker-compose.yml similarity index 100% rename from Human-Connection/docker-compose.yml rename to docker-compose.yml diff --git a/Human-Connection/edit-this-documentation.md b/edit-this-documentation.md similarity index 100% rename from Human-Connection/edit-this-documentation.md rename to edit-this-documentation.md diff --git a/Human-Connection/installation.md b/installation.md similarity index 100% rename from Human-Connection/installation.md rename to installation.md diff --git a/Human-Connection/neo4j/.env.template b/neo4j/.env.template similarity index 100% rename from Human-Connection/neo4j/.env.template rename to neo4j/.env.template diff --git a/Human-Connection/neo4j/.gitignore b/neo4j/.gitignore similarity index 100% rename from Human-Connection/neo4j/.gitignore rename to neo4j/.gitignore diff --git a/Human-Connection/neo4j/Dockerfile b/neo4j/Dockerfile similarity index 100% rename from Human-Connection/neo4j/Dockerfile rename to neo4j/Dockerfile diff --git a/Human-Connection/neo4j/README.md b/neo4j/README.md similarity index 100% rename from Human-Connection/neo4j/README.md rename to neo4j/README.md diff --git a/Human-Connection/neo4j/db_setup.sh b/neo4j/db_setup.sh similarity index 100% rename from Human-Connection/neo4j/db_setup.sh rename to neo4j/db_setup.sh diff --git a/Human-Connection/neo4j/entrypoint.sh b/neo4j/entrypoint.sh similarity index 100% rename from Human-Connection/neo4j/entrypoint.sh rename to neo4j/entrypoint.sh diff --git a/Human-Connection/package.json b/package.json similarity index 100% rename from Human-Connection/package.json rename to package.json diff --git a/Human-Connection/scripts/deploy.sh b/scripts/deploy.sh similarity index 100% rename from Human-Connection/scripts/deploy.sh rename to scripts/deploy.sh diff --git a/Human-Connection/scripts/docker_push.sh b/scripts/docker_push.sh similarity index 100% rename from Human-Connection/scripts/docker_push.sh rename to scripts/docker_push.sh diff --git a/Human-Connection/scripts/patch-deployment.yaml b/scripts/patch-deployment.yaml similarity index 100% rename from Human-Connection/scripts/patch-deployment.yaml rename to scripts/patch-deployment.yaml diff --git a/Human-Connection/scripts/setup_kubernetes.sh b/scripts/setup_kubernetes.sh similarity index 100% rename from Human-Connection/scripts/setup_kubernetes.sh rename to scripts/setup_kubernetes.sh diff --git a/Human-Connection/testing.md b/testing.md similarity index 100% rename from Human-Connection/testing.md rename to testing.md diff --git a/Human-Connection/webapp/.babelrc b/webapp/.babelrc similarity index 100% rename from Human-Connection/webapp/.babelrc rename to webapp/.babelrc diff --git a/Human-Connection/webapp/.dockerignore b/webapp/.dockerignore similarity index 100% rename from Human-Connection/webapp/.dockerignore rename to webapp/.dockerignore diff --git a/Human-Connection/webapp/.editorconfig b/webapp/.editorconfig similarity index 100% rename from Human-Connection/webapp/.editorconfig rename to webapp/.editorconfig diff --git a/Human-Connection/webapp/.env.template b/webapp/.env.template similarity index 100% rename from Human-Connection/webapp/.env.template rename to webapp/.env.template diff --git a/Human-Connection/webapp/.eslintignore b/webapp/.eslintignore similarity index 100% rename from Human-Connection/webapp/.eslintignore rename to webapp/.eslintignore diff --git a/Human-Connection/webapp/.eslintrc.js b/webapp/.eslintrc.js similarity index 100% rename from Human-Connection/webapp/.eslintrc.js rename to webapp/.eslintrc.js diff --git a/Human-Connection/webapp/.gitignore b/webapp/.gitignore similarity index 100% rename from Human-Connection/webapp/.gitignore rename to webapp/.gitignore diff --git a/Human-Connection/webapp/.prettierrc.js b/webapp/.prettierrc.js similarity index 100% rename from Human-Connection/webapp/.prettierrc.js rename to webapp/.prettierrc.js diff --git a/Human-Connection/webapp/Dockerfile b/webapp/Dockerfile similarity index 100% rename from Human-Connection/webapp/Dockerfile rename to webapp/Dockerfile diff --git a/Human-Connection/webapp/README.md b/webapp/README.md similarity index 100% rename from Human-Connection/webapp/README.md rename to webapp/README.md diff --git a/Human-Connection/webapp/assets.md b/webapp/assets.md similarity index 100% rename from Human-Connection/webapp/assets.md rename to webapp/assets.md diff --git a/Human-Connection/webapp/assets/styles/imports/_toast.scss b/webapp/assets/styles/imports/_toast.scss similarity index 100% rename from Human-Connection/webapp/assets/styles/imports/_toast.scss rename to webapp/assets/styles/imports/_toast.scss diff --git a/Human-Connection/webapp/assets/styles/imports/_tooltip.scss b/webapp/assets/styles/imports/_tooltip.scss similarity index 100% rename from Human-Connection/webapp/assets/styles/imports/_tooltip.scss rename to webapp/assets/styles/imports/_tooltip.scss diff --git a/Human-Connection/webapp/assets/styles/main.scss b/webapp/assets/styles/main.scss similarity index 100% rename from Human-Connection/webapp/assets/styles/main.scss rename to webapp/assets/styles/main.scss diff --git a/Human-Connection/webapp/components.md b/webapp/components.md similarity index 100% rename from Human-Connection/webapp/components.md rename to webapp/components.md diff --git a/Human-Connection/webapp/components/Avatar/Avatar.spec.js b/webapp/components/Avatar/Avatar.spec.js similarity index 100% rename from Human-Connection/webapp/components/Avatar/Avatar.spec.js rename to webapp/components/Avatar/Avatar.spec.js diff --git a/Human-Connection/webapp/components/Avatar/Avatar.vue b/webapp/components/Avatar/Avatar.vue similarity index 100% rename from Human-Connection/webapp/components/Avatar/Avatar.vue rename to webapp/components/Avatar/Avatar.vue diff --git a/Human-Connection/webapp/components/Badges.spec.js b/webapp/components/Badges.spec.js similarity index 100% rename from Human-Connection/webapp/components/Badges.spec.js rename to webapp/components/Badges.spec.js diff --git a/Human-Connection/webapp/components/Badges.vue b/webapp/components/Badges.vue similarity index 100% rename from Human-Connection/webapp/components/Badges.vue rename to webapp/components/Badges.vue diff --git a/Human-Connection/webapp/components/CategoriesSelect/CategoriesSelect.spec.js b/webapp/components/CategoriesSelect/CategoriesSelect.spec.js similarity index 100% rename from Human-Connection/webapp/components/CategoriesSelect/CategoriesSelect.spec.js rename to webapp/components/CategoriesSelect/CategoriesSelect.spec.js diff --git a/Human-Connection/webapp/components/CategoriesSelect/CategoriesSelect.vue b/webapp/components/CategoriesSelect/CategoriesSelect.vue similarity index 100% rename from Human-Connection/webapp/components/CategoriesSelect/CategoriesSelect.vue rename to webapp/components/CategoriesSelect/CategoriesSelect.vue diff --git a/Human-Connection/webapp/components/Category/Readme.md b/webapp/components/Category/Readme.md similarity index 100% rename from Human-Connection/webapp/components/Category/Readme.md rename to webapp/components/Category/Readme.md diff --git a/Human-Connection/webapp/components/Category/index.spec.js b/webapp/components/Category/index.spec.js similarity index 100% rename from Human-Connection/webapp/components/Category/index.spec.js rename to webapp/components/Category/index.spec.js diff --git a/Human-Connection/webapp/components/Category/index.vue b/webapp/components/Category/index.vue similarity index 100% rename from Human-Connection/webapp/components/Category/index.vue rename to webapp/components/Category/index.vue diff --git a/Human-Connection/webapp/components/Comment.spec.js b/webapp/components/Comment.spec.js similarity index 100% rename from Human-Connection/webapp/components/Comment.spec.js rename to webapp/components/Comment.spec.js diff --git a/Human-Connection/webapp/components/Comment.vue b/webapp/components/Comment.vue similarity index 100% rename from Human-Connection/webapp/components/Comment.vue rename to webapp/components/Comment.vue diff --git a/Human-Connection/webapp/components/ContentMenu.vue b/webapp/components/ContentMenu.vue similarity index 100% rename from Human-Connection/webapp/components/ContentMenu.vue rename to webapp/components/ContentMenu.vue diff --git a/Human-Connection/webapp/components/ContributionForm/ContributionForm.spec.js b/webapp/components/ContributionForm/ContributionForm.spec.js similarity index 100% rename from Human-Connection/webapp/components/ContributionForm/ContributionForm.spec.js rename to webapp/components/ContributionForm/ContributionForm.spec.js diff --git a/Human-Connection/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue similarity index 100% rename from Human-Connection/webapp/components/ContributionForm/ContributionForm.vue rename to webapp/components/ContributionForm/ContributionForm.vue diff --git a/Human-Connection/webapp/components/CountTo.vue b/webapp/components/CountTo.vue similarity index 100% rename from Human-Connection/webapp/components/CountTo.vue rename to webapp/components/CountTo.vue diff --git a/Human-Connection/webapp/components/DeleteData/DeleteData.spec.js b/webapp/components/DeleteData/DeleteData.spec.js similarity index 100% rename from Human-Connection/webapp/components/DeleteData/DeleteData.spec.js rename to webapp/components/DeleteData/DeleteData.spec.js diff --git a/Human-Connection/webapp/components/DeleteData/DeleteData.vue b/webapp/components/DeleteData/DeleteData.vue similarity index 100% rename from Human-Connection/webapp/components/DeleteData/DeleteData.vue rename to webapp/components/DeleteData/DeleteData.vue diff --git a/Human-Connection/webapp/components/Dropdown.vue b/webapp/components/Dropdown.vue similarity index 100% rename from Human-Connection/webapp/components/Dropdown.vue rename to webapp/components/Dropdown.vue diff --git a/Human-Connection/webapp/components/Editor/index.vue b/webapp/components/Editor/index.vue similarity index 100% rename from Human-Connection/webapp/components/Editor/index.vue rename to webapp/components/Editor/index.vue diff --git a/Human-Connection/webapp/components/Editor/nodes/Mention.js b/webapp/components/Editor/nodes/Mention.js similarity index 100% rename from Human-Connection/webapp/components/Editor/nodes/Mention.js rename to webapp/components/Editor/nodes/Mention.js diff --git a/Human-Connection/webapp/components/Editor/plugins/eventHandler.js b/webapp/components/Editor/plugins/eventHandler.js similarity index 100% rename from Human-Connection/webapp/components/Editor/plugins/eventHandler.js rename to webapp/components/Editor/plugins/eventHandler.js diff --git a/Human-Connection/webapp/components/Editor/spec.js b/webapp/components/Editor/spec.js similarity index 100% rename from Human-Connection/webapp/components/Editor/spec.js rename to webapp/components/Editor/spec.js diff --git a/Human-Connection/webapp/components/Empty.vue b/webapp/components/Empty.vue similarity index 100% rename from Human-Connection/webapp/components/Empty.vue rename to webapp/components/Empty.vue diff --git a/Human-Connection/webapp/components/FilterMenu/FilterMenu.spec.js b/webapp/components/FilterMenu/FilterMenu.spec.js similarity index 100% rename from Human-Connection/webapp/components/FilterMenu/FilterMenu.spec.js rename to webapp/components/FilterMenu/FilterMenu.spec.js diff --git a/Human-Connection/webapp/components/FilterMenu/FilterMenu.vue b/webapp/components/FilterMenu/FilterMenu.vue similarity index 100% rename from Human-Connection/webapp/components/FilterMenu/FilterMenu.vue rename to webapp/components/FilterMenu/FilterMenu.vue diff --git a/Human-Connection/webapp/components/FollowButton.vue b/webapp/components/FollowButton.vue similarity index 100% rename from Human-Connection/webapp/components/FollowButton.vue rename to webapp/components/FollowButton.vue diff --git a/Human-Connection/webapp/components/LoadMore.vue b/webapp/components/LoadMore.vue similarity index 100% rename from Human-Connection/webapp/components/LoadMore.vue rename to webapp/components/LoadMore.vue diff --git a/Human-Connection/webapp/components/LocaleSwitch/LocaleSwitch.spec.js b/webapp/components/LocaleSwitch/LocaleSwitch.spec.js similarity index 100% rename from Human-Connection/webapp/components/LocaleSwitch/LocaleSwitch.spec.js rename to webapp/components/LocaleSwitch/LocaleSwitch.spec.js diff --git a/Human-Connection/webapp/components/LocaleSwitch/LocaleSwitch.vue b/webapp/components/LocaleSwitch/LocaleSwitch.vue similarity index 100% rename from Human-Connection/webapp/components/LocaleSwitch/LocaleSwitch.vue rename to webapp/components/LocaleSwitch/LocaleSwitch.vue diff --git a/Human-Connection/webapp/components/Logo.vue b/webapp/components/Logo.vue similarity index 100% rename from Human-Connection/webapp/components/Logo.vue rename to webapp/components/Logo.vue diff --git a/Human-Connection/webapp/components/Modal.spec.js b/webapp/components/Modal.spec.js similarity index 100% rename from Human-Connection/webapp/components/Modal.spec.js rename to webapp/components/Modal.spec.js diff --git a/Human-Connection/webapp/components/Modal.vue b/webapp/components/Modal.vue similarity index 100% rename from Human-Connection/webapp/components/Modal.vue rename to webapp/components/Modal.vue diff --git a/Human-Connection/webapp/components/Modal/ConfirmModal.spec.js b/webapp/components/Modal/ConfirmModal.spec.js similarity index 100% rename from Human-Connection/webapp/components/Modal/ConfirmModal.spec.js rename to webapp/components/Modal/ConfirmModal.spec.js diff --git a/Human-Connection/webapp/components/Modal/ConfirmModal.vue b/webapp/components/Modal/ConfirmModal.vue similarity index 100% rename from Human-Connection/webapp/components/Modal/ConfirmModal.vue rename to webapp/components/Modal/ConfirmModal.vue diff --git a/Human-Connection/webapp/components/Modal/DisableModal.spec.js b/webapp/components/Modal/DisableModal.spec.js similarity index 100% rename from Human-Connection/webapp/components/Modal/DisableModal.spec.js rename to webapp/components/Modal/DisableModal.spec.js diff --git a/Human-Connection/webapp/components/Modal/DisableModal.vue b/webapp/components/Modal/DisableModal.vue similarity index 100% rename from Human-Connection/webapp/components/Modal/DisableModal.vue rename to webapp/components/Modal/DisableModal.vue diff --git a/Human-Connection/webapp/components/Modal/ReportModal.spec.js b/webapp/components/Modal/ReportModal.spec.js similarity index 100% rename from Human-Connection/webapp/components/Modal/ReportModal.spec.js rename to webapp/components/Modal/ReportModal.spec.js diff --git a/Human-Connection/webapp/components/Modal/ReportModal.vue b/webapp/components/Modal/ReportModal.vue similarity index 100% rename from Human-Connection/webapp/components/Modal/ReportModal.vue rename to webapp/components/Modal/ReportModal.vue diff --git a/Human-Connection/webapp/components/Password/Change.spec.js b/webapp/components/Password/Change.spec.js similarity index 100% rename from Human-Connection/webapp/components/Password/Change.spec.js rename to webapp/components/Password/Change.spec.js diff --git a/Human-Connection/webapp/components/Password/Change.vue b/webapp/components/Password/Change.vue similarity index 100% rename from Human-Connection/webapp/components/Password/Change.vue rename to webapp/components/Password/Change.vue diff --git a/Human-Connection/webapp/components/Password/Strength.vue b/webapp/components/Password/Strength.vue similarity index 100% rename from Human-Connection/webapp/components/Password/Strength.vue rename to webapp/components/Password/Strength.vue diff --git a/Human-Connection/webapp/components/PasswordReset/ChangePassword.spec.js b/webapp/components/PasswordReset/ChangePassword.spec.js similarity index 100% rename from Human-Connection/webapp/components/PasswordReset/ChangePassword.spec.js rename to webapp/components/PasswordReset/ChangePassword.spec.js diff --git a/Human-Connection/webapp/components/PasswordReset/ChangePassword.vue b/webapp/components/PasswordReset/ChangePassword.vue similarity index 100% rename from Human-Connection/webapp/components/PasswordReset/ChangePassword.vue rename to webapp/components/PasswordReset/ChangePassword.vue diff --git a/Human-Connection/webapp/components/PasswordReset/Request.spec.js b/webapp/components/PasswordReset/Request.spec.js similarity index 100% rename from Human-Connection/webapp/components/PasswordReset/Request.spec.js rename to webapp/components/PasswordReset/Request.spec.js diff --git a/Human-Connection/webapp/components/PasswordReset/Request.vue b/webapp/components/PasswordReset/Request.vue similarity index 100% rename from Human-Connection/webapp/components/PasswordReset/Request.vue rename to webapp/components/PasswordReset/Request.vue diff --git a/Human-Connection/webapp/components/PasswordReset/VerifyCode.spec.js b/webapp/components/PasswordReset/VerifyCode.spec.js similarity index 100% rename from Human-Connection/webapp/components/PasswordReset/VerifyCode.spec.js rename to webapp/components/PasswordReset/VerifyCode.spec.js diff --git a/Human-Connection/webapp/components/PasswordReset/VerifyCode.vue b/webapp/components/PasswordReset/VerifyCode.vue similarity index 100% rename from Human-Connection/webapp/components/PasswordReset/VerifyCode.vue rename to webapp/components/PasswordReset/VerifyCode.vue diff --git a/Human-Connection/webapp/components/PostCard/index.spec.js b/webapp/components/PostCard/index.spec.js similarity index 100% rename from Human-Connection/webapp/components/PostCard/index.spec.js rename to webapp/components/PostCard/index.spec.js diff --git a/Human-Connection/webapp/components/PostCard/index.vue b/webapp/components/PostCard/index.vue similarity index 100% rename from Human-Connection/webapp/components/PostCard/index.vue rename to webapp/components/PostCard/index.vue diff --git a/Human-Connection/webapp/components/RelativeDateTime/Readme.md b/webapp/components/RelativeDateTime/Readme.md similarity index 100% rename from Human-Connection/webapp/components/RelativeDateTime/Readme.md rename to webapp/components/RelativeDateTime/Readme.md diff --git a/Human-Connection/webapp/components/RelativeDateTime/index.vue b/webapp/components/RelativeDateTime/index.vue similarity index 100% rename from Human-Connection/webapp/components/RelativeDateTime/index.vue rename to webapp/components/RelativeDateTime/index.vue diff --git a/Human-Connection/webapp/components/RelativeDateTime/spec.js b/webapp/components/RelativeDateTime/spec.js similarity index 100% rename from Human-Connection/webapp/components/RelativeDateTime/spec.js rename to webapp/components/RelativeDateTime/spec.js diff --git a/Human-Connection/webapp/components/ReleaseModal/ReleaseModal.spec.js b/webapp/components/ReleaseModal/ReleaseModal.spec.js similarity index 100% rename from Human-Connection/webapp/components/ReleaseModal/ReleaseModal.spec.js rename to webapp/components/ReleaseModal/ReleaseModal.spec.js diff --git a/Human-Connection/webapp/components/ReleaseModal/ReleaseModal.vue b/webapp/components/ReleaseModal/ReleaseModal.vue similarity index 100% rename from Human-Connection/webapp/components/ReleaseModal/ReleaseModal.vue rename to webapp/components/ReleaseModal/ReleaseModal.vue diff --git a/Human-Connection/webapp/components/Ribbon/index.spec.js b/webapp/components/Ribbon/index.spec.js similarity index 100% rename from Human-Connection/webapp/components/Ribbon/index.spec.js rename to webapp/components/Ribbon/index.spec.js diff --git a/Human-Connection/webapp/components/Ribbon/index.vue b/webapp/components/Ribbon/index.vue similarity index 100% rename from Human-Connection/webapp/components/Ribbon/index.vue rename to webapp/components/Ribbon/index.vue diff --git a/Human-Connection/webapp/components/SearchInput.spec.js b/webapp/components/SearchInput.spec.js similarity index 100% rename from Human-Connection/webapp/components/SearchInput.spec.js rename to webapp/components/SearchInput.spec.js diff --git a/Human-Connection/webapp/components/SearchInput.vue b/webapp/components/SearchInput.vue similarity index 100% rename from Human-Connection/webapp/components/SearchInput.vue rename to webapp/components/SearchInput.vue diff --git a/Human-Connection/webapp/components/ShoutButton.vue b/webapp/components/ShoutButton.vue similarity index 100% rename from Human-Connection/webapp/components/ShoutButton.vue rename to webapp/components/ShoutButton.vue diff --git a/Human-Connection/webapp/components/Tag/Readme.md b/webapp/components/Tag/Readme.md similarity index 100% rename from Human-Connection/webapp/components/Tag/Readme.md rename to webapp/components/Tag/Readme.md diff --git a/Human-Connection/webapp/components/Tag/index.vue b/webapp/components/Tag/index.vue similarity index 100% rename from Human-Connection/webapp/components/Tag/index.vue rename to webapp/components/Tag/index.vue diff --git a/Human-Connection/webapp/components/Tag/spec.js b/webapp/components/Tag/spec.js similarity index 100% rename from Human-Connection/webapp/components/Tag/spec.js rename to webapp/components/Tag/spec.js diff --git a/Human-Connection/webapp/components/TeaserImage/TeaserImage.spec.js b/webapp/components/TeaserImage/TeaserImage.spec.js similarity index 100% rename from Human-Connection/webapp/components/TeaserImage/TeaserImage.spec.js rename to webapp/components/TeaserImage/TeaserImage.spec.js diff --git a/Human-Connection/webapp/components/TeaserImage/TeaserImage.vue b/webapp/components/TeaserImage/TeaserImage.vue similarity index 100% rename from Human-Connection/webapp/components/TeaserImage/TeaserImage.vue rename to webapp/components/TeaserImage/TeaserImage.vue diff --git a/Human-Connection/webapp/components/Upload/index.vue b/webapp/components/Upload/index.vue similarity index 100% rename from Human-Connection/webapp/components/Upload/index.vue rename to webapp/components/Upload/index.vue diff --git a/Human-Connection/webapp/components/Upload/spec.js b/webapp/components/Upload/spec.js similarity index 100% rename from Human-Connection/webapp/components/Upload/spec.js rename to webapp/components/Upload/spec.js diff --git a/Human-Connection/webapp/components/User/index.vue b/webapp/components/User/index.vue similarity index 100% rename from Human-Connection/webapp/components/User/index.vue rename to webapp/components/User/index.vue diff --git a/Human-Connection/webapp/components/User/spec.js b/webapp/components/User/spec.js similarity index 100% rename from Human-Connection/webapp/components/User/spec.js rename to webapp/components/User/spec.js diff --git a/Human-Connection/webapp/components/comments/CommentForm/index.vue b/webapp/components/comments/CommentForm/index.vue similarity index 100% rename from Human-Connection/webapp/components/comments/CommentForm/index.vue rename to webapp/components/comments/CommentForm/index.vue diff --git a/Human-Connection/webapp/components/comments/CommentForm/spec.js b/webapp/components/comments/CommentForm/spec.js similarity index 100% rename from Human-Connection/webapp/components/comments/CommentForm/spec.js rename to webapp/components/comments/CommentForm/spec.js diff --git a/Human-Connection/webapp/components/comments/CommentList/CommentList.spec.js b/webapp/components/comments/CommentList/CommentList.spec.js similarity index 100% rename from Human-Connection/webapp/components/comments/CommentList/CommentList.spec.js rename to webapp/components/comments/CommentList/CommentList.spec.js diff --git a/Human-Connection/webapp/components/comments/CommentList/index.vue b/webapp/components/comments/CommentList/index.vue similarity index 100% rename from Human-Connection/webapp/components/comments/CommentList/index.vue rename to webapp/components/comments/CommentList/index.vue diff --git a/Human-Connection/webapp/components/notifications/Notification/index.vue b/webapp/components/notifications/Notification/index.vue similarity index 100% rename from Human-Connection/webapp/components/notifications/Notification/index.vue rename to webapp/components/notifications/Notification/index.vue diff --git a/Human-Connection/webapp/components/notifications/Notification/spec.js b/webapp/components/notifications/Notification/spec.js similarity index 100% rename from Human-Connection/webapp/components/notifications/Notification/spec.js rename to webapp/components/notifications/Notification/spec.js diff --git a/Human-Connection/webapp/components/notifications/NotificationList/index.vue b/webapp/components/notifications/NotificationList/index.vue similarity index 100% rename from Human-Connection/webapp/components/notifications/NotificationList/index.vue rename to webapp/components/notifications/NotificationList/index.vue diff --git a/Human-Connection/webapp/components/notifications/NotificationList/spec.js b/webapp/components/notifications/NotificationList/spec.js similarity index 100% rename from Human-Connection/webapp/components/notifications/NotificationList/spec.js rename to webapp/components/notifications/NotificationList/spec.js diff --git a/Human-Connection/webapp/components/notifications/NotificationMenu/index.vue b/webapp/components/notifications/NotificationMenu/index.vue similarity index 100% rename from Human-Connection/webapp/components/notifications/NotificationMenu/index.vue rename to webapp/components/notifications/NotificationMenu/index.vue diff --git a/Human-Connection/webapp/components/notifications/NotificationMenu/spec.js b/webapp/components/notifications/NotificationMenu/spec.js similarity index 100% rename from Human-Connection/webapp/components/notifications/NotificationMenu/spec.js rename to webapp/components/notifications/NotificationMenu/spec.js diff --git a/Human-Connection/webapp/components/utils/PostHelpers.js b/webapp/components/utils/PostHelpers.js similarity index 100% rename from Human-Connection/webapp/components/utils/PostHelpers.js rename to webapp/components/utils/PostHelpers.js diff --git a/Human-Connection/webapp/graphql/CommentMutations.js b/webapp/graphql/CommentMutations.js similarity index 100% rename from Human-Connection/webapp/graphql/CommentMutations.js rename to webapp/graphql/CommentMutations.js diff --git a/Human-Connection/webapp/graphql/CommentQuery.js b/webapp/graphql/CommentQuery.js similarity index 100% rename from Human-Connection/webapp/graphql/CommentQuery.js rename to webapp/graphql/CommentQuery.js diff --git a/Human-Connection/webapp/graphql/ModerationListQuery.js b/webapp/graphql/ModerationListQuery.js similarity index 100% rename from Human-Connection/webapp/graphql/ModerationListQuery.js rename to webapp/graphql/ModerationListQuery.js diff --git a/Human-Connection/webapp/graphql/PostCommentsQuery.js b/webapp/graphql/PostCommentsQuery.js similarity index 100% rename from Human-Connection/webapp/graphql/PostCommentsQuery.js rename to webapp/graphql/PostCommentsQuery.js diff --git a/Human-Connection/webapp/graphql/PostMutations.js b/webapp/graphql/PostMutations.js similarity index 100% rename from Human-Connection/webapp/graphql/PostMutations.js rename to webapp/graphql/PostMutations.js diff --git a/Human-Connection/webapp/graphql/PostQuery.js b/webapp/graphql/PostQuery.js similarity index 100% rename from Human-Connection/webapp/graphql/PostQuery.js rename to webapp/graphql/PostQuery.js diff --git a/Human-Connection/webapp/graphql/UserProfile/Post.js b/webapp/graphql/UserProfile/Post.js similarity index 100% rename from Human-Connection/webapp/graphql/UserProfile/Post.js rename to webapp/graphql/UserProfile/Post.js diff --git a/Human-Connection/webapp/graphql/UserProfile/User.js b/webapp/graphql/UserProfile/User.js similarity index 100% rename from Human-Connection/webapp/graphql/UserProfile/User.js rename to webapp/graphql/UserProfile/User.js diff --git a/Human-Connection/webapp/layouts.md b/webapp/layouts.md similarity index 100% rename from Human-Connection/webapp/layouts.md rename to webapp/layouts.md diff --git a/Human-Connection/webapp/layouts/blank.vue b/webapp/layouts/blank.vue similarity index 100% rename from Human-Connection/webapp/layouts/blank.vue rename to webapp/layouts/blank.vue diff --git a/Human-Connection/webapp/layouts/default.vue b/webapp/layouts/default.vue similarity index 100% rename from Human-Connection/webapp/layouts/default.vue rename to webapp/layouts/default.vue diff --git a/Human-Connection/webapp/locales/de.json b/webapp/locales/de.json similarity index 100% rename from Human-Connection/webapp/locales/de.json rename to webapp/locales/de.json diff --git a/Human-Connection/webapp/locales/en.json b/webapp/locales/en.json similarity index 100% rename from Human-Connection/webapp/locales/en.json rename to webapp/locales/en.json diff --git a/Human-Connection/webapp/locales/es.json b/webapp/locales/es.json similarity index 100% rename from Human-Connection/webapp/locales/es.json rename to webapp/locales/es.json diff --git a/Human-Connection/webapp/locales/fr.json b/webapp/locales/fr.json similarity index 100% rename from Human-Connection/webapp/locales/fr.json rename to webapp/locales/fr.json diff --git a/Human-Connection/webapp/locales/index.js b/webapp/locales/index.js similarity index 100% rename from Human-Connection/webapp/locales/index.js rename to webapp/locales/index.js diff --git a/Human-Connection/webapp/locales/it.json b/webapp/locales/it.json similarity index 100% rename from Human-Connection/webapp/locales/it.json rename to webapp/locales/it.json diff --git a/Human-Connection/webapp/locales/nl.json b/webapp/locales/nl.json similarity index 100% rename from Human-Connection/webapp/locales/nl.json rename to webapp/locales/nl.json diff --git a/Human-Connection/webapp/locales/pl.json b/webapp/locales/pl.json similarity index 100% rename from Human-Connection/webapp/locales/pl.json rename to webapp/locales/pl.json diff --git a/Human-Connection/webapp/locales/pt.json b/webapp/locales/pt.json similarity index 100% rename from Human-Connection/webapp/locales/pt.json rename to webapp/locales/pt.json diff --git a/Human-Connection/webapp/lokalise.png b/webapp/lokalise.png similarity index 100% rename from Human-Connection/webapp/lokalise.png rename to webapp/lokalise.png diff --git a/Human-Connection/webapp/middleware.md b/webapp/middleware.md similarity index 100% rename from Human-Connection/webapp/middleware.md rename to webapp/middleware.md diff --git a/Human-Connection/webapp/middleware/authenticated.js b/webapp/middleware/authenticated.js similarity index 100% rename from Human-Connection/webapp/middleware/authenticated.js rename to webapp/middleware/authenticated.js diff --git a/Human-Connection/webapp/middleware/isAdmin.js b/webapp/middleware/isAdmin.js similarity index 100% rename from Human-Connection/webapp/middleware/isAdmin.js rename to webapp/middleware/isAdmin.js diff --git a/Human-Connection/webapp/middleware/isModerator.js b/webapp/middleware/isModerator.js similarity index 100% rename from Human-Connection/webapp/middleware/isModerator.js rename to webapp/middleware/isModerator.js diff --git a/Human-Connection/webapp/mixins/persistentLinks.js b/webapp/mixins/persistentLinks.js similarity index 100% rename from Human-Connection/webapp/mixins/persistentLinks.js rename to webapp/mixins/persistentLinks.js diff --git a/Human-Connection/webapp/mixins/seo.js b/webapp/mixins/seo.js similarity index 100% rename from Human-Connection/webapp/mixins/seo.js rename to webapp/mixins/seo.js diff --git a/Human-Connection/webapp/nuxt.config.js b/webapp/nuxt.config.js similarity index 100% rename from Human-Connection/webapp/nuxt.config.js rename to webapp/nuxt.config.js diff --git a/Human-Connection/webapp/package.json b/webapp/package.json similarity index 100% rename from Human-Connection/webapp/package.json rename to webapp/package.json diff --git a/Human-Connection/webapp/pages.md b/webapp/pages.md similarity index 100% rename from Human-Connection/webapp/pages.md rename to webapp/pages.md diff --git a/Human-Connection/webapp/pages/admin.vue b/webapp/pages/admin.vue similarity index 100% rename from Human-Connection/webapp/pages/admin.vue rename to webapp/pages/admin.vue diff --git a/Human-Connection/webapp/pages/admin/categories.vue b/webapp/pages/admin/categories.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/categories.vue rename to webapp/pages/admin/categories.vue diff --git a/Human-Connection/webapp/pages/admin/index.vue b/webapp/pages/admin/index.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/index.vue rename to webapp/pages/admin/index.vue diff --git a/Human-Connection/webapp/pages/admin/notifications.vue b/webapp/pages/admin/notifications.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/notifications.vue rename to webapp/pages/admin/notifications.vue diff --git a/Human-Connection/webapp/pages/admin/organizations.vue b/webapp/pages/admin/organizations.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/organizations.vue rename to webapp/pages/admin/organizations.vue diff --git a/Human-Connection/webapp/pages/admin/pages.vue b/webapp/pages/admin/pages.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/pages.vue rename to webapp/pages/admin/pages.vue diff --git a/Human-Connection/webapp/pages/admin/settings.vue b/webapp/pages/admin/settings.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/settings.vue rename to webapp/pages/admin/settings.vue diff --git a/Human-Connection/webapp/pages/admin/tags.vue b/webapp/pages/admin/tags.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/tags.vue rename to webapp/pages/admin/tags.vue diff --git a/Human-Connection/webapp/pages/admin/users.vue b/webapp/pages/admin/users.vue similarity index 100% rename from Human-Connection/webapp/pages/admin/users.vue rename to webapp/pages/admin/users.vue diff --git a/Human-Connection/webapp/pages/index.vue b/webapp/pages/index.vue similarity index 100% rename from Human-Connection/webapp/pages/index.vue rename to webapp/pages/index.vue diff --git a/Human-Connection/webapp/pages/login.vue b/webapp/pages/login.vue similarity index 100% rename from Human-Connection/webapp/pages/login.vue rename to webapp/pages/login.vue diff --git a/Human-Connection/webapp/pages/logout.vue b/webapp/pages/logout.vue similarity index 100% rename from Human-Connection/webapp/pages/logout.vue rename to webapp/pages/logout.vue diff --git a/Human-Connection/webapp/pages/moderation.vue b/webapp/pages/moderation.vue similarity index 100% rename from Human-Connection/webapp/pages/moderation.vue rename to webapp/pages/moderation.vue diff --git a/Human-Connection/webapp/pages/moderation/index.vue b/webapp/pages/moderation/index.vue similarity index 100% rename from Human-Connection/webapp/pages/moderation/index.vue rename to webapp/pages/moderation/index.vue diff --git a/Human-Connection/webapp/pages/password-reset.vue b/webapp/pages/password-reset.vue similarity index 100% rename from Human-Connection/webapp/pages/password-reset.vue rename to webapp/pages/password-reset.vue diff --git a/Human-Connection/webapp/pages/password-reset/change-password.vue b/webapp/pages/password-reset/change-password.vue similarity index 100% rename from Human-Connection/webapp/pages/password-reset/change-password.vue rename to webapp/pages/password-reset/change-password.vue diff --git a/Human-Connection/webapp/pages/password-reset/request.vue b/webapp/pages/password-reset/request.vue similarity index 100% rename from Human-Connection/webapp/pages/password-reset/request.vue rename to webapp/pages/password-reset/request.vue diff --git a/Human-Connection/webapp/pages/password-reset/verify-code.vue b/webapp/pages/password-reset/verify-code.vue similarity index 100% rename from Human-Connection/webapp/pages/password-reset/verify-code.vue rename to webapp/pages/password-reset/verify-code.vue diff --git a/Human-Connection/webapp/pages/post/_id.vue b/webapp/pages/post/_id.vue similarity index 100% rename from Human-Connection/webapp/pages/post/_id.vue rename to webapp/pages/post/_id.vue diff --git a/Human-Connection/webapp/pages/post/_id/_slug/index.spec.js b/webapp/pages/post/_id/_slug/index.spec.js similarity index 100% rename from Human-Connection/webapp/pages/post/_id/_slug/index.spec.js rename to webapp/pages/post/_id/_slug/index.spec.js diff --git a/Human-Connection/webapp/pages/post/_id/_slug/index.vue b/webapp/pages/post/_id/_slug/index.vue similarity index 100% rename from Human-Connection/webapp/pages/post/_id/_slug/index.vue rename to webapp/pages/post/_id/_slug/index.vue diff --git a/Human-Connection/webapp/pages/post/_id/_slug/more-info.vue b/webapp/pages/post/_id/_slug/more-info.vue similarity index 100% rename from Human-Connection/webapp/pages/post/_id/_slug/more-info.vue rename to webapp/pages/post/_id/_slug/more-info.vue diff --git a/Human-Connection/webapp/pages/post/_id/_slug/take-action.vue b/webapp/pages/post/_id/_slug/take-action.vue similarity index 100% rename from Human-Connection/webapp/pages/post/_id/_slug/take-action.vue rename to webapp/pages/post/_id/_slug/take-action.vue diff --git a/Human-Connection/webapp/pages/post/create.vue b/webapp/pages/post/create.vue similarity index 100% rename from Human-Connection/webapp/pages/post/create.vue rename to webapp/pages/post/create.vue diff --git a/Human-Connection/webapp/pages/post/edit/_id.vue b/webapp/pages/post/edit/_id.vue similarity index 100% rename from Human-Connection/webapp/pages/post/edit/_id.vue rename to webapp/pages/post/edit/_id.vue diff --git a/Human-Connection/webapp/pages/profile/_id.vue b/webapp/pages/profile/_id.vue similarity index 100% rename from Human-Connection/webapp/pages/profile/_id.vue rename to webapp/pages/profile/_id.vue diff --git a/Human-Connection/webapp/pages/profile/_id/_slug.spec.js b/webapp/pages/profile/_id/_slug.spec.js similarity index 100% rename from Human-Connection/webapp/pages/profile/_id/_slug.spec.js rename to webapp/pages/profile/_id/_slug.spec.js diff --git a/Human-Connection/webapp/pages/profile/_id/_slug.vue b/webapp/pages/profile/_id/_slug.vue similarity index 100% rename from Human-Connection/webapp/pages/profile/_id/_slug.vue rename to webapp/pages/profile/_id/_slug.vue diff --git a/Human-Connection/webapp/pages/settings.vue b/webapp/pages/settings.vue similarity index 100% rename from Human-Connection/webapp/pages/settings.vue rename to webapp/pages/settings.vue diff --git a/Human-Connection/webapp/pages/settings/data-download.vue b/webapp/pages/settings/data-download.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/data-download.vue rename to webapp/pages/settings/data-download.vue diff --git a/Human-Connection/webapp/pages/settings/delete-account.vue b/webapp/pages/settings/delete-account.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/delete-account.vue rename to webapp/pages/settings/delete-account.vue diff --git a/Human-Connection/webapp/pages/settings/index.spec.js b/webapp/pages/settings/index.spec.js similarity index 100% rename from Human-Connection/webapp/pages/settings/index.spec.js rename to webapp/pages/settings/index.spec.js diff --git a/Human-Connection/webapp/pages/settings/index.vue b/webapp/pages/settings/index.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/index.vue rename to webapp/pages/settings/index.vue diff --git a/Human-Connection/webapp/pages/settings/invites.vue b/webapp/pages/settings/invites.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/invites.vue rename to webapp/pages/settings/invites.vue diff --git a/Human-Connection/webapp/pages/settings/languages.vue b/webapp/pages/settings/languages.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/languages.vue rename to webapp/pages/settings/languages.vue diff --git a/Human-Connection/webapp/pages/settings/my-organizations.vue b/webapp/pages/settings/my-organizations.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/my-organizations.vue rename to webapp/pages/settings/my-organizations.vue diff --git a/Human-Connection/webapp/pages/settings/my-social-media.spec.js b/webapp/pages/settings/my-social-media.spec.js similarity index 100% rename from Human-Connection/webapp/pages/settings/my-social-media.spec.js rename to webapp/pages/settings/my-social-media.spec.js diff --git a/Human-Connection/webapp/pages/settings/my-social-media.vue b/webapp/pages/settings/my-social-media.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/my-social-media.vue rename to webapp/pages/settings/my-social-media.vue diff --git a/Human-Connection/webapp/pages/settings/security.vue b/webapp/pages/settings/security.vue similarity index 100% rename from Human-Connection/webapp/pages/settings/security.vue rename to webapp/pages/settings/security.vue diff --git a/Human-Connection/webapp/plugins.md b/webapp/plugins.md similarity index 100% rename from Human-Connection/webapp/plugins.md rename to webapp/plugins.md diff --git a/Human-Connection/webapp/plugins/apollo-config.js b/webapp/plugins/apollo-config.js similarity index 100% rename from Human-Connection/webapp/plugins/apollo-config.js rename to webapp/plugins/apollo-config.js diff --git a/Human-Connection/webapp/plugins/axios.js b/webapp/plugins/axios.js similarity index 100% rename from Human-Connection/webapp/plugins/axios.js rename to webapp/plugins/axios.js diff --git a/Human-Connection/webapp/plugins/i18n.js b/webapp/plugins/i18n.js similarity index 100% rename from Human-Connection/webapp/plugins/i18n.js rename to webapp/plugins/i18n.js diff --git a/Human-Connection/webapp/plugins/izi-toast.js b/webapp/plugins/izi-toast.js similarity index 100% rename from Human-Connection/webapp/plugins/izi-toast.js rename to webapp/plugins/izi-toast.js diff --git a/Human-Connection/webapp/plugins/keep-alive.js b/webapp/plugins/keep-alive.js similarity index 100% rename from Human-Connection/webapp/plugins/keep-alive.js rename to webapp/plugins/keep-alive.js diff --git a/Human-Connection/webapp/plugins/styleguide-dev.js b/webapp/plugins/styleguide-dev.js similarity index 100% rename from Human-Connection/webapp/plugins/styleguide-dev.js rename to webapp/plugins/styleguide-dev.js diff --git a/Human-Connection/webapp/plugins/styleguide.js b/webapp/plugins/styleguide.js similarity index 100% rename from Human-Connection/webapp/plugins/styleguide.js rename to webapp/plugins/styleguide.js diff --git a/Human-Connection/webapp/plugins/v-tooltip.js b/webapp/plugins/v-tooltip.js similarity index 100% rename from Human-Connection/webapp/plugins/v-tooltip.js rename to webapp/plugins/v-tooltip.js diff --git a/Human-Connection/webapp/plugins/vue-directives.js b/webapp/plugins/vue-directives.js similarity index 100% rename from Human-Connection/webapp/plugins/vue-directives.js rename to webapp/plugins/vue-directives.js diff --git a/Human-Connection/webapp/plugins/vue-filters.js b/webapp/plugins/vue-filters.js similarity index 100% rename from Human-Connection/webapp/plugins/vue-filters.js rename to webapp/plugins/vue-filters.js diff --git a/Human-Connection/webapp/screenshot-styleguide.png b/webapp/screenshot-styleguide.png similarity index 100% rename from Human-Connection/webapp/screenshot-styleguide.png rename to webapp/screenshot-styleguide.png diff --git a/Human-Connection/webapp/screenshot.png b/webapp/screenshot.png similarity index 100% rename from Human-Connection/webapp/screenshot.png rename to webapp/screenshot.png diff --git a/Human-Connection/webapp/server/index.js b/webapp/server/index.js similarity index 100% rename from Human-Connection/webapp/server/index.js rename to webapp/server/index.js diff --git a/Human-Connection/webapp/static.md b/webapp/static.md similarity index 100% rename from Human-Connection/webapp/static.md rename to webapp/static.md diff --git a/Human-Connection/webapp/static/favicon.ico b/webapp/static/favicon.ico similarity index 100% rename from Human-Connection/webapp/static/favicon.ico rename to webapp/static/favicon.ico diff --git a/Human-Connection/webapp/static/img/empty-state.svg b/webapp/static/img/empty-state.svg similarity index 100% rename from Human-Connection/webapp/static/img/empty-state.svg rename to webapp/static/img/empty-state.svg diff --git a/Human-Connection/webapp/static/img/empty/alert.svg b/webapp/static/img/empty/alert.svg similarity index 100% rename from Human-Connection/webapp/static/img/empty/alert.svg rename to webapp/static/img/empty/alert.svg diff --git a/Human-Connection/webapp/static/img/empty/docs.svg b/webapp/static/img/empty/docs.svg similarity index 100% rename from Human-Connection/webapp/static/img/empty/docs.svg rename to webapp/static/img/empty/docs.svg diff --git a/Human-Connection/webapp/static/img/empty/events.svg b/webapp/static/img/empty/events.svg similarity index 100% rename from Human-Connection/webapp/static/img/empty/events.svg rename to webapp/static/img/empty/events.svg diff --git a/Human-Connection/webapp/static/img/empty/file.svg b/webapp/static/img/empty/file.svg similarity index 100% rename from Human-Connection/webapp/static/img/empty/file.svg rename to webapp/static/img/empty/file.svg diff --git a/Human-Connection/webapp/static/img/empty/messages.svg b/webapp/static/img/empty/messages.svg similarity index 100% rename from Human-Connection/webapp/static/img/empty/messages.svg rename to webapp/static/img/empty/messages.svg diff --git a/Human-Connection/webapp/static/img/empty/tasks.svg b/webapp/static/img/empty/tasks.svg similarity index 100% rename from Human-Connection/webapp/static/img/empty/tasks.svg rename to webapp/static/img/empty/tasks.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/de.svg b/webapp/static/img/locale-flags/de.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/de.svg rename to webapp/static/img/locale-flags/de.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/en.svg b/webapp/static/img/locale-flags/en.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/en.svg rename to webapp/static/img/locale-flags/en.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/es.svg b/webapp/static/img/locale-flags/es.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/es.svg rename to webapp/static/img/locale-flags/es.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/fr.svg b/webapp/static/img/locale-flags/fr.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/fr.svg rename to webapp/static/img/locale-flags/fr.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/it.svg b/webapp/static/img/locale-flags/it.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/it.svg rename to webapp/static/img/locale-flags/it.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/nl.svg b/webapp/static/img/locale-flags/nl.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/nl.svg rename to webapp/static/img/locale-flags/nl.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/pl.svg b/webapp/static/img/locale-flags/pl.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/pl.svg rename to webapp/static/img/locale-flags/pl.svg diff --git a/Human-Connection/webapp/static/img/locale-flags/pt.svg b/webapp/static/img/locale-flags/pt.svg similarity index 100% rename from Human-Connection/webapp/static/img/locale-flags/pt.svg rename to webapp/static/img/locale-flags/pt.svg diff --git a/Human-Connection/webapp/static/img/sign-up/alpha-invite.png b/webapp/static/img/sign-up/alpha-invite.png similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/alpha-invite.png rename to webapp/static/img/sign-up/alpha-invite.png diff --git a/Human-Connection/webapp/static/img/sign-up/alpha-invite2x.png b/webapp/static/img/sign-up/alpha-invite2x.png similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/alpha-invite2x.png rename to webapp/static/img/sign-up/alpha-invite2x.png diff --git a/Human-Connection/webapp/static/img/sign-up/humanconnection.png b/webapp/static/img/sign-up/humanconnection.png similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/humanconnection.png rename to webapp/static/img/sign-up/humanconnection.png diff --git a/Human-Connection/webapp/static/img/sign-up/humanconnection.svg b/webapp/static/img/sign-up/humanconnection.svg similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/humanconnection.svg rename to webapp/static/img/sign-up/humanconnection.svg diff --git a/Human-Connection/webapp/static/img/sign-up/nicetomeetyou.png b/webapp/static/img/sign-up/nicetomeetyou.png similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/nicetomeetyou.png rename to webapp/static/img/sign-up/nicetomeetyou.png diff --git a/Human-Connection/webapp/static/img/sign-up/nicetomeetyou.svg b/webapp/static/img/sign-up/nicetomeetyou.svg similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/nicetomeetyou.svg rename to webapp/static/img/sign-up/nicetomeetyou.svg diff --git a/Human-Connection/webapp/static/img/sign-up/onourjourney.png b/webapp/static/img/sign-up/onourjourney.png similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/onourjourney.png rename to webapp/static/img/sign-up/onourjourney.png diff --git a/Human-Connection/webapp/static/img/sign-up/onourjourney.svg b/webapp/static/img/sign-up/onourjourney.svg similarity index 100% rename from Human-Connection/webapp/static/img/sign-up/onourjourney.svg rename to webapp/static/img/sign-up/onourjourney.svg diff --git a/Human-Connection/webapp/store.md b/webapp/store.md similarity index 100% rename from Human-Connection/webapp/store.md rename to webapp/store.md diff --git a/Human-Connection/webapp/store/auth.js b/webapp/store/auth.js similarity index 100% rename from Human-Connection/webapp/store/auth.js rename to webapp/store/auth.js diff --git a/Human-Connection/webapp/store/auth.test.js b/webapp/store/auth.test.js similarity index 100% rename from Human-Connection/webapp/store/auth.test.js rename to webapp/store/auth.test.js diff --git a/Human-Connection/webapp/store/editor.js b/webapp/store/editor.js similarity index 100% rename from Human-Connection/webapp/store/editor.js rename to webapp/store/editor.js diff --git a/Human-Connection/webapp/store/editor.spec.js b/webapp/store/editor.spec.js similarity index 100% rename from Human-Connection/webapp/store/editor.spec.js rename to webapp/store/editor.spec.js diff --git a/Human-Connection/webapp/store/index.js b/webapp/store/index.js similarity index 100% rename from Human-Connection/webapp/store/index.js rename to webapp/store/index.js diff --git a/Human-Connection/webapp/store/modal.js b/webapp/store/modal.js similarity index 100% rename from Human-Connection/webapp/store/modal.js rename to webapp/store/modal.js diff --git a/Human-Connection/webapp/store/notifications.js b/webapp/store/notifications.js similarity index 100% rename from Human-Connection/webapp/store/notifications.js rename to webapp/store/notifications.js diff --git a/Human-Connection/webapp/store/search.js b/webapp/store/search.js similarity index 100% rename from Human-Connection/webapp/store/search.js rename to webapp/store/search.js diff --git a/Human-Connection/webapp/styleguide.md b/webapp/styleguide.md similarity index 100% rename from Human-Connection/webapp/styleguide.md rename to webapp/styleguide.md diff --git a/Human-Connection/webapp/testing.md b/webapp/testing.md similarity index 100% rename from Human-Connection/webapp/testing.md rename to webapp/testing.md diff --git a/Human-Connection/webapp/yarn.lock b/webapp/yarn.lock similarity index 100% rename from Human-Connection/webapp/yarn.lock rename to webapp/yarn.lock diff --git a/Human-Connection/yarn.lock b/yarn.lock similarity index 100% rename from Human-Connection/yarn.lock rename to yarn.lock From ed658e9d32613fabbb377f0351bcbe6585e2726c Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 3 Jul 2019 11:12:43 -0300 Subject: [PATCH 038/131] Dockerize embed, kubernetes config, add back deployment .env --- .../human-connection/deployment-embed.yaml | 38 +++++++++++++++++++ .../human-connection/service-embed.yaml | 14 +++++++ .../maintenance-worker/binaries/.env | 6 +++ .../maintenance-worker/migration/mongo/.env | 17 +++++++++ .../maintenance-worker/migration/neo4j/.env | 16 ++++++++ docker-compose.yml | 11 +++++- embed/Dockerfile | 15 ++++++++ 7 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 deployment/human-connection/deployment-embed.yaml create mode 100644 deployment/human-connection/service-embed.yaml create mode 100644 deployment/legacy-migration/maintenance-worker/binaries/.env create mode 100644 deployment/legacy-migration/maintenance-worker/migration/mongo/.env create mode 100644 deployment/legacy-migration/maintenance-worker/migration/neo4j/.env create mode 100644 embed/Dockerfile diff --git a/deployment/human-connection/deployment-embed.yaml b/deployment/human-connection/deployment-embed.yaml new file mode 100644 index 000000000..405b4bca2 --- /dev/null +++ b/deployment/human-connection/deployment-embed.yaml @@ -0,0 +1,38 @@ +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: nitro-embed + namespace: human-connection +spec: + replicas: 1 + minReadySeconds: 15 + progressDeadlineSeconds: 60 + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: "100%" + selector: + matchLabels: + human-connection.org/selector: deployment-human-connection-embed + template: + metadata: + labels: + human-connection.org/commit: COMMIT + human-connection.org/selector: deployment-human-connection-embed + name: "nitro-embed" + spec: + containers: + - name: nitro-embed + image: humanconnection/nitro-embed:latest + imagePullPolicy: Always + ports: + - containerPort: 4000 + envFrom: + - configMapRef: + name: configmap + - secretRef: + name: human-connection + restartPolicy: Always + terminationGracePeriodSeconds: 30 +status: {} diff --git a/deployment/human-connection/service-embed.yaml b/deployment/human-connection/service-embed.yaml new file mode 100644 index 000000000..85a4ad7b5 --- /dev/null +++ b/deployment/human-connection/service-embed.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: nitro-embed + namespace: human-connection + labels: + human-connection.org/selector: deployment-human-connection-embed +spec: + ports: + - name: web + port: 3050 + targetPort: 3050 + selector: + human-connection.org/selector: deployment-human-connection-embed diff --git a/deployment/legacy-migration/maintenance-worker/binaries/.env b/deployment/legacy-migration/maintenance-worker/binaries/.env new file mode 100644 index 000000000..773918095 --- /dev/null +++ b/deployment/legacy-migration/maintenance-worker/binaries/.env @@ -0,0 +1,6 @@ +# SSH Access +# SSH_USERNAME='username' +# SSH_HOST='example.org' + +# UPLOADS_DIRECTORY=/var/www/api/uploads +OUTPUT_DIRECTORY='/uploads/' \ No newline at end of file diff --git a/deployment/legacy-migration/maintenance-worker/migration/mongo/.env b/deployment/legacy-migration/maintenance-worker/migration/mongo/.env new file mode 100644 index 000000000..4c5f9e18c --- /dev/null +++ b/deployment/legacy-migration/maintenance-worker/migration/mongo/.env @@ -0,0 +1,17 @@ +# SSH Access +# SSH_USERNAME='username' +# SSH_HOST='example.org' + +# Mongo DB on Remote Maschine +# MONGODB_USERNAME='mongouser' +# MONGODB_PASSWORD='mongopassword' +# MONGODB_DATABASE='mongodatabase' +# MONGODB_AUTH_DB='admin' + +# Export Settings +# On Windows this resolves to C:\Users\dornhoeschen\AppData\Local\Temp\mongo-export (MinGW) +EXPORT_PATH='/tmp/mongo-export/' +EXPORT_MONGOEXPORT_BIN='mongoexport' +MONGO_EXPORT_SPLIT_SIZE=100 +# On Windows use something like this +# EXPORT_MONGOEXPORT_BIN='C:\Program Files\MongoDB\Server\3.6\bin\mongoexport.exe' diff --git a/deployment/legacy-migration/maintenance-worker/migration/neo4j/.env b/deployment/legacy-migration/maintenance-worker/migration/neo4j/.env new file mode 100644 index 000000000..16220f3e6 --- /dev/null +++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/.env @@ -0,0 +1,16 @@ +# Neo4J Settings +# NEO4J_USERNAME='neo4j' +# NEO4J_PASSWORD='letmein' + +# Import Settings +# On Windows this resolves to C:\Users\dornhoeschen\AppData\Local\Temp\mongo-export (MinGW) +IMPORT_PATH='/tmp/mongo-export/' +IMPORT_CHUNK_PATH='/tmp/mongo-export/splits/' + +IMPORT_CHUNK_PATH_CQL='/tmp/mongo-export/splits/' +# On Windows this path needs to be windows style since the cypher-shell runs native - note the forward slash +# IMPORT_CHUNK_PATH_CQL='C:/Users/dornhoeschen/AppData/Local/Temp/mongo-export/splits/' + +IMPORT_CYPHERSHELL_BIN='cypher-shell' +# On Windows use something like this +# IMPORT_CYPHERSHELL_BIN='C:\Program Files\neo4j-community\bin\cypher-shell.bat' \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index ca66217c2..b1a0f4d3f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,6 +41,15 @@ services: context: neo4j networks: - hc-network - + embed: + image: humanconnection/embed:latest + build: + context: embed + networks: + - hc-network + depends_on: + - neo4j + ports: + - 3050:3050 networks: hc-network: diff --git a/embed/Dockerfile b/embed/Dockerfile new file mode 100644 index 000000000..c1f21cb51 --- /dev/null +++ b/embed/Dockerfile @@ -0,0 +1,15 @@ +FROM node:12.5-alpine +LABEL Description="API Service for fetching URL Information for the Social Network Human-Connection.org" Vendor="Human Connection gGmbH" Version="0.0.1" Maintainer="Human Connection gGmbH (developer@human-connection.org)" + +EXPOSE 3050 +ARG BUILD_COMMIT +ENV BUILD_COMMIT=$BUILD_COMMIT +ARG WORKDIR=/nitro-embed +RUN mkdir -p $WORKDIR +WORKDIR $WORKDIR + +RUN apk --no-cache add git + +COPY . . +RUN yarn install --frozen-lockfile --non-interactive +CMD ["yarn", "run", "start"] From e04ab842bd3811bd8e92117de866072da352cc4a Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 2 Jul 2019 19:36:20 -0300 Subject: [PATCH 039/131] Add service yaml for nginx(maintenance) service --- deployment/human-connection/service-nginx.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 deployment/human-connection/service-nginx.yaml diff --git a/deployment/human-connection/service-nginx.yaml b/deployment/human-connection/service-nginx.yaml new file mode 100644 index 000000000..2cfe986f6 --- /dev/null +++ b/deployment/human-connection/service-nginx.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: nitro-web + namespace: human-connection + labels: + human-connection.org/selector: deployment-human-connection-web +spec: + ports: + - name: web + port: 3000 + targetPort: 3000 + selector: + human-connection.org/selector: nginx From 438bb36e903bcb2e5c5643ffdb43a0f596fd3280 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 3 Jul 2019 12:13:45 -0300 Subject: [PATCH 040/131] Add nginx maintenance and test locally --- .../human-connection/maintenance/Dockerfile | 2 + .../maintenance/deployment-maintenance.yaml | 37 +++++++++++++++++++ .../maintenance/maintenance.html | 4 ++ .../maintenance/service-maintenance.yaml | 14 +++++++ .../human-connection/service-nginx.yaml | 14 ------- docker-compose.yml | 8 ++++ 6 files changed, 65 insertions(+), 14 deletions(-) create mode 100644 deployment/human-connection/maintenance/Dockerfile create mode 100644 deployment/human-connection/maintenance/deployment-maintenance.yaml create mode 100644 deployment/human-connection/maintenance/maintenance.html create mode 100644 deployment/human-connection/maintenance/service-maintenance.yaml delete mode 100644 deployment/human-connection/service-nginx.yaml diff --git a/deployment/human-connection/maintenance/Dockerfile b/deployment/human-connection/maintenance/Dockerfile new file mode 100644 index 000000000..ad9298b72 --- /dev/null +++ b/deployment/human-connection/maintenance/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:alpine +COPY ./maintenance.html /usr/share/nginx/html/index.html diff --git a/deployment/human-connection/maintenance/deployment-maintenance.yaml b/deployment/human-connection/maintenance/deployment-maintenance.yaml new file mode 100644 index 000000000..3bcdb7bf0 --- /dev/null +++ b/deployment/human-connection/maintenance/deployment-maintenance.yaml @@ -0,0 +1,37 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: maintenance + namespace: human-connection +spec: + replicas: 2 + minReadySeconds: 15 + progressDeadlineSeconds: 60 + selector: + matchLabels: + human-connection.org/selector: deployment-human-connection-nginx + template: + metadata: + labels: + human-connection.org/commit: COMMIT + human-connection.org/selector: deployment-human-connection-nginx + name: maintenance + spec: + containers: + - name: web + envFrom: + - configMapRef: + name: configmap + - secretRef: + name: human-connection + env: + - name: HOST + value: 0.0.0.0 + image: humanconnection/maintenance:latest + ports: + - containerPort: 80 + resources: {} + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 +status: {} diff --git a/deployment/human-connection/maintenance/maintenance.html b/deployment/human-connection/maintenance/maintenance.html new file mode 100644 index 000000000..a59c639f4 --- /dev/null +++ b/deployment/human-connection/maintenance/maintenance.html @@ -0,0 +1,4 @@ +

+ At the moment we are doing some scheduled maintenance, please try again later. + Any questions or concerns, send an email to info@human-connection.org +

diff --git a/deployment/human-connection/maintenance/service-maintenance.yaml b/deployment/human-connection/maintenance/service-maintenance.yaml new file mode 100644 index 000000000..34bef9b68 --- /dev/null +++ b/deployment/human-connection/maintenance/service-maintenance.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: maintenance + namespace: human-connection + labels: + human-connection.org/selector: deployment-human-connection-nginx +spec: + ports: + - name: web + port: 80 + targetPort: 80 + selector: + human-connection.org/selector: deployment-human-connection-nginx diff --git a/deployment/human-connection/service-nginx.yaml b/deployment/human-connection/service-nginx.yaml deleted file mode 100644 index 2cfe986f6..000000000 --- a/deployment/human-connection/service-nginx.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: nitro-web - namespace: human-connection - labels: - human-connection.org/selector: deployment-human-connection-web -spec: - ports: - - name: web - port: 3000 - targetPort: 3000 - selector: - human-connection.org/selector: nginx diff --git a/docker-compose.yml b/docker-compose.yml index ca66217c2..86d3d4b2a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,6 +41,14 @@ services: context: neo4j networks: - hc-network + maintenance: + image: humanconnection/maintenance:latest + build: + context: deployment/human-connection/maintenance + networks: + - hc-network + ports: + - 80:80 networks: hc-network: From 5827222e47cc4b737d667492519e827b7a480f93 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 3 Jul 2019 14:54:19 -0300 Subject: [PATCH 041/131] Rename labels, decrease replicas to 1 --- .../maintenance/deployment-maintenance.yaml | 6 +++--- .../human-connection/maintenance/service-maintenance.yaml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/human-connection/maintenance/deployment-maintenance.yaml b/deployment/human-connection/maintenance/deployment-maintenance.yaml index 3bcdb7bf0..4fe519997 100644 --- a/deployment/human-connection/maintenance/deployment-maintenance.yaml +++ b/deployment/human-connection/maintenance/deployment-maintenance.yaml @@ -4,17 +4,17 @@ metadata: name: maintenance namespace: human-connection spec: - replicas: 2 + replicas: 1 minReadySeconds: 15 progressDeadlineSeconds: 60 selector: matchLabels: - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance template: metadata: labels: human-connection.org/commit: COMMIT - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance name: maintenance spec: containers: diff --git a/deployment/human-connection/maintenance/service-maintenance.yaml b/deployment/human-connection/maintenance/service-maintenance.yaml index 34bef9b68..43aab9331 100644 --- a/deployment/human-connection/maintenance/service-maintenance.yaml +++ b/deployment/human-connection/maintenance/service-maintenance.yaml @@ -4,11 +4,11 @@ metadata: name: maintenance namespace: human-connection labels: - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance spec: ports: - name: web port: 80 targetPort: 80 selector: - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance From 2a76e9b18a3756e6bb0fde6f33242b7c14860872 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 2 Jul 2019 19:36:20 -0300 Subject: [PATCH 042/131] Add service yaml for nginx(maintenance) service --- deployment/human-connection/service-nginx.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 deployment/human-connection/service-nginx.yaml diff --git a/deployment/human-connection/service-nginx.yaml b/deployment/human-connection/service-nginx.yaml new file mode 100644 index 000000000..2cfe986f6 --- /dev/null +++ b/deployment/human-connection/service-nginx.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: nitro-web + namespace: human-connection + labels: + human-connection.org/selector: deployment-human-connection-web +spec: + ports: + - name: web + port: 3000 + targetPort: 3000 + selector: + human-connection.org/selector: nginx From c79ec1f6fe7bbfde8a5c33de41394fe6c8fbf58a Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 3 Jul 2019 12:13:45 -0300 Subject: [PATCH 043/131] Add nginx maintenance and test locally --- .../human-connection/maintenance/Dockerfile | 2 + .../maintenance/deployment-maintenance.yaml | 37 +++++++++++++++++++ .../maintenance/maintenance.html | 4 ++ .../maintenance/service-maintenance.yaml | 14 +++++++ .../human-connection/service-nginx.yaml | 14 ------- docker-compose.yml | 8 ++++ 6 files changed, 65 insertions(+), 14 deletions(-) create mode 100644 deployment/human-connection/maintenance/Dockerfile create mode 100644 deployment/human-connection/maintenance/deployment-maintenance.yaml create mode 100644 deployment/human-connection/maintenance/maintenance.html create mode 100644 deployment/human-connection/maintenance/service-maintenance.yaml delete mode 100644 deployment/human-connection/service-nginx.yaml diff --git a/deployment/human-connection/maintenance/Dockerfile b/deployment/human-connection/maintenance/Dockerfile new file mode 100644 index 000000000..ad9298b72 --- /dev/null +++ b/deployment/human-connection/maintenance/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:alpine +COPY ./maintenance.html /usr/share/nginx/html/index.html diff --git a/deployment/human-connection/maintenance/deployment-maintenance.yaml b/deployment/human-connection/maintenance/deployment-maintenance.yaml new file mode 100644 index 000000000..3bcdb7bf0 --- /dev/null +++ b/deployment/human-connection/maintenance/deployment-maintenance.yaml @@ -0,0 +1,37 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: maintenance + namespace: human-connection +spec: + replicas: 2 + minReadySeconds: 15 + progressDeadlineSeconds: 60 + selector: + matchLabels: + human-connection.org/selector: deployment-human-connection-nginx + template: + metadata: + labels: + human-connection.org/commit: COMMIT + human-connection.org/selector: deployment-human-connection-nginx + name: maintenance + spec: + containers: + - name: web + envFrom: + - configMapRef: + name: configmap + - secretRef: + name: human-connection + env: + - name: HOST + value: 0.0.0.0 + image: humanconnection/maintenance:latest + ports: + - containerPort: 80 + resources: {} + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 +status: {} diff --git a/deployment/human-connection/maintenance/maintenance.html b/deployment/human-connection/maintenance/maintenance.html new file mode 100644 index 000000000..a59c639f4 --- /dev/null +++ b/deployment/human-connection/maintenance/maintenance.html @@ -0,0 +1,4 @@ +

+ At the moment we are doing some scheduled maintenance, please try again later. + Any questions or concerns, send an email to info@human-connection.org +

diff --git a/deployment/human-connection/maintenance/service-maintenance.yaml b/deployment/human-connection/maintenance/service-maintenance.yaml new file mode 100644 index 000000000..34bef9b68 --- /dev/null +++ b/deployment/human-connection/maintenance/service-maintenance.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: maintenance + namespace: human-connection + labels: + human-connection.org/selector: deployment-human-connection-nginx +spec: + ports: + - name: web + port: 80 + targetPort: 80 + selector: + human-connection.org/selector: deployment-human-connection-nginx diff --git a/deployment/human-connection/service-nginx.yaml b/deployment/human-connection/service-nginx.yaml deleted file mode 100644 index 2cfe986f6..000000000 --- a/deployment/human-connection/service-nginx.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: nitro-web - namespace: human-connection - labels: - human-connection.org/selector: deployment-human-connection-web -spec: - ports: - - name: web - port: 3000 - targetPort: 3000 - selector: - human-connection.org/selector: nginx diff --git a/docker-compose.yml b/docker-compose.yml index ca66217c2..86d3d4b2a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,6 +41,14 @@ services: context: neo4j networks: - hc-network + maintenance: + image: humanconnection/maintenance:latest + build: + context: deployment/human-connection/maintenance + networks: + - hc-network + ports: + - 80:80 networks: hc-network: From 6d5ffc0464f2be40a6a8e2040ac1ee7745b26613 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 3 Jul 2019 14:54:19 -0300 Subject: [PATCH 044/131] Rename labels, decrease replicas to 1 --- .../maintenance/deployment-maintenance.yaml | 6 +++--- .../human-connection/maintenance/service-maintenance.yaml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deployment/human-connection/maintenance/deployment-maintenance.yaml b/deployment/human-connection/maintenance/deployment-maintenance.yaml index 3bcdb7bf0..4fe519997 100644 --- a/deployment/human-connection/maintenance/deployment-maintenance.yaml +++ b/deployment/human-connection/maintenance/deployment-maintenance.yaml @@ -4,17 +4,17 @@ metadata: name: maintenance namespace: human-connection spec: - replicas: 2 + replicas: 1 minReadySeconds: 15 progressDeadlineSeconds: 60 selector: matchLabels: - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance template: metadata: labels: human-connection.org/commit: COMMIT - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance name: maintenance spec: containers: diff --git a/deployment/human-connection/maintenance/service-maintenance.yaml b/deployment/human-connection/maintenance/service-maintenance.yaml index 34bef9b68..43aab9331 100644 --- a/deployment/human-connection/maintenance/service-maintenance.yaml +++ b/deployment/human-connection/maintenance/service-maintenance.yaml @@ -4,11 +4,11 @@ metadata: name: maintenance namespace: human-connection labels: - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance spec: ports: - name: web port: 80 targetPort: 80 selector: - human-connection.org/selector: deployment-human-connection-nginx + human-connection.org/selector: deployment-human-connection-maintenance From 97aaff92a5c4b494b35b651a3f6e47c01cbffed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Wed, 10 Jul 2019 10:31:33 +0200 Subject: [PATCH 045/131] Remove unnecessary config --- .../maintenance/deployment-maintenance.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/deployment/human-connection/maintenance/deployment-maintenance.yaml b/deployment/human-connection/maintenance/deployment-maintenance.yaml index 4fe519997..fbbeec639 100644 --- a/deployment/human-connection/maintenance/deployment-maintenance.yaml +++ b/deployment/human-connection/maintenance/deployment-maintenance.yaml @@ -4,9 +4,6 @@ metadata: name: maintenance namespace: human-connection spec: - replicas: 1 - minReadySeconds: 15 - progressDeadlineSeconds: 60 selector: matchLabels: human-connection.org/selector: deployment-human-connection-maintenance @@ -19,19 +16,12 @@ spec: spec: containers: - name: web - envFrom: - - configMapRef: - name: configmap - - secretRef: - name: human-connection env: - name: HOST value: 0.0.0.0 image: humanconnection/maintenance:latest ports: - containerPort: 80 - resources: {} imagePullPolicy: Always restartPolicy: Always terminationGracePeriodSeconds: 30 -status: {} From a87330ef9b5617622a161ef6689b2760fc4a1488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Wed, 10 Jul 2019 10:33:21 +0200 Subject: [PATCH 046/131] Update maintenance docker image on master build --- scripts/docker_push.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/docker_push.sh b/scripts/docker_push.sh index c70367005..fe644c52a 100755 --- a/scripts/docker_push.sh +++ b/scripts/docker_push.sh @@ -4,7 +4,9 @@ docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT --target production -t huma docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT --target production -t humanconnection/nitro-web:latest $TRAVIS_BUILD_DIR/webapp docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT -t humanconnection/neo4j:latest $TRAVIS_BUILD_DIR/neo4j docker build -t humanconnection/maintenance-worker:latest $TRAVIS_BUILD_DIR/deployment/legacy-migration/maintenance-worker +docker build -t humanconnection/maintenance:latest $TRAVIS_BUILD_DIR/deployment/human-connection/maintenance docker push humanconnection/nitro-backend:latest docker push humanconnection/nitro-web:latest docker push humanconnection/neo4j:latest -docker push humanconnection/maintenance-worker:latest \ No newline at end of file +docker push humanconnection/maintenance-worker:latest +docker push humanconnection/maintenance:latest From 2e9c4ad40a80831ac80ca29677c113043b6b28d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Wed, 10 Jul 2019 10:47:42 +0200 Subject: [PATCH 047/131] Add documentation how to enable maintenance mode --- SUMMARY.md | 1 + .../human-connection/maintenance/README.md | 43 +++++++++++++++++++ .../volumes/neo4j-offline-backup/README.md | 6 +-- 3 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 deployment/human-connection/maintenance/README.md diff --git a/SUMMARY.md b/SUMMARY.md index c281e2fae..10d997a32 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -28,6 +28,7 @@ * [HTTPS](deployment/digital-ocean/https/README.md) * [Human Connection](deployment/human-connection/README.md) * [Mailserver](deployment/human-connection/mailserver/README.md) + * [Maintenance](deployment/human-connection/maintenance/README.md) * [Volumes](deployment/volumes/README.md) * [Neo4J Offline-Backups](deployment/volumes/neo4j-offline-backup/README.md) * [Volume Snapshots](deployment/volumes/volume-snapshots/README.md) diff --git a/deployment/human-connection/maintenance/README.md b/deployment/human-connection/maintenance/README.md new file mode 100644 index 000000000..02bcb44e2 --- /dev/null +++ b/deployment/human-connection/maintenance/README.md @@ -0,0 +1,43 @@ +# Maintenance mode + +> Despite our best efforts, systems sometimes require downtime for a variety of reasons. + +Quote from [here](https://www.nrmitchi.com/2017/11/easy-maintenance-mode-in-kubernetes/) + +We use our maintenance mode for manual database backup and restore. Also we +bring the database into maintenance mode for manual database migrations. + +## Deploy the service + +We prepared sample configuration, so you can simply run: +```sh +# in folder deployment/ +kubectl apply -f human-connection/maintenance +``` + +This will fire up a maintenance service. + +## Bring application into maintenance mode + +Now if you want to have a controlled downtime and you want to bring your +application into maintenance mode, you can edit your global ingress server. + +E.g. in file `deployment/digital-ocean/https/ingress.yaml` change the following: +```yaml +... + + - host: nitro-staging.human-connection.org + http: + paths: + - path: / + backend: + # serviceName: nitro-web + serviceName: maintenance + # servicePort: 3000 + servicePort: 80 +``` + +Then run ` kubectl apply -f deployment/digital-ocean/https/ingress.yaml`. If you +want to deactivate the maintenance server, just undo the edit and apply the +configuration again. + diff --git a/deployment/volumes/neo4j-offline-backup/README.md b/deployment/volumes/neo4j-offline-backup/README.md index 3638ebc89..5d773714b 100644 --- a/deployment/volumes/neo4j-offline-backup/README.md +++ b/deployment/volumes/neo4j-offline-backup/README.md @@ -23,11 +23,7 @@ So, all we have to do is edit the kubernetes deployment of our Neo4J database and set a custom `command` every time we have to carry out tasks like backup, restore, seed etc. -{% hint style="info" %} -TODO: implement maintenance mode -{% endhint %} - -First bring the application into maintenance mode to ensure there are no +First bring the application into [maintenance mode](https://github.com/Human-Connection/Human-Connection/blob/master/deployment/human-connection/maintenance/README.md) to ensure there are no database connections left and nobody can access the application. Run the following: From 3d487757bccee85eb8bb7702a97bd8065782398e Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 12 Jul 2019 07:31:25 -0300 Subject: [PATCH 048/131] Improve maintenance.html - add image, basic styling --- .../human-connection/maintenance/Dockerfile | 1 + .../maintenance/maintenance.html | 23 +- .../maintenance/onourjourney.svg | 360 ++++++++++++++++++ 3 files changed, 380 insertions(+), 4 deletions(-) create mode 100644 deployment/human-connection/maintenance/onourjourney.svg diff --git a/deployment/human-connection/maintenance/Dockerfile b/deployment/human-connection/maintenance/Dockerfile index ad9298b72..4681356ab 100644 --- a/deployment/human-connection/maintenance/Dockerfile +++ b/deployment/human-connection/maintenance/Dockerfile @@ -1,2 +1,3 @@ FROM nginx:alpine +COPY ./onourjourney.svg /usr/share/nginx/html/ COPY ./maintenance.html /usr/share/nginx/html/index.html diff --git a/deployment/human-connection/maintenance/maintenance.html b/deployment/human-connection/maintenance/maintenance.html index a59c639f4..2ddff2216 100644 --- a/deployment/human-connection/maintenance/maintenance.html +++ b/deployment/human-connection/maintenance/maintenance.html @@ -1,4 +1,19 @@ -

- At the moment we are doing some scheduled maintenance, please try again later. - Any questions or concerns, send an email to info@human-connection.org -

+ +
+

+ At the moment we are doing some scheduled maintenance, please try again + later. +

+ Maintenance mode image +

+ Any Questions or concerns, send an email to
+ info@human-connection.org +

+
+ diff --git a/deployment/human-connection/maintenance/onourjourney.svg b/deployment/human-connection/maintenance/onourjourney.svg new file mode 100644 index 000000000..0950b7532 --- /dev/null +++ b/deployment/human-connection/maintenance/onourjourney.svg @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 904142cf6e2a84274aee11674005a5766057ff59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 14 Jul 2019 11:17:44 +0200 Subject: [PATCH 049/131] Create a separate node for email in data import --- .../maintenance-worker/migration/neo4j/users/users.cql | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql b/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql index 84eb7074b..7574fd3b2 100644 --- a/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql +++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/users/users.cql @@ -111,6 +111,13 @@ u.createdAt = user.createdAt.`$date`, u.updatedAt = user.updatedAt.`$date`, u.deleted = user.deletedAt IS NOT NULL, u.disabled = false +MERGE (e:EmailAddress { + email: user.email, + createdAt: toString(datetime()), + verifiedAt: toString(datetime()) +}) +MERGE (e)-[:BELONGS_TO]->(u) +MERGE (u)<-[:PRIMARY_EMAIL]-(e) WITH u, user, user.badgeIds AS badgeIds UNWIND badgeIds AS badgeId MATCH (b:Badge {id: badgeId}) From 46589362fac21295c1c9e161e5f2be09b6d5c99e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 14 Jul 2019 11:32:19 +0200 Subject: [PATCH 050/131] Start to refactor User<->EmailAddress --- backend/src/models/User.js | 1 - backend/src/schema/resolvers/user_management.js | 8 ++++---- backend/src/schema/types/type/User.gql | 2 +- backend/src/seed/factories/users.js | 10 +++++++++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/backend/src/models/User.js b/backend/src/models/User.js index 02ce04513..cac8fd7a6 100644 --- a/backend/src/models/User.js +++ b/backend/src/models/User.js @@ -4,7 +4,6 @@ module.exports = { id: { type: 'string', primary: true, default: uuid }, // TODO: should be type: 'uuid' but simplified for our tests actorId: { type: 'string', allow: [null] }, name: { type: 'string', min: 3 }, - email: { type: 'string', lowercase: true, email: true }, slug: 'string', encryptedPassword: 'string', avatar: { type: 'string', allow: [null] }, diff --git a/backend/src/schema/resolvers/user_management.js b/backend/src/schema/resolvers/user_management.js index b62f9a609..af5ef3222 100644 --- a/backend/src/schema/resolvers/user_management.js +++ b/backend/src/schema/resolvers/user_management.js @@ -21,8 +21,8 @@ export default { // } const session = driver.session() const result = await session.run( - 'MATCH (user:User {email: $userEmail}) ' + - 'RETURN user {.id, .slug, .name, .avatar, .email, .encryptedPassword, .role, .disabled} as user LIMIT 1', + 'MATCH (user:User)-[:PRIMARY_EMAIL]->(e:EmailAddress {email: $userEmail})' + + 'RETURN user {.id, .slug, .name, .avatar, .encryptedPassword, .role, .disabled} as user LIMIT 1', { userEmail: email, }, @@ -48,7 +48,7 @@ export default { changePassword: async (_, { oldPassword, newPassword }, { driver, user }) => { const session = driver.session() let result = await session.run( - `MATCH (user:User {email: $userEmail}) + `MATCH (user:User)-[:PRIMARY_EMAIL]->(e:EmailAddress {email: $userEmail}) RETURN user {.id, .email, .encryptedPassword}`, { userEmail: user.email, @@ -68,7 +68,7 @@ export default { } else { const newEncryptedPassword = await bcrypt.hashSync(newPassword, 10) session.run( - `MATCH (user:User {email: $userEmail}) + `MATCH (user:User)-[:PRIMARY_EMAIL]->(e:EmailAddress {email: $userEmail}) SET user.encryptedPassword = $newEncryptedPassword RETURN user `, diff --git a/backend/src/schema/types/type/User.gql b/backend/src/schema/types/type/User.gql index e5c43aad4..95d9119b0 100644 --- a/backend/src/schema/types/type/User.gql +++ b/backend/src/schema/types/type/User.gql @@ -2,7 +2,7 @@ type User { id: ID! actorId: String name: String - email: String! + email: String! @cypher(statement: "MATCH (this)-[:PRIMARY_EMAIL]->(e:EmailAddress) RETURN e.email") slug: String! avatar: String coverImg: String diff --git a/backend/src/seed/factories/users.js b/backend/src/seed/factories/users.js index 8bdf03b9f..c34a9b3de 100644 --- a/backend/src/seed/factories/users.js +++ b/backend/src/seed/factories/users.js @@ -21,7 +21,15 @@ export default function create() { ...args, } args = await encryptPassword(args) - return neodeInstance.create('User', args) + const [user, email] = await Promise.all([ + neodeInstance.create('User', args), + neodeInstance.create('EmailAddress', { email: args.email }), + ]) + await Promise.all([ + user.relateTo(email, 'primaryEmail'), + email.relateTo(user, 'belongsTo') + ]) + return user }, } } From dacc3bb5573b8b1376eea1dab49ee93f63ccadad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 14 Jul 2019 11:57:38 +0200 Subject: [PATCH 051/131] Implement fallback User.email resolver --- backend/src/schema/resolvers/users.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index ea076d005..aa9532e2d 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -104,6 +104,14 @@ export default { }, }, User: { + email: async (parent, params, context, resolveInfo) => { + if (typeof parent.email !== 'undefined') return parent.email + const { id } = parent + const statement = `MATCH(u:User {id: {id}})-[:PRIMARY_EMAIL]->(e:EmailAddress) RETURN e` + const result = await instance.cypher(statement, { id }) + let [{email}]= result.records.map(r => r.get('e').properties) + return email + }, ...undefinedToNull([ 'actorId', 'avatar', From 88aa8a3929b05a96818e396b52d5d3ca5ce826f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 14 Jul 2019 12:11:49 +0200 Subject: [PATCH 052/131] Encrypt email in JWT - fixes 2 test cases --- backend/src/schema/resolvers/user_management.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/schema/resolvers/user_management.js b/backend/src/schema/resolvers/user_management.js index af5ef3222..fba5fe3bd 100644 --- a/backend/src/schema/resolvers/user_management.js +++ b/backend/src/schema/resolvers/user_management.js @@ -22,7 +22,7 @@ export default { const session = driver.session() const result = await session.run( 'MATCH (user:User)-[:PRIMARY_EMAIL]->(e:EmailAddress {email: $userEmail})' + - 'RETURN user {.id, .slug, .name, .avatar, .encryptedPassword, .role, .disabled} as user LIMIT 1', + 'RETURN user {.id, .slug, .name, .avatar, .encryptedPassword, .role, .disabled, email:e.email} as user LIMIT 1', { userEmail: email, }, From cec3eddcefc2d1654879ce8b632261c16c95669d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 14 Jul 2019 12:46:07 +0200 Subject: [PATCH 053/131] Fix more test cases --- backend/src/schema/resolvers/passwordReset.js | 4 ++-- backend/src/schema/resolvers/registration.js | 4 ++-- backend/src/schema/resolvers/registration.spec.js | 5 +++-- backend/src/schema/resolvers/user_management.js | 12 ++---------- backend/src/schema/resolvers/users.js | 2 +- backend/src/seed/factories/users.js | 5 +---- neo4j/db_setup.sh | 2 ++ 7 files changed, 13 insertions(+), 21 deletions(-) diff --git a/backend/src/schema/resolvers/passwordReset.js b/backend/src/schema/resolvers/passwordReset.js index 415eb6f21..88d82846a 100644 --- a/backend/src/schema/resolvers/passwordReset.js +++ b/backend/src/schema/resolvers/passwordReset.js @@ -5,7 +5,7 @@ export async function createPasswordReset(options) { const { driver, code, email, issuedAt = new Date() } = options const session = driver.session() const cypher = ` - MATCH (u:User) WHERE u.email = $email + MATCH (u:User)-[:PRIMARY_EMAIL]->(e:EmailAddress {email:$email}) CREATE(pr:PasswordReset {code: $code, issuedAt: datetime($issuedAt), usedAt: NULL}) MERGE (u)-[:REQUESTED]->(pr) RETURN u @@ -35,7 +35,7 @@ export default { const encryptedNewPassword = await bcrypt.hashSync(newPassword, 10) const cypher = ` MATCH (pr:PasswordReset {code: $code}) - MATCH (u:User {email: $email})-[:REQUESTED]->(pr) + MATCH (e:EmailAddress {email: $email})<-[:PRIMARY_EMAIL]-(u:User)-[:REQUESTED]->(pr) WHERE duration.between(pr.issuedAt, datetime()).days <= 0 AND pr.usedAt IS NULL SET pr.usedAt = datetime() SET u.encryptedPassword = $encryptedNewPassword diff --git a/backend/src/schema/resolvers/registration.js b/backend/src/schema/resolvers/registration.js index 3c8243d8a..20c54a49b 100644 --- a/backend/src/schema/resolvers/registration.js +++ b/backend/src/schema/resolvers/registration.js @@ -12,8 +12,8 @@ const instance = neode() */ const checkEmailDoesNotExist = async ({ email }) => { email = email.toLowerCase() - const users = await instance.all('User', { email }) - if (users.length > 0) throw new UserInputError('User account with this email already exists.') + const emails = await instance.all('EmailAddress', { email }) + if (emails.length > 0) throw new UserInputError('User account with this email already exists.') } export default { diff --git a/backend/src/schema/resolvers/registration.spec.js b/backend/src/schema/resolvers/registration.spec.js index 2cbce9a36..1cf3a13bb 100644 --- a/backend/src/schema/resolvers/registration.spec.js +++ b/backend/src/schema/resolvers/registration.spec.js @@ -166,11 +166,12 @@ describe('SignupByInvitation', () => { await expect(action()).rejects.toThrow('"email" must be a valid email') }) - it('creates no EmailAddress node', async done => { + it('creates no additional EmailAddress node', async done => { try { await action() } catch (e) { - const emailAddresses = await instance.all('EmailAddress') + let emailAddresses = await instance.all('EmailAddress') + emailAddresses = await emailAddresses.toJson expect(emailAddresses).toHaveLength(0) done() } diff --git a/backend/src/schema/resolvers/user_management.js b/backend/src/schema/resolvers/user_management.js index fba5fe3bd..ab7438a17 100644 --- a/backend/src/schema/resolvers/user_management.js +++ b/backend/src/schema/resolvers/user_management.js @@ -47,17 +47,9 @@ export default { }, changePassword: async (_, { oldPassword, newPassword }, { driver, user }) => { const session = driver.session() - let result = await session.run( - `MATCH (user:User)-[:PRIMARY_EMAIL]->(e:EmailAddress {email: $userEmail}) - RETURN user {.id, .email, .encryptedPassword}`, - { - userEmail: user.email, - }, - ) + let result = await session.run('MATCH (user:User {id:$id}) RETURN user', { id: user.id }) - const [currentUser] = result.records.map(function(record) { - return record.get('user') - }) + const [currentUser] = result.records.map(record => record.get('user').properties) if (!(await bcrypt.compareSync(oldPassword, currentUser.encryptedPassword))) { throw new AuthenticationError('Old password is not correct') diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index aa9532e2d..db5342881 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -109,7 +109,7 @@ export default { const { id } = parent const statement = `MATCH(u:User {id: {id}})-[:PRIMARY_EMAIL]->(e:EmailAddress) RETURN e` const result = await instance.cypher(statement, { id }) - let [{email}]= result.records.map(r => r.get('e').properties) + let [{ email }] = result.records.map(r => r.get('e').properties) return email }, ...undefinedToNull([ diff --git a/backend/src/seed/factories/users.js b/backend/src/seed/factories/users.js index c34a9b3de..3c5131a77 100644 --- a/backend/src/seed/factories/users.js +++ b/backend/src/seed/factories/users.js @@ -25,10 +25,7 @@ export default function create() { neodeInstance.create('User', args), neodeInstance.create('EmailAddress', { email: args.email }), ]) - await Promise.all([ - user.relateTo(email, 'primaryEmail'), - email.relateTo(user, 'belongsTo') - ]) + await Promise.all([user.relateTo(email, 'primaryEmail'), email.relateTo(user, 'belongsTo')]) return user }, } diff --git a/neo4j/db_setup.sh b/neo4j/db_setup.sh index 21ed54571..d4c7b9af8 100755 --- a/neo4j/db_setup.sh +++ b/neo4j/db_setup.sh @@ -34,6 +34,8 @@ CREATE CONSTRAINT ON (p:Post) ASSERT p.slug IS UNIQUE; CREATE CONSTRAINT ON (c:Category) ASSERT c.slug IS UNIQUE; CREATE CONSTRAINT ON (u:User) ASSERT u.slug IS UNIQUE; CREATE CONSTRAINT ON (o:Organization) ASSERT o.slug IS UNIQUE; + +CREATE CONSTRAINT ON (e:EmailAddress) ASSERT e.email IS UNIQUE; ' | cypher-shell echo ' From b8ab7cacef263275db35722adedb2089178d8687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 15 Jul 2019 19:17:16 +0200 Subject: [PATCH 054/131] Fix email filter test --- backend/src/models/EmailAddress.js | 1 + backend/src/schema/resolvers/users.js | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/backend/src/models/EmailAddress.js b/backend/src/models/EmailAddress.js index ddd56c297..6afccd1ed 100644 --- a/backend/src/models/EmailAddress.js +++ b/backend/src/models/EmailAddress.js @@ -8,5 +8,6 @@ module.exports = { relationship: 'BELONGS_TO', target: 'User', direction: 'out', + eager: true, }, } diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index db5342881..820688a1a 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -65,6 +65,13 @@ export const hasOne = obj => { export default { Query: { User: async (object, args, context, resolveInfo) => { + const { email } = args + if (email) { + const e = await instance.first('EmailAddress', { email }) + let user = e.get('belongsTo') + user = await user.toJson() + return [user.node] + } return neo4jgraphql(object, args, context, resolveInfo, false) }, }, From 46cd21db1fbb1c05552d71ad76c2556303238146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 15 Jul 2019 19:35:07 +0200 Subject: [PATCH 055/131] Fix registration.spec --- backend/src/schema/resolvers/registration.spec.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/src/schema/resolvers/registration.spec.js b/backend/src/schema/resolvers/registration.spec.js index 1cf3a13bb..dc2e96348 100644 --- a/backend/src/schema/resolvers/registration.spec.js +++ b/backend/src/schema/resolvers/registration.spec.js @@ -192,16 +192,16 @@ describe('SignupByInvitation', () => { describe('creates a EmailAddress node', () => { it('with a `createdAt` attribute', async () => { await action() - const emailAddresses = await instance.all('EmailAddress') - const emailAddress = await emailAddresses.first().toJson() + let emailAddress = await instance.first('EmailAddress', { email: 'someuser@example.org' }) + emailAddress = await emailAddress.toJson() expect(emailAddress.createdAt).toBeTruthy() expect(Date.parse(emailAddress.createdAt)).toEqual(expect.any(Number)) }) it('with a cryptographic `nonce`', async () => { await action() - const emailAddresses = await instance.all('EmailAddress') - const emailAddress = await emailAddresses.first().toJson() + let emailAddress = await instance.first('EmailAddress', { email: 'someuser@example.org' }) + emailAddress = await emailAddress.toJson() expect(emailAddress.nonce).toEqual(expect.any(String)) }) @@ -221,6 +221,7 @@ describe('SignupByInvitation', () => { it('rejects because codes can be used only once', async done => { await action() try { + variables.email = 'yetanotheremail@example.org' await action() } catch (e) { expect(e.message).toMatch(/Invitation code already used/) @@ -283,8 +284,8 @@ describe('Signup', () => { it('creates a Signup with a cryptographic `nonce`', async () => { await action() - const emailAddresses = await instance.all('EmailAddress') - const emailAddress = await emailAddresses.first().toJson() + let emailAddress = await instance.first('EmailAddress', { email: 'someuser@example.org' }) + emailAddress = await emailAddress.toJson() expect(emailAddress.nonce).toEqual(expect.any(String)) }) }) From c7dc2f6a5c3f6bf09722260853b9986b7c881339 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Mon, 15 Jul 2019 19:09:33 -0300 Subject: [PATCH 056/131] Hide CommentForm when an edit is in progress - Follow @Tirokk PR review --- webapp/components/Comment.vue | 40 ++++++++++--------- .../components/comments/CommentForm/index.vue | 8 +++- .../components/comments/CommentForm/spec.js | 1 + .../comments/EditCommentForm/index.vue | 5 +++ webapp/store/editor.js | 7 ++++ 5 files changed, 41 insertions(+), 20 deletions(-) diff --git a/webapp/components/Comment.vue b/webapp/components/Comment.vue index f0155afa8..1fdfad7cf 100644 --- a/webapp/components/Comment.vue +++ b/webapp/components/Comment.vue @@ -35,24 +35,22 @@ @showEditCommentMenu="editCommentMenu" />
-
- -
-
- - {{ $t('comment.show.less') }} - +
+
+ + @@ -61,7 +59,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +Baby Loves Cat - YouTube + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ DE +
+
+
+ +
+
+
+

+ + + +Wird geladen... + +

+ +
+
+
+ +
+ +
+
+
+ +Du siehst YouTube auf Deutsch. +Du kannst diese Einstellung unten ändern. +
+
+ + You're viewing YouTube in German. + You can change this preference below. +
+
+
+ +
+
+ +
+
+ + +
+
+
+ +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

+ + + + + Baby Loves Cat + + +

+
+
+ + +
+ + + + + +
+
30.160.931 Aufrufe
+
+
+
+
+
+ + + + + +
+
+ + + +
+
+
+
+

+ + + +Wird geladen... + +

+ +
+
+
+ +
+ +
+
+
+

+ + + +Wird geladen... + +

+ +
+
+
+

+Transkript +

+
+ +
+ + + +
+
+Das interaktive Transkript konnte nicht geladen werden. +
+ + +
+
+ +
+ +
+
+

+ + + +Wird geladen... + +

+ +
+
+ + +
+
+ Die Bewertungsfunktion ist nach Ausleihen des Videos verfügbar. +
+ +
+ +
+
+ Diese Funktion ist gerade nicht verfügbar. Bitte versuche es später noch einmal. +
+
+ + +
+ + +
+ + +
Am 16.08.2015 veröffentlicht

She's incapable of controlling her limbs when her kitty is around. The obsession grows every day.

Ps. That's a sleep sack she's in. Not a starfish outfit. Although I wish I were cool enough to dress my daughter in a starfish outfit.

Jukin Media Verified (Original)
*For licensing / permission to use please contact licensing(at)jukinmediadotcom

+
    +
  • +

    + Kategorie +

    + +
  • + +
+
+
+ +
+ + +
+
+
+ + +
+ Kommentare sind für dieses Video deaktiviert. +
+ +
+ + + + +
+
+
+
+ +
+ + +
+
+
+ + + +
+
+ +
+ +
+
+
+Anzeige +
+
+
+
+ + +
+
+
+
+
+ + + +Wenn Autoplay aktiviert ist, wird die Wiedergabe automatisch mit einem der aktuellen Videovorschläge fortgesetzt. + + + +
+

+ Nächstes Video +

+ + +
+
+ + +
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+ +
+ +
+
+ + +
+
+ + +
+ , um dieses Video zur Playlist "Später ansehen" hinzuzufügen. + +
+
+

+Hinzufügen +

+
+
+

+ + + + Playlists werden geladen... + +

+ +
+
+ + + + + + + \ No newline at end of file diff --git a/backend/src/schema/resolvers/embeds.spec.js b/backend/src/schema/resolvers/embeds.spec.js index 5cf943a0d..2170048ed 100644 --- a/backend/src/schema/resolvers/embeds.spec.js +++ b/backend/src/schema/resolvers/embeds.spec.js @@ -1,15 +1,39 @@ -import fetch, { Response } from 'node-fetch' +import fetch from 'node-fetch' import fs from 'fs' import path from 'path' import { createTestClient } from 'apollo-server-testing' import createServer from '../../server' import { gql } from '../../jest/helpers' - jest.mock('node-fetch') +const { Response } = jest.requireActual('node-fetch') let variables = {} +const babyLovesCat = fs.readFileSync( + path.join(__dirname, '../../jest/snapshots/embeds/babyLovesCat.html'), + 'utf8', +) + +const babyLovesCatEmbedResponse = new Response( + JSON.stringify({ + height: 270, + provider_name: 'YouTube', + title: 'Baby Loves Cat', + type: 'video', + width: 480, + thumbnail_height: 360, + provider_url: 'https://www.youtube.com/', + thumbnail_width: 480, + html: + '', + thumbnail_url: 'https://i.ytimg.com/vi/qkdXAtO40Fo/hqdefault.jpg', + version: '1.0', + author_name: 'Merkley Family', + author_url: 'https://www.youtube.com/channel/UC5P8yei950tif7UmdPpkJLQ', + }), +) + describe('Query', () => { describe('embed', () => { let embedAction @@ -36,6 +60,7 @@ describe('Query', () => { lang logo sources + html } } ` @@ -45,17 +70,9 @@ describe('Query', () => { describe('given a youtube link', () => { beforeEach(() => { - const youtubeHtml = fs.readFileSync( - path.join(__dirname, './embeds/snapshots/babyLovesCat.html'), - 'utf8', - ) - const embedJson = fs.readFileSync( - path.join(__dirname, './embeds/snapshots/oembed/babyLovesCat.json'), - 'utf8', - ) fetch - .mockReturnValueOnce(Promise.resolve(new Response(youtubeHtml))) - .mockReturnValueOnce(Promise.resolve(new Response(embedJson))) + .mockReturnValueOnce(Promise.resolve(new Response(babyLovesCat))) + .mockReturnValueOnce(Promise.resolve(babyLovesCatEmbedResponse)) variables = { url: 'https://www.youtube.com/watch?v=qkdXAtO40Fo&t=18s' } }) @@ -63,7 +80,7 @@ describe('Query', () => { const expected = expect.objectContaining({ data: { embed: { - type: 'link', + type: 'video', title: 'Baby Loves Cat', author: 'Merkley Family', publisher: 'YouTube', @@ -75,8 +92,10 @@ describe('Query', () => { audio: null, video: null, lang: 'de', - logo: 'https://www.youtube.com/yts/img/favicon_144-vfliLAfaB.png', - sources: ['resource'], + logo: 'https://www.youtube.com/favicon.ico', + sources: ['resource', 'oembed'], + html: + '', }, }, }) diff --git a/backend/src/schema/resolvers/embeds/scraper.js b/backend/src/schema/resolvers/embeds/scraper.js index 413bf759b..5a6da8eba 100644 --- a/backend/src/schema/resolvers/embeds/scraper.js +++ b/backend/src/schema/resolvers/embeds/scraper.js @@ -38,9 +38,8 @@ oEmbedProvidersFile = oEmbedProvidersFile.replace('{format}', 'json') const oEmbedProviders = JSON.parse(oEmbedProvidersFile) const fetchEmbed = async targetUrl => { - const url = new URL(targetUrl) - const provider = oEmbedProviders.find(provider => { - return provider.provider_url.includes(url.hostname) + const provider = oEmbedProviders.find(provider => { + return provider.provider_url.includes(targetUrl.hostname) }) if (!provider) return {} const { @@ -50,13 +49,14 @@ const fetchEmbed = async targetUrl => { endpointUrl.searchParams.append('url', targetUrl) endpointUrl.searchParams.append('format', 'json') const response = await fetch(endpointUrl) + const json = await response.json() const { type = 'link', html, author_name, // eslint-disable-line camelcase upload_date, // eslint-disable-line camelcase sources = ['oembed'], - } = await response.json() + } = json return { type, html, author: author_name, date: upload_date, sources } } @@ -66,13 +66,15 @@ const fetchMeta = async targetUrl => { const html = await response.text() const metadata = await metascraper({ html, url: targetUrl }) - metadata.sources = ['resource'] - metadata.type = 'link' - - return metadata + return { + sources: ['resource'], + type: 'link', + ...metadata, + } } export default async function scrape(targetUrl) { + targetUrl = new URL(targetUrl) if (targetUrl.hostname === 'youtu.be') { // replace youtu.be to get proper results targetUrl.hostname = 'youtube.com' diff --git a/backend/src/schema/resolvers/embeds/snapshots/babyLovesCat.html b/backend/src/schema/resolvers/embeds/snapshots/babyLovesCat.html deleted file mode 100644 index 2c96c5648..000000000 --- a/backend/src/schema/resolvers/embeds/snapshots/babyLovesCat.html +++ /dev/null @@ -1,3 +0,0 @@ - - -
<!doctype html><html style="font-size: 10px;font-family: Roboto, Arial, sans-serif; " lang="en-US"><head><meta http-equiv="origin-trial" data-feature="Web Components V0" data-expires="2019-08-15" content="AlCKlZ6jrSZT4A279DIcf6KpJmRggEudBrzbIU1GsO8O5TV2OsnjApNBxOFUoM9pZeEKAxfNWit1YjcFsyc1WAcAAABneyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJDb21wb25lbnRzVjAiLCJleHBpcnkiOjE1NjU4OTQzODAsImlzU3ViZG9tYWluIjp0cnVlfQ=="><script >var ytcfg = {d: function() {return (window.yt && yt.config_) || ytcfg.data_ || (ytcfg.data_ = {});},get: function(k, o) {return (k in ytcfg.d()) ? ytcfg.d()[k] : o;},set: function() {var a = arguments;if (a.length > 1) {ytcfg.d()[a[0]] = a[1];} else {for (var k in a[0]) {ytcfg.d()[k] = a[0][k];}}}};window.ytcfg.set('EMERGENCY_BASE_URL', "\/error_204?level=ERROR\u0026client.name=1\u0026t=jserror\u0026client.version=2.20190718");</script><script >window.ShadyDOM = {force: true};window.ShadyCSS = {disableRuntime: true};window.ShadyDOM.preferPerformance = true;window.ShadyDOM.noPatch = true;window.Polymer = (window.Polymer || {});window.Polymer.legacyOptimizations = true;</script><link rel="shortcut icon" href="https://s.ytimg.com/yts/img/favicon-vfl8qSV2F.ico" type="image/x-icon" ><link rel="icon" href="https://s.ytimg.com/yts/img/favicon_32-vflOogEID.png" sizes="32x32" ><link rel="icon" href="https://s.ytimg.com/yts/img/favicon_48-vflVjB_Qk.png" sizes="48x48" ><link rel="icon" href="https://s.ytimg.com/yts/img/favicon_96-vflW9Ec0w.png" sizes="96x96" ><link rel="icon" href="https://s.ytimg.com/yts/img/favicon_144-vfliLAfaB.png" sizes="144x144" ><title>YouTube</title><script >var ytcsi = {gt: function(n) {n = (n || '') + 'data_';return ytcsi[n] || (ytcsi[n] = {tick: {},info: {}});},now: (window.performance && window.performance.timing &&window.performance.now && window.performance.timing.navigationStart) ?function() {return window.performance.timing.navigationStart +window.performance.now();} :function() {return (new Date()).getTime();},tick: function(l, t, n) {ticks = ytcsi.gt(n).tick;var v = t || ytcsi.now();if (ticks[l]) {ticks['_' + l] = (ticks['_' + l] || [ticks[l]]);ticks['_' + l].push(v);}ticks[l] = v;},info: function(k, v, n) {ytcsi.gt(n).info[k] = v;},setStart: function(s, t, n) {ytcsi.info('yt_sts', s, n);ytcsi.tick('_start', t, n);}};(function(w, d) {ytcsi.setStart('dhs', w.performance ? w.performance.timing.responseStart : null);var isPrerender = (d.visibilityState || d.webkitVisibilityState) == 'prerender';var vName = (!d.visibilityState && d.webkitVisibilityState)? 'webkitvisibilitychange' : 'visibilitychange';if (isPrerender) {ytcsi.info('prerender', 1);var startTick = function() {ytcsi.setStart('dhs');d.removeEventListener(vName, startTick);};d.addEventListener(vName, startTick, false);}if (d.addEventListener) {d.addEventListener(vName, function() {ytcsi.tick('vc');}, false);}var slt = function(el, t) {setTimeout(function() {var n = ytcsi.now();el.loadTime = n;if (el.slt) {el.slt();}}, t);};w.__ytRIL = function(el) {if (!el.getAttribute('data-thumb')) {if (w.requestAnimationFrame) {w.requestAnimationFrame(function() {slt(el, 0);});} else {slt(el, 16);}}};})(window, document);</script><link rel="preload" href= "https://i.ytimg.com/generate_204" as="fetch"> <script >if (window.ytcsi) {window.ytcsi.tick("lpcs", null, '');}(function() {window.ytplayer = {};ytcfg.set({"RECORD_LONG_TASKS":false,"SCHEDULER_SOFT_STATE_TIMER":800,"COUNTRY":"Germany","SUPPORTS_ANIMATIONS":true,"STAMPER_STABLE_LIST":true,"ASYNC_APP_ATTACH":true,"PAGE_CL":258801265,"404_IMG_URL":"\/yts\/img\/ringo\/img\/image-hh-404-vflP3hqNT.png","ONE_PICK_URL":"","YTR_FAMILY_CREATION_URL":"https:\/\/families.google.com\/webcreation?usegapi=1","ENABLE_SEL_AUTO":true,"DISABLE_WARM_LOADS":false,"HTML_IMPORT_DEFERRED_BUNDLE":true,"UPLOAD_BTN_CLICKTRACKING":"ei=zyozXcuXGJPI1wLmga2ICw\u0026feature=mhsb","SCHEDULE_IMMEDIATE_COMPONENTS":true,"ID_TOKEN":"QUFFLUhqbXNhWXhrZWh3XzBfMVM0UHRSbVRRanNNNjU3QXw=","XSRF_TOKEN":"QUFFLUhqbElIYzR1Mkl5OUtkVVVhbklNN3VjcW9MbEUyZ3xBQ3Jtc0tteDhCdHFid1MwSVZWRy02aUlsWVp4NEJnNk5JdG5rR3dVV2UyQmFtaWlEOUJPV3BPSDJIc3M4dkhXLVkwSl9TRFYtZURZM3prUEhtN0Q4amhWeDgyTGZaZmpHejBFSEdqbTN1MWdkOUkzZ2pVVkZWbUZjWFY1TGdoSkFWYTk3TzBxZndFTFh2bXFOWFRDbE5LeFFEQ1pMSnJjS3c=","ENABLE_IMG_TRANSITION":false,"DISABLE_DATA_REPLAY":false,"IS_TABLET":false,"CLIENT_PROTOCOL":"h2","LOGGED_IN":true,"SCHEDULED_LAZY_LIST":true,"ENABLE_SERVICE_REQUEST":true,"ZWIEBACK_PING_URLS":["https:\/\/www.google.de\/pagead\/lvz?pg=watch\u0026req_ts=1563634383\u0026evtid=ADszL7NlRCm0J5AlVqeFbmXHzpAbD3TMG0dIlEwo9BrAhEHL3vzeV7hwwaU4mgxSB5j6NLJf17M0xGBA1xfQ8TPXNECg_wavxQ\u0026sigh=ADRnf4byvEkv3LXElCdr1txZ6unWW_FheQ","https:\/\/www.google.com\/pagead\/lvz?pg=watch\u0026req_ts=1563634383\u0026evtid=ADszL7Nl2nRpFaD-o69JysXZ2nmuGDQn82W6Vf5sYMyzC2m-VNJRrOqv9P2ufa0Lh03Nkd6MV9qB2tco-WIsDor_42Ftfmnp5Q\u0026sigh=ADRnf4arnO7fgSCMUmlqlZMiZqodwT2-rQ"],"SIGNIN_URL":"https:\/\/accounts.google.com\/ServiceLogin?continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Fnext%3D%252Fwatch%253Fv%253DqkdXAtO40Fo%2526t%253D18s%26app%3Ddesktop%26authuser%3D0%26action_handle_signin%3Dtrue%26hl%3Den%26feature%3D__FEATURE__\u0026uilel=3\u0026passive=true\u0026service=youtube\u0026authuser=0\u0026hl=en","WELCOME_POPUP_ENABLED_END":null,"HTML_LANG":"en","CLIENT_TRANSPORT":"tcp","SBOX_SETTINGS":{"IS_FUSION":false,"SEND_VISITOR_DATA":false,"REQUEST_LANGUAGE":"en","PSUGGEST_TOKEN":"EyzC3KHpj-gOHu82gm9YSg","HAS_ON_SCREEN_KEYBOARD":false,"IS_POLYMER":true,"SESSION_INDEX":0,"SUGG_EXP_ID":"","SEARCHBOX_BEHAVIOR_EXPERIMENT":"zero-prefix","REQUEST_DOMAIN":"de","PQ":"","SEARCHBOX_ENABLE_REFINEMENT_SUGGEST":true},"VARIANTS_CHECKSUM":"35531ef11ad1c61326c4634c67ae1394","ENABLE_ELEMENT_POOL_POPULATOR":true,"ROOT_VE_TYPE":3832,"ENABLE_SELECTIVE_INITIALIZATION":true,"START_IN_FULL_WINDOW_MODE":false,"HISTORY_CACHE_MAX_SIZE":100,"DISABLE_YT_IMG_DELAY_LOADING":false,"EXPERIMENT_FLAGS":{"service_worker_push_prompt_delay_microseconds":3888000000000,"kevlar_history_buttons":true,"lact_local_listeners":true,"live_chat_increased_min_height":true,"kevlar_guide_subscription_uncollapsed_count":7,"pbj_navigate_limit":-1,"enable_classic_creation_menu":true,"live_chat_use_new_default_filter_mode":true,"kevlar_disable_fast_player_sizing_on_channel_page":true,"kevlar_help_use_locale":true,"clear_web_implicit_clicktracking":true,"kevlar_transcript_engagement_panel":true,"enable_verified_author_highlights":true,"kevlar_search_thumbnails_resize":true,"live_chat_message_sampling_rate":4.0,"enable_live_studio_ux":true,"kevlar_enable_editable_playlists":true,"enable_desktop_polymer_video_masthead":true,"twelve_video_reordering":[0,1,2,4,7,8,3,5,6,9,10,11],"log_window_onerror_fraction":0.1,"sponsorships_offer_screen_with_video_desktop":true,"autoplay_pause_by_lact_sec":0,"kevlar_center_search_results":true,"web_system_health_fraction":0.01,"kevlar_lazy_list_resume_for_autofill":true,"kevlar_flexy_watch_cold_sizing":true,"kevlar_time_caching":true,"live_chat_top_chat_split":0.5,"web_enable_history_cache_map":true,"desktop_themeable_vulcan":true,"enable_sticker_packs_scrolling":true,"third_party_integration_main":true,"kevlar_better_logging_hides":true,"kevlar_log_native_right_click_ve":true,"embed_api_deprecation":true,"disable_youthere_lact_threshold_check":true,"kevlar_thumbnail_fluid":true,"kevlar_persistent_guide_width_threshold":1124,"web_logging_max_batch":100,"user_engagement_experiments_rate_limit_ms":86400000,"optimistically_create_transport_client":true,"desktop_action_companion_wta_support":true,"user_mention_suggestions_edu_impression_cap":10,"client_streamz_web_flush_interval_seconds":60,"flush_onbeforeunload":true,"kevlar_update_guide_section":true,"interaction_screen_on_gel_web":true,"viewport_load_collection_wait_time":0,"kevlar_mousedown_prefetch":true,"kevlar_mousedown_prefetchable_components":["ytd-playlist-video-renderer","ytd-grid-video-renderer","ytd-compact-video-renderer","ytd-video-renderer","ytd-playlist-panel-video-renderer"],"enable_cold_load_instrumentation":true,"enable_classic_encoder_pointback":true,"user_mention_suggestions_in_posts":true,"kevlar_time_caching_end_threshold":15,"third_party_integration_ari":true,"service_worker_push_home_only":true,"kevlar_enable_menu_option_rearrangement":true,"kevlar_home_skeleton":true,"kevlar_watch_fullerscreen_app_scrolling":true,"is_browser_support_for_webcam_streaming":true,"kevlar_miniplayer_button":true,"service_worker_push_prompt_delay_ms":3888000000,"global_spacebar_pause":true,"kevlar_no_early_init_unpause":true,"kevlar_menu_refresh":true,"log_web_meta_interval_ms":0,"enable_servlet_streamz":true,"enable_servlet_errors_streamz":true,"use_push_for_desktop_live_chat":true,"mentions_linkify_user_mention":true,"desktop_pyv_on_watch_via_valor":true,"ad_to_video_use_gel":true,"desktop_polymer_video_masthead_wta_support":true,"low_engagement_player_quality_cap":360,"web_emulated_idle_callback_delay":0,"kevlar_guide_refresh":true,"kevlar_settings_page":true,"log_web_screen_end":true,"service_worker_push_enabled":true,"polymer_warm_thumbnail_preload":true,"kevlar_library_v1":true,"cold_load_nav_start_web":true,"desktop_image_companion_wta_support":true,"desktop_keyboard_capture_keydown_killswitch":true,"gfeedback_for_signed_out_users_enabled":true,"enable_web_poster_hover_animation":true,"reload_without_polymer_innertube":true,"kevlar_library":true,"service_worker_push_prompt_cap":-1,"kevlar_nitrate_driven_tooltips":true,"desktop_polymer":true,"attach_child_on_gel_web":true,"kevlar_masthead_skeleton":true,"enable_webcam_dynamic_poll_period":true,"html5_serverside_pagead_id_sets_cookie":true,"show_account_link_ari_double_dialog":true,"web_dont_cancel_pending_navigation_same_url":true,"live_chat_flagging_reasons":true,"enable_highlight_clip_creation":true,"kevlar_masthead_refactor":true,"polymer2_element_pool_properties":true,"pass_biscotti_id_in_header_ajax":true,"kevlar_frontend_video_list_actions":true,"kevlar_js_fixes":true,"kevlar_autonav_popup_filtering":true,"kevlar_dismiss_disables_autonav":true,"kevlar_use_page_data_will_update":true,"autoplay_time":8000,"desktop_polymer_video_masthead_session_tempdata_ttl":30,"decorate_playlist_panel_renderer":true,"desktop_notification_high_priority_ignore_push":true,"enable_premium_voluntary_pause":true,"kevlar_use_ytd_player":true,"autoplay_pause_sampling_fraction":0.0,"kevlar_tooltip_impression_cap":2,"highlight_clip_creation_ftue_display_option":0,"polymer_selective_registration":true,"kevlar_exit_fullscreen_leaving_watch":true,"same_domain_static_resources_desktop":true,"remove_web_visibility_batching":true,"kevlar_disable_background_prefetch":true,"player_unified_fullscreen_transitions":true,"kevlar_enable_search_on_watch_history":true,"cold_missing_history":true,"skip_endpoint_param_comparison":true,"enable_desktop_polymer_video_masthead_upgrade":true,"web_android9_useragent_fix":true,"polymer_report_missing_web_navigation_endpoint_rate":0.1,"live_chat_replay_milliqps_threshold":5000,"service_worker_enabled":true,"preview_play_duration":3000,"third_party_integration_brand_accounts_ui":true,"kevlar_use_multiline_ellipsis":true,"enable_wta_kevlar_watch_pyv":true,"log_js_exceptions_fraction":0.2,"kevlar_enable_logging_directives":true,"web_gel_debounce_ms":10000,"polymer_schedule_immediate_components":true,"use_webrtc_ingestor_handshake":true,"restore_player_preloading":true,"enable_server_side_search_pyv":true,"kevlar_player_subscribe_sync_fix":true,"flag_playlist":true,"video_to_ad_use_gel":true,"service_worker_push_logged_out_prompt_watches":-1,"kevlar_no_url_params":true,"enable_more_related_ve_logging":true,"is_part_of_any_user_engagement_experiment":true,"autoescape_tempdata_url":true,"inline_comment_taller_inbox":true,"external_fullscreen_button_shown_threshold":10,"kevlar_menu_logging":true,"enable_money_stuff_module":true,"min_mouse_still_duration":20,"polymer2_native_firefox":true,"kevlar_miniplayer_set_element_early":true,"watch_next_pause_autoplay_lact_sec":4500,"kevlar_next_up_next_edu_emoji":"","warm_load_nav_start_web":true,"app_settings_snapshot_min_time_between_snapshots_hours":24,"polymer_addcreator_settimeout":true,"enable_signals":true,"desktop_pyv_on_watch_missing_params":true,"interaction_logging_on_gel_web":true,"kevlar_mini_guide":true,"kevlar_allow_multistep_video_init":true,"kevlar_sticky_channel_header":true,"kevlar_cancellable_service_request":true,"sponsorships_offer_video_red_play_button_desktop":true,"kevlar_mini_guide_width_threshold":746,"kevlar_enable_menu_separators":true,"polymer_report_client_url_requested_rate":0.001,"desktop_pyv_on_watch_override_lact":true,"kevlar_searchbox_designs":"legacy-centered","desktop_shopping_companion_wta_support":true,"polymer_cold_home_preload":true,"kevlar_use_response_ttl_to_invalidate_cache":true,"web_always_load_chat_support":true,"sponsorships_log_with_new_screen":true,"player_swfcfg_cleanup":true,"kevlar_miniplayer":true,"live_chat_continuation_expiration_usec":300000000,"kevlar_watch_fullerscreen_force_body_scrolling":true,"enable_logging_directives_desktop":true,"enable_afv_div_reset_in_kevlar":true,"youtubei_for_web":true,"enable_youtubei_innertube":true,"kevlar_disable_di":true,"service_worker_push_watch_page_prompt":true,"desktop_scheduler_soft_state_timer":800,"kevlar_real_search_endpoint":true,"desktop_companion_wta_support":true,"polymer_selective_initialization_watch":true,"kevlar_library_profile_column":true,"service_worker_push_force_notification_prompt_tag":"1","max_duration_to_consider_mouseover_as_hover":600000,"defer_menus":true,"enable_service_ajax_csn":true,"kevlar_abort_continuation_handler_on_navigate_and_refetch":true,"enable_watch_next_pause_autoplay_lact":true,"polymer_task_manager_status":"production","log_web_endpoint_to_layer":true,"kevlar_view_playlist_text_no_video_count":true,"external_fullscreen_button_click_threshold":2,"consent_url_override":"","kevlar_nitrate_mealbar_button_to_spec":true,"enable_client_streamz_web":true,"desktop_videowall_companion_wta_support":true,"kevlar_auto_watch_next":true,"use_polymer2":true,"enable_shorter_posts_on_home_desktop":true,"kevlar_watch_skeleton":true,"kevlar_icons_on_menus":true,"tvfilm_complete_transaction_grafting":true,"service_worker_push_home_page_prompt":true,"defer_overlays":true,"polymer_simple_endpoint":true,"polymer_enable_mdx":true,"sponsorships_new_offer_screen_desktop":true,"web_max_history_cache_size":100,"kevlar_new_subscribe_button_color":true,"live_chat_replay":true,"desktop_notification_set_title_bar":true,"debug_forced_promo_id":"","desktop_add_to_playlist_renderer_dialog_popup":true,"live_chat_over_playlist":true,"enable_docked_chat_messages":true,"disable_kevlar_fullscreen_update":true,"cancel_pending_navs":true,"live_chat_inline_moderation":true,"grid_playlist_view_more_text":true,"kevlar_snap_state_refresh":true,"kevlar_disable_forward_events_when_not_attached":true,"kevlar_home_skeleton_hide_later":true,"kevlar_miniplayer_playlist_activate":true,"very_optimistically_create_gel_client":true,"kevlar_use_chunking_lib":true,"recommended_video_reordering":true,"use_new_posts_image_ratio":true,"kevlar_player_stop_by_action":true,"persistent_miniplayer":true,"desktop_reactr_enable_dogfood":true,"retry_web_logging_batches":true,"move_desktop_topbar_to_watch_next":true,"live_chat_flash_money_button_on_super_chat_delivery":true,"enable_button_behavior_reuse":true,"high_priority_flyout_frequency":3,"log_vis_on_tab_change":true,"json_serialize_service_endpoints2":true,"web_memory_bloat_mb":0,"scheduled_watch_response":true,"service_worker_scope":"\/","kevlar_droppable_prefetchable_requests":true,"kevlar_mealbar_above_player":true,"desktop_polymer_video_masthead_always_use_responsive_iframe":true,"use_polymer2_shadow_dom_no_patch":true,"is_browser_supported_for_live_studio_streaming":true,"enable_gel_web_client_event_id":true,"desktop_polymer_video_masthead_mute_ad_support":true,"enable_live_studio_url":true,"kevlar_time_caching_start_threshold":15,"element_pool_populator_auto_abort":true,"minimum_duration_to_consider_mouseover_as_hover":500,"autoplay_pause_by_lact_sampling_fraction":0.0,"enable_web_ketchup_hero_animation":true,"live_chat_update_lact_on_web":true,"add_old_subscribe_button":true,"tighter_critical_section":true,"live_chat_top_chat_window_length_sec":4,"kevlar_library_v1_edu":true,"kevlar_history_nav_new_screen":true,"enable_creator_highlights":true,"kevlar_mousedown_prefetch_blacklist":true,"kevlar_svg_content_modularization_enabled":true,"enable_opaque_black_watchcard_hero_overlay_button":true,"enable_lcr_topbar_button_fields":true,"visibility_time_between_jobs_ms":100,"ten_video_reordering":[0,1,2,3,6,4,5,7,8,9],"enable_playlist_visibility":true,"web_gel_lact":true,"log_playback_associated_web":true,"enable_html5_conversion_ve_reporting":true,"polymer_video_renderer_defer_menu":true,"disable_autoshare_ui":true,"live_chat_unicode_emoji_json_url":"https:\/\/www.gstatic.com\/youtube\/img\/emojis\/emojis-svg-1.json","external_fullscreen_with_edu":true,"kevlar_stamp_watch_playlist_videos":true,"kevlar_playlist_collapsible":true,"botguard_periodic_refresh":true,"kevlar_prefetch":true,"enable_red_carpet_experience_web":true,"kevlar_home_skeleton_less_grids":true,"searchbox_reporting":true,"youthere_innertube_actions":true,"kevlar_mealbar_trigger_conditions":true,"kevlar_create_playlist_improvments":true,"interaction_click_on_gel_web":true,"prefetch_comments_ms_after_video":0,"app_settings_snapshot_is_logging_enabled":true,"wn_comments_use_gel":true,"polymer2_polyfill_manual_flush":true,"use_watch_fragments2":true,"kevlar_cancel_scheduled_comment_jobs_on_navigate":true,"kevlar_set_internal_player_size":true,"enable_webcam_dvr":true,"polymer_selective_initialization":true,"enable_midroll_ad_insertion":true,"enable_webcam_scheduling":true,"external_fullscreen":true,"defer_rendering_outside_visible_area":true,"kevlar_enable_reorderable_playlists":true,"polymer_sel_auto":true,"kevlar_manage_subscriptions_link":true,"kevlar_live_badges":true,"client_streamz_web_flush_count":100,"enable_webcam_scheduling_hint":true,"enable_web_red_carpet_video_as_thumbnail":true},"PAGE_BUILD_LABEL":"youtube.ytfe.desktop_20190717_6_RC1","VISITOR_DATA":"CgtqNEdzVUNHRnJjWSjP1czpBQ%3D%3D","ANIMATED_YOODLE_JS_URL":"\/yts\/jsbin\/www-animated-yoodle-vflZfroWe\/www-animated-yoodle.js","DEFERRED_DETACH":true,"PLAYER_CSS_URL":"\/yts\/cssbin\/player-vfl38dkD8\/www-player-2x-webp.css","CHANNEL_DEFAULT_BANNER":"https:\/\/s.ytimg.com\/yts\/img\/channels\/c4\/default_banner-vfl7DRgTn.png","ELEMENT_POOL_DEFAULT_CAP":75,"INNERTUBE_CONTEXT_GL":"DE","USE_CUSTOM_CONTROLS":false,"GAPI_HOST":"https:\/\/apis.google.com","SESSION_INDEX":0,"XHR_APIARY_HOST":"youtubei.youtube.com","NO_EMPTY_DATA_IMG":true,"XSRF_FIELD_NAME":"session_token","INNERTUBE_CONTEXT_HL":"en","INNERTUBE_API_KEY":"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8","INNERTUBE_CONTEXT_CLIENT_VERSION":"2.20190718","VISIBILITY_TIME_BETWEEN_JOBS_MS":100,"ENABLE_SELECTIVE_REGISTRATION":true,"SERVICE_WORKER_PROMPT_NOTIFICATIONS":false,"GAPI_LOCALE":"en_US","DEFERRED_BUNDLE_URL":"https:\/\/s.ytimg.com\/yts\/htmlbin\/desktop_polymer_sel_auto_svg_watch_deferred_v2-vflIrNijo.html","GAPI_HINT_PARAMS":"m;\/_\/scs\/abc-static\/_\/js\/k=gapi.gapi.en.JNa9MntajDY.O\/d=1\/rs=AHpOoo_db4DX0hhorP4qsjM6Ki5qzOgeUA\/m=__features__","EVENT_ID":"zyozXcuXGJPI1wLmga2ICw","HTML_DIR":"ltr","YPC_MB_URL":"https:\/\/payments.youtube.com\/payments\/v4\/js\/integrator.js?ss=md","MINIPLAYER_ENABLED":true,"LANGUAGE":"English","ASYNC_WATCH":true,"INNERTUBE_CONTEXT_CLIENT_NAME":1,"GOOGLE_FEEDBACK_PRODUCT_DATA":{"polymer":"active","accept_language":"en-US,en;q=0.9,und;q=0.8","polymer2":"active"},"GOOGLE_FEEDBACK_PRODUCT_ID":"59","INNERTUBE_API_VERSION":"v1","START_IN_THEATER_MODE":false,"ENABLE_ELEMENT_POOL_AUTO_ABORT":true,"PLAYER_JS_URL":"\/yts\/jsbin\/player_ias-vflFxFa3y\/en_US\/base.js","REUSE_COMPONENTS":true,"SBOX_JS_URL":"\/yts\/jsbin\/www-searchbox-vflT8nCcn\/www-searchbox.js","LATEST_ECATCHER_SERVICE_TRACKING_PARAMS":{"client.name":"WEB"}});ytcfg.set("SBOX_LABELS", {"SUGGESTION_DISMISS_LABEL":"Remove","SUGGESTION_DISMISSED_LABEL":"Suggestion removed"});var setMessage = function(msg) {if (window.yt && yt.setMsg) {yt.setMsg(msg);} else {window.ytcfg = window.ytcfg || {};ytcfg.msgs = msg;}};setMessage({'SIGN_IN_LABEL': "Sign in",'SHARE_LABEL': "Share",'GUIDE_ALT_LABEL': "Guide",'LOGO_ALT_LABEL': "YouTube Home",'BACK_ALT_LABEL': "Back",'CHOOSE_COUNTRY_LABEL': "Choose your location",'COUNTRY_LABEL': "Location:",'CHOOSE_LANGUAGE_LABEL': "Choose your language",'LANGUAGE_LABEL': "Language:",'OFF': "Off",'ON': "On",'RESTRICTED_MODE_LABEL': "Restricted Mode:",'RESTRICTED_MODE_TEXT_LINE_1': "Restricted Mode hides videos that may contain inappropriate content flagged by users and other signals. No filter is 100% accurate, but it should help you avoid most inappropriate content.",'RESTRICTED_MODE_TEXT_LINE_2': "Your Restricted Mode setting will apply to this browser only.",'RESTRICTED_MODE_TITLE': "Restricted Mode",'IMAGE_HORIZONTAL_POSITION_LABEL': "The center of the preview is $x_percent% from the left and $y_percent% from the right.",'IMAGE_VERTICAL_POSITION_LABEL': "The center of the preview is $x_percent% from the top and $y_percent% from the bottom.",'REPOSITION_IMAGE_HORIZONTALLY_LABEL': "Use left and right arrow keys to reposition the preview",'REPOSITION_IMAGE_VERTICALLY_LABEL': "Use up and down arrow keys to reposition the preview",'REACH_TOP_OF_IMAGE_TEXT': "You have reached the top of the image",'REACH_BOTTOM_OF_IMAGE_TEXT': "You have reached the bottom of the image",'REACH_LEFT_OF_IMAGE_TEXT': "You have reached the left of the image",'REACH_RIGHT_OF_IMAGE_TEXT': "You have reached the right of the image",'SBOX_PLACEHOLDER': "Search",'SBOX_INAPPROPRIATE_PROMPT': "Report search predictions",'SBOX_INAPPROPRIATE_TITLE': "Report search predictions",'SBOX_INAPPROPRIATE_SUGGESTIONS': "Select predictions you would like to report:",'SBOX_INAPPROPRIATE_CATEGORY': "The selected predictions are:",'SBOX_INAPPROPRIATE_HATEFUL': "Hateful",'SBOX_INAPPROPRIATE_EXPLICIT': "Sexually explicit",'SBOX_INAPPROPRIATE_VIOLENT': "Violent",'SBOX_INAPPROPRIATE_DANGEROUS': "Dangerous and harmful activity",'SBOX_INAPPROPRIATE_OTHER': "Other",'SBOX_INAPPROPRIATE_REASON': "Reason (required)",'SBOX_INAPPROPRIATE_ADDITIONAL': "Provide additional details (optional)",'SBOX_INAPPROPRIATE_SUBMIT': "Submit",'SBOX_INAPPROPRIATE_REPORT': "Report",'SBOX_INAPPROPRIATE_CANCEL': "Cancel",'SBOX_INAPPROPRIATE_TOAST': "Thanks for your feedback!",'CLASSIC_YOUTUBE_LABEL': "Restore old YouTube",'ADD_TO_DROPDOWN_LABEL': "Save to...",'REQUIRED_LABEL': "Required",'NO_ANGLE_BRACKET_LABEL': "Playlist name cannot contain \u003c or \u003e\n",'EDIT_AVATAR_LABEL': "Edit profile picture",'AD_BADGE_TEXT': "Ad",'EDU_GOT_IT': "Got It",'MINIPLAYER_EDU_TITLE': "Keep watching while you browse",'MINIPLAYER_EDU_TEXT': "You can turn off this miniplayer in Settings",'MINIPLAYER_EDU_SETTINGS': "Settings",'MINIPLAYER_CLOSE': "Close",'QUEUE': "Queue",'ADDED_TO_QUEUE': "Added to queue",'QUEUE_CLEARED': "$COUNT_PLACEHOLDER videos in the queue removed.",'QUEUE_CLOSE_MINIPLAYER_CONFIRM_TITLE': "Close the queue",'QUEUE_CLOSE_MINIPLAYER_CONFIRM_TEXT': "$COUNT_PLACEHOLDER videos will be removed from the queue.",'UNDO': "Undo",'CANCEL': "Cancel",'UP_NEXT': "Up next",'PLAYING_NOW': "Playing now",'NEXT_UP_NEXT_EDU_TITLE': "Control what video to play next",'NEXT_UP_NEXT_EDU_TEXT': "Click the ⋮ icon on any video to try it out.\n",'SUBS_FILTER_EDU_TEXT': "See new videos from each channel",'SUBS_GUIDE_ITEM_EDU_TEXT': "See new videos from all of your subscriptions",'SUBS_FILTER_EDU_CHANNEL_TEXT': "Now showing new videos from this channel.",'LIBRARY_GUIDE_ITEM_EDU_TITLE': "Check out your new Library",'LIBRARY_GUIDE_ITEM_EDU_TEXT': "Find your history, playlists, purchases, and more",'MENTIONS_EDU_TITLE': "Learn more",'MENTIONS_EDU_TEXT': "Go to the Help Center to see how mentions work on YouTube.",'EXPLORE_EDU_TEXT': "New! More ways to find great videos, channels and topics",'LS_LOADING_STANDARD': "Loading standard view",'LS_LOAD_HTML': "\u003ca href=\"https:\/\/www.youtube.com\/watch?v=qkdXAtO40Fo\u0026amp;t=18s\u0026amp;dp_lcl=1\u0026amp;disable_polymer=1\"\u003eLoad basic HTML\u003c\/a\u003e (for slow connections)\n",'LS_HOLD_ON': "Loading YouTube is taking longer than expected. Hold on ...",'LS_TIMED_OUT': "Something is wrong, it usually doesn’t take this long. You can continue to wait or click \u003ca href=\"https:\/\/www.youtube.com\/watch?v=qkdXAtO40Fo\u0026amp;t=18s\u0026amp;pbjreload=10\"\u003ehere\u003c\/a\u003e to reload the page.\n",'JOIN_MEMBERSHIP_EDU_TITLE': "Membership",'JOIN_MEMBERSHIP_EDU_TEXT': "Get access to exclusive perks when you purchase a membership to this channel.",'MANAGE_MEMBERSHIP_EDU_TITLE': "See your members-only perks",'MANAGE_MEMBERSHIP_EDU_TEXT': "Access your benefits and manage your membership from here."});})();ytcfg.set('MENTIONS_EDU_HELP_LINK', "https:\/\/support.google.com\/youtube\/?p=creator_community");ytcfg.set('scheduler', {useRaf: true, timeout: 20});ytcfg.set('initialInnerWidth', window.innerWidth);ytcfg.set('initialInnerHeight', window.innerHeight);ytcfg.set("YTO_CKEE_ENABLED", {"guide":false,"wax_on":true,"crane_kick":true});ytcfg.set("YTO_CKEE_VIDEOS", ["1Aoc-cd9eYs","1jTy2VMqaM4","81XSlh_UKJg","9S9ydLeG-Lw","9z1nTwP2n0w","Anw5KRS2bjs","EsXRIHhAo5M","MfePCtYUy1g","NujGR1l9hAc","XPRNwg7KNos","_COmckF6OxE","_rB36UGoP4Y","aDTUH8VkhVE","c1z7iLlFu9E","d2_2oCRPrjM","hkwDj6A1oNk","iIaVdlcDRA0","l2t7qNQBthk","nrc-fRMHvBM","vNgbK85d0ZM","xCwwxNbtK6Y","xLtYmhj-0Kg","yO-hXXhYVkc"]);ytcfg.set("YTO_CKEE_FRAMERATE", 301);ytcfg.set("YTO_CKEE_SEEK_THRESHOLD", 0.5);window.ytcfg.set('IS_WATCH_PAGE_COLD', true);window.ytcfg.set('COLD_LOADED_PAGE', 'watch');window.ytcfg.set('LINK_API_KEY', "AIzaSyDophAQuyyiBr8h0nypEwXUKozH-BEswD0");window.ytcfg.set('LINK_OIS_DOMAIN', "oauthintegrations.googleapis.com");if (window.ytcsi) {window.ytcsi.tick("lpcf", null, '');}</script>
<script src="/yts/jsbin/scheduler-vfl0nTPXR/scheduler.js" type="text/javascript" name="scheduler/scheduler" ></script>
<script src="/yts/jsbin/player_ias-vflFxFa3y/en_US/base.js" type="text/javascript" name="player_ias/base" ></script>
<script >if (window.ytcsi) {window.ytcsi.tick("csl", null, '');}</script>
<style name="www-roboto" >@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu72xKOzY.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu5mxKOzY.woff2)format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7mxKOzY.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4WxKOzY.woff2)format('woff2');unicode-range:U+0370-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7WxKOzY.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2)format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxK.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v18/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v18/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2)format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v18/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v18/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2)format('woff2');unicode-range:U+0370-03FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v18/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v18/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2)format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v18/KFOkCnqEu92Fr1Mu51xIIzI.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51S7ACc3CsTKlA.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51S7ACc-CsTKlA.woff2)format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51S7ACc2CsTKlA.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51S7ACc5CsTKlA.woff2)format('woff2');unicode-range:U+0370-03FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51S7ACc1CsTKlA.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51S7ACc0CsTKlA.woff2)format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v18/KFOjCnqEu92Fr1Mu51S7ACc6CsQ.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2)format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2)format('woff2');unicode-range:U+0370-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2)format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmEU9fBBc4.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}</style><script name="www-roboto" >if (document.fonts && document.fonts.load) {document.fonts.load("400 10pt Roboto", "E");document.fonts.load("500 10pt Roboto", "E");}</script>
<link rel="stylesheet" href="/yts/cssbin/player-vfl38dkD8/www-player-2x-webp.css" name="player/www-player" id="player-css"><link rel="stylesheet" href="/yts/cssbin/www-main-desktop-player-skeleton-2x-webp-vflUDgkBz.css" name="www-main-desktop-player-skeleton"><link rel="stylesheet" href="/yts/cssbin/www-main-desktop-watch-page-skeleton-2x-webp-vflQ9GNSj.css" name="www-main-desktop-watch-page-skeleton"><style name="global_styles">body{padding:0;margin:0;overflow-y:scroll}body.autoscroll{overflow-y:auto}body.no-scroll{overflow:hidden}body.no-y-scroll{overflow-y:hidden}.hidden{display:none}textarea{--paper-input-container-input_-_white-space:pre-wrap}</style><style name="masthead_shell">ytd-masthead.shell{background:rgba(255,255,255,0.98);position:fixed;top:0;right:0;left:0;display:-ms-flex;display:-webkit-flex;display:flex;height:56px;-ms-flex-align:center;-webkit-align-items:center;align-items:center}ytd-masthead.shell #menu-icon{margin-left:16px}ytd-app>ytd-masthead.chunked{position:fixed;top:0;width:100%}ytd-masthead.shell.dark,ytd-masthead.shell.theater{background:rgba(40,40,40,0.98)}ytd-masthead.shell.full-window-mode{background:rgba(40,40,40,0.98);opacity:0;transform:translateY(calc(-100% - 5px))}ytd-masthead.shell>*:first-child{padding-left:16px}ytd-masthead.shell>*:last-child{padding-right:16px}ytd-masthead #masthead-logo{display:-ms-flex;display:-webkit-flex;display:flex}ytd-masthead #masthead-logo #country-code{margin-right:2px}ytd-masthead.shell #yt-logo-svg,ytd-masthead.shell #yt-logo-red-svg{align-self:center;margin-left:8px;padding:0;color:black}ytd-masthead.shell #a11y-skip-nav{display:none}ytd-masthead.shell svg{width:40px;height:40px;padding:8px;margin-right:8px;box-sizing:border-box;color:#606060;fill:currentColor}ytd-masthead .external-icon{width:24px;height:24px}ytd-masthead .yt-icons-ext{fill:currentColor;color:#606060}ytd-masthead.shell.dark .yt-icons-ext ytd-masthead.shell.theater .yt-icons-ext{fill:#fff}ytd-masthead svg#yt-logo-svg{width:80px}ytd-masthead svg#yt-logo-red-svg{width:106.4px}ytd-app>#drop-shadow{pointer-events:none;box-shadow:inset 0 4px 8px -3px rgba(17,17,17,.06);height:8px;position:fixed;top:56px;width:100%;z-index:2}@media (max-width:656px){ytd-masthead.shell>*:first-child{padding-left:8px}ytd-masthead.shell>*:last-child{padding-right:8px}ytd-masthead.shell svg{margin-right:0}ytd-masthead #masthead-logo{-ms-flex:1 1 .000000001px;-webkit-flex:1;flex:1;-webkit-flex-basis:.000000001px;flex-basis:.000000001px}ytd-masthead.shell #yt-logo-svg,ytd-masthead.shell #yt-logo-red-svg{margin-left:4px}}@media (min-width:876px){ytd-masthead #masthead-logo{width:129px}}#masthead-skeleton-icons{display:flex;flex:1;flex-direction:row;justify-content:flex-end}ytd-masthead.masthead-finish #masthead-skeleton-icons{display:none}.masthead-skeleton-icon{border-radius:50%;height:32px;width:32px;margin:0 8px;background-color:hsl(0,0%,89%)}ytd-masthead.dark .masthead-skeleton-icon{background-color:hsl(0,0%,16%)}</style><style name="masthead_custom_styles" is="custom-style" id="ext-styles" >ytd-masthead .yt-icons-ext{color:var(--yt-spec-icon-active-other)}ytd-masthead svg#yt-logo-svg #youtube-paths path,ytd-masthead svg#yt-logo-red-svg #youtube-red-paths path{fill:#282828}ytd-masthead.dark svg#yt-logo-svg #youtube-paths path,ytd-masthead.dark svg#yt-logo-red-svg #youtube-red-paths path,ytd-masthead.theater svg#yt-logo-svg #youtube-paths path,ytd-masthead.theater svg#yt-logo-red-svg #youtube-red-paths path{fill:#fff}</style><style name="searchbox">#search-input.ytd-searchbox-spt input{-webkit-appearance:none;-webkit-font-smoothing:antialiased;background-color:transparent;border:none;box-shadow:none;color:inherit;font-family:'Roboto','Noto',sans-serif;font-size:16px;font-weight:400;line-height:24px;margin-left:4px;max-width:100%;outline:none;text-align:inherit;width:100%;-ms-flex:1 1 .000000001px;-webkit-flex:1;flex:1;-webkit-flex-basis:.000000001px;flex-basis:.000000001px}#search-container.ytd-searchbox-spt{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}#search-input.ytd-searchbox-spt #search::-webkit-input-placeholder,#search-input.ytd-searchbox-spt #search::-moz-input-placeholder,#search-input.ytd-searchbox-spt #search:-ms-input-placeholder{color:hsl(0,0%,53.3%)}</style><style name="kevlar_global_styles">html{background-color:#f9f9f9!important}html[dark]{background-color:#131313!important}</style><style name="emergencycssformatted">body[dir=rtl] ytd-app[scrolling_] {
right: 0 !important; left: calc((var(--ytd-app-fullerscreen-scrollbar-width) + 1px) * -1) !important
}

#guide-inner-content:hover {
overflow-y: auto
}

ytd-playlist-panel-video-renderer {
display: flex; min-height: 56px; padding: 4px 8px 4px 0
}

ytd-banner-promo-renderer {
--yt-lightsource-section2-color: var(--yt-spec-static-overlay-text-primary); --yt-lightsource-section3-color: var(--yt-spec-static-overlay-text-primary); --yt-lightsource-navBarColor: var(--yt-spec-static-overlay-text-primary); --yt-lightsource-body-text-color: var(--yt-spec-static-overlay-text-primary); --yt-lightsource-iron-activated-color: var(--yt-spec-static-overlay-text-primary); --yt-lightsource-iron-inactive-color: var(--yt-spec-static-overlay-text-primary); --yt-basic-foreground-body-color: var(--yt-spec-static-overlay-text-primary); --yt-basic-foreground-activated-color: var(--yt-spec-static-overlay-text-primary)
}

#a11y-skip-nav {
display: none !important
}

[dark] ytd-menu-popup-tip-renderer {
color: #FFFFFF;
}

#playlist.ytd-watch-flexy[disable-upgrade] {
display: none !important
}

#watch-page-skeleton #related {
display: none
}

.yt-simple-endpoint {
text-decoration: none
}</style><style name="emergencycss">.ytp-player-minimized .ad-container-single-media-element-annotations { display: block; } ytd-watch-flexy { min-width: 0; } ytd-watch-flexy[flexy_] #primary.ytd-watch-flexy { min-width: calc(var(--ytd-watch-flexy-min-player-height) * (var(--ytd-watch-flexy-width-ratio) / var(--ytd-watch-flexy-height-ratio))); } ytd-watch-flexy[flexy_] #secondary.ytd-watch-flexy { min-width: 300px; } ytd-live-chat-frame[collapsed] { height: auto !important; } ytd-live-chat-frame[collapsed] iframe.ytd-live-chat-frame { height: 0; max-height: 0; }</style><link rel="search" type="application/opensearchdescription+xml" href="https://www.youtube.com/opensearch?locale=en_US" title="YouTube"><link rel="manifest" href="/manifest.json"></head><body dir="ltr" no-y-overflow><script >if (window.ytcsi) {window.ytcsi.tick("bs", null, '');}ytcfg.set('initialBodyClientWidth', document.body.clientWidth);window.ytcfg.set('SERVICE_WORKER_KILLSWITCH', false);</script><!-- end of chunk --> <script >if (window.ytcsi) {window.ytcsi.tick("bc", null, '');}</script>
<link rel="preload" href="https://r2---sn-8xgn5uxa-cxge.googlevideo.com/generate_204" as="fetch">
<link rel="preload" href="https://r2---sn-8xgn5uxa-cxge.googlevideo.com/generate_204?conn2" as="fetch">

<link as="document" rel="preload" href="/yts/htmlbin/desktop_polymer_sel_auto_svg_watch_v2-vflH2TPyu.html">
<link rel="preload" href="/yts/jsbin/desktop_polymer_sel_auto_svg_watch_v2-vfl2eHWnc/desktop_polymer_sel_auto_svg_watch_v2.js" as="script">

<div id="player" class="skeleton flexy">
<div id="player-wrap">
<div id="player-api"></div>
<script >if (window.ytcsi) {window.ytcsi.tick("cfg", null, '');}</script> <script >var ytplayer = ytplayer || {};ytplayer.config = {"args":{"title":"Baby Loves Cat","use_fast_sizing_on_watch_default":false,"enablejsapi":"1","author":"Merkley Family","innertube_api_version":"v1","authuser":0,"adaptive_fmts":"lmt=1534885511291235\u0026size=1920x1080\u0026bitrate=3763632\u0026init=0-714\u0026quality_label=1080p\u0026type=video%2Fmp4%3B+codecs%3D%22avc1.640028%22\u0026clen=17016062\u0026index=715-962\u0026xtags=\u0026itag=137\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D137%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26clen%3D17016062%26dur%3D90.757%26lmt%3D1534885511291235%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRAIgR_o108BrzTf7jZ4Noos3qHiJFrSMZ8T482wd1adrn80CIFe5dxxo8kwcrrW2Ucr8wodooyal-oUFEqdhIUT5jyNl%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885427951281\u0026size=1920x1080\u0026bitrate=2637893\u0026primaries=bt709\u0026init=0-219\u0026quality_label=1080p\u0026type=video%2Fwebm%3B+codecs%3D%22vp9%22\u0026clen=20513395\u0026eotf=bt709\u0026index=220-520\u0026xtags=\u0026itag=248\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D248%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26clen%3D20513395%26dur%3D90.757%26lmt%3D1534885427951281%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIgIwvy6y-WPC_H4vBstD-AElmiCqb5N-n-bY7xMH305WMCIQDaAZbr7esIhz6BqgppB76eivCIinlRkZqd5ofdNuXXCA%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885487142244\u0026size=1280x720\u0026bitrate=1776485\u0026init=0-712\u0026quality_label=720p\u0026type=video%2Fmp4%3B+codecs%3D%22avc1.4d401f%22\u0026clen=11336867\u0026index=713-960\u0026xtags=\u0026itag=136\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D136%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26clen%3D11336867%26dur%3D90.757%26lmt%3D1534885487142244%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIgNNTfFjbiS-C8ztnf8P90R54ZMF9y_DZahfX9mNA8pMsCIQDc14BtX3OMBVdGCHyX0iagO1mqD3NyP66J-WM71z84vQ%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885345739664\u0026size=1280x720\u0026bitrate=1498384\u0026primaries=bt709\u0026init=0-219\u0026quality_label=720p\u0026type=video%2Fwebm%3B+codecs%3D%22vp9%22\u0026clen=13641818\u0026eotf=bt709\u0026index=220-516\u0026xtags=\u0026itag=247\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D247%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26clen%3D13641818%26dur%3D90.757%26lmt%3D1534885345739664%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIgHFEeSq7RkA05kp5ZeuxBL3w8gA33wfd7y8aNMRxsiJ0CIQDrnSoWPWRiG_UC19impyc8L7xt0xm9GlzVYc6TYb1ALg%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885481897658\u0026size=854x480\u0026bitrate=1041045\u0026init=0-712\u0026quality_label=480p\u0026type=video%2Fmp4%3B+codecs%3D%22avc1.4d401f%22\u0026clen=8106704\u0026index=713-960\u0026xtags=\u0026itag=135\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D135%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26clen%3D8106704%26dur%3D90.757%26lmt%3D1534885481897658%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIhAOneXVSbMzfsK4vCqHhSwe59QzgEH02ryzaSsoU-EbbRAiA_vMOTzhETak4-HBqTosYHbijEy1eGWpqrqPKfCLdFJA%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885331683172\u0026size=854x480\u0026bitrate=767469\u0026primaries=bt709\u0026init=0-219\u0026quality_label=480p\u0026type=video%2Fwebm%3B+codecs%3D%22vp9%22\u0026clen=8140818\u0026eotf=bt709\u0026index=220-516\u0026xtags=\u0026itag=244\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D244%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26clen%3D8140818%26dur%3D90.757%26lmt%3D1534885331683172%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIgELibOiv9Tn15v5vucDz25dXveyWXAhe0vrSqv8zJ8ZICIQCkmPbgcC8eqsaX14iD1VH5lgUd5M4ZrIxDk2ObAKHlMQ%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885470974982\u0026size=640x360\u0026bitrate=670410\u0026init=0-712\u0026quality_label=360p\u0026type=video%2Fmp4%3B+codecs%3D%22avc1.4d401e%22\u0026clen=5418200\u0026index=713-960\u0026xtags=\u0026itag=134\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D134%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26clen%3D5418200%26dur%3D90.757%26lmt%3D1534885470974982%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIhANkYyglfCJysYo4vZVrr6OjI4H68t4mvzvMGZykUTQD1AiA1tJOuFlY4eU1oxyXKNwtE6HHZYcT95u41KVxwRyTENQ%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885309029230\u0026size=640x360\u0026bitrate=422738\u0026primaries=bt709\u0026init=0-219\u0026quality_label=360p\u0026type=video%2Fwebm%3B+codecs%3D%22vp9%22\u0026clen=4422221\u0026eotf=bt709\u0026index=220-516\u0026xtags=\u0026itag=243\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D243%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26clen%3D4422221%26dur%3D90.757%26lmt%3D1534885309029230%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRgIhAMNLNRecPKy_wLyTyX0HEc96lxUbVgSM_GpKmPMhQMIEAiEAnxeqf_a6-CYHMTrGtKDQ8m45TDdYN4kTD2LilIfOyVo%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885461236952\u0026size=426x240\u0026bitrate=302469\u0026init=0-712\u0026quality_label=240p\u0026type=video%2Fmp4%3B+codecs%3D%22avc1.4d4015%22\u0026clen=2730291\u0026index=713-960\u0026xtags=\u0026itag=133\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D133%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26clen%3D2730291%26dur%3D90.757%26lmt%3D1534885461236952%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRgIhAOWgTvQM89tM6nOLg8gq1guMdESo2Rtmrxj1TRYvqp7WAiEA7fT_e01devz9uZTDnaaEbS0npWtatIn_lQBCM072jUk%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885276222825\u0026size=426x240\u0026bitrate=225146\u0026primaries=bt709\u0026init=0-218\u0026quality_label=240p\u0026type=video%2Fwebm%3B+codecs%3D%22vp9%22\u0026clen=2270657\u0026eotf=bt709\u0026index=219-515\u0026xtags=\u0026itag=242\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D242%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26clen%3D2270657%26dur%3D90.757%26lmt%3D1534885276222825%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIhAIfrd570Gd2aEEO0ZJwiaicbGCnB9i1pr2UWxyDhiYaRAiAJBsIjB-zVU3YLr5haMITErMn6rWuTCKd8TfMcZAROwg%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885461642059\u0026size=256x144\u0026bitrate=100394\u0026init=0-711\u0026quality_label=144p\u0026type=video%2Fmp4%3B+codecs%3D%22avc1.4d400c%22\u0026clen=890357\u0026index=712-959\u0026xtags=\u0026itag=160\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D160%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26clen%3D890357%26dur%3D90.757%26lmt%3D1534885461642059%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRAIgeydNdMZvjOeCxgOyEWBuuM4svRsTx8K_VhCGP-nttJgCIG6XTNXHtbs-XY_3vA19UlCalSH8I8WyRPXUVPbLh7zI%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,lmt=1534885307017166\u0026size=256x144\u0026bitrate=96662\u0026primaries=bt709\u0026init=0-217\u0026quality_label=144p\u0026type=video%2Fwebm%3B+codecs%3D%22vp9%22\u0026clen=1065991\u0026eotf=bt709\u0026index=218-513\u0026xtags=\u0026itag=278\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D278%26aitags%3D133%252C134%252C135%252C136%252C137%252C160%252C242%252C243%252C244%252C247%252C248%252C278%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26clen%3D1065991%26dur%3D90.757%26lmt%3D1534885307017166%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Caitags%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRAIgb-izLt8vZWiMXgyQEhusWka8wqr3s0ZXf3otarbGOvcCIAZTGzNjy4rRrpn8YxZPKujKhaiwmca8n3G6Yew1igUK%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026fps=30\u0026projection_type=1,audio_channels=1\u0026lmt=1534884959675737\u0026bitrate=96049\u0026init=0-591\u0026type=audio%2Fmp4%3B+codecs%3D%22mp4a.40.2%22\u0026audio_sample_rate=44100\u0026clen=1079854\u0026index=592-743\u0026xtags=\u0026projection_type=1\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D140%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Daudio%252Fmp4%26gir%3Dyes%26clen%3D1079854%26dur%3D90.813%26lmt%3D1534884959675737%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIgTrn3o8N1MERA098vjWpOz-Bef9-MdSTeq7XE2gzqpFYCIQCtKxFxjhuodcuhyaQfKPIIGlTCx6JySlzdAmW23GYVLg%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026itag=140,audio_channels=1\u0026lmt=1534884957567715\u0026bitrate=48200\u0026init=0-258\u0026type=audio%2Fwebm%3B+codecs%3D%22opus%22\u0026audio_sample_rate=48000\u0026clen=508306\u0026index=259-424\u0026xtags=\u0026projection_type=1\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D249%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Daudio%252Fwebm%26gir%3Dyes%26clen%3D508306%26dur%3D90.781%26lmt%3D1534884957567715%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRgIhAPByyziuTnXDhLxTDDwQISh4GvEPhs_tHJ_qEhepaUVQAiEA2AuXwQiUNz5tMeclL5XZQiwyP4b_J9ReK78erKv0WmI%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026itag=249,audio_channels=1\u0026lmt=1534884957668767\u0026bitrate=64209\u0026init=0-258\u0026type=audio%2Fwebm%3B+codecs%3D%22opus%22\u0026audio_sample_rate=48000\u0026clen=675795\u0026index=259-425\u0026xtags=\u0026projection_type=1\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D250%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Daudio%252Fwebm%26gir%3Dyes%26clen%3D675795%26dur%3D90.781%26lmt%3D1534884957668767%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRQIhALkvKrMOljvJ00E-DgR7h_Qzpknd3w5qA-NF_DQeNHbaAiASiSwQekS6jW6dq01bvwfHwoMlqN2NeSAWC6sV49K5SQ%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026itag=250,audio_channels=1\u0026lmt=1534884957872398\u0026bitrate=93611\u0026init=0-258\u0026type=audio%2Fwebm%3B+codecs%3D%22opus%22\u0026audio_sample_rate=48000\u0026clen=1014927\u0026index=259-425\u0026xtags=\u0026projection_type=1\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D251%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Daudio%252Fwebm%26gir%3Dyes%26clen%3D1014927%26dur%3D90.781%26lmt%3D1534884957872398%26mt%3D1563634255%26fvip%3D2%26keepalive%3Dyes%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cdur%252Clmt%26sig%3DALgxI2wwRgIhAMBGhypKzVFwa0w_7ZOs9BrYLD5uggeVSQbJwwGK1zt7AiEAvddyqjkNaeJNgVKcCZu-AxMuhwLOdx6ySuMapDD8L74%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D\u0026itag=251","enabled_engage_types":"3,6,4,5,17,1","hl":"en_US","account_playback_token":"QUFFLUhqbVJ3RmR6YlRZalNZU041N3gzUXBxMngyRWlnd3xBQ3Jtc0tta3ZQcmFueW5WYWFMVGlvUFNBa3hza2pGWW45Um1LVDFiS0NCWmJaQjJYNS0xSlRsakR3VVFwaDFLcEtGZ25QSGlfM3VOWGhnTHBLcnlQWThEU0NUTnVoVi1NQ1JQaG9YZ184ckU2Njdoc0RBUXN1aw==","cbr":"Chrome","show_miniplayer_button":"1","use_miniplayer_ui":"1","loaderUrl":"https:\/\/www.youtube.com\/watch?v=qkdXAtO40Fo\u0026t=18s","ucid":"UC5P8yei950tif7UmdPpkJLQ","fmt_list":"22\/1280x720,43\/640x360,18\/640x360","transparent_background":"1","csi_page_type":"watch","cbrver":"74.0.3729.169","host_language":"en","cver":"2.20190718","enablecsi":"1","c":"WEB","fflags":"html5_default_ad_gain=0.5\u0026html5_disable_liveonly_seeks=true\u0026html5_gapless_encrypted_to_clear=true\u0026playready_first_play_expiration=-1\u0026android_early_fetch_for_autoplay=true\u0026html5_probe_live_using_range=true\u0026use_ima_media_selection_in_bulleit=true\u0026bulleit_register_placements_in_order=true\u0026html5_max_av_sync_drift=50\u0026spacecast_uniplayer_decorate_manifest=true\u0026html5_probe_media_capabilities=true\u0026html5_platform_minimum_readahead_seconds=0.0\u0026html5_stale_dash_manifest_retry_factor=1.0\u0026html5_manifestless_no_redundant_seek_to_head=true\u0026enforce_cuerange_priority_on_web=true\u0026enable_simple_preview_for_postrolls_html5=true\u0026html5_prefer_server_bwe3=true\u0026hardwire_web_unplugged_get_video_info_to_tv=true\u0026html5_playbackmanager_enable_notify_new_drm_info=true\u0026allow_live_autoplay=true\u0026html5_hls_initial_bitrate=0\u0026vss_dni_delayping=0\u0026html5_turn_down_slates=true\u0026html5_waiting_before_ended=true\u0026html5_hfr_quality_cap=0\u0026variable_load_timeout_ms=0\u0026display_endscreen_heartbeat=true\u0026html5_suspend_manifest_on_pause=true\u0026html5_live_4k_more_buffer=true\u0026html5_log_playback_rate_change_killswitch=true\u0026mweb_playsinline_webview=true\u0026html5_ignore_bad_bitrates=true\u0026html5_variability_no_discount_thresh=1.0\u0026html5_widevine_robustness_strings=true\u0026kevlar_miniplayer_button=true\u0026variable_buffer_timeout_ms=0\u0026html5_subsegment_readahead_min_load_speed=1.5\u0026skip_restore_on_abandon_in_bulleit=true\u0026enable_html5_midroll_tsla_update=true\u0026html5_gapless_seek_tolerance_secs=0.0\u0026dynamic_ad_break_pause_threshold_sec=0\u0026android_attestation_flow=yt_player\u0026html5_seeking_buffering_only_playing=true\u0026bulleit_terminate_ad_when_ending_with_commands=true\u0026ad_to_video_use_gel=true\u0026html5_manifestless_accurate_sliceinfo=true\u0026low_engagement_player_quality_cap=360\u0026html5_new_seeking=true\u0026html5_pseudo_gapless=true\u0026html5_gapless_ended_transition_buffer_ms=200\u0026midroll_notify_time_seconds=5\u0026html5_max_buffer_duration=120\u0026live_fresca_v2=true\u0026desktop_image_companion_wta_support=true\u0026render_enhanced_overlays_as_ctas_for_desktop_style=unset\u0026html5_new_queueing=true\u0026bulleit_get_midroll_info_timeout_ms=8000\u0026enable_eviction_protection_for_bulleit=true\u0026html5_pipeline_manifestless=true\u0026skip_ad_pod_to_end_ads_quality=true\u0026html5_gaplesstransition_error_new_elem=true\u0026mweb_autonav=true\u0026html5_shrink_live_timestamps=true\u0026bulleit_extract_delayed_mpu_on_all_placement_init=true\u0026use_new_style=true\u0026use_touch_events_for_bulleit_mweb=true\u0026html5_av1_thresh=720\u0026attach_child_on_gel_web=true\u0026html5_license_constraint_delay=5000\u0026html5_av1_tv_killswitch=true\u0026desktop_player_button_tooltip_with_shortcut=true\u0026web_player_music_visualizer_treatment=fake\u0026html5_gapless_ad_byterate_multiplier=1.6\u0026html5_qoe_bearer=true\u0026html5_gapless_error_check_killswitch=true\u0026html5_release_mediakey_after_load=true\u0026html5_restrict_streaming_xhr_on_sqless_requests=true\u0026kevlar_frontend_video_list_actions=true\u0026html5_fludd_suspend=true\u0026enable_mute_ad_endpoint_resolution_on_bulleit=true\u0026html5_full_gapless_content_resume=true\u0026html5_tight_max_buffer_allowed_impaired_time=0.0\u0026autoplay_time=8000\u0026enable_overlays_wta=true\u0026html5_hls_pair_distinct_audio=true\u0026html5_max_readahead_bandwidth_cap=0\u0026enable_live_premiere_web_player_indicator=true\u0026fill_manifestless_windowed_live_config=true\u0026html5_ad_stats_bearer=true\u0026html5_gapless_allow_late_transitions=true\u0026html5_dynamic_readahead_growth_rate=0.0\u0026html5_max_live_dvr_window_plus_margin_secs=46800.0\u0026mweb_enable_instream_ui_refresh=true\u0026enable_instream_companion_on_mweb=true\u0026bulleit_update_tsla_cookie=true\u0026html5_decode_to_texture_cap=true\u0026live_readahead_seconds_multiplier=0.8\u0026html5_autonav_quality_cap=0\u0026show_thumbnail_behind_ypc_offer_module=true\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms=0\u0026html5_use_hasAdvanced_for_pbs=true\u0026html5_df_downgrade_thresh=0.2\u0026enable_website_actions_on_mweb=true\u0026html5_incremental_parser_buffer_duration_secs=1.5\u0026html5_qoe_intercept=\u0026html5_inline_video_quality_survey=true\u0026live_chunk_readahead=3\u0026html5_frame_accurate_seek_limit=3\u0026html5_expire_preloaded_players=true\u0026html5_index_range_auth=true\u0026enable_prefetch_for_postrolls=true\u0026website_actions_throttle_percentage=1.0\u0026html5_progressive_fallback=true\u0026web_player_response_fairplay_config_killswitch=true\u0026html5_request_sizing_multiplier=0.8\u0026html5_post_interrupt_readahead=20\u0026use_forced_linebreak_preskip_text=true\u0026html5_log_hls_video_height_change_as_format_change=true\u0026html5_parse_inline_fallback_host=true\u0026html5_live_low_latency_bandwidth_window=0.0\u0026use_fast_fade_in_0s=true\u0026html5_min_has_advanced=true\u0026html5_live_ultra_low_latency_bandwidth_window=0.0\u0026enable_afv_div_reset_in_kevlar=true\u0026youtubei_for_web=true\u0026html5_subsegment_readahead_timeout_secs=2.0\u0026html5_probe_primary_delay_base_ms=0\u0026desktop_companion_wta_support=true\u0026html5_hack_gapless_init=true\u0026html5_manifestless_captions=true\u0026html5_enable_fairplay_key_rotation=true\u0026add_border_to_bulleit_mweb_skip=true\u0026html5_min_readbehind_secs=0\u0026postroll_notify_time_seconds=5\u0026html5_ad_timeout_ms=0\u0026bulleit_remove_client_side_midroll_reactivation=true\u0026html5_variability_full_discount_thresh=3.0\u0026enable_bulleit_lidar_integration=true\u0026html5_pipeline_ultra_low_latency=true\u0026enable_brand_companion_on_mweb=true\u0026debug_dapper_trace_id=\u0026html5_readahead_ratelimit=3000\u0026stop_using_ima_sdk_gpt_request_activity=true\u0026html5_enable_widevine_key_rotation=true\u0026disable_web_watchlater_during_ads=true\u0026html5_gapless_disable_preload_at_finish=true\u0026playready_on_borg=true\u0026html5_bulleit_handle_gained_ended_state=true\u0026html5_probe_secondary_during_timeout_miss_count=2\u0026html5_maximum_readahead_seconds=0.0\u0026html5_adaptation_fix=true\u0026html5_progress_fix_fix=true\u0026html5_repredict_interval_secs=0.0\u0026persist_text_on_preview_button=true\u0026bulleit_send_engage_ping_on_companion_click=true\u0026html5_subsegment_readahead_target_buffer_health_secs=0.5\u0026html5_cut_vss_on_visibility=true\u0026kevlar_allow_multistep_video_init=true\u0026align_ad_to_video_player_lifecycle_for_bulleit=true\u0026html5_manifestless_request_prediction=true\u0026html5_request_size_max_secs=31\u0026html5_subsegment_readahead_load_speed_check_interval=0.5\u0026html5_remove_pause=false\u0026ad_to_ad_use_gel=true\u0026ensure_only_one_resolved_midroll_response_on_web=true\u0026www_for_videostats=true\u0026vmap_enabled_living_room=true\u0026html5_max_headm_for_streaming_xhr=0\u0026html5_gapless=true\u0026html5_min_upgrade_health=0\u0026enable_bulleit_mweb_remix_ui=true\u0026enable_text_ad_overlay_link_fix=true\u0026embed_api_deprecation=true\u0026html5_disable_aac_ac3=true\u0026tvhtml5_yongle_quality_cap=0\u0026enable_wta_for_tv_html5_unplugged=true\u0026html5_allowable_liveness_drift_chunks=2\u0026html5_jumbo_ull_subsegment_readahead_target=1.3\u0026html5_live_no_streaming_impedance_mismatch=true\u0026enable_static_font_size_on_text_only_preview=true\u0026bulleit_block_player_pause_until_ad_start=true\u0026send_html5_api_stats_ads_abandon=true\u0026disable_client_side_midroll_freq_capping_nonpc=true\u0026enable_html5_conversion_ve_reporting=true\u0026html5_disable_move_pssh_to_moov=true\u0026html5_no_placeholder_rollbacks=true\u0026html5_manifestless_shrink_timestamps=true\u0026web_player_api_logging_fraction=0.01\u0026html5_gl_fps_threshold=0\u0026html5_gapless_manage_live_readahead=true\u0026enable_live_premieres_vss_live_type_lp=true\u0026bulleit_web_dim_skip_using_css=true\u0026html5_pause_video_fix=true\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout=0.1\u0026html5_jumbo_ull_nonstreaming_mffa_ms=4000\u0026web_player_kaios_autoplay=true\u0026ima_disable_reset_active_media_load_timeout=true\u0026html5_live_disable_dg_pacing=true\u0026html5_prefer_low_quality_audio=true\u0026process_extensions_in_vast_wrappers_for_survey_ads=true\u0026sdk_wrapper_levels_allowed=0\u0026html5_vis_upgrades_are_resizes=true\u0026enable_composite_ad_player_presentation_for_bulleit=true\u0026html5_fallbacks_delay_primary_probes=true\u0026doubleclick_gpt_retagging=true\u0026web_player_response_overlay_parsing=false\u0026show_thumbnail_on_standard=true\u0026html5_background_cap_idle_secs=60\u0026release_player_on_abandon_for_bulleit_lr_ads_frontend=true\u0026html5_serverside_call_server_on_biscotti_error=true\u0026html5_limit_adaptation_requests=true\u0026html5_platform_whitelisted_for_frame_accurate_seeks=true\u0026html5_enable_ac3=true\u0026enable_ypc_clickwrap_on_living_room=true\u0026html5_suspend_loader=true\u0026html5_gapless_max_played_ranges=12\u0026html5_gapless_min_duration_ms=0\u0026visibility_error_html_dump_sample_rate=0.01\u0026sdk_ad_prefetch_time_seconds=-1\u0026bulleit_use_touch_events_for_skip=true\u0026tvhtml5_disable_live_prefetch=true\u0026legacy_autoplay_flag=true\u0026bulleit_mimic_ima_player_api_calls=true\u0026html5_connect_timeout_secs=7.0\u0026html5_msi_error_fallback=true\u0026html5_bmffparser_use_fast_read_string=true\u0026disable_annotations_cache_if_owner=true\u0026hide_preskip=true\u0026html5_playback_data_migration=true\u0026web_logging_max_batch=100\u0026desktop_action_companion_wta_support=true\u0026use_new_skip_icon=true\u0026disable_organic_cta_on_ad_playback=true\u0026interaction_screen_on_gel_web=true\u0026fixed_padding_skip_button=true\u0026set_interstitial_advertisers_question_text=true\u0026mpu_visible_threshold_count=2\u0026enable_embed_autoplay_delay=true\u0026html5_log_rebuffer_events=0\u0026ad_pod_disable_companion_persist_ads_quality=true\u0026html5_no_shadow_env_data_redux=true\u0026enable_on_skip_command_for_bulleit_living_room=true\u0026html5_gapless_no_requests_after_lock=true\u0026ima_video_ad_with_overlay_class_logging_percentage=0.01\u0026html5_optimality_migration=true\u0026html5_adjust_effective_request_size=true\u0026html5_creativeless_vast_on_ima=true\u0026web_player_attestation_auth_headers=true\u0026html5_jumbo_mobile_subsegment_readahead_target=3.0\u0026html5_subsegment_readahead_seek_latency_fudge=0.5\u0026bulleit_use_http_get_by_default_for_get_midroll_info=true\u0026forced_brand_precap_duration_ms=2000\u0026disable_client_side_midroll_freq_capping=true\u0026html5_av1_thresh_hcc=720\u0026uniplayer_dbp=true\u0026mweb_cougar=true\u0026html5_manifestless_interpolate=true\u0026mweb_muted_autoplay_animation=shrink\u0026enable_bulleit_for_mweb=true\u0026allow_poltergust_autoplay=true\u0026show_countdown_on_bumper=true\u0026html5_manifestless_always_redux=true\u0026html5_disable_audio_slicing=true\u0026html5_player_autonav_logging=true\u0026html5_disable_subscribe_new_vis=true\u0026html5_subsegment_readahead_min_buffer_health_secs=0.25\u0026html5_drm_output_restriction_retry_logic=true\u0026html5_disable_non_contiguous=true\u0026enable_cc_button_for_lasr=true\u0026use_always_dimmed_skip_in_bulleit_web=true\u0026html5_video_tbd_min_kb=0\u0026html5_elbow_tracking_tweaks=true\u0026html5_live_abr_repredict_fraction=0.0\u0026html5_stop_video_in_cancel_playback=true\u0026max_resolution_for_white_noise=360\u0026pass_biscotti_id_in_header_ajax=true\u0026html5_use_streaming_xhr_abort_support=true\u0026html5_variability_discount=0.5\u0026delay_bulleit_media_load_timer=true\u0026html5_enable_4k_hq_enc=true\u0026fast_autonav_in_background=true\u0026html5_get_video_info_timeout_ms=30000\u0026provide_default_wta_reasons=true\u0026tv_html5_bulleit_unify_adinfo=true\u0026html5_media_fullscreen=true\u0026html5_simple_buffered_bytes=true\u0026king_crimson_player_redux=true\u0026unplugged_tvhtml5_botguard_attestation=true\u0026segment_volume_reporting=true\u0026html5_disable_manifestless_sqless_sync=true\u0026html5_streaming_xhr_progress_includes_latest=true\u0026preskip_button_style_ads_backend=countdown_next_to_thumbnail\u0026lightweight_watch_video_swf=true\u0026player_unified_fullscreen_transitions=true\u0026html5_non_zero_gapless=true\u0026use_survey_skip_in_0s=true\u0026html5_aspect_from_adaptive_format=true\u0026html5_default_quality_cap=0\u0026dynamic_ad_break_seek_threshold_sec=0\u0026desktop_cleanup_companion_on_instream_begin=true\u0026html5_bandwidth_window_size=0\u0026bulleit_use_cue_video_to_reset_on_stop_ad=true\u0026defer_playability_status_fillers=true\u0026lasr_captions_holdback_counterfactual_id=0\u0026web_gel_debounce_ms=10000\u0026html5_gapless_preloading=true\u0026enable_bulleit_mweb_gaming_ui=true\u0026call_release_video_in_bulleit=true\u0026video_to_ad_use_gel=true\u0026bulleit_use_video_end_cuerange_for_completion=true\u0026web_player_sentinel_is_uniplayer=true\u0026html5_quality_cap_min_age_secs=0\u0026flex_theater_mode=true\u0026disable_new_pause_state3=true\u0026fix_bulleit_cue_range_seek=true\u0026html5_new_vis_fullscreen_and_airplay=true\u0026show_interstitial_for_3s=true\u0026html5_delay_initial_loading=true\u0026enable_client_monitoring_for_bulleit_adplacement_schedule=true\u0026html5_tv_bearer=true\u0026html5_serverside_call_server_on_biscotti_timeout=true\u0026desktop_shopping_companion_wta_support=true\u0026html5_reuse_loader=true\u0026use_refreshed_overlay_buttons=true\u0026html5_hls_min_video_height=0\u0026bulleit_use_video_ad_div_as_overlay_container=true\u0026web_player_assume_format3_available=true\u0026allow_midrolls_on_watch_resume_in_bulleit=true\u0026html5_skip_widevine_innertube_drm_heartbeats=true\u0026html5_serverside_biscotti_id_wait_ms=1000\u0026mweb_playsinline=true\u0026html5_disable_vp8_only_browsers=true\u0026html5_live_pin_to_tail=true\u0026kevlar_miniplayer=true\u0026enable_ad_pod_specific_ui=true\u0026html5_av1_thresh_lcc=360\u0026delay_ads_gvi_call_on_bulleit_living_room_ms=0\u0026html5_gapless_skip_remove=true\u0026tvhtml5_min_readbehind_secs=20\u0026html5_use_adaptive_live_readahead=true\u0026html5_peak_shave=true\u0026enable_kevlar_action_companion_cleanup=true\u0026web_player_response_ypc_parsing=true\u0026html5_live_quality_cap=0\u0026html5_firefox_ambisonic_opus=true\u0026ad_video_end_renderer_duration_milliseconds=7000\u0026html5_enable_embedded_player_visibility_signals=true\u0026dash_manifest_version=5\u0026html5_disable_extra_update_resource=true\u0026html5_request_size_min_secs=0.0\u0026html5_show_stats_nerds_debug_info=true\u0026desktop_videowall_companion_wta_support=true\u0026html5_vss_live_mode_killswitch=true\u0026html5_store_xhr_headers_readable=true\u0026html5_disable_vod_timestamp_rewriting=true\u0026html5_av1_ads=true\u0026player_destroy_old_version=true\u0026set_default_wta_if_missing_for_externs=true\u0026html5_streaming_xhr_buffer_mdat=true\u0026html5_min_readbehind_cap_secs=60\u0026html5_stop_start_seconds=true\u0026html5_ignore_updates_before_initial_ping=true\u0026html5_streaming_xhr_optimize_lengthless_mp4=true\u0026html5_use_media_capabilities=true\u0026ensure_only_one_ads_termination_ping_for_bulleit=true\u0026html5_background_quality_cap=360\u0026html5_incremental_parser_buffer_extra_bytes=16384\u0026html5_minimum_readahead_seconds=0.0\u0026skip_ad_button_with_thumbnail=true\u0026mweb_add_ad_info_button_on_fullscreen_only_devices=true\u0026hfr_dropped_framerate_fallback_threshold=0\u0026ad_duration_threshold_for_showing_endcap_seconds=15\u0026html5_desktop_vr180_allow_panning=true\u0026html5_request_size_padding_secs=3.0\u0026html5_exile_broken_instances=true\u0026html5_live_abr_head_miss_fraction=0.0\u0026use_full_timing_library=true\u0026html5_dont_predict_end_time_in_past=true\u0026web_player_response_playback_tracking_parsing=true\u0026html5_reason_reporting_migration=true\u0026use_local_interactions_library=true\u0026html5_vp9_live_whitelist=true\u0026embed_new_info_bar=true\u0026variable_buffer_timeout_living_room_ms=0\u0026html5_no_audio_append_cap=true\u0026log_playback_associated_web=true\u0026mweb_cougar_big_controls=true\u0026html5_deadzone_multiplier=1.0\u0026enable_vss_type_post=true\u0026html5_ultra_low_latency_streaming_responses=true\u0026external_fullscreen_with_edu=true\u0026preskip_countdown_font_size=\u0026html5_disable_preserve_reference=true\u0026html5_ad_no_buffer_abort_after_skippable=true\u0026html5_tight_max_buffer_allowed_bandwidth_stddevs=0.0\u0026html5_live_normal_latency_bandwidth_window=0.0\u0026bulleit_round_up_tsla=true\u0026html5_min_secs_between_format_selections=8.0\u0026set_interstitial_start_button=true\u0026interaction_click_on_gel_web=true\u0026html5_sticky_reduces_discount_by=0.0\u0026show_interstitial_white=true\u0026html5_vp9_live_blacklist_edge=true\u0026html5_manifestless_synchronized=true\u0026html5_get_video_info_promiseajax=true\u0026html5_unrewrite_timestamps=true\u0026html5_bulleit_handle_gained_paused_state=true\u0026html5_ignore_public_setPlaybackQuality=true\u0026bulleit_publish_external_playback_events=true\u0026fix_gpt_pos_params=true\u0026html5_preload_media=true\u0026enable_bulleit_ve_single_clickthrough=true\u0026html5_min_buffer_to_resume=6\u0026mweb_muted_autoplay=true\u0026turn_down_serialized_player_request_for_bulleit_living_room=true\u0026html5_av1_thresh_arm=240","innertube_api_key":"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8","innertube_context_client_version":"2.20190718","video_id":"qkdXAtO40Fo","cos":"X11","show_content_thumbnail":true,"timestamp":"1563634383","watch_ajax_token":"QUFFLUhqbmxoNHlYZXNfaVZYaml1XzZVSHRBRnhyWUVCd3xBQ3Jtc0trWnZyLWh5WlI1UjdNNDBvaXZlNmFNbUlocEVzTHM1RW9FbGt5dV9IRWNTM3J1MHFpZU9nVmVDcmw2T09vcU1TanVLbW1DMW95OEh0bmV0aVBSSi1HaGJnM01hMjh0c0M2UFlMaWhheTZid0VBQWdxOA==","vss_host":"s.youtube.com","url_encoded_fmt_stream_map":"type=video%2Fmp4%3B+codecs%3D%22avc1.64001F%2C+mp4a.40.2%22\u0026itag=22\u0026quality=hd720\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D22%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26ratebypass%3Dyes%26dur%3D90.813%26lmt%3D1534885545314563%26mt%3D1563634255%26fvip%3D2%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cmime%252Cratebypass%252Cdur%252Clmt%26sig%3DALgxI2wwRgIhALiPRpb4pR04mbHjn7RXEV-jHfj7B0klsTtzh9dDIVqnAiEArvJ73xu4lk17Cqk1NDgBm2Gx2Oyq0Im2jMYjWUasokM%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D,type=video%2Fwebm%3B+codecs%3D%22vp8.0%2C+vorbis%22\u0026itag=43\u0026quality=medium\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D43%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26clen%3D9763976%26ratebypass%3Dyes%26dur%3D0.000%26lmt%3D1534884978040181%26mt%3D1563634255%26fvip%3D2%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cratebypass%252Cdur%252Clmt%26sig%3DALgxI2wwRQIgYEksnzjd6_n1_cS92fO0rL-QgMXXfUbD1gtvNgTLPQECIQD41mYsuwJgoKwtujRwUV7-e6nMZoPmGxe4JPUDW8TLyQ%253D%253D%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D,type=video%2Fmp4%3B+codecs%3D%22avc1.42001E%2C+mp4a.40.2%22\u0026itag=18\u0026quality=medium\u0026url=https%3A%2F%2Fr2---sn-8xgn5uxa-cxge.googlevideo.com%2Fvideoplayback%3Fexpire%3D1563655983%26ei%3DzyozXcuXGJPI1wLmga2ICw%26ip%3D2001%253A16b8%253A4070%253Aeb00%253Ace80%253A232c%253A1c18%253A7db8%26id%3Do-ANElQVbYSUN09y_d-egoXWHoTXxW41ELwX6yt73I8qTa%26itag%3D18%26source%3Dyoutube%26requiressl%3Dyes%26mm%3D31%252C29%26mn%3Dsn-8xgn5uxa-cxge%252Csn-4g5e6nsy%26ms%3Dau%252Crdu%26mv%3Dm%26mvi%3D1%26pl%3D40%26initcwndbps%3D1573750%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26clen%3D7648253%26ratebypass%3Dyes%26dur%3D90.813%26lmt%3D1534884802946408%26mt%3D1563634255%26fvip%3D2%26c%3DWEB%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cmime%252Cgir%252Cclen%252Cratebypass%252Cdur%252Clmt%26sig%3DALgxI2wwRAIgYMGHlv5_hFM6Hg2EZ5DkrX7Jo6ba4S2lolvfqZ_7YPICIHCoTDCM4WsvsKQ5wJMd5889G197QAPjH2h_ei_oDi_K%26lsparams%3Dmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAHylml4wRQIgIIhWoFhaCrVbzAOdrpjoRfVN74bzD0lWNhKCWQtAvPECIQCCTRjPh3gbzS7Qzda_X7apWkQuD2KATvX87M1btoETOw%253D%253D","ps":"desktop-polymer","length_seconds":"91","user_display_name":"Robert Schäfer","cr":"DE","external_fullscreen":true,"player_response":"{\"playabilityStatus\":{\"status\":\"OK\",\"playableInEmbed\":true},\"streamingData\":{\"expiresInSeconds\":\"21540\"},\"playbackTracking\":{\"videostatsPlaybackUrl\":{\"baseUrl\":\"https:\/\/s.youtube.com\/api\/stats\/playback?cl=258604213\\u0026docid=qkdXAtO40Fo\\u0026ei=zyozXcuXGJPI1wLmga2ICw\\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\\u0026ns=yt\\u0026plid=AAWOHf_-lIoCtm0y\\u0026el=detailpage\\u0026len=91\\u0026of=QJmp0CqroKRtmW0iQyWBHg\\u0026uga=39\\u0026vm=CAEQARgEKiA5MlRHZ1RsU2R5d0hHem81N0E0UGdTRmotQ1JZNjZnYg\"},\"videostatsDelayplayUrl\":{\"baseUrl\":\"https:\/\/s.youtube.com\/api\/stats\/delayplay?cl=258604213\\u0026docid=qkdXAtO40Fo\\u0026ei=zyozXcuXGJPI1wLmga2ICw\\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\\u0026ns=yt\\u0026plid=AAWOHf_-lIoCtm0y\\u0026el=detailpage\\u0026len=91\\u0026of=QJmp0CqroKRtmW0iQyWBHg\\u0026uga=39\\u0026vm=CAEQARgEKiA5MlRHZ1RsU2R5d0hHem81N0E0UGdTRmotQ1JZNjZnYg\"},\"videostatsWatchtimeUrl\":{\"baseUrl\":\"https:\/\/s.youtube.com\/api\/stats\/watchtime?cl=258604213\\u0026docid=qkdXAtO40Fo\\u0026ei=zyozXcuXGJPI1wLmga2ICw\\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\\u0026ns=yt\\u0026plid=AAWOHf_-lIoCtm0y\\u0026el=detailpage\\u0026len=91\\u0026of=QJmp0CqroKRtmW0iQyWBHg\\u0026uga=39\\u0026vm=CAEQARgEKiA5MlRHZ1RsU2R5d0hHem81N0E0UGdTRmotQ1JZNjZnYg\"},\"ptrackingUrl\":{\"baseUrl\":\"https:\/\/www.youtube.com\/ptracking?ei=zyozXcuXGJPI1wLmga2ICw\\u0026oid=lL3sqLr2Wc0vz2fyUsOn9w\\u0026plid=AAWOHf_-lIoCtm0y\\u0026pltype=contentugc\\u0026ptk=youtube_single\\u0026video_id=qkdXAtO40Fo\"},\"qoeUrl\":{\"baseUrl\":\"https:\/\/s.youtube.com\/api\/stats\/qoe?cl=258604213\\u0026docid=qkdXAtO40Fo\\u0026ei=zyozXcuXGJPI1wLmga2ICw\\u0026event=streamingstats\\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\\u0026ns=yt\\u0026plid=AAWOHf_-lIoCtm0y\"},\"setAwesomeUrl\":{\"baseUrl\":\"https:\/\/www.youtube.com\/set_awesome?ei=zyozXcuXGJPI1wLmga2ICw\\u0026plid=AAWOHf_-lIoCtm0y\\u0026video_id=qkdXAtO40Fo\",\"elapsedMediaTimeSeconds\":72},\"atrUrl\":{\"baseUrl\":\"https:\/\/s.youtube.com\/api\/stats\/atr?docid=qkdXAtO40Fo\\u0026ei=zyozXcuXGJPI1wLmga2ICw\\u0026len=91\\u0026ns=yt\\u0026plid=AAWOHf_-lIoCtm0y\\u0026ver=2\",\"elapsedMediaTimeSeconds\":5}},\"captions\":{\"playerCaptionsTracklistRenderer\":{\"captionTracks\":[{\"baseUrl\":\"https:\/\/www.youtube.com\/api\/timedtext?expire=1563659583\\u0026sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire\\u0026key=yttt1\\u0026signature=AFACE5FA5CE11468EFF47E33FFDF87185F36F868.C167CE698C797FC2A3E12B1C4FFBFED5AE190BA9\\u0026hl=en\\u0026caps=asr\\u0026xoaf=1\\u0026v=qkdXAtO40Fo\\u0026asr_langs=de%2Cko%2Cen%2Cpt%2Cja%2Cfr%2Cru%2Ces%2Cit%2Cnl\\u0026xorp=True\\u0026kind=asr\\u0026lang=en\",\"name\":{\"simpleText\":\"English (auto-generated)\"},\"vssId\":\"a.en\",\"languageCode\":\"en\",\"kind\":\"asr\",\"isTranslatable\":true}],\"audioTracks\":[{\"captionTrackIndices\":[0],\"visibility\":\"UNKNOWN\"}],\"translationLanguages\":[{\"languageCode\":\"af\",\"languageName\":{\"simpleText\":\"Afrikaans\"}},{\"languageCode\":\"sq\",\"languageName\":{\"simpleText\":\"Albanian\"}},{\"languageCode\":\"am\",\"languageName\":{\"simpleText\":\"Amharic\"}},{\"languageCode\":\"ar\",\"languageName\":{\"simpleText\":\"Arabic\"}},{\"languageCode\":\"hy\",\"languageName\":{\"simpleText\":\"Armenian\"}},{\"languageCode\":\"az\",\"languageName\":{\"simpleText\":\"Azerbaijani\"}},{\"languageCode\":\"bn\",\"languageName\":{\"simpleText\":\"Bangla\"}},{\"languageCode\":\"eu\",\"languageName\":{\"simpleText\":\"Basque\"}},{\"languageCode\":\"be\",\"languageName\":{\"simpleText\":\"Belarusian\"}},{\"languageCode\":\"bs\",\"languageName\":{\"simpleText\":\"Bosnian\"}},{\"languageCode\":\"bg\",\"languageName\":{\"simpleText\":\"Bulgarian\"}},{\"languageCode\":\"my\",\"languageName\":{\"simpleText\":\"Burmese\"}},{\"languageCode\":\"ca\",\"languageName\":{\"simpleText\":\"Catalan\"}},{\"languageCode\":\"ceb\",\"languageName\":{\"simpleText\":\"Cebuano\"}},{\"languageCode\":\"zh-Hans\",\"languageName\":{\"simpleText\":\"Chinese (Simplified)\"}},{\"languageCode\":\"zh-Hant\",\"languageName\":{\"simpleText\":\"Chinese (Traditional)\"}},{\"languageCode\":\"co\",\"languageName\":{\"simpleText\":\"Corsican\"}},{\"languageCode\":\"hr\",\"languageName\":{\"simpleText\":\"Croatian\"}},{\"languageCode\":\"cs\",\"languageName\":{\"simpleText\":\"Czech\"}},{\"languageCode\":\"da\",\"languageName\":{\"simpleText\":\"Danish\"}},{\"languageCode\":\"nl\",\"languageName\":{\"simpleText\":\"Dutch\"}},{\"languageCode\":\"en\",\"languageName\":{\"simpleText\":\"English\"}},{\"languageCode\":\"eo\",\"languageName\":{\"simpleText\":\"Esperanto\"}},{\"languageCode\":\"et\",\"languageName\":{\"simpleText\":\"Estonian\"}},{\"languageCode\":\"fil\",\"languageName\":{\"simpleText\":\"Filipino\"}},{\"languageCode\":\"fi\",\"languageName\":{\"simpleText\":\"Finnish\"}},{\"languageCode\":\"fr\",\"languageName\":{\"simpleText\":\"French\"}},{\"languageCode\":\"gl\",\"languageName\":{\"simpleText\":\"Galician\"}},{\"languageCode\":\"ka\",\"languageName\":{\"simpleText\":\"Georgian\"}},{\"languageCode\":\"de\",\"languageName\":{\"simpleText\":\"German\"}},{\"languageCode\":\"el\",\"languageName\":{\"simpleText\":\"Greek\"}},{\"languageCode\":\"gu\",\"languageName\":{\"simpleText\":\"Gujarati\"}},{\"languageCode\":\"ht\",\"languageName\":{\"simpleText\":\"Haitian Creole\"}},{\"languageCode\":\"ha\",\"languageName\":{\"simpleText\":\"Hausa\"}},{\"languageCode\":\"haw\",\"languageName\":{\"simpleText\":\"Hawaiian\"}},{\"languageCode\":\"iw\",\"languageName\":{\"simpleText\":\"Hebrew\"}},{\"languageCode\":\"hi\",\"languageName\":{\"simpleText\":\"Hindi\"}},{\"languageCode\":\"hmn\",\"languageName\":{\"simpleText\":\"Hmong\"}},{\"languageCode\":\"hu\",\"languageName\":{\"simpleText\":\"Hungarian\"}},{\"languageCode\":\"is\",\"languageName\":{\"simpleText\":\"Icelandic\"}},{\"languageCode\":\"ig\",\"languageName\":{\"simpleText\":\"Igbo\"}},{\"languageCode\":\"id\",\"languageName\":{\"simpleText\":\"Indonesian\"}},{\"languageCode\":\"ga\",\"languageName\":{\"simpleText\":\"Irish\"}},{\"languageCode\":\"it\",\"languageName\":{\"simpleText\":\"Italian\"}},{\"languageCode\":\"ja\",\"languageName\":{\"simpleText\":\"Japanese\"}},{\"languageCode\":\"jv\",\"languageName\":{\"simpleText\":\"Javanese\"}},{\"languageCode\":\"kn\",\"languageName\":{\"simpleText\":\"Kannada\"}},{\"languageCode\":\"kk\",\"languageName\":{\"simpleText\":\"Kazakh\"}},{\"languageCode\":\"km\",\"languageName\":{\"simpleText\":\"Khmer\"}},{\"languageCode\":\"ko\",\"languageName\":{\"simpleText\":\"Korean\"}},{\"languageCode\":\"ku\",\"languageName\":{\"simpleText\":\"Kurdish\"}},{\"languageCode\":\"ky\",\"languageName\":{\"simpleText\":\"Kyrgyz\"}},{\"languageCode\":\"lo\",\"languageName\":{\"simpleText\":\"Lao\"}},{\"languageCode\":\"la\",\"languageName\":{\"simpleText\":\"Latin\"}},{\"languageCode\":\"lv\",\"languageName\":{\"simpleText\":\"Latvian\"}},{\"languageCode\":\"lt\",\"languageName\":{\"simpleText\":\"Lithuanian\"}},{\"languageCode\":\"lb\",\"languageName\":{\"simpleText\":\"Luxembourgish\"}},{\"languageCode\":\"mk\",\"languageName\":{\"simpleText\":\"Macedonian\"}},{\"languageCode\":\"mg\",\"languageName\":{\"simpleText\":\"Malagasy\"}},{\"languageCode\":\"ms\",\"languageName\":{\"simpleText\":\"Malay\"}},{\"languageCode\":\"ml\",\"languageName\":{\"simpleText\":\"Malayalam\"}},{\"languageCode\":\"mt\",\"languageName\":{\"simpleText\":\"Maltese\"}},{\"languageCode\":\"mi\",\"languageName\":{\"simpleText\":\"Maori\"}},{\"languageCode\":\"mr\",\"languageName\":{\"simpleText\":\"Marathi\"}},{\"languageCode\":\"mn\",\"languageName\":{\"simpleText\":\"Mongolian\"}},{\"languageCode\":\"ne\",\"languageName\":{\"simpleText\":\"Nepali\"}},{\"languageCode\":\"no\",\"languageName\":{\"simpleText\":\"Norwegian\"}},{\"languageCode\":\"ny\",\"languageName\":{\"simpleText\":\"Nyanja\"}},{\"languageCode\":\"ps\",\"languageName\":{\"simpleText\":\"Pashto\"}},{\"languageCode\":\"fa\",\"languageName\":{\"simpleText\":\"Persian\"}},{\"languageCode\":\"pl\",\"languageName\":{\"simpleText\":\"Polish\"}},{\"languageCode\":\"pt\",\"languageName\":{\"simpleText\":\"Portuguese\"}},{\"languageCode\":\"pa\",\"languageName\":{\"simpleText\":\"Punjabi\"}},{\"languageCode\":\"ro\",\"languageName\":{\"simpleText\":\"Romanian\"}},{\"languageCode\":\"ru\",\"languageName\":{\"simpleText\":\"Russian\"}},{\"languageCode\":\"sm\",\"languageName\":{\"simpleText\":\"Samoan\"}},{\"languageCode\":\"gd\",\"languageName\":{\"simpleText\":\"Scottish Gaelic\"}},{\"languageCode\":\"sr\",\"languageName\":{\"simpleText\":\"Serbian\"}},{\"languageCode\":\"sn\",\"languageName\":{\"simpleText\":\"Shona\"}},{\"languageCode\":\"sd\",\"languageName\":{\"simpleText\":\"Sindhi\"}},{\"languageCode\":\"si\",\"languageName\":{\"simpleText\":\"Sinhala\"}},{\"languageCode\":\"sk\",\"languageName\":{\"simpleText\":\"Slovak\"}},{\"languageCode\":\"sl\",\"languageName\":{\"simpleText\":\"Slovenian\"}},{\"languageCode\":\"so\",\"languageName\":{\"simpleText\":\"Somali\"}},{\"languageCode\":\"st\",\"languageName\":{\"simpleText\":\"Southern Sotho\"}},{\"languageCode\":\"es\",\"languageName\":{\"simpleText\":\"Spanish\"}},{\"languageCode\":\"su\",\"languageName\":{\"simpleText\":\"Sundanese\"}},{\"languageCode\":\"sw\",\"languageName\":{\"simpleText\":\"Swahili\"}},{\"languageCode\":\"sv\",\"languageName\":{\"simpleText\":\"Swedish\"}},{\"languageCode\":\"tg\",\"languageName\":{\"simpleText\":\"Tajik\"}},{\"languageCode\":\"ta\",\"languageName\":{\"simpleText\":\"Tamil\"}},{\"languageCode\":\"te\",\"languageName\":{\"simpleText\":\"Telugu\"}},{\"languageCode\":\"th\",\"languageName\":{\"simpleText\":\"Thai\"}},{\"languageCode\":\"tr\",\"languageName\":{\"simpleText\":\"Turkish\"}},{\"languageCode\":\"uk\",\"languageName\":{\"simpleText\":\"Ukrainian\"}},{\"languageCode\":\"ur\",\"languageName\":{\"simpleText\":\"Urdu\"}},{\"languageCode\":\"uz\",\"languageName\":{\"simpleText\":\"Uzbek\"}},{\"languageCode\":\"vi\",\"languageName\":{\"simpleText\":\"Vietnamese\"}},{\"languageCode\":\"cy\",\"languageName\":{\"simpleText\":\"Welsh\"}},{\"languageCode\":\"fy\",\"languageName\":{\"simpleText\":\"Western Frisian\"}},{\"languageCode\":\"xh\",\"languageName\":{\"simpleText\":\"Xhosa\"}},{\"languageCode\":\"yi\",\"languageName\":{\"simpleText\":\"Yiddish\"}},{\"languageCode\":\"yo\",\"languageName\":{\"simpleText\":\"Yoruba\"}},{\"languageCode\":\"zu\",\"languageName\":{\"simpleText\":\"Zulu\"}}],\"defaultAudioTrackIndex\":0}},\"videoDetails\":{\"videoId\":\"qkdXAtO40Fo\",\"title\":\"Baby Loves Cat\",\"lengthSeconds\":\"91\",\"keywords\":[\"Cat (Animal)\",\"Kitten (Animal)\",\"baby\",\"babies\",\"laughing\",\"funny\",\"happy\",\"silly\",\"cats\",\"kittens\",\"Cute\",\"Cuteness (Website Category)\",\"Animal (Film Character)\",\"Kitty\",\"happiness\",\"joy\",\"family\",\"Babies (Film)\",\"baby loves cat\",\"baby can't\",\"cat baby\",\"cat and baby\",\"baby and cat\",\"baby cat\",\"baby funny video\",\"baby video\",\"funny baby video\",\"cat with baby\",\"funny babies\",\"Laugh\",\"Smile\",\"Peace\"],\"channelId\":\"UC5P8yei950tif7UmdPpkJLQ\",\"isOwnerViewing\":false,\"shortDescription\":\"She's incapable of controlling her limbs when her kitty is around. The obsession grows every day.\\n\\nPs. That's a sleep sack she's in. Not a starfish outfit. Although I wish I were cool enough to dress my daughter in a starfish outfit.\\n\\nJukin Media Verified (Original)\\n*For licensing \/ permission to use please contact licensing(at)jukinmediadotcom\",\"isCrawlable\":true,\"thumbnail\":{\"thumbnails\":[{\"url\":\"https:\/\/i.ytimg.com\/vi\/qkdXAtO40Fo\/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\\u0026rs=AOn4CLC43rJRVOd4U_tni1h79dj7UixPVg\",\"width\":168,\"height\":94},{\"url\":\"https:\/\/i.ytimg.com\/vi\/qkdXAtO40Fo\/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\\u0026rs=AOn4CLDy4FR7Yg_h9OrxbXzBhO0oO9BpKA\",\"width\":196,\"height\":110},{\"url\":\"https:\/\/i.ytimg.com\/vi\/qkdXAtO40Fo\/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\\u0026rs=AOn4CLCa7ttQZ951YP91wePoP3aZJcKrag\",\"width\":246,\"height\":138},{\"url\":\"https:\/\/i.ytimg.com\/vi\/qkdXAtO40Fo\/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\\u0026rs=AOn4CLBO2N82fey-_z5dwStt-7lylcpa-g\",\"width\":336,\"height\":188}]},\"useCipher\":false,\"averageRating\":4.4216495,\"allowRatings\":true,\"viewCount\":\"30127917\",\"author\":\"Merkley Family\",\"isPrivate\":false,\"isUnpluggedCorpus\":false,\"isLiveContent\":false},\"annotations\":[{\"playerAnnotationsUrlsRenderer\":{\"invideoUrl\":\"\/\/www.youtube.com\/annotations_invideo?cap_hist=1\\u0026video_id=qkdXAtO40Fo\\u0026client=1\",\"loadPolicy\":\"ALWAYS\",\"allowInPlaceSwitch\":false}}],\"playerConfig\":{\"audioConfig\":{\"loudnessDb\":-7.9190006,\"perceptualLoudnessDb\":-28.919001},\"playbackStartConfig\":{\"startSeconds\":18},\"streamSelectionConfig\":{\"maxBitrate\":\"12590000\"},\"mediaCommonConfig\":{\"dynamicReadaheadConfig\":{\"maxReadAheadMediaTimeMs\":120000,\"minReadAheadMediaTimeMs\":15000,\"readAheadGrowthRateMs\":1000}}},\"storyboards\":{\"playerStoryboardSpecRenderer\":{\"spec\":\"https:\/\/i9.ytimg.com\/sb\/qkdXAtO40Fo\/storyboard3_L$L\/$N.jpg?sqp=ovOX_wMGCJ6zxa4F|48#27#100#10#10#0#default#rs$AOn4CLAqSSHWRQDOnM4rVC7PiTslOFl3oA|80#45#92#10#10#1000#M$M#rs$AOn4CLCwBc-6YXxWaG-G2MfwlKGplPnbGw|160#90#92#5#5#1000#M$M#rs$AOn4CLCce54uKpORVpI3RI5Ukav0JaIcLQ\"}},\"trackingParams\":\"CAEQu2kiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=\",\"attestation\":{\"playerAttestationRenderer\":{\"challenge\":\"a=4\\u0026b=yzKbV84WY-N0jIC7OC-dNH38yoo\\u0026c=1563634383\\u0026d=1\\u0026e=qkdXAtO40Fo\\u0026c3a=13\\u0026c1a=1\\u0026c6a=1\\u0026hh=sTD6Gno_K9wupWJ-6pgtHCn91LAIaOSWzpGgF9_5Ul8\"}},\"messages\":[{\"mealbarPromoRenderer\":{\"messageTexts\":[{\"runs\":[{\"text\":\"Get YouTube without the ads.\"}]}],\"actionButton\":{\"buttonRenderer\":{\"style\":\"STYLE_BLUE_TEXT\",\"size\":\"SIZE_DEFAULT\",\"text\":{\"runs\":[{\"text\":\"1 month free\"}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CAYQ7G8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=\",\"browseEndpoint\":{\"browseId\":\"SPunlimited\",\"params\":\"kgNBEg9GRXdoYXRfdG9fd2F0Y2gqEmRtZWEtYWNxLWMtZWdzaVZEYToaCAYYASoUChJkbWVhLWFjcS1jLWVnc2lWRGE%3D\"}},\"visualElement\":{\"uiType\":14316},\"trackingParams\":\"CAYQ7G8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=\"}},\"dismissButton\":{\"buttonRenderer\":{\"style\":\"STYLE_TEXT\",\"size\":\"SIZE_DEFAULT\",\"text\":{\"runs\":[{\"text\":\"Skip trial\"}]},\"serviceEndpoint\":{\"clickTrackingParams\":\"CAUQ7W8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=\",\"feedbackEndpoint\":{\"feedbackToken\":\"AB9zfpKRj6bk_3w7yPOVk_NYwPGd6LJLBTiq1sNFv-nrArUTRJgfXtBeT-lwknx6LMHFXa_2wba6-1vdcb1z7HA196XqBVv9sCUEQjR_hDeDDQwCHKurJuHS6QMImZtNUC3DrWBKrAoFUfD1yl2XPNGYJFu6YTTMhQ\",\"uiActions\":{\"hideEnclosingContainer\":true}}},\"visualElement\":{\"uiType\":14317},\"trackingParams\":\"CAUQ7W8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=\"}},\"triggerCondition\":\"TRIGGER_CONDITION_POST_AD\",\"style\":\"STYLE_MESSAGE\",\"visualElement\":{\"uiType\":13539,\"youtubeData\":{\"ypcAnnotation\":{\"itemTypeYpc\":\"V\",\"itemExternalId\":\"qkdXAtO40Fo\"},\"promotionData\":{\"promotionId\":\"dmea-acq-c-egsiVDa\",\"crossPromoRanked\":false}}},\"trackingParams\":\"CAQQ42kYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==\",\"impressionEndpoints\":[{\"clickTrackingParams\":\"CAQQ42kYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==\",\"feedbackEndpoint\":{\"feedbackToken\":\"AB9zfpIV80Rjmm0kmTg_2P_dnDBVoBllUaEI6o1szcWENkt6nEJmJK4qgQE4-6TcYzTWIqpM6FVWLseUgR8Q8OIBuJ5Ri32FARCZRUCCimUkrZvbvVr-gljlZvyXiDz9HeOIurjupBKdJeVgozzZEPKa_UubTNZf8Q\",\"uiActions\":{\"hideEnclosingContainer\":false}}}],\"isVisible\":true,\"messageTitle\":{\"runs\":[{\"text\":\"YouTube Premium\"}]}}}],\"endscreen\":{\"endscreenUrlRenderer\":{\"url\":\"\/\/www.youtube.com\/get_endscreen?client=1\\u0026ei=zyozXcuXGJPI1wLmga2ICw\\u0026v=qkdXAtO40Fo\"}},\"adPlacements\":[{\"adPlacementRenderer\":{\"config\":{\"adPlacementConfig\":{\"kind\":\"AD_PLACEMENT_KIND_START\",\"adTimeOffset\":{\"offsetStartMilliseconds\":\"0\",\"offsetEndMilliseconds\":\"-1\"},\"hideCueRangeMarker\":true}},\"renderer\":{\"adBreakServiceRenderer\":{\"getAdBreakUrl\":\"https:\/\/www.youtube.com\/get_midroll_info?ei=zyozXcuXGJPI1wLmga2ICw\\u0026m_pos=0\\u0026token=AFjjc2PUKOd4u11SSovfrxqgOBmlWbKeaBxWF35V5IC1dWGT7g8BiVimCWKVNvsHNDC7w-_IS9s62k4zjbBCe-UXElT-J1i74ek--kpu0PHxuswDl0y2OmmRP5OdcwR165pZ3HeYPLt1gfcb1vSJtVyZkmX_GGVVbYBu1Go7MXNWHkRd00ECocK81hkgSPdKnbiIvmL9ntus4PJUZfuOHcHuBBiA1IP4k54jVflFqMtc3UxD6oYdS9AIUTtoQYEV-D5Tx4faMiMn7TP-PX-CwlMRsTGi9X1uJEKDSN9p57VrMFG5gPiw-Z0AeUsujV6fIfwKKx4Oodj_\\u0026index=0\\u0026cpn=[CPN]\\u0026lact=[LACT]\\u0026vis=[VIS]\\u0026ad_block=[AD_BLOCK]\\u0026tsla=[TSLA]\\u0026bid=[BISCOTTI_ID]\\u0026dt=[DT]\\u0026flash=[FLASH]\\u0026frm=[FRM]\\u0026ca_type=[CA_TYPE]\\u0026u_tz=[U_TZ]\\u0026u_his=[U_HIS]\\u0026u_java=[U_JAVA]\\u0026u_h=[U_H]\\u0026u_w=[U_W]\\u0026u_ah=[U_AH]\\u0026u_aw=[U_AW]\\u0026u_cd=[U_CD]\\u0026u_nplug=[U_NPLUG]\\u0026u_nmime=[U_NMIME]\\u0026p_w=[P_W]\\u0026p_h=[P_H]\\u0026c=WEB\\u0026cver=2.20190718\"}},\"trackingParams\":\"CAMQ9vcBGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=\"}},{\"adPlacementRenderer\":{\"config\":{\"adPlacementConfig\":{\"kind\":\"AD_PLACEMENT_KIND_END\",\"adTimeOffset\":{\"offsetStartMilliseconds\":\"-1\",\"offsetEndMilliseconds\":\"-1\"},\"hideCueRangeMarker\":true}},\"renderer\":{\"adBreakServiceRenderer\":{\"prefetchMilliseconds\":\"10000\",\"getAdBreakUrl\":\"https:\/\/www.youtube.com\/get_midroll_info?ei=zyozXcuXGJPI1wLmga2ICw\\u0026m_pos=-1\\u0026token=AFjjc2MNztSrM1Smq4toT-rQYqGSa1h0ScIEWRX2p4PwTIawXP0yedpMnHi_Vhr6Aa_cTCjWtw6MaJe3BgRlUO-ZDsG3l0aboXNLedK6eqODYvH80pmvAIAN9S0Lfpfgvgcsu7ojMC_fMr6Cr_yy6rZbfygeKLS8jchMPei6uo9wt-M-8ZbRFINNihZJpw3cDxGXbixd9qNbmjAAhB5NGCBtlf3BCDrl--bJIfz_oluw4O88umKDJIXaOvXCQmQ9WEs4e9Q9uD0cXhXCLDsvbv5LGLN9Gc-Etdy8vON6q5sxLCy9XW2DH7dzbkhajo4hUuBqhDByFi3U\\u0026index=1\\u0026cpn=[CPN]\\u0026lact=[LACT]\\u0026vis=[VIS]\\u0026ad_block=[AD_BLOCK]\\u0026tsla=[TSLA]\\u0026bid=[BISCOTTI_ID]\\u0026dt=[DT]\\u0026flash=[FLASH]\\u0026frm=[FRM]\\u0026ca_type=[CA_TYPE]\\u0026u_tz=[U_TZ]\\u0026u_his=[U_HIS]\\u0026u_java=[U_JAVA]\\u0026u_h=[U_H]\\u0026u_w=[U_W]\\u0026u_ah=[U_AH]\\u0026u_aw=[U_AW]\\u0026u_cd=[U_CD]\\u0026u_nplug=[U_NPLUG]\\u0026u_nmime=[U_NMIME]\\u0026p_w=[P_W]\\u0026p_h=[P_H]\\u0026c=WEB\\u0026cver=2.20190718\"}},\"trackingParams\":\"CAIQ9vcBGAQiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=\"}}],\"adSafetyReason\":{\"apmUserPreference\":{},\"isSearchHistoryPaused\":true,\"isCrosswalk\":true}}","fexp":"23718324,23744176,23751767,23757411,23788840,23788875,23793834,23804281,23805410,23811378,23813548,23816462,23818122,23818585,23823448,23823751,23827085,23827174,9449243,9471239","watermark":",https:\/\/s.ytimg.com\/yts\/img\/watermark\/youtube_watermark-vflHX6b6E.png,https:\/\/s.ytimg.com\/yts\/img\/watermark\/youtube_hd_watermark-vflAzLcD6.png","gapi_hint_params":"m;\/_\/scs\/abc-static\/_\/js\/k=gapi.gapi.en.JNa9MntajDY.O\/d=1\/rs=AHpOoo_db4DX0hhorP4qsjM6Ki5qzOgeUA\/m=__features__","user_display_image":"https:\/\/lh6.googleusercontent.com\/-gUiOwfbQX-k\/AAAAAAAAAAI\/AAAAAAAAAAg\/hH8Yumfcpoo\/s88\/photo.jpg"},"assets":{"css":"\/yts\/cssbin\/player-vfl38dkD8\/www-player-2x-webp.css","js":"\/yts\/jsbin\/player_ias-vflFxFa3y\/en_US\/base.js"},"attrs":{"id":"movie_player"}};ytplayer.load = function() {yt.player.Application.create("player-api", ytplayer.config);ytplayer.config.loaded = true;};(function() {if (!!window.yt && yt.player && yt.player.Application) {ytplayer.load();}}());</script>

</div>
</div>
<script >
window.__msa_deadline = Date.now() + 200;
</script>
<script >
(function(){function e(){var a=f.getVideoAspectRatio,b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}
;function k(a,b){this.width=a;this.height=b}
k.prototype.aspectRatio=function(){return this.width/this.height};
k.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};
k.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};
k.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function l(a){"number"==typeof a&&(a=Math.round(a)+"px");return a}
;function m(a,b,c){c=void 0===c?!1:c;var d=Math.max(a.width,474);d=1E3<=a.width?d-474:d-48;d=Math.min(d,1280);var g=240;c&&(g=380);.5624>b||(630>a.height&&657<=a.width||630<=a.height&&1E3<=a.width&&1294>a.width?g=360:630<=a.height&&1294<=a.width&&(g=480));var h=Math.min(d*b,a.height-216);h=Math.max(h,g);1>b?d=h/b:1E3<=a.width&&(d=m(a,.5625,c).width);return new k(Math.round(d),Math.round(h))}
;var n=document.querySelector("#player.skeleton #player-api");if(n){var p=.5625,f=n.querySelector(".html5-video-player"),q;if(q=f)q="function"==e();q&&(p=1/f.getVideoAspectRatio());var r=window.document,t="CSS1Compat"==r.compatMode?r.documentElement:r.body,u=m(new k(t.clientWidth,t.clientHeight),p),v;if(u instanceof k)v=u.height,u=u.width;else throw Error("missing height argument");n.style.width=l(u);n.style.height=l(v)};}).call(this);

</script>

<!-- end of chunk -->
<script >if (window.ytcsi) {window.ytcsi.tick("ai", null, '');}</script>
<style>
#logo-red-icon-container.ytd-topbar-logo-renderer {
width: 86px;
}
</style>
<ytd-app disable-upgrade="true">
<ytd-masthead id="masthead" slot="masthead" class="shell chunked"disable-upgrade="true"><div id="search-container" class="ytd-searchbox-spt" slot="search-container"></div><div id="search-input" class="ytd-searchbox-spt" slot="search-input"><input id="search" autocapitalize="none" autocomplete="off"autocorrect="off" hidden name="search_query" tabindex="0"type="text" spellcheck="false"></div><svg id="menu-icon" class="external-icon" preserveAspectRatio="xMidYMid meet"><g id="menu" class="yt-icons-ext" viewBox="0 0 24 24"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></g></svg><div id="masthead-logo" slot="masthead-logo"> <div style="display: flex;">
<svg id="yt-logo-svg" class="external-icon" viewBox="0 0 200 60">
<g id="yt-logo" viewBox="0 0 200 60" preserveAspectRatio="xMidYMid meet">
<g>
<path fill="#FF0000" d="M63,14.87c-0.72-2.7-2.85-4.83-5.56-5.56C52.54,8,32.88,8,32.88,8S13.23,8,8.32,9.31
c-2.7,0.72-4.83,2.85-5.56,5.56C1.45,19.77,1.45,30,1.45,30s0,10.23,1.31,15.13c0.72,2.7,2.85,4.83,5.56,5.56
C13.23,52,32.88,52,32.88,52s19.66,0,24.56-1.31c2.7-0.72,4.83-2.85,5.56-5.56C64.31,40.23,64.31,30,64.31,30
S64.31,19.77,63,14.87z"/>
<polygon fill="#FFFFFF" points="26.6,39.43 42.93,30 26.6,20.57"/>
</g>
<g>
<g id="youtube-paths">
<path fill="#282828" d="M92.69,48.03c-1.24-0.84-2.13-2.14-2.65-3.91c-0.52-1.77-0.79-4.12-0.79-7.06v-4
c0-2.97,0.3-5.35,0.9-7.15c0.6-1.8,1.54-3.11,2.81-3.93c1.27-0.82,2.94-1.24,5.01-1.24c2.04,0,3.67,0.42,4.9,1.26
c1.23,0.84,2.13,2.15,2.7,3.93c0.57,1.78,0.85,4.16,0.85,7.12v4c0,2.94-0.28,5.3-0.83,7.08c-0.55,1.78-1.45,3.09-2.7,3.91
c-1.24,0.82-2.93,1.24-5.06,1.24C95.65,49.29,93.93,48.87,92.69,48.03z M99.66,43.71c0.34-0.9,0.52-2.37,0.52-4.4v-8.59
c0-1.98-0.17-3.42-0.52-4.34c-0.34-0.91-0.95-1.37-1.82-1.37c-0.84,0-1.43,0.46-1.78,1.37c-0.34,0.91-0.52,2.36-0.52,4.34v8.59
c0,2.04,0.16,3.51,0.49,4.4c0.33,0.9,0.93,1.35,1.8,1.35C98.71,45.06,99.31,44.61,99.66,43.71z"/>
<path fill="#282828" d="M188.16,37.13v1.39c0,1.77,0.05,3.09,0.16,3.98c0.1,0.88,0.32,1.53,0.65,1.93
c0.33,0.4,0.84,0.61,1.53,0.61c0.93,0,1.57-0.36,1.91-1.08c0.34-0.72,0.53-1.92,0.56-3.6l5.35,0.31
c0.03,0.24,0.04,0.57,0.04,0.99c0,2.55-0.7,4.45-2.09,5.71c-1.39,1.26-3.36,1.89-5.91,1.89c-3.06,0-5.2-0.96-6.43-2.88
c-1.23-1.92-1.84-4.88-1.84-8.9v-4.81c0-4.14,0.64-7.15,1.91-9.06c1.27-1.9,3.45-2.85,6.54-2.85c2.13,0,3.76,0.39,4.9,1.17
c1.14,0.78,1.94,1.99,2.41,3.64c0.46,1.65,0.7,3.93,0.7,6.83v4.72H188.16z M188.95,25.53c-0.31,0.39-0.52,1.03-0.63,1.91
c-0.11,0.88-0.16,2.23-0.16,4.02v1.98h4.54v-1.98c0-1.77-0.06-3.11-0.18-4.02c-0.12-0.91-0.34-1.56-0.65-1.93
c-0.31-0.37-0.8-0.56-1.46-0.56C189.75,24.94,189.26,25.14,188.95,25.53z"/>
<path fill="#282828" d="M77.59,36.61l-7.06-25.49h6.16l2.47,11.55c0.63,2.85,1.09,5.27,1.39,7.28h0.18
c0.21-1.44,0.67-3.85,1.39-7.24l2.56-11.6h6.16L83.7,36.61v12.23h-6.11V36.61z"/>
<path fill="#282828" d="M126.45,21.28v27.55h-4.85l-0.54-3.37h-0.13c-1.32,2.55-3.3,3.82-5.93,3.82c-1.83,0-3.18-0.6-4.05-1.8
c-0.87-1.2-1.3-3.07-1.3-5.62V21.28h6.2v20.23c0,1.23,0.13,2.11,0.4,2.63c0.27,0.52,0.72,0.79,1.35,0.79
c0.54,0,1.06-0.16,1.55-0.49c0.49-0.33,0.86-0.75,1.1-1.26V21.28H126.45z"/>
<path fill="#282828" d="M158.27,21.28v27.55h-4.85l-0.54-3.37h-0.13c-1.32,2.55-3.3,3.82-5.93,3.82c-1.83,0-3.18-0.6-4.05-1.8
c-0.87-1.2-1.3-3.07-1.3-5.62V21.28h6.2v20.23c0,1.23,0.13,2.11,0.4,2.63c0.27,0.52,0.72,0.79,1.35,0.79
c0.54,0,1.06-0.16,1.55-0.49c0.49-0.33,0.86-0.75,1.1-1.26V21.28H158.27z"/>
<path fill="#282828" d="M143.31,16.11h-6.16v32.72h-6.07V16.11h-6.16v-4.99h18.38V16.11z"/>
<path fill="#282828" d="M178.8,25.69c-0.38-1.74-0.98-3-1.82-3.78c-0.84-0.78-1.99-1.17-3.46-1.17c-1.14,0-2.2,0.32-3.19,0.97
c-0.99,0.64-1.75,1.49-2.29,2.54h-0.05l0-14.52h-5.98v39.11h5.12l0.63-2.61h0.13c0.48,0.93,1.2,1.66,2.16,2.2
c0.96,0.54,2.02,0.81,3.19,0.81c2.1,0,3.64-0.97,4.63-2.9c0.99-1.93,1.48-4.95,1.48-9.06v-4.36
C179.36,29.84,179.17,27.43,178.8,25.69z M173.11,36.93c0,2.01-0.08,3.58-0.25,4.72c-0.16,1.14-0.44,1.95-0.83,2.43
c-0.39,0.48-0.91,0.72-1.57,0.72c-0.51,0-0.98-0.12-1.42-0.36c-0.43-0.24-0.79-0.6-1.06-1.08V27.71
c0.21-0.75,0.57-1.36,1.08-1.84c0.51-0.48,1.06-0.72,1.66-0.72c0.63,0,1.12,0.25,1.46,0.74c0.34,0.49,0.58,1.33,0.72,2.49
c0.13,1.17,0.2,2.83,0.2,4.99V36.93z"/>
</g>
</g>
</g>
</svg>
</div>
<div style="display: none;">
<svg id="yt-logo-red-svg" class="external-icon" viewBox="0 0 98 24" style="width:86px;">
<g id="yt-logo-red" viewBox="0 0 98 24" preserveAspectRatio="xMidYMid meet">
<g>
<path fill="#FF0000" d="M28.4,5.12c-0.34-1.24-1.31-2.2-2.55-2.52C23.62,2,14.68,2,14.68,2S5.75,2,3.52,2.6
C2.29,2.93,1.33,3.89,1,5.12C0.59,7.39,0.39,9.69,0.4,12c-0.01,2.31,0.19,4.61,0.6,6.88c0.33,1.23,1.29,2.19,2.52,2.52
C5.75,22,14.68,22,14.68,22s8.93,0,11.16-0.6c1.24-0.32,2.22-1.28,2.56-2.52c0.41-2.27,0.61-4.57,0.6-6.88
C29.01,9.69,28.81,7.39,28.4,5.12z"/>
<polygon fill="#FFFFFF" points="11.83,16.29 19.25,12 11.83,7.71"/>
</g>
<g id="youtube-red-paths">
<path fill="#282828" d="M41.67,8.35V9c0,3.45-1.53,5.48-4.88,5.48h-0.51v6h-2.74V3.42h3.49C40.22,3.42,41.67,4.77,41.67,8.35z
M38.79,8.6c0-2.49-0.45-3.09-2-3.09h-0.51v7h0.47c1.47,0,2-1.06,2-3.37L38.79,8.6z"/>
<path fill="#282828" d="M48.14,7.83L48,11.08c-1.17-0.24-2.13-0.08-2.6,0.69v8.78h-2.67V8h2.17l0.24,2.71h0.1c0.28-2,1.2-3,2.39-3
C47.8,7.73,47.98,7.77,48.14,7.83z"/>
<path fill="#282828" d="M51.27,15.25v0.63c0,2.21,0.12,3,1.06,3s1.1-0.69,1.12-2.12l2.43,0.14c0.18,2.7-1.23,3.9-3.61,3.9
c-2.9,0-3.76-1.9-3.76-5.35v-2.23c0-3.64,1-5.41,3.84-5.41s3.64,1.51,3.64,5.29v2.15H51.27z M51.27,12.67v0.9h2.06v-0.89
c0-2.3-0.16-3-1-3s-1,0.67-1,3L51.27,12.67z"/>
<path fill="#282828" d="M70.02,11.1v9.46H67.2v-9.25c0-1-0.27-1.53-0.88-1.53c-0.54,0.02-1.02,0.34-1.25,0.82
c0.01,0.17,0.01,0.34,0,0.51v9.46h-2.79v-9.26c0-1-0.27-1.53-0.88-1.53c-0.53,0.02-1,0.33-1.23,0.8v10H57.4V8h2.23l0.25,1.59l0,0
c0.51-1.12,1.63-1.85,2.86-1.86c1.05-0.07,1.98,0.67,2.16,1.7c0.55-1.01,1.61-1.65,2.76-1.66C69.4,7.78,70.02,9,70.02,11.1z"/>
<path fill="#282828" d="M71.4,4.83c0-1.35,0.49-1.74,1.53-1.74s1.53,0.45,1.53,1.74s-0.47,1.74-1.53,1.74S71.4,6.22,71.4,4.83z
M71.59,8h2.7v12.56h-2.7V8z"/>
<path fill="#282828" d="M83.5,8v12.56h-2.2L81.05,19h-0.06c-0.46,1.08-1.53,1.77-2.7,1.74c-1.67,0-2.43-1.06-2.43-3.37V8h2.82
v9.19c0,1.1,0.23,1.55,0.8,1.55c0.52-0.02,0.98-0.33,1.2-0.8V8H83.5z"/>
<path fill="#282828" d="M97.8,11.1v9.46h-2.82v-9.25c0-1-0.27-1.53-0.88-1.53c-0.54,0.02-1.02,0.34-1.25,0.82
c0.01,0.17,0.01,0.34,0,0.51v9.46h-2.79v-9.26c0-1-0.27-1.53-0.88-1.53c-0.53,0.02-1,0.33-1.23,0.8v10h-2.81V8h2.26l0.24,1.59l0,0
c0.51-1.12,1.63-1.85,2.86-1.86c1.04-0.07,1.97,0.64,2.17,1.66c0.55-0.99,1.6-1.61,2.73-1.62C97.15,7.78,97.8,9,97.8,11.1z"/>
</g>
</g>
</svg>
</div>
<span id="country-code"></span></div><div id="masthead-skeleton-icons" slot="masthead-skeleton"><div class="masthead-skeleton-icon"></div><div class="masthead-skeleton-icon"></div><div class="masthead-skeleton-icon"></div><div class="masthead-skeleton-icon"></div></div></ytd-masthead><div id="drop-shadow"></div>
<a slot="guide-links-primary" href="//www.youtube.com/yt/about/" style="display: none;">About</a>
<a slot="guide-links-primary" href="//www.youtube.com/yt/press/" style="display: none;">Press</a>
<a slot="guide-links-primary" href="//www.youtube.com/yt/copyright/" style="display: none;">Copyright</a>
<a slot="guide-links-primary" href="/t/contact_us" style="display: none;">Contact us</a>
<a slot="guide-links-primary" href="//www.youtube.com/yt/creators/" style="display: none;">Creators</a>
<a slot="guide-links-primary" href="//www.youtube.com/yt/advertise/" style="display: none;">Advertise</a>
<a slot="guide-links-primary" href="//www.youtube.com/yt/dev/" style="display: none;">Developers</a>
<a slot="guide-links-primary" href="https://www.youtube.com/t/impressum?hl=de&gl=DE" dir="ltr" style="display: none">Impressum</a>
<a slot="guide-links-primary" href="https://transparencyreport.google.com/netzdg/youtube" dir="ltr" style="display: none">NetzDG Transparenzbericht</a>
<a slot="guide-links-primary" href="https://support.google.com/youtube/contact/netzdg" dir="ltr" style="display: none">
NetzDG Complaints
</a>

<a slot="guide-links-secondary" href="/t/terms" style="display: none;">Terms</a>
<a slot="guide-links-secondary" href="https://www.google.com/intl/en/policies/privacy/" style="display: none;">Privacy</a>
<a slot="guide-links-secondary" href="//www.youtube.com/yt/policyandsafety/" style="display: none;">Policy &amp; Safety</a>
<a slot="guide-links-secondary" href="/new" style="display: none;">Test new features</a>

<div id="vat-notice" slot="vat-notice" style="display: none;">
<div dir="ltr">All prices include VAT</div>
</div>

<div id="copyright" slot="copyright" style="display: none;">
<div dir="ltr" style="display:inline">&copy; 2019 YouTube, LLC</div>
</div>

</ytd-app>

<script >if (window.ytcsi) {window.ytcsi.tick("nc_pj", null, '');}</script>
<script src="/yts/jsbin/spf-vflqCgDoF/spf.js" type="text/javascript" name="spf/spf" ></script>
<script src="/yts/jsbin/network-vfl3EpVxj/network.js" type="text/javascript" name="network/network" ></script>
<script src="/yts/jsbin/web-animations-next-lite.min-vflluX5aW/web-animations-next-lite.min.js" type="text/javascript" name="web-animations-next-lite.min/web-animations-next-lite.min" ></script>
<script src="/yts/jsbin/custom-elements-es5-adapter-vflsrwHZH/custom-elements-es5-adapter.js" type="text/javascript" name="custom-elements-es5-adapter/custom-elements-es5-adapter" ></script>
<script src="/yts/jsbin/webcomponents-sd-vflPSjQ3L/webcomponents-sd.js" type="text/javascript" name="webcomponents-sd/webcomponents-sd" ></script>
<script >if (window.ytcsi) {window.ytcsi.tick("rsbe_dph", null, '');}</script>

<link rel="import" href="/yts/htmlbin/desktop_polymer_sel_auto_svg_watch_v2-vflH2TPyu.html" name="desktop_polymer_sel_auto_svg_watch_v2" > <script >if (window.ytcsi) {window.ytcsi.tick("rsae_dph", null, '');}</script>

<script >if (window.ytcsi) {window.ytcsi.tick("rsbe_dpj", null, '');}</script>

<script src="/yts/jsbin/desktop_polymer_sel_auto_svg_watch_v2-vfl2eHWnc/desktop_polymer_sel_auto_svg_watch_v2.js" type="text/javascript" name="desktop_polymer_sel_auto_svg_watch_v2/desktop_polymer_sel_auto_svg_watch_v2" ></script> <script >if (window.ytcsi) {window.ytcsi.tick("rsae_dpj", null, '');}</script>

<script >var scheduleAppLoad=function(){window.removeEventListener("script-load-dpj",scheduleAppLoad);var c=window.ytsignals.getInstance(),e=c.onAny(["eoir","eor"]);c.parkOrScheduleJob(function(){var a=window.ytcsi;a&&a.tick("apa_b");var b=document.querySelector("ytd-app"),d=b&&b.querySelector("ytd-masthead");d&&d.removeAttribute("disable-upgrade");b&&b.removeAttribute("disable-upgrade");a&&a.tick("apa_a")},3,e)},ytSignals=window.ytsignals;
ytSignals?scheduleAppLoad():window.addEventListener("script-load-dpj",scheduleAppLoad);
</script>

<script >
if (window.ytcsi) {window.ytcsi.tick("ac", null, '');}
var onPolymerReady = function(e) {
window.removeEventListener('script-load-dpj', onPolymerReady);
if (!Polymer.Element) {
Polymer.RenderStatus._makeReady();
}
if (window.ytcsi) {window.ytcsi.tick("apr", null, '');}
}

if (window.Polymer && Polymer.RenderStatus) {
onPolymerReady();
} else {
window.addEventListener('script-load-dpj', onPolymerReady);
}

</script>
<!-- end of chunk -->
<div id="watch-page-skeleton" class="watch-skeleton ">
<div id="container">
<div id="related">
<div class="autoplay skeleton-light-border-bottom">
<div id="upnext" class="skeleton-bg-color"></div>
<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

</div>
<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

<div class="video-skeleton">
<div class="video-details">
<div class="thumbnail skeleton-bg-color"></div>
<div class="details flex-1">
<div class="video-title text-shell skeleton-bg-color"></div>
<div class="video-meta text-shell skeleton-bg-color"></div>
</div>
</div>
</div>

</div>
<div id="info-container">
<div id="primary-info" class="skeleton-light-border-bottom">
<div id="title" class="text-shell skeleton-bg-color"></div>
<div id="info">
<div id="count" class="text-shell skeleton-bg-color"></div>
<div class="flex-1"></div>
<div id="menu">
<div class="menu-button skeleton-bg-color"></div>
<div class="menu-button skeleton-bg-color"></div>
<div class="menu-button skeleton-bg-color"></div>
<div class="menu-button skeleton-bg-color"></div>
<div class="menu-button skeleton-bg-color"></div>
</div>
</div>
</div>
<div id="secondary-info" class="skeleton-light-border-bottom">
<div id="top-row">
<div id="video-owner" class="flex-1">
<div id="channel-icon" class="skeleton-bg-color"></div>
<div id="upload-info" class="flex-1">
<div id="owner-name"
class="text-shell skeleton-bg-color">
</div>
<div id="published-date"
class="text-shell skeleton-bg-color">
</div>
</div>
</div>
<div id="subscribe-button" class="skeleton-bg-color"></div>
</div>
</div>
</div>
</div>
</div>

<script >if (window.ytcsi) {window.ytcsi.tick("gcc", null, '');}</script> <script >if (window.ytcsi) {window.ytcsi.tick("pdc", null, '');}</script>
<script >
window["ytInitialData"] = {"responseContext":{"serviceTrackingParams":[{"service":"GFEEDBACK","params":[{"key":"has_unlimited_entitlement","value":"False"},{"key":"has_unlimited_ncc_free_trial","value":"False"},{"key":"e","value":"23718324,23744176,23751767,23757411,23788840,23788875,23793834,23804281,23805410,23811378,23813548,23816462,23818122,23818585,23823448,23823751,23827085,23827174,9449243,9471239"},{"key":"logged_in","value":"1"}]},{"service":"GUIDED_HELP","params":[{"key":"context","value":"yt_web_kevlar_watch"},{"key":"creator_channel_id","value":"UCyrLYmvmLzWxnPHxt4n5aPw"},{"key":"logged_in","value":"1"}]},{"service":"CSI","params":[{"key":"GetWatchNext_rid","value":"0xc25c9ccb23f8abe2"},{"key":"c","value":"WEB"},{"key":"cver","value":"2.20190718"},{"key":"yt_li","value":"1"}]},{"service":"ECATCHER","params":[{"key":"client.name","value":"WEB"},{"key":"client.version","value":"2.20190718"},{"key":"innertube.build.changelist","value":"258802569"},{"key":"innertube.build.experiments.source_version","value":"259054106"},{"key":"innertube.build.label","value":"youtube.ytfe.innertube_20190717_4_RC2"},{"key":"innertube.build.timestamp","value":"1563472606"},{"key":"innertube.build.variants.checksum","value":"35531ef11ad1c61326c4634c67ae1394"},{"key":"innertube.run.job","value":"ytfe-innertube-replica-only.ytfe"}]}],"webResponseContextExtensionData":{"ytConfigData":{"csn":"zyozXcuXGJPI1wLmga2ICw","visitorData":"CgtqNEdzVUNHRnJjWSjP1czpBQ%3D%3D","sessionIndex":0,"rootVisualElementType":3832},"webPrefetchData":{"navigationEndpoints":[{"clickTrackingParams":"CDAQ4ZIBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMgxyZWxhdGVkLWF1dG9I2qDjna3g1aOqAQ==","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=UiEB9RRxNGo","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"UiEB9RRxNGo","params":"EAEYAdoBAggB","playerParams":"QAFIAQ%3D%3D","watchEndpointSupportedPrefetchConfig":{"prefetchHintConfig":{"prefetchPriority":0,"countdownUiRelativeSecondsPrefetchCondition":-3}}}}]}}},"contents":{"twoColumnWatchNextResults":{"results":{"results":{"contents":[{"videoPrimaryInfoRenderer":{"title":{"runs":[{"text":"Baby Loves Cat"}]},"viewCount":{"videoViewCountRenderer":{"viewCount":{"simpleText":"30,127,917 views"},"shortViewCount":{"simpleText":"30M views"}}},"videoActions":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CI4BEMyrARgAIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"Egtxa2RYQXRPNDBGb0ABWAA%3D"}},"trackingParams":"CI4BEMyrARgAIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Open transcript"}]},"icon":{"iconType":"SUBTITLES"},"serviceEndpoint":{"clickTrackingParams":"CI4BEMyrARgAIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"changeEngagementPanelVisibilityAction":{"targetId":"engagement-panel-transcript","visibility":"ENGAGEMENT_PANEL_VISIBILITY_EXPANDED"}}]}},"trackingParams":"CI4BEMyrARgAIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}],"trackingParams":"CI4BEMyrARgAIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","topLevelButtons":[{"toggleButtonRenderer":{"style":{"styleType":"STYLE_TEXT"},"isToggled":false,"isDisabled":false,"defaultIcon":{"iconType":"LIKE"},"defaultText":{"accessibility":{"accessibilityData":{"label":"102,676 likes"}},"simpleText":"102K"},"defaultServiceEndpoint":{"clickTrackingParams":"CJMBEJhNGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"likeEndpoint":{"status":"LIKE","target":{"videoId":"qkdXAtO40Fo"}}},"toggledText":{"accessibility":{"accessibilityData":{"label":"102,677 likes"}},"simpleText":"102K"},"toggledServiceEndpoint":{"clickTrackingParams":"CJMBEJhNGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"likeEndpoint":{"status":"INDIFFERENT","target":{"videoId":"qkdXAtO40Fo"}}},"accessibility":{"label":"like this video along with 102,676 other people"},"trackingParams":"CJMBEJhNGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","defaultTooltip":"I like this","toggledTooltip":"Unlike","toggledStyle":{"styleType":"STYLE_DEFAULT_ACTIVE"},"accessibilityData":{"accessibilityData":{"label":"like this video along with 102,676 other people"}},"toggleButtonSupportedData":{"toggleButtonIdData":{"id":"TOGGLE_BUTTON_ID_TYPE_LIKE"}},"targetId":"watch-like"}},{"toggleButtonRenderer":{"style":{"styleType":"STYLE_TEXT"},"isToggled":false,"isDisabled":false,"defaultIcon":{"iconType":"DISLIKE"},"defaultText":{"accessibility":{"accessibilityData":{"label":"17,355 dislikes"}},"simpleText":"17K"},"defaultServiceEndpoint":{"clickTrackingParams":"CJIBEJhNGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"likeEndpoint":{"status":"DISLIKE","target":{"videoId":"qkdXAtO40Fo"}}},"toggledText":{"accessibility":{"accessibilityData":{"label":"17,356 dislikes"}},"simpleText":"17K"},"toggledServiceEndpoint":{"clickTrackingParams":"CJIBEJhNGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"likeEndpoint":{"status":"INDIFFERENT","target":{"videoId":"qkdXAtO40Fo"}}},"accessibility":{"label":"dislike this video along with 17,355 other people"},"trackingParams":"CJIBEJhNGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","defaultTooltip":"I dislike this","toggledTooltip":"I dislike this","toggledStyle":{"styleType":"STYLE_DEFAULT_ACTIVE"},"accessibilityData":{"accessibilityData":{"label":"dislike this video along with 17,355 other people"}},"toggleButtonSupportedData":{"toggleButtonIdData":{"id":"TOGGLE_BUTTON_ID_TYPE_DISLIKE"}},"targetId":"watch-dislike"}},{"buttonRenderer":{"style":"STYLE_DEFAULT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Share"}]},"serviceEndpoint":{"clickTrackingParams":"CJABEPBbGAQiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"shareEntityServiceEndpoint":{"serializedShareEntity":"Cgtxa2RYQXRPNDBGbw%3D%3D","commands":[{"openPopupAction":{"popup":{"unifiedSharePanelRenderer":{"trackingParams":"CJEBEI5iIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","showLoadingSpinner":true}},"popupType":"DIALOG","beReused":true}}]}},"icon":{"iconType":"SHARE"},"accessibility":{"label":"Share"},"tooltip":"Share","trackingParams":"CJABEPBbGAQiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"buttonRenderer":{"style":"STYLE_DEFAULT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Save"}]},"serviceEndpoint":{"clickTrackingParams":"CI8BEPBbGAUiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"qkdXAtO40Fo"}},"icon":{"iconType":"PLAYLIST_ADD"},"accessibility":{"label":"Save to"},"trackingParams":"CI8BEPBbGAUiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibilityData":{"accessibilityData":{"label":"Save"}}}}],"accessibility":{"accessibilityData":{"label":"More actions"}}}},"trackingParams":"CI4BEMyrARgAIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","sentimentBar":{"sentimentBarRenderer":{"percentIfIndifferent":85,"percentIfLiked":85,"percentIfDisliked":85,"likeStatus":"INDIFFERENT","tooltip":"102,676 / 17,355"}}}},{"videoSecondaryInfoRenderer":{"owner":{"videoOwnerRenderer":{"thumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/a/AGF-l7_-K1MvgXZAyMNbntPXlk6RnPhe82K0sdIxTw=s48-mo-c-c0xffffffff-rj-k-no","width":48,"height":48},{"url":"https://yt3.ggpht.com/a/AGF-l7_-K1MvgXZAyMNbntPXlk6RnPhe82K0sdIxTw=s88-mo-c-c0xffffffff-rj-k-no","width":88,"height":88},{"url":"https://yt3.ggpht.com/a/AGF-l7_-K1MvgXZAyMNbntPXlk6RnPhe82K0sdIxTw=s176-mo-c-c0xffffffff-rj-k-no","width":176,"height":176}]},"title":{"runs":[{"text":"Merkley Family","navigationEndpoint":{"clickTrackingParams":"CI0BEOE5IhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC5P8yei950tif7UmdPpkJLQ","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC5P8yei950tif7UmdPpkJLQ"}}}]},"subscriptionButton":{"type":"FREE"},"navigationEndpoint":{"clickTrackingParams":"CI0BEOE5IhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC5P8yei950tif7UmdPpkJLQ","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC5P8yei950tif7UmdPpkJLQ","canonicalBaseUrl":"/channel/UC5P8yei950tif7UmdPpkJLQ"}},"subscriberCountText":{"runs":[{"text":"73,728 subscribers"}]},"trackingParams":"CI0BEOE5IhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},"dateText":{"simpleText":"Published on Aug 16, 2015"},"description":{"runs":[{"text":"She's incapable of controlling her limbs when her kitty is around. The obsession grows every day.\n\nPs. That's a sleep sack she's in. Not a starfish outfit. Although I wish I were cool enough to dress my daughter in a starfish outfit.\n\nJukin Media Verified (Original)\n*For licensing / permission to use please contact licensing(at)jukinmediadotcom"}]},"subscribeButton":{"subscribeButtonRenderer":{"buttonText":{"runs":[{"text":"Subscribe"}]},"subscriberCountText":{"simpleText":"73K"},"subscribed":false,"enabled":true,"type":"FREE","channelId":"UC5P8yei950tif7UmdPpkJLQ","showPreferences":false,"subscriberCountWithSubscribeText":{"simpleText":"73K"},"subscribedButtonText":{"runs":[{"text":"Subscribed "},{"text":"73K","deemphasize":true}]},"unsubscribedButtonText":{"runs":[{"text":"Subscribe "},{"text":"73K","deemphasize":true}]},"trackingParams":"CIgBEJsrIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMgV3YXRjaA==","unsubscribeButtonText":{"runs":[{"text":"Unsubscribe"}]},"longSubscriberCountText":{"runs":[{"text":"73,728 subscribers"}]},"notificationPreferenceToggleButton":{"toggleButtonRenderer":{"style":{"styleType":"STYLE_GREY_TEXT"},"isToggled":false,"isDisabled":false,"defaultIcon":{"iconType":"NOTIFICATIONS_NONE"},"defaultServiceEndpoint":{"clickTrackingParams":"CIwBEJhNIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMhxQUkVGRVJFTkNFX0FMTF9OT1RJRklDQVRJT05T","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"modifyChannelNotificationPreferenceEndpoint":{"params":"ChhVQzVQOHllaTk1MHRpZjdVbWRQcGtKTFESAggCGAE%3D"}},"toggledIcon":{"iconType":"CHANNEL_NOTIFICATION_PREFERENCE_ON"},"toggledServiceEndpoint":{"clickTrackingParams":"CIwBEJhNIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMhJQUkVGRVJFTkNFX0RFRkFVTFQ=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"modifyChannelNotificationPreferenceEndpoint":{"params":"ChhVQzVQOHllaTk1MHRpZjdVbWRQcGtKTFESAggBGAE%3D"}},"trackingParams":"CIwBEJhNIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","defaultTooltip":"Get notified about every new video","toggledTooltip":"Stop getting notified about every new video","toggledStyle":{"styleType":"STYLE_GREY_TEXT"},"accessibilityData":{"accessibilityData":{"label":"Current setting is occasional notifications. Tap to change your notification setting for Merkley Family"}},"toggledAccessibilityData":{"accessibilityData":{"label":"Current setting is all notifications. Tap to change your notification setting for Merkley Family"}}}},"shortSubscriberCountText":{"simpleText":"73K"},"subscribeAccessibility":{"accessibilityData":{"label":"Subscribe to Merkley Family."}},"unsubscribeAccessibility":{"accessibilityData":{"label":"Unsubscribe from Merkley Family."}},"targetId":"watch-subscribe","onSubscribeEndpoints":[{"clickTrackingParams":"CIgBEJsrIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMgV3YXRjaA==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"subscribeEndpoint":{"channelIds":["UC5P8yei950tif7UmdPpkJLQ"],"params":"EgIIAxgAIgtxa2RYQXRPNDBGbw%3D%3D"}}],"onUnsubscribeEndpoints":[{"clickTrackingParams":"CIgBEJsrIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"openPopupAction":{"popup":{"confirmDialogRenderer":{"trackingParams":"CIkBEMY4IhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","dialogMessages":[{"runs":[{"text":"Unsubscribe from "},{"text":"Merkley Family"},{"text":"?"}]}],"confirmButton":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","size":"SIZE_DEFAULT","text":{"runs":[{"text":"Unsubscribe"}]},"serviceEndpoint":{"clickTrackingParams":"CIsBEPBbIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMgV3YXRjaA==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"unsubscribeEndpoint":{"channelIds":["UC5P8yei950tif7UmdPpkJLQ"],"params":"CgIIAw%3D%3D"}},"trackingParams":"CIsBEPBbIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},"cancelButton":{"buttonRenderer":{"style":"STYLE_TEXT","size":"SIZE_DEFAULT","text":{"runs":[{"text":"Cancel"}]},"trackingParams":"CIoBEPBbIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},"primaryIsCancel":false}},"popupType":"DIALOG"}}]}}]}},"metadataRowContainer":{"metadataRowContainerRenderer":{"rows":[{"metadataRowRenderer":{"title":{"simpleText":"Category"},"contents":[{"runs":[{"text":"Pets \u0026 Animals","navigationEndpoint":{"clickTrackingParams":"CIcBEM2rARgBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCFYJCBaHRzLJrnhRglM3GdA","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCFYJCBaHRzLJrnhRglM3GdA"}}}]}],"trackingParams":"CIcBEM2rARgBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}],"collapsedItemCount":0,"trackingParams":"CIcBEM2rARgBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},"showMoreText":{"runs":[{"text":"Show more"}]},"showLessText":{"runs":[{"text":"Show less"}]},"trackingParams":"CIcBEM2rARgBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","defaultExpanded":false}},{"itemSectionRenderer":{"contents":[{"messageRenderer":{"text":{"runs":[{"text":"Comments are disabled for this video."}]},"trackingParams":"CIYBEJY7GAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CIUBELsvGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","sectionIdentifier":"comment-item-section"}}],"trackingParams":"CIQBELovIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},"secondaryResults":{"secondaryResults":{"results":[{"compactAutoplayRenderer":{"title":{"simpleText":"Up next"},"toggleDescription":{"runs":[{"text":"Autoplay"}]},"infoIcon":{"iconType":"INFO"},"infoText":{"runs":[{"text":"When autoplay is enabled, a suggested video will automatically play next."}]},"contents":[{"compactVideoRenderer":{"videoId":"UiEB9RRxNGo","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/UiEB9RRxNGo/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCN4yakz2pwI_DX1ga6Em7eJh3Kdg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/UiEB9RRxNGo/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLASjG30bZn2Njoh84299Nf7ZakDTw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Clever and Witty Animals! | Video Digest by Video Digest, The Ultimate Compilations 2 years ago 9 minutes, 20 seconds 3,071,968 views"}},"simpleText":"Clever and Witty Animals! | Video Digest"},"longBylineText":{"runs":[{"text":"Video Digest, The Ultimate Compilations","navigationEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0yB2F1dG9uYXY=","commandMetadata":{"webCommandMetadata":{"url":"/user/VideoDigestChannel","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCYJkz44KRzuO8pxspJ9uocw","canonicalBaseUrl":"/user/VideoDigestChannel"}}}]},"viewCountText":{"simpleText":"3,071,968 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"9 minutes, 20 seconds"}},"simpleText":"9:20"},"navigationEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0yB2F1dG9uYXZI2qDjna3g1aOqAQ==","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=UiEB9RRxNGo","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"UiEB9RRxNGo","nofollow":true}},"shortBylineText":{"runs":[{"text":"Video Digest, The Ultimate Compilations","navigationEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0yB2F1dG9uYXY=","commandMetadata":{"webCommandMetadata":{"url":"/user/VideoDigestChannel","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCYJkz44KRzuO8pxspJ9uocw","canonicalBaseUrl":"/user/VideoDigestChannel"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-jWKqfqddoxI/AAAAAAAAAAI/AAAAAAAAAAA/poeZK3eYuZ0/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B1A6ujEo9G-wJBS","shortViewCountText":{"simpleText":"3M views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"UiEB9RRxNGo","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"UiEB9RRxNGo"}},"trackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpKCFUdg0e4a1RBSsb625RvKbT2w4Bd7W4ZOK_GBRTQXYUh5I9Tv4A51zTxb6caGS5ZAGUQj0timsvoMjYchqFpte-vQtucIeNfReEWsGyDrzSVY4k0Opfu9IIHr3zC7_DsSMCLA","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CIMBEPBbGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpKbwZdF7DH2DxQ7dAlSOnWFZALyqEHv9KrRI8U0yEkxOql8KvrbbuOP9nPi-KUCzzBuYuIIHDEhxIGIxgWbrt6I0DHyiYYdTgkPz7QLRgvpnZQLpqCLll92ZQpLkDT-2c1aOfJK","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CIMBEPBbGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CIIBEPBbGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CIIBEPBbGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CIEBEKW8ASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}}},{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"CANCEL_AUTONAV"}}]}}]}},"trackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtVaUVCOVJSeE5Hb0ABWABwAXgB"}},"trackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"9 minutes, 20 seconds"}},"simpleText":"9:20"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"UiEB9RRxNGo","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CIABEKQwGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"UiEB9RRxNGo"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Clever and Witty Animals! | Video Digest - 9 minutes, 20 seconds - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/UiEB9RRxNGo/mqdefault_6s.webp?du=3000\u0026sqp=CIaozOkF\u0026rs=AOn4CLA9NGvuoR3OPPgnw2h_ea-T8ecVew","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}}],"trackingParams":"CH8QpmAYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"compactVideoRenderer":{"videoId":"wzc_VNh42HM","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/wzc_VNh42HM/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDQ73m4N2a9mcGyEoFL9KJVlWc_4w","width":168,"height":94},{"url":"https://i.ytimg.com/vi/wzc_VNh42HM/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDLNSxllRk9Zq5EItY_Xn_eQrt-4g","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Kochen mit Fertigprodukten - Die Wahrheit über Restaurants | SWR betrifft by SWR 2 months ago 44 minutes 616,505 views"}},"simpleText":"Kochen mit Fertigprodukten - Die Wahrheit über Restaurants | SWR betrifft"},"longBylineText":{"runs":[{"text":"SWR","navigationEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/SWR","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCy4_zQ59zmS7zO4Dc6vbT_w","canonicalBaseUrl":"/user/SWR"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"44 minutes"}},"simpleText":"44:55"},"navigationEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=wzc_VNh42HM","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"wzc_VNh42HM","nofollow":true}},"shortBylineText":{"runs":[{"text":"SWR","navigationEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/SWR","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCy4_zQ59zmS7zO4Dc6vbT_w","canonicalBaseUrl":"/user/SWR"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-6IfwjW7KdZA/AAAAAAAAAAI/AAAAAAAAAAA/epCyoMrvYHc/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HUDzsOPDzerPm8MB","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"wzc_VNh42HM","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"wzc_VNh42HM"}},"trackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpJ7jXxImj68GpeU0dg9HmXxmzA2o1kgpm8q0c8l3CjqD-BYQ2ahmC04FH9SR0RiDKguYGV9s8b66dUsECTCNwBEHoghM3urLK91dqIdpL6fVb5kx3jTai3H6NJQjQIiB7HdQRZ1","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CH4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpImN2r28-qMKeDqe_ecXT-W6hSAlxbYYeliJRQENuxjoWZpX6GHn9nakw-KZJcguZoVA1yKASCYYhBXjfIBrdBG8qoA-WCkaPwbsmO7UGAe2hGeLiwl1isqSImAWYqXBJv3eWjK","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CH4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CH0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CH0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHwQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"Egt3emNfVk5oNDJITUABWABwAXgB"}},"trackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"44 minutes"}},"simpleText":"44:55"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"wzc_VNh42HM","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CHsQpDAYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"wzc_VNh42HM"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Kochen mit Fertigprodukten - Die Wahrheit über Restaurants | SWR betrifft - 44 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/wzc_VNh42HM/mqdefault_6s.webp?du=3000\u0026sqp=CJm4zOkF\u0026rs=AOn4CLB2_CNF9Qio3MnaTV82jPd0DVdLdg","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"whNy5FyiLps","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/whNy5FyiLps/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDotZJuTsFMZYl-v2QiJSrs0VGWKg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/whNy5FyiLps/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLAOq4eOcH8ccJ0EkacZprv7P7Dgtw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Erbsenzaehler PedantenUnterUns by doc_2ret 7 years ago 43 minutes 1,141,608 views"}},"simpleText":"Erbsenzaehler PedantenUnterUns"},"longBylineText":{"runs":[{"text":"doc_2ret","navigationEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/doc2ret","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCX6P2H6WQtmYfRuSj72iGNg","canonicalBaseUrl":"/user/doc2ret"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"43 minutes"}},"simpleText":"43:23"},"navigationEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=whNy5FyiLps","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"whNy5FyiLps","nofollow":true}},"shortBylineText":{"runs":[{"text":"doc_2ret","navigationEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/doc2ret","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCX6P2H6WQtmYfRuSj72iGNg","canonicalBaseUrl":"/user/doc2ret"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-HzJVC_lAeR0/AAAAAAAAAAI/AAAAAAAAAAA/mwwUqMRgdLk/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HUCb3YjlxdzcicIB","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"whNy5FyiLps","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"whNy5FyiLps"}},"trackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpI7BKRZdmAeOUQou96Ao6rvMTN_D0wxMKylRn0_iJukM_NrHiw-afegFqKZhL3zOtL6q7-0k-MlIU95S5LhLfDHzVVdcyeCIELNhQxteO4VZebVi04mINEMHbdQssrslqIi0CJb","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CHoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpJ8u4vmQH2Q4idV4944W31X6ep5DkdjUUlxHUozqeLKYPUwX-jFw1GUAnGza_AEdI91ui0JMD3ik-Zh-iVRTol0b6TMR-SH3qLy3sozJag2tucUo9NzWjw4gWycfdXvsZqlnY7z","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CHoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CHkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CHkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHgQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"Egt3aE55NUZ5aUxwc0ABWABwAXgB"}},"trackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"43 minutes"}},"simpleText":"43:23"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"whNy5FyiLps","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CHcQpDAYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"whNy5FyiLps"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Erbsenzaehler PedantenUnterUns - 43 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/whNy5FyiLps/mqdefault_6s.webp?du=3000\u0026sqp=CKfAzOkF\u0026rs=AOn4CLDl7ustzxCBfnlg-jCBDkdmoVOKBA","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"w0nTzUAdoY0","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/w0nTzUAdoY0/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLD-hE7nu3wtqGvV1-fcLUFYMt90bw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/w0nTzUAdoY0/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDQ86Sd7yrmz_OLjmv3721hsl78Hg","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Nachhaltiges Upcycling: So machst du aus alten Sachen individuelle Regale! || PULS Reportage by PULS Reportage 3 days ago 14 minutes 257,661 views"}},"simpleText":"Nachhaltiges Upcycling: So machst du aus alten Sachen individuelle Regale! || PULS Reportage"},"longBylineText":{"runs":[{"text":"PULS Reportage","navigationEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/on3de","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCBzai1GXVKDdVCrwlKZg_6Q","canonicalBaseUrl":"/user/on3de"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"14 minutes"}},"simpleText":"14:33"},"navigationEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=w0nTzUAdoY0","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"w0nTzUAdoY0","nofollow":true}},"shortBylineText":{"runs":[{"text":"PULS Reportage","navigationEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/on3de","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCBzai1GXVKDdVCrwlKZg_6Q","canonicalBaseUrl":"/user/on3de"}}}]},"badges":[{"metadataBadgeRenderer":{"style":"BADGE_STYLE_TYPE_SIMPLE","label":"New","trackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-ebSeVuvgNGI/AAAAAAAAAAI/AAAAAAAAAAA/Fl56b49FIlY/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HUCNw_aA1Pn0pMMB","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"w0nTzUAdoY0","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"w0nTzUAdoY0"}},"trackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpKWEmH03geVlTE1ZBOgX6KllznnJmfz1pxW_GytDfc2F5NT0kSnRqofJtUL4UCDxVuYUOcljFTWVODZBmmv3up-YguJky9kJxMTAmQJZwBVfuI6BiKYAXNwPghzSfrnzRn1p_5f","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CHYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpKRzynNA68wlr61oUcH9JFDap0rlVDTabdzIJKsOl5TdSYsKYJ2-qDJpKPQsrQqy9W-mRnwRVnLUi5yUsGNIT-mlXkqoCayVx50cq1TnATDTiqi7aoWXQok6fyN0BmIUGThMLLJ","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CHYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CHUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CHUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHQQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"Egt3MG5UelVBZG9ZMEABWABwAXgB"}},"trackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"14 minutes"}},"simpleText":"14:33"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"w0nTzUAdoY0","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CHMQpDAYAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"w0nTzUAdoY0"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Nachhaltiges Upcycling: So machst du aus alten Sachen individuelle Regale! || PULS Reportage - 14 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/w0nTzUAdoY0/mqdefault_6s.webp?du=3000\u0026sqp=CMq2zOkF\u0026rs=AOn4CLCglrYtQCiJtY8jDtUGDFRU0wSnyQ","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"W9VYpchSaFA","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/W9VYpchSaFA/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAuiAymjL7YPNvp3aMQOlQUwS8Ziw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/W9VYpchSaFA/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDIVBR7HwCY_fMC9BHnG2VX1MG1rw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Wie geht das? Sieben Kinder by Marc Hofstee 1 year ago 28 minutes 949,693 views"}},"simpleText":"Wie geht das? Sieben Kinder"},"longBylineText":{"runs":[{"text":"Marc Hofstee","navigationEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC_oGR9ZqNObDzlfocA7bgwA","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC_oGR9ZqNObDzlfocA7bgwA"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"28 minutes"}},"simpleText":"28:30"},"navigationEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=W9VYpchSaFA","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"W9VYpchSaFA","nofollow":true}},"shortBylineText":{"runs":[{"text":"Marc Hofstee","navigationEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC_oGR9ZqNObDzlfocA7bgwA","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC_oGR9ZqNObDzlfocA7bgwA"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-v4DhtSmocJ0/AAAAAAAAAAI/AAAAAAAAAAA/WE6qid4POQY/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HUDQ0MnC3JTW6ls=","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"W9VYpchSaFA","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"W9VYpchSaFA"}},"trackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpI88k-iRD6_SQbTKLFg2ob1Ka3_LFhjCLGL3n3sSDXdSTmoVN--Kmr7LHoy9S4zKYPaUfA-BR5BsXUQUOYj2HbGoyhtmgLQ1TjX3V2Msy7N7130aL5l7jEnlEkeDe1qTPOPWYYY","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CHIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpKaEdN4fvCy5w5ETQu2GC23ZNaBaga6Bdi5QZA8mhzhiCehlBbqPGIH7fKNyR2hmkDApGRQLXIEZdLX8n3I-bzlBfBCOzysIKeMqZAYB8RRnHyx1aPyritKxLs8mQErCgXtpLep","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CHIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CHEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CHEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CHAQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtXOVZZcGNoU2FGQUABWABwAXgB"}},"trackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"28 minutes"}},"simpleText":"28:30"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"W9VYpchSaFA","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CG8QpDAYBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"W9VYpchSaFA"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Wie geht das? Sieben Kinder - 28 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/W9VYpchSaFA/mqdefault_6s.webp?du=3000\u0026sqp=CICtzOkF\u0026rs=AOn4CLAJEn0t3jR90A3OMXWvJrHZXCZETw","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"14_LnsQ0Q6E","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/14_LnsQ0Q6E/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLA0CLAHbqOZr_EK-IBOACZdZ1C9yA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/14_LnsQ0Q6E/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLACAe_sl2nJrAmWjzFLD57hbZcP7A","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Die Affen sind los! - TV total by MySpass 5 years ago 12 minutes 2,993,656 views"}},"simpleText":"Die Affen sind los! - TV total"},"longBylineText":{"runs":[{"text":"MySpass","navigationEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/MySpassde","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCGcheBSVngQt09ubb0BZyJw","canonicalBaseUrl":"/user/MySpassde"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"12 minutes"}},"simpleText":"12:54"},"navigationEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=14_LnsQ0Q6E","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"14_LnsQ0Q6E","nofollow":true}},"shortBylineText":{"runs":[{"text":"MySpass","navigationEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/MySpassde","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCGcheBSVngQt09ubb0BZyJw","canonicalBaseUrl":"/user/MySpassde"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-i-ulOEp9OG4/AAAAAAAAAAI/AAAAAAAAAAA/jniWZ3OyFog/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HUChh9Gh7PPyx9cB","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"14_LnsQ0Q6E","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"14_LnsQ0Q6E"}},"trackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpJsnbM-ueNXNEjMD-GbFl1CYVEgHlJA-p2deVvFn-Y1tXvpN7ssO3idq1IAoXkjuAwbDkxya2BHXOLxHHs1RXVPiQzBO00RTVyGtCHuv-5wEZp_dfptyRPaRYJjxjyrSgPWO5Xd","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CG4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpKGi2RwN0UKtOPSPveqz0oslOSVS1p1IXDcxv4WMEK11YToX-zRSmArxvdYWLIZ9CifVctW-uwxZJPITk-lgGVCacSEj9Hhv0hcqRbwQ9o79ZEJDGI0033Y19gGOC8hk5__VT5b","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CG4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CG0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CG0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGwQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgsxNF9MbnNRMFE2RUABWABwAXgB"}},"trackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"12 minutes"}},"simpleText":"12:54"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"14_LnsQ0Q6E","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CGsQpDAYBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"14_LnsQ0Q6E"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Die Affen sind los! - TV total - 12 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/14_LnsQ0Q6E/mqdefault_6s.webp?du=3000\u0026sqp=CI-WzOkF\u0026rs=AOn4CLAi2V3yXTEdwufNr58p3vNxnjUIow","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"W6LN563ZrIE","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/W6LN563ZrIE/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDyNcFlQmw2JYolTy1F3L8-UAmotw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/W6LN563ZrIE/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDmbJQQ2Mmb74cbHod6D8VP-6mWWA","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Die 10 Seltensten Katzenrassen der Welt! by TopWelt 6 months ago 10 minutes 371,367 views"}},"simpleText":"Die 10 Seltensten Katzenrassen der Welt!"},"longBylineText":{"runs":[{"text":"TopWelt","navigationEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCW3cdvkBtlSH7ijSaRFDoHw","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCW3cdvkBtlSH7ijSaRFDoHw"}}}]},"viewCountText":{"simpleText":"371,367 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:33"},"navigationEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=W6LN563ZrIE","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"W6LN563ZrIE","nofollow":true}},"shortBylineText":{"runs":[{"text":"TopWelt","navigationEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCW3cdvkBtlSH7ijSaRFDoHw","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCW3cdvkBtlSH7ijSaRFDoHw"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-R0UGV403N1s/AAAAAAAAAAI/AAAAAAAAAAA/fccVRsXTPgs/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HUCB2ebu-ryz0Vs=","shortViewCountText":{"simpleText":"371K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"W6LN563ZrIE","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"W6LN563ZrIE"}},"trackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpK-0RFHZ2S8OdTi2fdh27G17ck7tfeZUVfOBRMA9r-F_22GjCAHOoZoOSFCgl4DpgApS-iYDMOxl1VwF8xTdixXufm9tpXi2nc-cEaZ1goE80GpfiSWx4I2KE0QLXWNKv1E4hXz","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CGoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpKWmkPad5F6i4xnUTTTRr2CCBm0efRcWDhT7FLBXgMbpvtM4GME2yVz9rWGjbUikY08DVOZ-7uA7gKEpYaUtB_dKMNeMK2a5Qtz4xLeU_tUFaHNsXOWoq8zjMwcpC1TSqkPf4tZ","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CGoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CGkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CGkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGgQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtXNkxONTYzWnJJRUABWABwAXgB"}},"trackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:33"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"W6LN563ZrIE","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CGcQpDAYBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"W6LN563ZrIE"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Die 10 Seltensten Katzenrassen der Welt! - 10 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/W6LN563ZrIE/mqdefault_6s.webp?du=3000\u0026sqp=CJvOzOkF\u0026rs=AOn4CLAv717IThv5W10LilLVIfstE097WQ","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"7SGZaWGiPAo","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/7SGZaWGiPAo/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCVMQGp0OCJIDXLsXVEnS10KOoABg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/7SGZaWGiPAo/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDSJVChGEC2_R4TYTpLbWRc53NZng","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Haya, ein Mädchen in Saudi-Arabien | Schau in meine Welt | SWR Kindernetz by SWR Kindernetz 2 years ago 24 minutes 898,475 views"}},"simpleText":"Haya, ein Mädchen in Saudi-Arabien | Schau in meine Welt | SWR Kindernetz"},"longBylineText":{"runs":[{"text":"SWR Kindernetz","navigationEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/Kindernetz","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCq9LcynLXxw4khwAIT665rg","canonicalBaseUrl":"/user/Kindernetz"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"24 minutes"}},"simpleText":"24:59"},"navigationEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=7SGZaWGiPAo","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"7SGZaWGiPAo","nofollow":true}},"shortBylineText":{"runs":[{"text":"SWR Kindernetz","navigationEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/Kindernetz","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCq9LcynLXxw4khwAIT665rg","canonicalBaseUrl":"/user/Kindernetz"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-vHTYvKrnapM/AAAAAAAAAAI/AAAAAAAAAAA/Jb493ga_2Xk/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HUCK-IiNlq3mkO0B","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"7SGZaWGiPAo","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"7SGZaWGiPAo"}},"trackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpIgOdoX3qsLH2FndGkKtuGQj7cNEMqBzs20QTwWJV9Nw_F895Rz0LQx_DO7AxYVJHmNGmOBgC7XiGMNa8PCgXzq3kX6gh_rhxvkG8qlxf4VIaoTf21xmyHgXfozGNNcvWZOtGME","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CGYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpKYwJg4wf726M-2dGXLItz2ur5bZIOU7kkCcwJ1UViy2s9Pw0s8-7Or2agqDRB2yqvvUId528iLL48DgfIXbS_zy3vJRlL-jEKYLVPYzkbvL8bEpffTmZDfrpnbgiV5kyLH0PYM","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CGYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CGUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CGUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGQQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"Egs3U0daYVdHaVBBb0ABWABwAXgB"}},"trackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"24 minutes"}},"simpleText":"24:59"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"7SGZaWGiPAo","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CGMQpDAYByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"7SGZaWGiPAo"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Haya, ein Mädchen in Saudi-Arabien | Schau in meine Welt | SWR Kindernetz - 24 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/7SGZaWGiPAo/mqdefault_6s.webp?du=3000\u0026sqp=COCazOkF\u0026rs=AOn4CLBhHTiRdmljzRgW8wlX7lIfg7FKMg","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"IKQVfheFkok","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/IKQVfheFkok/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLBRDjOY6ne2xaaa9uiI91fOfVVtgQ","width":168,"height":94},{"url":"https://i.ytimg.com/vi/IKQVfheFkok/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDWHFIhd9FXezJN-PJQ-LPymrlZ6Q","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"FOOD IN COMMERCIALS VS. IN REAL LIFE by 5-Minute Crafts VS 3 months ago 12 minutes 7,881,664 views"}},"simpleText":"FOOD IN COMMERCIALS VS. IN REAL LIFE"},"longBylineText":{"runs":[{"text":"5-Minute Crafts VS","navigationEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC56_hOqEtBqHwnVNBzOWj-A","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC56_hOqEtBqHwnVNBzOWj-A"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"12 minutes"}},"simpleText":"12:34"},"navigationEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=IKQVfheFkok","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"IKQVfheFkok","nofollow":true}},"shortBylineText":{"runs":[{"text":"5-Minute Crafts VS","navigationEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC56_hOqEtBqHwnVNBzOWj-A","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC56_hOqEtBqHwnVNBzOWj-A"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-V4yKT-mUUOg/AAAAAAAAAAI/AAAAAAAAAAA/v_MTjepoy1E/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HUCJpZa84a-F0iA=","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"IKQVfheFkok","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"IKQVfheFkok"}},"trackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpLEBn8cbSbnscmiRCEUBOHpUHamMA5hiKT0PnlZml7MOyjrv_elPQ6bmBvdXvMpYcaPb_97rb3iODHJ_IyP6ebL8iF91YLZ2s4QhdpBgNFXz5LyprnJW8zNoXo_ZGMY4Gy53amN","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CGIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpJ3EER_C_IXFj_U-7atuYeQSg-mYvtgKg_Asj55UYU7knzUr9XbTW0Slvs-lnKS_gYihKhJdl8V4uP6Zy-mjRV-OLfDy8T-1Hp9P0GxcJLYVLA7BrchL5cSjQsmEn7HvkUHzpht","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CGIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CGEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CGEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CGAQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtJS1FWZmhlRmtva0ABWABwAXgB"}},"trackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"12 minutes"}},"simpleText":"12:34"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"IKQVfheFkok","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CF8QpDAYCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"IKQVfheFkok"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"FOOD IN COMMERCIALS VS. IN REAL LIFE - 12 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/IKQVfheFkok/mqdefault_6s.webp?du=3000\u0026sqp=CNGhzOkF\u0026rs=AOn4CLBqs6i9en_ZWuemi8jPO6IwjHn9cg","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"LX4IIbkwqsU","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/LX4IIbkwqsU/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAg7X6Jyo9w6RUxSBCp7-8FWvd-XA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/LX4IIbkwqsU/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLA9h7M7d3fyfo0740kLydNuuVu6sg","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"10 Dinge, die Amerikaner von Deutschen lernen können by lebenUSA 2 years ago 11 minutes 616,893 views"}},"simpleText":"10 Dinge, die Amerikaner von Deutschen lernen können"},"longBylineText":{"runs":[{"text":"lebenUSA","navigationEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCJI1Ca4vWWIcuwi0Zg4-jWg","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCJI1Ca4vWWIcuwi0Zg4-jWg"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"11 minutes"}},"simpleText":"11:02"},"navigationEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=LX4IIbkwqsU","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"LX4IIbkwqsU","nofollow":true}},"shortBylineText":{"runs":[{"text":"lebenUSA","navigationEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCJI1Ca4vWWIcuwi0Zg4-jWg","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCJI1Ca4vWWIcuwi0Zg4-jWg"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-FVN1VpYXi1U/AAAAAAAAAAI/AAAAAAAAAAA/KWjqzSunaIE/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HUDF1cLJm4SCvy0=","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"LX4IIbkwqsU","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"LX4IIbkwqsU"}},"trackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpKcP0olQum-EQWLc-DCWCNQgfj5-9ho3r78BZ_cy0Q3rpz80wW33jVuJhny2ei02yOn1G4t03nRJmGQiVVCjCWoNOJWyVldvae8hku3-V4-qeSJOa8I3EJxHdayz3jUiy5V6Oii","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CF4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpIu95n6xF60eKv1_0BK_lbHJjHA7cMKQIEfT6yBGPwKplN4Rcv2rDFJ2cimF-ixb4ZjSamQYYl-8XsFqKCsezmLYqOkjjd3KNEHTBEmjGA8y_BBHrlNlonoC2cqlOrirYxsASkS","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CF4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CF0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CF0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFwQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtMWDRJSWJrd3FzVUABWABwAXgB"}},"trackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"11 minutes"}},"simpleText":"11:02"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"LX4IIbkwqsU","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CFsQpDAYCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"LX4IIbkwqsU"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"10 Dinge, die Amerikaner von Deutschen lernen können - 11 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/LX4IIbkwqsU/mqdefault_6s.webp?du=3000\u0026sqp=CIuazOkF\u0026rs=AOn4CLCUiXICGva4RLyf6tjTpeSh1P4mmw","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"axXzgtX8KtQ","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/axXzgtX8KtQ/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAt2f1VGHUUqD4wtRC31SQFoKkr9Q","width":168,"height":94},{"url":"https://i.ytimg.com/vi/axXzgtX8KtQ/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLBo_XA8RKW6BlnLvyB5zbDxeRpV0w","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Der Scampi Beschiss (NDR.Markt 28.9.15) by Der Demokrator 3 years ago 9 minutes, 40 seconds 552,703 views"}},"simpleText":"Der Scampi Beschiss (NDR.Markt 28.9.15)"},"longBylineText":{"runs":[{"text":"Der Demokrator","navigationEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/DerDemokrator2011","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCjAy6SykyQTSQ0f0r3Iaolw","canonicalBaseUrl":"/user/DerDemokrator2011"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"9 minutes, 40 seconds"}},"simpleText":"9:40"},"navigationEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=axXzgtX8KtQ","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"axXzgtX8KtQ","nofollow":true}},"shortBylineText":{"runs":[{"text":"Der Demokrator","navigationEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/DerDemokrator2011","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCjAy6SykyQTSQ0f0r3Iaolw","canonicalBaseUrl":"/user/DerDemokrator2011"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-Xm_IhXeLTxk/AAAAAAAAAAI/AAAAAAAAAAA/WhH0s0loMxI/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HUDU1fCvrfD8ims=","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"axXzgtX8KtQ","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"axXzgtX8KtQ"}},"trackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpJ5w9_f2jCyPsaViD2W3cXTWSgqTMGAs_XxZpVWGyQJYciPYLka0JHSOaf2y2-tqNMMJ7HPVt6uA4Ye9R41CmGkEOchWzQlikZrG0cJNCzdv3v2TuVARlp2BXJx_D_l7-OWVz3y","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CFoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpI32nmRWkg5NbR2pBLXNWCndNEopguJiarH6xpLz89bQ3KIMnrvbNQyi0Kx4PUz8usfawh3Lf5-aF0v2V15nkxXwTb6h5Le3UrO__tiyxR2hsHB3Uc05yvlGtHgtW8iOYRJXYv3","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CFoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CFkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CFkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFgQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtheFh6Z3RYOEt0UUABWABwAXgB"}},"trackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"9 minutes, 40 seconds"}},"simpleText":"9:40"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"axXzgtX8KtQ","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CFcQpDAYCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"axXzgtX8KtQ"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Der Scampi Beschiss (NDR.Markt 28.9.15) - 9 minutes, 40 seconds - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/axXzgtX8KtQ/mqdefault_6s.webp?du=3000\u0026sqp=CKChzOkF\u0026rs=AOn4CLB9Zh9T6YYyDkDe4wxQjaMFua5hBw","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"JlDVWz738Ss","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/JlDVWz738Ss/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDmhmOlE_2NVxHr3uhj5zlPPH92Og","width":168,"height":94},{"url":"https://i.ytimg.com/vi/JlDVWz738Ss/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLA7dadwTlbYUa0qE7GM-BvLKRgsoQ","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Imbiss gegen Sternehotel Adlon: Wer macht die bessere Currywurst? | Abenteuer Leben | kabel eins by Abenteuer Leben 1 week ago 10 minutes 148,026 views"}},"simpleText":"Imbiss gegen Sternehotel Adlon: Wer macht die bessere Currywurst? | Abenteuer Leben | kabel eins"},"longBylineText":{"runs":[{"text":"Abenteuer Leben","navigationEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/AbenteuerLebenTV","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCyVg1YLHU6xu-spjmLlC-qA","canonicalBaseUrl":"/user/AbenteuerLebenTV"}}}]},"viewCountText":{"simpleText":"Recommended for you"},"lengthText":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:12"},"navigationEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlY0jaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=JlDVWz738Ss","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"JlDVWz738Ss","nofollow":true}},"shortBylineText":{"runs":[{"text":"Abenteuer Leben","navigationEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIKd2F0Y2gtdnJlYw==","commandMetadata":{"webCommandMetadata":{"url":"/user/AbenteuerLebenTV","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCyVg1YLHU6xu-spjmLlC-qA","canonicalBaseUrl":"/user/AbenteuerLebenTV"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-BCBKMkg3Quk/AAAAAAAAAAI/AAAAAAAAAAA/O0pO0pt5260/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HUCr4t_3s6u1qCY=","shortViewCountText":{"simpleText":"Recommended for you"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"JlDVWz738Ss","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"JlDVWz738Ss"}},"trackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpIc2OwcEjKsialVsxvChrcyyPoxUAR-E4819KRQ8ZjyhKd6EDNv23VhQA3fAksPtqDChDuiJqmJLV_wIDSj-fIzinuZBM61Yi45z4Vixpk_VS41HohgfssN_zH2CCkTV-wlkw71","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CFYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpLMp39Kasg6KXmcyAO2OBGwhPczjE5OtBbhlw2HAg4MXxwRFFnzSbcF7tEk_Bp1_eKvzTLMUkB-CdD08DMyJ1kmQotaVW2qWDKh5gaEhL6EeiWz62-UY1prkBUzZi7txBXzXagi","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CFYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CFUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CFUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFQQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtKbERWV3o3MzhTc0ABWABwAXgB"}},"trackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:12"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"JlDVWz738Ss","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CFMQpDAYCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"JlDVWz738Ss"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Imbiss gegen Sternehotel Adlon: Wer macht die bessere Currywurst? | Abenteuer Leben | kabel eins - 10 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/JlDVWz738Ss/mqdefault_6s.webp?du=3000\u0026sqp=CPufzOkF\u0026rs=AOn4CLCBDfegQYLCLqmK3_-3MdUYpuDkyg","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"VayJIP2QBMg","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/VayJIP2QBMg/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLA3ktZLaJqnkCP5qBTKe5eOP4hoRw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/VayJIP2QBMg/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLA0ZZEPXgfr9GAP6RlwjH7lbJPC6A","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Katzensprache: Diese Frau kann \"kätzisch\" übersetzen | Quarks by Quarks 1 year ago 6 minutes 143,134 views"}},"simpleText":"Katzensprache: Diese Frau kann \"kätzisch\" übersetzen | Quarks"},"longBylineText":{"runs":[{"text":"Quarks","navigationEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC1Y7onDsPyfP-lu--SXF-ew","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC1Y7onDsPyfP-lu--SXF-ew"}}}]},"viewCountText":{"simpleText":"143,134 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"6 minutes"}},"simpleText":"6:00"},"navigationEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=VayJIP2QBMg","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"VayJIP2QBMg","nofollow":true}},"shortBylineText":{"runs":[{"text":"Quarks","navigationEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC1Y7onDsPyfP-lu--SXF-ew","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC1Y7onDsPyfP-lu--SXF-ew"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-J2NKpJwRHqQ/AAAAAAAAAAI/AAAAAAAAAAA/Q6jEDRNQdEs/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HUDIicDsj6Si1lU=","shortViewCountText":{"simpleText":"143K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"VayJIP2QBMg","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"VayJIP2QBMg"}},"trackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpIbkCgRHaZmRRR3nXvQZkW3a7nzRcJn2NvG-t3G2a-6d0x5uPVcn2DmpJIv4C42WMVRPA2EZKas6SBa6UsvprSZnhQbrX3ZXFJfSpggMt0QTbkilUT19KOaZJEYPnF4eXu8tBKP","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CFIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpKrUCF1Y6NblZaOv4HTYqRIT7aElBj9Kof6bHiTLzy4XX9jdtZCrsAtsycc3vACk4uZBlY7mUXIzmZzhR8UqbGdn_u4eEouyeAJZ5qQxngW7LJoMVrGB1OLlghx2r0-IMDyfb8U","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CFIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CFEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CFEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CFAQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtWYXlKSVAyUUJNZ0ABWABwAXgB"}},"trackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"6 minutes"}},"simpleText":"6:00"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"VayJIP2QBMg","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CE8QpDAYDCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"VayJIP2QBMg"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Katzensprache: Diese Frau kann \"kätzisch\" übersetzen | Quarks - 6 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/VayJIP2QBMg/mqdefault_6s.webp?du=3000\u0026sqp=CMDNzOkF\u0026rs=AOn4CLDiMnf-vgH0n9tciIrYXF7JqHZb0g","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"hkoILbfkFe4","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/hkoILbfkFe4/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCLnWIRZ2D7PNQbt9_7PQr6Amixjg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/hkoILbfkFe4/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDdjirFCUd5bZPc8vsOC1J2yAsuIQ","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Süße und Lustige Tiere! 2018 MaximuM DuTube by MaximuM Funny DuTube 1 year ago 10 minutes 530,509 views"}},"simpleText":"Süße und Lustige Tiere! 2018 MaximuM DuTube"},"longBylineText":{"runs":[{"text":"MaximuM Funny DuTube","navigationEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC09FPhGVYshoBqnD4m2hSDw","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC09FPhGVYshoBqnD4m2hSDw"}}}]},"viewCountText":{"simpleText":"530,509 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:21"},"navigationEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=hkoILbfkFe4","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"hkoILbfkFe4","nofollow":true}},"shortBylineText":{"runs":[{"text":"MaximuM Funny DuTube","navigationEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC09FPhGVYshoBqnD4m2hSDw","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC09FPhGVYshoBqnD4m2hSDw"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-hbdj1FtV66I/AAAAAAAAAAI/AAAAAAAAAAA/f_c-RIUeyX8/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HUDuq5C_24WCpYYB","shortViewCountText":{"simpleText":"530K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"hkoILbfkFe4","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"hkoILbfkFe4"}},"trackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpIZ3NwPpl9Q0a2-ydW5VcC067enSqS-yMrcLU_grEMRrIF71zQDbpifcj2iTWB8cezV6v2VMe091NPUCXBiYc8-WdAVrfsu0xxcB_vrFI-VrEHxrjzKT5WQ_zfPUQgH0y-nQU-N","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CE4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpLyYH90y8JmTwuyNZElyy3KtkmtEDJ19GaeuGdlUhNTjFgQrnKdKUz_0dDcIynXKyS6A95tmzeKBBTfiU-B3dptmFlf_ps_8EueamszqrqB5G3SdbfO80SWPnLZjgJhHB4aJEJU","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CE4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CE0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CE0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEwQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"Egtoa29JTGJma0ZlNEABWABwAXgB"}},"trackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:21"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"hkoILbfkFe4","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CEsQpDAYDSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"hkoILbfkFe4"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Süße und Lustige Tiere! 2018 MaximuM DuTube - 10 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/hkoILbfkFe4/mqdefault_6s.webp?du=3000\u0026sqp=CKbNzOkF\u0026rs=AOn4CLCF_s_mTLkg7me4g8W_TVaywPOwNQ","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"AoAOn75E0yY","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/AoAOn75E0yY/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLC3K1nNMW4U3UWdB9qsBlL8r2DTTQ","width":168,"height":94},{"url":"https://i.ytimg.com/vi/AoAOn75E0yY/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDEX6Ydf_xHJqp91SnNyoISR-Kgfg","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Kids Say the Darndest Things 22 | Kids Say by Kyoot 7 months ago 13 minutes 2,328,099 views"}},"simpleText":"Kids Say the Darndest Things 22 | Kids Say"},"longBylineText":{"runs":[{"text":"Kyoot","navigationEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/ToddleTale","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCI8V0wOaigGdBpv5uk7DxxQ","canonicalBaseUrl":"/user/ToddleTale"}}}]},"viewCountText":{"simpleText":"2,328,099 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"13 minutes"}},"simpleText":"13:12"},"navigationEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=AoAOn75E0yY","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"AoAOn75E0yY","nofollow":true}},"shortBylineText":{"runs":[{"text":"Kyoot","navigationEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/ToddleTale","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCI8V0wOaigGdBpv5uk7DxxQ","canonicalBaseUrl":"/user/ToddleTale"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-YjfN38Y9sxk/AAAAAAAAAAI/AAAAAAAAAAA/eZGIhLZZN6U/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HUCmppPy-9ODwAI=","shortViewCountText":{"simpleText":"2.3M views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"AoAOn75E0yY","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"AoAOn75E0yY"}},"trackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpJvyDPFlTSF3YxMzYNUh2aao93iaqdgOShOtvU_NTo3goYaTEgwGZcaKiVNUMcyD_K31pieKJWzUdux-_dDGFDWW5W6ae8C2C8YfA1iIEWNfukRBvln6wK0EgqnsDT7UP0cS21t","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CEoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpIyG7PuMGKPH8tPSzQtihNXy5x_1D3OenXxLAloaGlOS9pTApBbdUVLp2DUyai5gNZqjM4yBtf9qgc0EDlIOk6krmtb_2Ete3RxOb6lUrp4c1-szEsvnsds9yr7zVHhzU0raqlb","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CEoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CEkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CEkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEgQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtBb0FPbjc1RTB5WUABWABwAXgB"}},"trackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"13 minutes"}},"simpleText":"13:12"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"AoAOn75E0yY","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CEcQpDAYDiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"AoAOn75E0yY"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Kids Say the Darndest Things 22 | Kids Say - 13 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/AoAOn75E0yY/mqdefault_6s.webp?du=3000\u0026sqp=CJjUzOkF\u0026rs=AOn4CLBEUgLEaSrCLYH1f_CVXN48OGtV_g","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"pvvh8-XBHak","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/pvvh8-XBHak/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLBR9qUz6IhZM0hg5LzoYD_34dsFgg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/pvvh8-XBHak/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLADEFv6xso2DpuLu-0zrymgNfJ9Cg","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"What Would Your Kid Do: SERIES 2 - Episode 5 (Part 1) by What would your kid do? Fan Page 2 months ago 23 minutes 278,248 views"}},"simpleText":"What Would Your Kid Do: SERIES 2 - Episode 5 (Part 1)"},"longBylineText":{"runs":[{"text":"What would your kid do? Fan Page","navigationEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC6H01Xq4yXZQz36q-wLd2Vg","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC6H01Xq4yXZQz36q-wLd2Vg"}}}]},"viewCountText":{"simpleText":"278,248 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"23 minutes"}},"simpleText":"23:00"},"navigationEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=pvvh8-XBHak","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"pvvh8-XBHak","nofollow":true}},"shortBylineText":{"runs":[{"text":"What would your kid do? Fan Page","navigationEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC6H01Xq4yXZQz36q-wLd2Vg","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC6H01Xq4yXZQz36q-wLd2Vg"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-Z3kx5Sck-fQ/AAAAAAAAAAI/AAAAAAAAAAA/CNbtQquc7BU/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HUCpu4Suvr74_aYB","shortViewCountText":{"simpleText":"278K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"pvvh8-XBHak","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"pvvh8-XBHak"}},"trackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpJXbP0O_rIhwTixg5M_605-OncxOMoQJGHzo5dqCZXiipwCxQSr4TWVoM42cWwc9LVYtmOZG4Po-WSkcmp4HTHy45OZyesw-H5CJ1Bml_VDQ9KTIQ6M9yLCTlOXOwNxZuRf4adt","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CEYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpJWhCXXGVgg-JREEhfbR8nIwLGw8B1TQ5h1UHiOh4x91J8yet9-Tr5ao0Led6aysPr9WdBp-v08esFpinjzzfrycYRIZjS2_7o2yJ_9UI1iJ44q16gRRwxKU01caWSqp7JObnrF","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CEYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CEUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CEUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEQQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtwdnZoOC1YQkhha0ABWABwAXgB"}},"trackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"23 minutes"}},"simpleText":"23:00"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"pvvh8-XBHak","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CEMQpDAYDyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"pvvh8-XBHak"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"What Would Your Kid Do: SERIES 2 - Episode 5 (Part 1) - 23 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/pvvh8-XBHak/mqdefault_6s.webp?du=3000\u0026sqp=CJHJzOkF\u0026rs=AOn4CLAPWzNuAk3gkItsA_bc_ZJdlKrkig","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"xoTVcZ9kjOI","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/xoTVcZ9kjOI/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLBsnUJI3wh1CSA0ZEhHmprT6WxeMw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/xoTVcZ9kjOI/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLC-7r7f6Yym2lVDkInSPfFpVUgIiA","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Kids Say The Darndest Things 4 by Kyoot 11 months ago 10 minutes 3,590,624 views"}},"simpleText":"Kids Say The Darndest Things 4"},"longBylineText":{"runs":[{"text":"Kyoot","navigationEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/ToddleTale","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCI8V0wOaigGdBpv5uk7DxxQ","canonicalBaseUrl":"/user/ToddleTale"}}}]},"viewCountText":{"simpleText":"3,590,624 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:25"},"navigationEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=xoTVcZ9kjOI","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"xoTVcZ9kjOI","nofollow":true}},"shortBylineText":{"runs":[{"text":"Kyoot","navigationEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/ToddleTale","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCI8V0wOaigGdBpv5uk7DxxQ","canonicalBaseUrl":"/user/ToddleTale"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-YjfN38Y9sxk/AAAAAAAAAAI/AAAAAAAAAAA/eZGIhLZZN6U/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HUDimZL7ma61wsYB","shortViewCountText":{"simpleText":"3.5M views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"xoTVcZ9kjOI","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"xoTVcZ9kjOI"}},"trackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpKFNvh7R_p9pVFs8XV0ODcSFMtuz_TptYasvuM-Lfake8m8YEd2HFdssxbQhH0UNf-nPunkuH1bxbsfYx2g00KbkBvAEtfT2DaW171vcDE0kQUgIitrNWqMqmuSfcNsIgia27Zz","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CEIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpItmTqRnOQG-utz07KLefaEr3gHMmhLfwK2IjsV2HufguwWP_0TTDMW1YREAmL2cLQvPvXv2jqyO4lLBciEocnUHljdAxZntL1HOPpwEBhh0onv8lYm-yp1x2ec96qYfieCOYFe","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CEIQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CEEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CEEQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CEAQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"Egt4b1RWY1o5a2pPSUABWABwAXgB"}},"trackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:25"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"xoTVcZ9kjOI","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CD8QpDAYECITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"xoTVcZ9kjOI"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Kids Say The Darndest Things 4 - 10 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/xoTVcZ9kjOI/mqdefault_6s.webp?du=3000\u0026sqp=CPyozOkF\u0026rs=AOn4CLDLtDVkJSsBAbkF_YPvVNRrYQxisg","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"Ka7F5HcmGOE","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/Ka7F5HcmGOE/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAa5vWSq1EUuRaV_7vqXPqNUeVPsw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/Ka7F5HcmGOE/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLCj36Lbaklo0NyRnHNrBKBdF5rDMA","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"America XXL: The biggest dog worldwide by Reisefieber 5 years ago 8 minutes, 46 seconds 4,371,229 views"}},"simpleText":"America XXL: The biggest dog worldwide"},"longBylineText":{"runs":[{"text":"Reisefieber","navigationEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/71Reisefieber","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCYe8mxL3K9ZwI4mSaaDai0Q","canonicalBaseUrl":"/user/71Reisefieber"}}}]},"viewCountText":{"simpleText":"4,371,229 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"8 minutes, 46 seconds"}},"simpleText":"8:46"},"navigationEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=Ka7F5HcmGOE","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"Ka7F5HcmGOE","nofollow":true}},"shortBylineText":{"runs":[{"text":"Reisefieber","navigationEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/71Reisefieber","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCYe8mxL3K9ZwI4mSaaDai0Q","canonicalBaseUrl":"/user/71Reisefieber"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-5ZBhZdNuxGM/AAAAAAAAAAI/AAAAAAAAAAA/qa0BvzSy7-c/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"trackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HUDhsZi5x7yx1yk=","shortViewCountText":{"simpleText":"4.3M views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"Ka7F5HcmGOE","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"Ka7F5HcmGOE"}},"trackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpKHn7FqHpbsSZF7DAau3qmSDS_WM6eNeufoxKuucgbZSkz6sa7jVVECTW9piNpE5XlAAbK4c26fD3YYM9sDAIJ2T6GzF-E2UK_XT3fGd6Qw6ZcquzPKs1rOGCXcjtbJyAiieP-1","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CD4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpIicz6Vii7SIXQUIEy3FipOVkZirvMK_2XK69_Pu-geo_o5Vgp7L2HMK5ZAlHZwC-ABqaOM8XmVxktcu8tBkpxehuIlfbcIxe6pc4RM74YJ31VSlYgrMlyMcgqbm8V3EyZjT5Pw","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CD4Q8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CD0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CD0Q8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDwQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtLYTdGNUhjbUdPRUABWABwAXgB"}},"trackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"8 minutes, 46 seconds"}},"simpleText":"8:46"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"Ka7F5HcmGOE","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CDsQpDAYESITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"Ka7F5HcmGOE"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"America XXL: The biggest dog worldwide - 8 minutes, 46 seconds - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/Ka7F5HcmGOE/mqdefault_6s.webp?du=3000\u0026sqp=CIrGzOkF\u0026rs=AOn4CLCTKEyqzWCOXyeo1_A_EALYZ3sjrA","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"jdYwMLSNHnU","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/jdYwMLSNHnU/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCZCKHhUAGduCLhARELHan1Riq0xA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/jdYwMLSNHnU/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLD9MlKBpImvOMuMO0dYvXWNUwZAqw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"When We Met Other Human Species by PBS Eons 1 week ago 13 minutes 986,069 views"}},"simpleText":"When We Met Other Human Species"},"longBylineText":{"runs":[{"text":"PBS Eons","navigationEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCzR-rom72PHN9Zg7RML9EbA","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCzR-rom72PHN9Zg7RML9EbA"}}}]},"viewCountText":{"simpleText":"986,069 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"13 minutes"}},"simpleText":"13:29"},"navigationEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=jdYwMLSNHnU","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"jdYwMLSNHnU","nofollow":true}},"shortBylineText":{"runs":[{"text":"PBS Eons","navigationEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCzR-rom72PHN9Zg7RML9EbA","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCzR-rom72PHN9Zg7RML9EbA"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-N7iDyEYsBnQ/AAAAAAAAAAI/AAAAAAAAAAA/TouDBB1DOrc/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HUD1vLSki4aM640B","shortViewCountText":{"simpleText":"986K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"jdYwMLSNHnU","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"jdYwMLSNHnU"}},"trackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpI_IwuYpYPj-5_I3hbzOleMYfzFx30S-rYZPA_R8RdiRQaBWs2aqLc5_qewvW4BlU64alRmwSA8usHFBlIGxBKIeCTzg7Wsm9atuUYu3tWBsAcQWJxhIW2xIl8vCSAYwh0H2hYR","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CDoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpLEjc5QG6j0DdwDY8q3BwpA0RZHi03VIHPTt0I4A3FqRQGmDCKDYz2y7cwTK1jIIK6J90Q7884NzrHEDKj_lhNttRASWBhSu2lmKVizAhU-rltBoXt452AvhuJ1YKxdWQL_M7LV","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CDoQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CDkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CDkQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDgQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtqZFl3TUxTTkhuVUABWABwAXgB"}},"trackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"13 minutes"}},"simpleText":"13:29"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"jdYwMLSNHnU","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CDcQpDAYEiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"jdYwMLSNHnU"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"When We Met Other Human Species - 13 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/jdYwMLSNHnU/mqdefault_6s.webp?du=3000\u0026sqp=CJrGzOkF\u0026rs=AOn4CLAapEGGLY6Q7nWH--6vXeE9zM8tAQ","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}},{"compactVideoRenderer":{"videoId":"sbR1SNJs_vM","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/sbR1SNJs_vM/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDlU2kOng6RzxJCY_1xHD0ilOY1hA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/sbR1SNJs_vM/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLBXiGwxVksnZYu3uFGzyWIMXBizow","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Dog Days of Summer Coolest Dogs of 2018 | Funny Pet Videos by Funny Pet Videos 11 months ago 20 minutes 6,804,952 views"}},"simpleText":"Dog Days of Summer Coolest Dogs of 2018 | Funny Pet Videos"},"longBylineText":{"runs":[{"text":"Funny Pet Videos","navigationEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/tailsnfails","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCYK1TyKyMxyDQU8c6zF8ltg","canonicalBaseUrl":"/user/tailsnfails"}}}]},"viewCountText":{"simpleText":"6,804,952 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"20 minutes"}},"simpleText":"20:05"},"navigationEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZEjaoOOdreDVo6oB","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=sbR1SNJs_vM","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"sbR1SNJs_vM","nofollow":true}},"shortBylineText":{"runs":[{"text":"Funny Pet Videos","navigationEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIHcmVsYXRlZA==","commandMetadata":{"webCommandMetadata":{"url":"/user/tailsnfails","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCYK1TyKyMxyDQU8c6zF8ltg","canonicalBaseUrl":"/user/tailsnfails"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/-vf8_Mdk1r7Q/AAAAAAAAAAI/AAAAAAAAAAA/0HDvwu8bSxo/s68-c-k-no-mo-rj-c0xffffff/photo.jpg","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HUDz_bOTjamd2rEB","shortViewCountText":{"simpleText":"6.8M views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to Watch later"}]},"icon":{"iconType":"WATCH_LATER"},"serviceEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"sbR1SNJs_vM","action":"ACTION_ADD_VIDEO"}]}},"trackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Save to playlist"}]},"icon":{"iconType":"PLAYLIST_ADD"},"serviceEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"addToPlaylistServiceEndpoint":{"videoId":"sbR1SNJs_vM"}},"trackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","hasSeparator":true}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Not interested"}]},"icon":{"iconType":"NOT_INTERESTED"},"serviceEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpLPHbBjM_Gb2wTt4uuwMmpnop9u78ZgIlFz_2HC0lpDFcSC-1ohzpHXKn14juWrR_i-A1stsw-ugO1_WbpIe8DUf39mxqasx_2HRhcR5E7JdW_DSIHgY26tG6XDaY0YvgJ9KcgO","uiActions":{"hideEnclosingContainer":true},"actions":[{"replaceEnclosingAction":{"item":{"notificationMultiActionRenderer":{"responseText":{"runs":[{"text":"Video removed"}]},"buttons":[{"buttonRenderer":{"text":{"runs":[{"text":"Undo"}]},"serviceEndpoint":{"clickTrackingParams":"CDYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"undoFeedbackEndpoint":{"undoToken":"AB9zfpJhXcMvDl4hUZTx5IPusRy5VoBroxOwn3EA1PcisAPWCFvRWfFjUoGSxmuUeb8GCYJtPoVtjsT1oOdoSqnbKOyX5-1QWBgVSlGw1jhvZ-ZzFo-kLqvNmy4nEfvf5zW59S7zHDTW","actions":[{"undoFeedbackAction":{"hack":true}}]}},"trackingParams":"CDYQ8FsYACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"buttonRenderer":{"text":{"runs":[{"text":"Tell us why"}]},"serviceEndpoint":{"clickTrackingParams":"CDUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TELL_US_WHY"}}]}},"trackingParams":"CDUQ8FsYASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDQQpbwBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}}}}]}},"trackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Report"}]},"icon":{"iconType":"FLAG"},"serviceEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getReportFormEndpoint":{"params":"EgtzYlIxU05Kc192TUABWABwAXgB"}},"trackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ=="}}],"trackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"20 minutes"}},"simpleText":"20:05"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"sbR1SNJs_vM","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CDMQpDAYEyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"sbR1SNJs_vM"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Dog Days of Summer Coolest Dogs of 2018 | Funny Pet Videos - 20 minutes - play video"}},"richThumbnail":{"movingThumbnailRenderer":{"movingThumbnailDetails":{"thumbnails":[{"url":"https://i.ytimg.com/an_webp/sbR1SNJs_vM/mqdefault_6s.webp?du=3000\u0026sqp=CJbFzOkF\u0026rs=AOn4CLAV-fpKMyd1bEXrq7DUgkBXTLi-XA","width":320,"height":180}],"logAsMovingThumbnail":true},"enableHoveredLogging":true,"enableOverlay":true}}}}],"continuations":[{"nextContinuationData":{"continuation":"CBQSLBILcWtkWEF0TzQwRm8yBHVBSVPAAQDIAQDgAQOiAg0o____________AUAAGAAq0gEI6ujEo9G-wJBSCPOw48PN6s-bwwEIm92I5cXc3InCAQiNw_aA1Pn0pMMBCNDQycLclNbqWwihh9Gh7PPyx9cBCIHZ5u76vLPRWwiK-IiNlq3mkO0BCImllrzhr4XSIAjF1cLJm4SCvy0I1NXwr63w_IprCKvi3_ezq7WoJgjIicDsj6Si1lUI7quQv9uFgqWGAQimppPy-9ODwAIIqbuErr6--P2mAQjimZL7ma61wsYBCOGxmLnHvLHXKQj1vLSki4aM640BCPP9s5ONqZ3asQE%3D","clickTrackingParams":"CDIQybcCIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","label":{"runs":[{"text":"Show more"}]}}}],"trackingParams":"CDEQqTAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},"autoplay":{"autoplay":{"sets":[{"mode":"NORMAL","autoplayVideo":{"clickTrackingParams":"CDAQ4ZIBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMgxyZWxhdGVkLWF1dG9I2qDjna3g1aOqAQ==","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=UiEB9RRxNGo","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"UiEB9RRxNGo","params":"EAEYAdoBAggB","playerParams":"QAFIAQ%3D%3D","watchEndpointSupportedPrefetchConfig":{"prefetchHintConfig":{"prefetchPriority":0,"countdownUiRelativeSecondsPrefetchCondition":-3}}}}}],"countDownSecs":5,"webAutoplayRendererData":{"autoplayCount":1}}}}},"currentVideoEndpoint":{"clickTrackingParams":"CAcQg2ciEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=qkdXAtO40Fo","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"qkdXAtO40Fo"}},"editContents":{"editOnWatchRenderer":{"editEnabled":false,"showEditorProcessingStatus":false,"showEnhanceConfirmation":false,"editorProgressFeedbackKey":"","enhanceConfirmationProjectId":"","apiaryFeedbackClientId":"","allowMarkUnlisted":false,"enhanceConfirmationMessage":"","enhanceEnabled":false,"analyticsEndpoint":{"clickTrackingParams":"CAcQg2ciEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"https://www.youtube.com/analytics#;fi=v-qkdXAtO40Fo"}},"urlEndpoint":{"url":"https://www.youtube.com/analytics#;fi=v-qkdXAtO40Fo"}},"videoIsProcessing":false,"interactivityEnabled":false,"privacyStatus":"PUBLIC","audioEnhanceEnabled":false,"creatorEndscreenEnabled":false,"videoIsLivePremiere":false}},"trackingParams":"CAcQg2ciEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","playerOverlays":{"playerOverlayRenderer":{"endScreen":{"watchNextEndScreenRenderer":{"results":[{"endScreenVideoRenderer":{"videoId":"UiEB9RRxNGo","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/UiEB9RRxNGo/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCN4yakz2pwI_DX1ga6Em7eJh3Kdg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/UiEB9RRxNGo/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDrRohLEcsFTB7E-kLDh7U9wBjHwg","width":196,"height":110},{"url":"https://i.ytimg.com/vi/UiEB9RRxNGo/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLCzVNkFn8DykfPwyEt2uiovihg_5A","width":246,"height":138},{"url":"https://i.ytimg.com/vi/UiEB9RRxNGo/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLASjG30bZn2Njoh84299Nf7ZakDTw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Clever and Witty Animals! | Video Digest by Video Digest, The Ultimate Compilations 2 years ago 9 minutes, 20 seconds 3,071,968 views"}},"simpleText":"Clever and Witty Animals! | Video Digest"},"shortBylineText":{"runs":[{"text":"Video Digest, The Ultimate Compilations","navigationEndpoint":{"clickTrackingParams":"CC8QvU4YACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/VideoDigestChannel","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCYJkz44KRzuO8pxspJ9uocw","canonicalBaseUrl":"/user/VideoDigestChannel"}}}]},"lengthText":{"simpleText":"9:20"},"lengthInSeconds":560,"navigationEndpoint":{"clickTrackingParams":"CC8QvU4YACITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=UiEB9RRxNGo","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"UiEB9RRxNGo"}},"trackingParams":"CC8QvU4YACITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"3M views"},"publishedTimeText":{"simpleText":"2 years ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"9 minutes, 20 seconds"}},"simpleText":"9:20"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"wzc_VNh42HM","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/wzc_VNh42HM/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDQ73m4N2a9mcGyEoFL9KJVlWc_4w","width":168,"height":94},{"url":"https://i.ytimg.com/vi/wzc_VNh42HM/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDcrCjO1vUtJeuHFKrHGgA4vXyksQ","width":196,"height":110},{"url":"https://i.ytimg.com/vi/wzc_VNh42HM/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLB2fKgmMc4gZxv3KloOBQ3r4kNfoA","width":246,"height":138},{"url":"https://i.ytimg.com/vi/wzc_VNh42HM/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDLNSxllRk9Zq5EItY_Xn_eQrt-4g","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Kochen mit Fertigprodukten - Die Wahrheit über Restaurants | SWR betrifft by SWR 2 months ago 44 minutes 616,505 views"}},"simpleText":"Kochen mit Fertigprodukten - Die Wahrheit über Restaurants | SWR betrifft"},"shortBylineText":{"runs":[{"text":"SWR","navigationEndpoint":{"clickTrackingParams":"CC4QvU4YASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/SWR","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCy4_zQ59zmS7zO4Dc6vbT_w","canonicalBaseUrl":"/user/SWR"}}}]},"lengthText":{"simpleText":"44:55"},"lengthInSeconds":2695,"navigationEndpoint":{"clickTrackingParams":"CC4QvU4YASITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=wzc_VNh42HM","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"wzc_VNh42HM"}},"trackingParams":"CC4QvU4YASITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"616K views"},"publishedTimeText":{"simpleText":"2 months ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"44 minutes"}},"simpleText":"44:55"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"whNy5FyiLps","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/whNy5FyiLps/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDotZJuTsFMZYl-v2QiJSrs0VGWKg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/whNy5FyiLps/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCSpbitXj8zZ4ce6fF3Fy-rFQWyrw","width":196,"height":110},{"url":"https://i.ytimg.com/vi/whNy5FyiLps/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLAQIwk5sPd42G9g7iep7KdKrc6now","width":246,"height":138},{"url":"https://i.ytimg.com/vi/whNy5FyiLps/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLAOq4eOcH8ccJ0EkacZprv7P7Dgtw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Erbsenzaehler PedantenUnterUns by doc_2ret 7 years ago 43 minutes 1,141,608 views"}},"simpleText":"Erbsenzaehler PedantenUnterUns"},"shortBylineText":{"runs":[{"text":"doc_2ret","navigationEndpoint":{"clickTrackingParams":"CC0QvU4YAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/doc2ret","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCX6P2H6WQtmYfRuSj72iGNg","canonicalBaseUrl":"/user/doc2ret"}}}]},"lengthText":{"simpleText":"43:23"},"lengthInSeconds":2603,"navigationEndpoint":{"clickTrackingParams":"CC0QvU4YAiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=whNy5FyiLps","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"whNy5FyiLps"}},"trackingParams":"CC0QvU4YAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"1.1M views"},"publishedTimeText":{"simpleText":"7 years ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"43 minutes"}},"simpleText":"43:23"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"w0nTzUAdoY0","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/w0nTzUAdoY0/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLD-hE7nu3wtqGvV1-fcLUFYMt90bw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/w0nTzUAdoY0/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCq3BI_sFUdIFp08DzWjNDuOPt1ug","width":196,"height":110},{"url":"https://i.ytimg.com/vi/w0nTzUAdoY0/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLCK8X8dBh17p1grvtSNh1wJD50__g","width":246,"height":138},{"url":"https://i.ytimg.com/vi/w0nTzUAdoY0/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDQ86Sd7yrmz_OLjmv3721hsl78Hg","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Nachhaltiges Upcycling: So machst du aus alten Sachen individuelle Regale! || PULS Reportage by PULS Reportage 3 days ago 14 minutes 257,661 views"}},"simpleText":"Nachhaltiges Upcycling: So machst du aus alten Sachen individuelle Regale! || PULS Reportage"},"shortBylineText":{"runs":[{"text":"PULS Reportage","navigationEndpoint":{"clickTrackingParams":"CCwQvU4YAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/on3de","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCBzai1GXVKDdVCrwlKZg_6Q","canonicalBaseUrl":"/user/on3de"}}}]},"lengthText":{"simpleText":"14:33"},"lengthInSeconds":873,"navigationEndpoint":{"clickTrackingParams":"CCwQvU4YAyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=w0nTzUAdoY0","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"w0nTzUAdoY0"}},"trackingParams":"CCwQvU4YAyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"257K views"},"publishedTimeText":{"simpleText":"3 days ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"14 minutes"}},"simpleText":"14:33"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"W9VYpchSaFA","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/W9VYpchSaFA/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAuiAymjL7YPNvp3aMQOlQUwS8Ziw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/W9VYpchSaFA/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCl1ovwc0Zehj0_4oi_sGAYUUNRvA","width":196,"height":110},{"url":"https://i.ytimg.com/vi/W9VYpchSaFA/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLA9eHs11olIAvcHsIZYlbImR-JsdQ","width":246,"height":138},{"url":"https://i.ytimg.com/vi/W9VYpchSaFA/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDIVBR7HwCY_fMC9BHnG2VX1MG1rw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Wie geht das? Sieben Kinder by Marc Hofstee 1 year ago 28 minutes 949,693 views"}},"simpleText":"Wie geht das? Sieben Kinder"},"shortBylineText":{"runs":[{"text":"Marc Hofstee","navigationEndpoint":{"clickTrackingParams":"CCsQvU4YBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC_oGR9ZqNObDzlfocA7bgwA","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC_oGR9ZqNObDzlfocA7bgwA"}}}]},"lengthText":{"simpleText":"28:30"},"lengthInSeconds":1710,"navigationEndpoint":{"clickTrackingParams":"CCsQvU4YBCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=W9VYpchSaFA","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"W9VYpchSaFA"}},"trackingParams":"CCsQvU4YBCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"949K views"},"publishedTimeText":{"simpleText":"1 year ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"28 minutes"}},"simpleText":"28:30"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"14_LnsQ0Q6E","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/14_LnsQ0Q6E/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLA0CLAHbqOZr_EK-IBOACZdZ1C9yA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/14_LnsQ0Q6E/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDr0TWKRn_sFAJyycUn5cI65oOZnA","width":196,"height":110},{"url":"https://i.ytimg.com/vi/14_LnsQ0Q6E/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLCcXmXAmOa9hKip4Y5FNHwEa21UBw","width":246,"height":138},{"url":"https://i.ytimg.com/vi/14_LnsQ0Q6E/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLACAe_sl2nJrAmWjzFLD57hbZcP7A","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Die Affen sind los! - TV total by MySpass 5 years ago 12 minutes 2,993,656 views"}},"simpleText":"Die Affen sind los! - TV total"},"shortBylineText":{"runs":[{"text":"MySpass","navigationEndpoint":{"clickTrackingParams":"CCoQvU4YBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/MySpassde","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCGcheBSVngQt09ubb0BZyJw","canonicalBaseUrl":"/user/MySpassde"}}}]},"lengthText":{"simpleText":"12:54"},"lengthInSeconds":774,"navigationEndpoint":{"clickTrackingParams":"CCoQvU4YBSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=14_LnsQ0Q6E","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"14_LnsQ0Q6E"}},"trackingParams":"CCoQvU4YBSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"2.9M views"},"publishedTimeText":{"simpleText":"5 years ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"12 minutes"}},"simpleText":"12:54"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"W6LN563ZrIE","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/W6LN563ZrIE/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDyNcFlQmw2JYolTy1F3L8-UAmotw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/W6LN563ZrIE/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAh6NVh6hqryhQW8NhF2YHjofn9uw","width":196,"height":110},{"url":"https://i.ytimg.com/vi/W6LN563ZrIE/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLC0MdCvocZSxaV45o81TaBfoF3ICw","width":246,"height":138},{"url":"https://i.ytimg.com/vi/W6LN563ZrIE/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDmbJQQ2Mmb74cbHod6D8VP-6mWWA","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Die 10 Seltensten Katzenrassen der Welt! by TopWelt 6 months ago 10 minutes 371,367 views"}},"simpleText":"Die 10 Seltensten Katzenrassen der Welt!"},"shortBylineText":{"runs":[{"text":"TopWelt","navigationEndpoint":{"clickTrackingParams":"CCkQvU4YBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCW3cdvkBtlSH7ijSaRFDoHw","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCW3cdvkBtlSH7ijSaRFDoHw"}}}]},"lengthText":{"simpleText":"10:33"},"lengthInSeconds":633,"navigationEndpoint":{"clickTrackingParams":"CCkQvU4YBiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=W6LN563ZrIE","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"W6LN563ZrIE"}},"trackingParams":"CCkQvU4YBiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"371K views"},"publishedTimeText":{"simpleText":"6 months ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:33"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"7SGZaWGiPAo","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/7SGZaWGiPAo/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCVMQGp0OCJIDXLsXVEnS10KOoABg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/7SGZaWGiPAo/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDWawTn2fOr-V4hY6iA_tfbLtGNZw","width":196,"height":110},{"url":"https://i.ytimg.com/vi/7SGZaWGiPAo/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDjosaYBzkFJXHs2iNXybhlGjF1CA","width":246,"height":138},{"url":"https://i.ytimg.com/vi/7SGZaWGiPAo/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDSJVChGEC2_R4TYTpLbWRc53NZng","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Haya, ein Mädchen in Saudi-Arabien | Schau in meine Welt | SWR Kindernetz by SWR Kindernetz 2 years ago 24 minutes 898,475 views"}},"simpleText":"Haya, ein Mädchen in Saudi-Arabien | Schau in meine Welt | SWR Kindernetz"},"shortBylineText":{"runs":[{"text":"SWR Kindernetz","navigationEndpoint":{"clickTrackingParams":"CCgQvU4YByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/Kindernetz","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCq9LcynLXxw4khwAIT665rg","canonicalBaseUrl":"/user/Kindernetz"}}}]},"lengthText":{"simpleText":"24:59"},"lengthInSeconds":1499,"navigationEndpoint":{"clickTrackingParams":"CCgQvU4YByITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=7SGZaWGiPAo","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"7SGZaWGiPAo"}},"trackingParams":"CCgQvU4YByITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"898K views"},"publishedTimeText":{"simpleText":"2 years ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"24 minutes"}},"simpleText":"24:59"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"IKQVfheFkok","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/IKQVfheFkok/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLBRDjOY6ne2xaaa9uiI91fOfVVtgQ","width":168,"height":94},{"url":"https://i.ytimg.com/vi/IKQVfheFkok/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCj7pb0dX8wrxlxtCQtcYsWw8ayXQ","width":196,"height":110},{"url":"https://i.ytimg.com/vi/IKQVfheFkok/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLBf8MSeNNvTp4qkeV0oM0FAC25lUA","width":246,"height":138},{"url":"https://i.ytimg.com/vi/IKQVfheFkok/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDWHFIhd9FXezJN-PJQ-LPymrlZ6Q","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"FOOD IN COMMERCIALS VS. IN REAL LIFE by 5-Minute Crafts VS 3 months ago 12 minutes 7,881,664 views"}},"simpleText":"FOOD IN COMMERCIALS VS. IN REAL LIFE"},"shortBylineText":{"runs":[{"text":"5-Minute Crafts VS","navigationEndpoint":{"clickTrackingParams":"CCcQvU4YCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UC56_hOqEtBqHwnVNBzOWj-A","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UC56_hOqEtBqHwnVNBzOWj-A"}}}]},"lengthText":{"simpleText":"12:34"},"lengthInSeconds":754,"navigationEndpoint":{"clickTrackingParams":"CCcQvU4YCCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=IKQVfheFkok","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"IKQVfheFkok"}},"trackingParams":"CCcQvU4YCCITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"7.8M views"},"publishedTimeText":{"simpleText":"3 months ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"12 minutes"}},"simpleText":"12:34"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"LX4IIbkwqsU","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/LX4IIbkwqsU/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAg7X6Jyo9w6RUxSBCp7-8FWvd-XA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/LX4IIbkwqsU/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLBdUD99OrbTotdmQx9XRrE6T-v85Q","width":196,"height":110},{"url":"https://i.ytimg.com/vi/LX4IIbkwqsU/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLDkJndTGaaFdYJV-W2NrYQ_IlAG1w","width":246,"height":138},{"url":"https://i.ytimg.com/vi/LX4IIbkwqsU/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLA9h7M7d3fyfo0740kLydNuuVu6sg","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"10 Dinge, die Amerikaner von Deutschen lernen können by lebenUSA 2 years ago 11 minutes 616,893 views"}},"simpleText":"10 Dinge, die Amerikaner von Deutschen lernen können"},"shortBylineText":{"runs":[{"text":"lebenUSA","navigationEndpoint":{"clickTrackingParams":"CCYQvU4YCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/channel/UCJI1Ca4vWWIcuwi0Zg4-jWg","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCJI1Ca4vWWIcuwi0Zg4-jWg"}}}]},"lengthText":{"simpleText":"11:02"},"lengthInSeconds":662,"navigationEndpoint":{"clickTrackingParams":"CCYQvU4YCSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=LX4IIbkwqsU","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"LX4IIbkwqsU"}},"trackingParams":"CCYQvU4YCSITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"616K views"},"publishedTimeText":{"simpleText":"2 years ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"11 minutes"}},"simpleText":"11:02"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"axXzgtX8KtQ","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/axXzgtX8KtQ/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLAt2f1VGHUUqD4wtRC31SQFoKkr9Q","width":168,"height":94},{"url":"https://i.ytimg.com/vi/axXzgtX8KtQ/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDYvKAEq_kKu2OTKj9_YwV68I7sBw","width":196,"height":110},{"url":"https://i.ytimg.com/vi/axXzgtX8KtQ/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLA-dKC5f-Cg9wQ_Bl_F_jsgz9hOTQ","width":246,"height":138},{"url":"https://i.ytimg.com/vi/axXzgtX8KtQ/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLBo_XA8RKW6BlnLvyB5zbDxeRpV0w","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Der Scampi Beschiss (NDR.Markt 28.9.15) by Der Demokrator 3 years ago 9 minutes, 40 seconds 552,703 views"}},"simpleText":"Der Scampi Beschiss (NDR.Markt 28.9.15)"},"shortBylineText":{"runs":[{"text":"Der Demokrator","navigationEndpoint":{"clickTrackingParams":"CCUQvU4YCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/DerDemokrator2011","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCjAy6SykyQTSQ0f0r3Iaolw","canonicalBaseUrl":"/user/DerDemokrator2011"}}}]},"lengthText":{"simpleText":"9:40"},"lengthInSeconds":580,"navigationEndpoint":{"clickTrackingParams":"CCUQvU4YCiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=axXzgtX8KtQ","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"axXzgtX8KtQ"}},"trackingParams":"CCUQvU4YCiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"552K views"},"publishedTimeText":{"simpleText":"3 years ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"9 minutes, 40 seconds"}},"simpleText":"9:40"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}},{"endScreenVideoRenderer":{"videoId":"JlDVWz738Ss","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/JlDVWz738Ss/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDmhmOlE_2NVxHr3uhj5zlPPH92Og","width":168,"height":94},{"url":"https://i.ytimg.com/vi/JlDVWz738Ss/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLCEZCPQLiiPdiV0YNfphJD2xNh3fQ","width":196,"height":110},{"url":"https://i.ytimg.com/vi/JlDVWz738Ss/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLD5I8yhsZVpZc3pjGW4A_6JwKaGjA","width":246,"height":138},{"url":"https://i.ytimg.com/vi/JlDVWz738Ss/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLA7dadwTlbYUa0qE7GM-BvLKRgsoQ","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Imbiss gegen Sternehotel Adlon: Wer macht die bessere Currywurst? | Abenteuer Leben | kabel eins by Abenteuer Leben 1 week ago 10 minutes 148,026 views"}},"simpleText":"Imbiss gegen Sternehotel Adlon: Wer macht die bessere Currywurst? | Abenteuer Leben | kabel eins"},"shortBylineText":{"runs":[{"text":"Abenteuer Leben","navigationEndpoint":{"clickTrackingParams":"CCQQvU4YCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/user/AbenteuerLebenTV","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"UCyVg1YLHU6xu-spjmLlC-qA","canonicalBaseUrl":"/user/AbenteuerLebenTV"}}}]},"lengthText":{"simpleText":"10:12"},"lengthInSeconds":612,"navigationEndpoint":{"clickTrackingParams":"CCQQvU4YCyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE=","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=JlDVWz738Ss","webPageType":"WEB_PAGE_TYPE_WATCH"}},"watchEndpoint":{"videoId":"JlDVWz738Ss"}},"trackingParams":"CCQQvU4YCyITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","shortViewCountText":{"simpleText":"148K views"},"publishedTimeText":{"simpleText":"1 week ago"},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"10 minutes"}},"simpleText":"10:12"},"style":"DEFAULT"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}]}}],"title":{"runs":[{"text":"You may also like..."}]},"trackingParams":"CCMQ-lwiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}}},"onResponseReceivedEndpoints":[{"clickTrackingParams":"CAcQg2ciEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"ENABLE_CHROME_NOTIFICATIONS"}}]}}],"engagementPanels":[{"engagementPanelSectionListRenderer":{"panelIdentifier":"engagement-panel-transcript","header":{"engagementPanelTitleHeaderRenderer":{"title":{"runs":[{"text":"Transcript"}]},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Toggle timestamps"}]},"serviceEndpoint":{"clickTrackingParams":"CCEQ040EGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"TOGGLE_TRANSCRIPT_TIMESTAMPS"}}]}},"trackingParams":"CCEQ040EGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CCEQ040EGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibility":{"accessibilityData":{"label":"More actions"}}}},"visibilityButton":{"buttonRenderer":{"icon":{"iconType":"CLOSE"},"accessibility":{"label":"Close transcript"},"trackingParams":"CCIQ8FsiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibilityData":{"accessibilityData":{"label":"Close transcript"}},"command":{"changeEngagementPanelVisibilityAction":{"targetId":"engagement-panel-transcript","visibility":"ENGAGEMENT_PANEL_VISIBILITY_HIDDEN"}}}}}},"content":{"continuationItemRenderer":{"trigger":"CONTINUATION_TRIGGER_ON_ITEM_SHOWN","continuationEndpoint":{"clickTrackingParams":"CCEQ040EGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"getTranscriptEndpoint":{"params":"Cgtxa2RYQXRPNDBGbw%3D%3D"}}}},"targetId":"engagement-panel-transcript","visibility":"ENGAGEMENT_PANEL_VISIBILITY_HIDDEN"}}],"topbar":{"desktopTopbarRenderer":{"logo":{"topbarLogoRenderer":{"iconImage":{"iconType":"YOUTUBE_LOGO"},"tooltipText":{"runs":[{"text":"YouTube Home"}]},"endpoint":{"clickTrackingParams":"CCAQsV4iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"FEwhat_to_watch"}},"trackingParams":"CCAQsV4iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},"searchbox":{"fusionSearchboxRenderer":{"icon":{"iconType":"SEARCH"},"placeholderText":{"runs":[{"text":"Search"}]},"config":{"webSearchboxConfig":{"requestLanguage":"en","requestDomain":"de","hasOnscreenKeyboard":false,"focusSearchbox":true}},"trackingParams":"CB8Q7VAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","searchEndpoint":{"clickTrackingParams":"CB8Q7VAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/results?search_query=","webPageType":"WEB_PAGE_TYPE_SEARCH"}},"searchEndpoint":{"query":""}}}},"trackingParams":"CAgQq6wBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","countryCode":"DE","topbarButtons":[{"topbarMenuButtonRenderer":{"icon":{"iconType":"VIDEO_CALL"},"menuRequest":{"clickTrackingParams":"CB4Q_qsBGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"GET_CREATION_MENU"}},"trackingParams":"CB4Q_qsBGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibility":{"accessibilityData":{"label":"Create a video or post"}},"tooltip":"Create a video or post","style":"STYLE_DEFAULT"}},{"topbarMenuButtonRenderer":{"icon":{"iconType":"APPS"},"menuRenderer":{"multiPageMenuRenderer":{"sections":[{"multiPageMenuSectionRenderer":{"items":[{"compactLinkRenderer":{"icon":{"iconType":"UNPLUGGED_LOGO"},"title":{"runs":[{"text":"YouTube TV"}]},"navigationEndpoint":{"clickTrackingParams":"CB0Q4MUCGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"https://tv.youtube.com/?utm_source=youtube_web\u0026utm_medium=ep\u0026utm_campaign=home\u0026ve=34273"}},"urlEndpoint":{"url":"https://tv.youtube.com/?utm_source=youtube_web\u0026utm_medium=ep\u0026utm_campaign=home\u0026ve=34273","target":"TARGET_NEW_WINDOW"}},"trackingParams":"CB0Q4MUCGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CBwQ968BGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"multiPageMenuSectionRenderer":{"items":[{"compactLinkRenderer":{"icon":{"iconType":"YOUTUBE_MUSIC"},"title":{"runs":[{"text":"YouTube Music"}]},"navigationEndpoint":{"clickTrackingParams":"CBsQ4sUCGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"https://music.youtube.com/"}},"urlEndpoint":{"url":"https://music.youtube.com","target":"TARGET_NEW_WINDOW"}},"trackingParams":"CBsQ4sUCGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"compactLinkRenderer":{"icon":{"iconType":"YOUTUBE_KIDS_ROUND"},"title":{"runs":[{"text":"YouTube Kids"}]},"navigationEndpoint":{"clickTrackingParams":"CBoQ48UCGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"https://kids.youtube.com/"}},"urlEndpoint":{"url":"https://kids.youtube.com","target":"TARGET_NEW_WINDOW"}},"trackingParams":"CBoQ48UCGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CBkQ968BGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"multiPageMenuSectionRenderer":{"items":[{"compactLinkRenderer":{"icon":{"iconType":"YOUTUBE_ROUND"},"title":{"runs":[{"text":"Creator Academy"}]},"navigationEndpoint":{"clickTrackingParams":"CBgQ5MUCGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"https://creatoracademy.youtube.com/page/education?utm_source=YouTube\u0026utm_medium=YT%20Main\u0026utm_campaign=YT%20Appsn"}},"urlEndpoint":{"url":"https://creatoracademy.youtube.com/page/education?utm_source=YouTube\u0026utm_medium=YT%20Main\u0026utm_campaign=YT%20Appsn","target":"TARGET_NEW_WINDOW"}},"trackingParams":"CBgQ5MUCGAAiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"compactLinkRenderer":{"icon":{"iconType":"YOUTUBE_ROUND"},"title":{"runs":[{"text":"YouTube for Artists"}]},"navigationEndpoint":{"clickTrackingParams":"CBcQ5cUCGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"https://artists.youtube.com/"}},"urlEndpoint":{"url":"https://artists.youtube.com/","target":"TARGET_NEW_WINDOW"}},"trackingParams":"CBcQ5cUCGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CBYQ968BGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"trackingParams":"CBUQ_6sBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},"trackingParams":"CBQQ_qsBGAEiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibility":{"accessibilityData":{"label":"YouTube apps"}},"tooltip":"YouTube apps","style":"STYLE_DEFAULT"}},{"notificationTopbarButtonRenderer":{"icon":{"iconType":"CONVERSATIONS"},"menuRequest":{"clickTrackingParams":"CBIQm8gCGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"GET_CONVERSATIONS_MENU","actions":[{"openPopupAction":{"popup":{"multiPageMenuRenderer":{"trackingParams":"CBMQ_6sBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","style":"MULTI_PAGE_MENU_STYLE_TYPE_CONVERSATIONS","showLoadingSpinner":true}},"popupType":"DROPDOWN","beReused":true}}]}},"style":"NOTIFICATION_BUTTON_STYLE_TYPE_CONVERSATION_DEFAULT","trackingParams":"CBIQm8gCGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibility":{"accessibilityData":{"label":"Messages"}},"tooltip":"Messages","updateUnseenCountEndpoint":{"clickTrackingParams":"CBIQm8gCGAIiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"GET_UNSEEN_CONVERSATION_COUNT"}},"notificationCount":0,"handlerDatas":["NOTIFICATION_ACTION_UPDATE_CONVERSATION_UNSEEN_COUNT"]}},{"notificationTopbarButtonRenderer":{"icon":{"iconType":"NOTIFICATIONS"},"menuRequest":{"clickTrackingParams":"CBAQovoBGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"GET_NOTIFICATIONS_MENU","actions":[{"openPopupAction":{"popup":{"multiPageMenuRenderer":{"trackingParams":"CBEQ_6sBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","style":"MULTI_PAGE_MENU_STYLE_TYPE_NOTIFICATIONS","showLoadingSpinner":true}},"popupType":"DROPDOWN","beReused":true}}]}},"style":"NOTIFICATION_BUTTON_STYLE_TYPE_DEFAULT","trackingParams":"CBAQovoBGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibility":{"accessibilityData":{"label":"Notifications"}},"tooltip":"Notifications","updateUnseenCountEndpoint":{"clickTrackingParams":"CBAQovoBGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"GET_UNSEEN_NOTIFICATION_COUNT"}},"notificationCount":0,"handlerDatas":["NOTIFICATION_ACTION_UPDATE_UNSEEN_COUNT"],"getHighPriorityNotificationEndpoint":{"clickTrackingParams":"CBAQovoBGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"GET_HIGH_PRIORITY_NOTIFICATION"}}}},{"topbarMenuButtonRenderer":{"avatar":{"thumbnails":[{"url":"https://yt3.ggpht.com/-gUiOwfbQX-k/AAAAAAAAAAI/AAAAAAAAAAg/hH8Yumfcpoo/s88-mo-c-c0xffffffff-rj-k-no/photo.jpg","width":88,"height":88}],"webThumbnailDetailsExtensionData":{"excludeFromVpl":true}},"menuRequest":{"clickTrackingParams":"CA4Q_qsBGAQiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"GET_ACCOUNT_MENU","actions":[{"openPopupAction":{"popup":{"multiPageMenuRenderer":{"trackingParams":"CA8Q_6sBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","style":"MULTI_PAGE_MENU_STYLE_TYPE_ACCOUNT","showLoadingSpinner":true}},"popupType":"DROPDOWN","beReused":true}}]}},"trackingParams":"CA4Q_qsBGAQiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","accessibility":{"accessibilityData":{"label":"Account profile photo that opens list of alternate accounts"}},"tooltip":"Account profile photo that opens list of alternate accounts"}}],"hotkeyDialog":{"hotkeyDialogRenderer":{"title":{"runs":[{"text":"Keyboard shortcuts"}]},"sections":[{"hotkeyDialogSectionRenderer":{"title":{"runs":[{"text":"Playback"}]},"options":[{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Toggle play/pause"}]},"hotkey":"k"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Rewind 10 seconds"}]},"hotkey":"j"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Fast forward 10 seconds"}]},"hotkey":"l"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Previous video"}]},"hotkey":"P (SHIFT+p)"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Next video"}]},"hotkey":"N (SHIFT+n)"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Previous frame (while paused)"}]},"hotkey":",","hotkeyAccessibilityLabel":{"accessibilityData":{"label":"Comma"}}}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Next frame (while paused)"}]},"hotkey":".","hotkeyAccessibilityLabel":{"accessibilityData":{"label":"Period"}}}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Decrease playback rate"}]},"hotkey":"\u003c (SHIFT+,)","hotkeyAccessibilityLabel":{"accessibilityData":{"label":"Less than or SHIFT + comma"}}}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Increase playback rate"}]},"hotkey":"\u003e (SHIFT+.)","hotkeyAccessibilityLabel":{"accessibilityData":{"label":"Greater than or SHIFT + period"}}}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Seek to specific point in the video (7 advances to 70% of duration)"}]},"hotkey":"0..9"}}]}},{"hotkeyDialogSectionRenderer":{"title":{"runs":[{"text":"General"}]},"options":[{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Toggle full screen"}]},"hotkey":"f"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Toggle theater mode"}]},"hotkey":"t"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Toggle miniplayer"}]},"hotkey":"i"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Close miniplayer or current dialog"}]},"hotkey":"ESCAPE"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Toggle mute"}]},"hotkey":"m"}}]}},{"hotkeyDialogSectionRenderer":{"title":{"runs":[{"text":"Subtitles and closed captions"}]},"options":[{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"If the video supports captions, toggle captions ON/OFF"}]},"hotkey":"c"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Rotate through different text opacity levels"}]},"hotkey":"o"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Rotate through different window opacity levels"}]},"hotkey":"w"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Rotate through font sizes (increasing)"}]},"hotkey":"+"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Rotate through font sizes (decreasing)"}]},"hotkey":"-","hotkeyAccessibilityLabel":{"accessibilityData":{"label":"Minus"}}}}]}},{"hotkeyDialogSectionRenderer":{"title":{"runs":[{"text":"Spherical Videos"}]},"options":[{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Pan up"}]},"hotkey":"w"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Pan left"}]},"hotkey":"a"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Pan down"}]},"hotkey":"s"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Pan right"}]},"hotkey":"d"}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Zoom in"}]},"hotkey":"+ on numpad or ]","hotkeyAccessibilityLabel":{"accessibilityData":{"label":"Plus on number pad or right bracket"}}}},{"hotkeyDialogSectionOptionRenderer":{"label":{"runs":[{"text":"Zoom out"}]},"hotkey":"- on numpad or [","hotkeyAccessibilityLabel":{"accessibilityData":{"label":"Minus on number pad or left bracket"}}}}]}}],"dismissButton":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"simpleText":"Dismiss"},"trackingParams":"CA0Q8FsiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},"trackingParams":"CAwQteYDIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd"}},"backButton":{"buttonRenderer":{"trackingParams":"CAsQvIYDIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","command":{"clickTrackingParams":"CAsQvIYDIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"HISTORY_BACK"}}]}}}},"forwardButton":{"buttonRenderer":{"trackingParams":"CAoQvYYDIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","command":{"clickTrackingParams":"CAoQvYYDIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgd","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"HISTORY_FORWARD"}}]}}}},"a11ySkipNavigationButton":{"buttonRenderer":{"style":"STYLE_DEFAULT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Skip navigation"}]},"trackingParams":"CAkQ8FsiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","command":{"clickTrackingParams":"CAkQ8FsiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"signalAction":{"signal":"SKIP_NAVIGATION"}}]}}}}}},"webWatchNextResponseExtensionData":{"relatedVideoArgs":"title=Clever+and+Witty+Animals%21+%7C+Video+Digest\u0026length_seconds=560\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FUiEB9RRxNGo%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLASjG30bZn2Njoh84299Nf7ZakDTw\u0026author=Video+Digest%2C+The+Ultimate+Compilations\u0026session_data=itct%3DCC8QvU4YACITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=UiEB9RRxNGo\u0026endscreen_autoplay_session_data=playnext%3D1%26itct%3DCDAQ4ZIBIhMIi7vs_9_D4wIVE-RVCh3mQAuxKPgdMgxyZWxhdGVkLWF1dG9I2qDjna3g1aOqAQ%253D%253D%26autonav%3D1\u0026aria_label=Clever+and+Witty+Animals%21+%7C+Video+Digest+by+Video+Digest%2C+The+Ultimate+Compilations+2+years+ago+9+minutes%2C+20+seconds+3%2C071%2C968+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FUiEB9RRxNGo%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLASjG30bZn2Njoh84299Nf7ZakDTw\u0026short_view_count_text=3M+views,title=Kochen+mit+Fertigprodukten+-+Die+Wahrheit+%C3%BCber+Restaurants+%7C+SWR+betrifft\u0026length_seconds=2695\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fwzc_VNh42HM%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDLNSxllRk9Zq5EItY_Xn_eQrt-4g\u0026author=SWR\u0026session_data=itct%3DCC4QvU4YASITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=wzc_VNh42HM\u0026aria_label=Kochen+mit+Fertigprodukten+-+Die+Wahrheit+%C3%BCber+Restaurants+%7C+SWR+betrifft+by+SWR+2+months+ago+44+minutes+616%2C505+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fwzc_VNh42HM%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDLNSxllRk9Zq5EItY_Xn_eQrt-4g\u0026short_view_count_text=616K+views,title=Erbsenzaehler+PedantenUnterUns\u0026length_seconds=2603\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FwhNy5FyiLps%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLAOq4eOcH8ccJ0EkacZprv7P7Dgtw\u0026author=doc_2ret\u0026session_data=itct%3DCC0QvU4YAiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=whNy5FyiLps\u0026aria_label=Erbsenzaehler+PedantenUnterUns+by+doc_2ret+7+years+ago+43+minutes+1%2C141%2C608+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FwhNy5FyiLps%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLAOq4eOcH8ccJ0EkacZprv7P7Dgtw\u0026short_view_count_text=1.1M+views,title=Nachhaltiges+Upcycling%3A+So+machst+du+aus+alten+Sachen+individuelle+Regale%21+%7C%7C+PULS+Reportage\u0026length_seconds=873\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fw0nTzUAdoY0%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDQ86Sd7yrmz_OLjmv3721hsl78Hg\u0026author=PULS+Reportage\u0026session_data=itct%3DCCwQvU4YAyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=w0nTzUAdoY0\u0026aria_label=Nachhaltiges+Upcycling%3A+So+machst+du+aus+alten+Sachen+individuelle+Regale%21+%7C%7C+PULS+Reportage+by+PULS+Reportage+3+days+ago+14+minutes+257%2C661+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fw0nTzUAdoY0%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDQ86Sd7yrmz_OLjmv3721hsl78Hg\u0026short_view_count_text=257K+views,title=Wie+geht+das%3F+Sieben+Kinder\u0026length_seconds=1710\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FW9VYpchSaFA%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDIVBR7HwCY_fMC9BHnG2VX1MG1rw\u0026author=Marc+Hofstee\u0026session_data=itct%3DCCsQvU4YBCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=W9VYpchSaFA\u0026aria_label=Wie+geht+das%3F+Sieben+Kinder+by+Marc+Hofstee+1+year+ago+28+minutes+949%2C693+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FW9VYpchSaFA%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDIVBR7HwCY_fMC9BHnG2VX1MG1rw\u0026short_view_count_text=949K+views,title=Die+Affen+sind+los%21+-+TV+total\u0026length_seconds=774\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2F14_LnsQ0Q6E%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLACAe_sl2nJrAmWjzFLD57hbZcP7A\u0026author=MySpass\u0026session_data=itct%3DCCoQvU4YBSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=14_LnsQ0Q6E\u0026aria_label=Die+Affen+sind+los%21+-+TV+total+by+MySpass+5+years+ago+12+minutes+2%2C993%2C656+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2F14_LnsQ0Q6E%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLACAe_sl2nJrAmWjzFLD57hbZcP7A\u0026short_view_count_text=2.9M+views,title=Die+10+Seltensten+Katzenrassen+der+Welt%21\u0026length_seconds=633\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FW6LN563ZrIE%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDmbJQQ2Mmb74cbHod6D8VP-6mWWA\u0026author=TopWelt\u0026session_data=itct%3DCCkQvU4YBiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=W6LN563ZrIE\u0026aria_label=Die+10+Seltensten+Katzenrassen+der+Welt%21+by+TopWelt+6+months+ago+10+minutes+371%2C367+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FW6LN563ZrIE%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDmbJQQ2Mmb74cbHod6D8VP-6mWWA\u0026short_view_count_text=371K+views,title=Haya%2C+ein+M%C3%A4dchen+in+Saudi-Arabien+%7C+Schau+in+meine+Welt+%7C+SWR+Kindernetz\u0026length_seconds=1499\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2F7SGZaWGiPAo%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDSJVChGEC2_R4TYTpLbWRc53NZng\u0026author=SWR+Kindernetz\u0026session_data=itct%3DCCgQvU4YByITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=7SGZaWGiPAo\u0026aria_label=Haya%2C+ein+M%C3%A4dchen+in+Saudi-Arabien+%7C+Schau+in+meine+Welt+%7C+SWR+Kindernetz+by+SWR+Kindernetz+2+years+ago+24+minutes+898%2C475+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2F7SGZaWGiPAo%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDSJVChGEC2_R4TYTpLbWRc53NZng\u0026short_view_count_text=898K+views,title=FOOD+IN+COMMERCIALS+VS.+IN+REAL+LIFE\u0026length_seconds=754\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FIKQVfheFkok%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDWHFIhd9FXezJN-PJQ-LPymrlZ6Q\u0026author=5-Minute+Crafts+VS\u0026session_data=itct%3DCCcQvU4YCCITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=IKQVfheFkok\u0026aria_label=FOOD+IN+COMMERCIALS+VS.+IN+REAL+LIFE+by+5-Minute+Crafts+VS+3+months+ago+12+minutes+7%2C881%2C664+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FIKQVfheFkok%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLDWHFIhd9FXezJN-PJQ-LPymrlZ6Q\u0026short_view_count_text=7.8M+views,title=10+Dinge%2C+die+Amerikaner+von+Deutschen+lernen+k%C3%B6nnen\u0026length_seconds=662\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FLX4IIbkwqsU%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLA9h7M7d3fyfo0740kLydNuuVu6sg\u0026author=lebenUSA\u0026session_data=itct%3DCCYQvU4YCSITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=LX4IIbkwqsU\u0026aria_label=10+Dinge%2C+die+Amerikaner+von+Deutschen+lernen+k%C3%B6nnen+by+lebenUSA+2+years+ago+11+minutes+616%2C893+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FLX4IIbkwqsU%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLA9h7M7d3fyfo0740kLydNuuVu6sg\u0026short_view_count_text=616K+views,title=Der+Scampi+Beschiss+%28NDR.Markt+28.9.15%29\u0026length_seconds=580\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FaxXzgtX8KtQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLBo_XA8RKW6BlnLvyB5zbDxeRpV0w\u0026author=Der+Demokrator\u0026session_data=itct%3DCCUQvU4YCiITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=axXzgtX8KtQ\u0026aria_label=Der+Scampi+Beschiss+%28NDR.Markt+28.9.15%29+by+Der+Demokrator+3+years+ago+9+minutes%2C+40+seconds+552%2C703+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FaxXzgtX8KtQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLBo_XA8RKW6BlnLvyB5zbDxeRpV0w\u0026short_view_count_text=552K+views,title=Imbiss+gegen+Sternehotel+Adlon%3A+Wer+macht+die+bessere+Currywurst%3F+%7C+Abenteuer+Leben+%7C+kabel+eins\u0026length_seconds=612\u0026iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FJlDVWz738Ss%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLA7dadwTlbYUa0qE7GM-BvLKRgsoQ\u0026author=Abenteuer+Leben\u0026session_data=itct%3DCCQQvU4YCyITCIu77P_fw-MCFRPkVQod5kALsSj4HTIJZW5kc2NyZWVuSNqg452t4NWjqgE%253D\u0026id=JlDVWz738Ss\u0026aria_label=Imbiss+gegen+Sternehotel+Adlon%3A+Wer+macht+die+bessere+Currywurst%3F+%7C+Abenteuer+Leben+%7C+kabel+eins+by+Abenteuer+Leben+1+week+ago+10+minutes+148%2C026+views\u0026iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FJlDVWz738Ss%2Fhqdefault.jpg%3Fsqp%3D-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ%3D%3D%26rs%3DAOn4CLA7dadwTlbYUa0qE7GM-BvLKRgsoQ\u0026short_view_count_text=148K+views"}};
window["ytInitialPlayerResponse"] = {"responseContext":{"serviceTrackingParams":[{"service":"CSI","params":[{"key":"yt_ad","value":"1"},{"key":"GetPlayer_rid","value":"0xc25c9ccb23f8abe2"},{"key":"c","value":"WEB"},{"key":"cver","value":"2.20190718"},{"key":"yt_li","value":"1"}]},{"service":"GFEEDBACK","params":[{"key":"is_viewed_live","value":"False"},{"key":"e","value":"23718324,23744176,23751767,23757411,23788840,23788875,23793834,23804281,23805410,23811378,23813548,23816462,23818122,23818585,23823448,23823751,23827085,23827174,9449243,9471239"},{"key":"logged_in","value":"1"}]},{"service":"GUIDED_HELP","params":[{"key":"creator_channel_id","value":"UCyrLYmvmLzWxnPHxt4n5aPw"},{"key":"logged_in","value":"1"}]},{"service":"ECATCHER","params":[{"key":"client.name","value":"WEB"},{"key":"client.version","value":"2.20190718"},{"key":"innertube.build.changelist","value":"258802569"},{"key":"innertube.build.experiments.source_version","value":"259054106"},{"key":"innertube.build.label","value":"youtube.ytfe.innertube_20190717_4_RC2"},{"key":"innertube.build.timestamp","value":"1563472606"},{"key":"innertube.build.variants.checksum","value":"35531ef11ad1c61326c4634c67ae1394"},{"key":"innertube.run.job","value":"ytfe-innertube-replica-only.ytfe"}]}],"webResponseContextExtensionData":{"ytConfigData":{"csn":"zyozXcuXGJPI1wLmga2ICw","visitorData":"CgtqNEdzVUNHRnJjWSjP1czpBQ%3D%3D","sessionIndex":0,"rootVisualElementType":3832}}},"playabilityStatus":{"status":"OK","playableInEmbed":true},"playerAds":[{"playerLegacyDesktopWatchAdsRenderer":{"playerAdParams":{"showContentThumbnail":true,"enabledEngageTypes":"3,6,4,5,17,1"},"afvParams":{"googleAdBlock":"2","googleAdChannel":"0854550288+Vertical_182+Vertical_211+Vertical_563+Vertical_613+Vertical_65+Vertical_66+Vertical_885+afv_ugc+afv_user_id_5P8yei950tif7UmdPpkJLQ+yt_cid_12424638+yt_ft+yt_mpvid_C7dU2pAZtnKANcgy+yt_no_ap+yt_no_cp+yt_no_wa+ytdevice_1+ytdevicever_2.20190718+ytel_detailpage+ytps_default","googleAdClient":"ca-pub-6219811747049371","googleAdFormat":"300x250_as","googleAdHeight":"250","googleAdHost":"ca-yt-host-pub-8131640640945351","googleAdType":"image","googleLact":"-1","googleLanguage":"en","googleLoeid":"9471239,23829137,23757411,23802811,23823751","googlePageUrl":"http://www.youtube.com/video/qkdXAtO40Fo","googleVideoDocId":"yt_qkdXAtO40Fo","googleYtPt":"APb3F29vMEKLJUm40tNW9dpZaNfC-RKGIZ_wP3Bnnavb6RJ725yKJdLX-iAGooYPeE7dB3Q5HwNRs5CMvzY3bHlKS6TqUF7AmMtUX57EjcXkSYqhDq66Q_96uiSk5vUOC5lEYvS72AnnQ-DtbrWd4MZBfMv3s8uf09kpN09iPmrl1tMPzCnsTX3RYLvQ0Nj257D8qfyXFG7wqR1JOQJ6","googleCoreDbp":"ChZRSm1wMENxcm9LUnRtVzBpUXlXQkhnEAEgASgAOAI","googlePucrd":"APb3F2-Shbi99hcSVkAVVNFEn3N3BLKg3dkTKsO7Cb3cjabLPBs8P5yNGrDvc7K6o9atza7iuiHFrjpDdhO5sBnpQgOEnlUtCin6g1RkWw"},"afcParams":{"adBlock":"2","adChannel":"0854550287+Vertical_182+Vertical_211+Vertical_563+Vertical_613+Vertical_65+Vertical_66+Vertical_885+afc_on_page+afv_ugc+afv_user_id_5P8yei950tif7UmdPpkJLQ+yt_cid_12424638+yt_ft+yt_mpvid_C7dU2pAZtnKANcgy+yt_no_ap+yt_no_cp+yt_no_wa+ytdevice_1+ytdevicever_2.20190718+ytel_detailpage+ytps_default","adClient":"ca-pub-6219811747049371","adHost":"ca-yt-host-pub-8131640640945351","adType":"image","format":"300x250_as","lact":"-1","language":"en","videoDocId":"yt_qkdXAtO40Fo","coreDbp":"ChZRSm1wMENxcm9LUnRtVzBpUXlXQkhnEAEgASgAOAI","loeid":"9471239,23829137,23757411,23802811,23823751","pucrd":"APb3F2-Shbi99hcSVkAVVNFEn3N3BLKg3dkTKsO7Cb3cjabLPBs8P5yNGrDvc7K6o9atza7iuiHFrjpDdhO5sBnpQgOEnlUtCin6g1RkWw"},"gutParams":{"tag":"\\4061\\ytpwmpu"},"showAfv":true,"showCompanion":true,"showInstream":true,"useGut":true,"displayAds":{"pyvAdTag":"https://googleads.g.doubleclick.net/pagead/ads?cust_age=1003\u0026lact=-1\u0026ytdevicever=ytdevicever_2.20190718\u0026client=ca-pub-6219811747049371\u0026correlator=14380615289895378522\u0026ad_block=3\u0026host=ca-yt-host-pub-8131640640945351\u0026loeid=9471239,23829137,23757411,23802811,23823751\u0026num_ads=1\u0026video_doc_id=yt_qkdXAtO40Fo\u0026ad_type=text\u0026channel=PyvWatchInRelated%2BPyvWatchNoAdX%2BPyvYTWatch%2Bafv_user_id_5P8yei950tif7UmdPpkJLQ%2Bnon_lpw%2Bpw%2Byt_cid_12424638%2Byt_ft%2Byt_mpvid_C7dU2pAZtnKANcgy%2Byt_no_ap%2Bytdevice_1%2Bytdevicever_2.20190718\u0026hl=en\u0026url=http%3A%2F%2Fwww.youtube.com%2Fvideo%2FqkdXAtO40Fo\u0026output=js\u0026ea=0\u0026eae=2\u0026adk=511001906\u0026pyv=1\u0026top=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DqkdXAtO40Fo%26app%3Ddesktop\u0026loc=EMPTY\u0026dbp=ChZRSm1wMENxcm9LUnRtVzBpUXlXQkhnEAEgASgAOAI\u0026isw=0\u0026ish=0\u0026yt_pt=APb3F2_2JLzET5xP0mtFNLzD6PHrRxCOTQyZi1hG3napfXUbPsM6bVZbgaI_Ft_V53C6OWyDNMHfFIJHw1z3uCTtTw48d-b2-1RwbKaXCyKKJuu_8ehrxZOMTKiOvPzYpQab0Ftb7NLVMfbqnkNymzM8ENBRE4qKpL0fjyMtpxD3M97g5xFrDzj4sQNDYEymKivfvsD9KepmUSWbTYVOB_aolFEcIGph5TOxBV1zMW_IZYhBEcXFypEoY2IxclX0gZEIaK893GNldwoUh3URk7AmGAWS1JVnSMSH6b6q0TSVzMWXcLKBW73A8com1K0\u0026pucrd=APb3F28skO-8nSn-wUfnp3-ETNd0CDyHFxtI2jt6udAOkqi9bXnUdiGIbVHu-S796FhbR0SRrLzeqmwOR0CSG5MsKTW0JZajEdxCtkQ5Gg"}}}],"playbackTracking":{"videostatsPlaybackUrl":{"baseUrl":"https://s.youtube.com/api/stats/playback?cl=258604213\u0026docid=qkdXAtO40Fo\u0026ei=zyozXcuXGJPI1wLmga2ICw\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\u0026ns=yt\u0026plid=AAWOHf_-lIoCtm0y\u0026el=detailpage\u0026len=91\u0026of=QJmp0CqroKRtmW0iQyWBHg\u0026uga=39\u0026vm=CAEQARgEKiA5MlRHZ1RsU2R5d0hHem81N0E0UGdTRmotQ1JZNjZnYg"},"videostatsDelayplayUrl":{"baseUrl":"https://s.youtube.com/api/stats/delayplay?cl=258604213\u0026docid=qkdXAtO40Fo\u0026ei=zyozXcuXGJPI1wLmga2ICw\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\u0026ns=yt\u0026plid=AAWOHf_-lIoCtm0y\u0026el=detailpage\u0026len=91\u0026of=QJmp0CqroKRtmW0iQyWBHg\u0026uga=39\u0026vm=CAEQARgEKiA5MlRHZ1RsU2R5d0hHem81N0E0UGdTRmotQ1JZNjZnYg"},"videostatsWatchtimeUrl":{"baseUrl":"https://s.youtube.com/api/stats/watchtime?cl=258604213\u0026docid=qkdXAtO40Fo\u0026ei=zyozXcuXGJPI1wLmga2ICw\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\u0026ns=yt\u0026plid=AAWOHf_-lIoCtm0y\u0026el=detailpage\u0026len=91\u0026of=QJmp0CqroKRtmW0iQyWBHg\u0026uga=39\u0026vm=CAEQARgEKiA5MlRHZ1RsU2R5d0hHem81N0E0UGdTRmotQ1JZNjZnYg"},"ptrackingUrl":{"baseUrl":"https://www.youtube.com/ptracking?ei=zyozXcuXGJPI1wLmga2ICw\u0026oid=lL3sqLr2Wc0vz2fyUsOn9w\u0026plid=AAWOHf_-lIoCtm0y\u0026pltype=contentugc\u0026ptk=youtube_single\u0026video_id=qkdXAtO40Fo"},"qoeUrl":{"baseUrl":"https://s.youtube.com/api/stats/qoe?cl=258604213\u0026docid=qkdXAtO40Fo\u0026ei=zyozXcuXGJPI1wLmga2ICw\u0026event=streamingstats\u0026fexp=23827174%2C23811378%2C23804281%2C1714259%2C23757411%2C23816462%2C23805410%2C23823448%2C23818122%2C23788875%2C23818585%2C23823751%2C23827085\u0026ns=yt\u0026plid=AAWOHf_-lIoCtm0y"},"setAwesomeUrl":{"baseUrl":"https://www.youtube.com/set_awesome?ei=zyozXcuXGJPI1wLmga2ICw\u0026plid=AAWOHf_-lIoCtm0y\u0026video_id=qkdXAtO40Fo","elapsedMediaTimeSeconds":72},"atrUrl":{"baseUrl":"https://s.youtube.com/api/stats/atr?docid=qkdXAtO40Fo\u0026ei=zyozXcuXGJPI1wLmga2ICw\u0026len=91\u0026ns=yt\u0026plid=AAWOHf_-lIoCtm0y\u0026ver=2","elapsedMediaTimeSeconds":5}},"captions":{"playerCaptionsRenderer":{"baseUrl":"https://www.youtube.com/api/timedtext?expire=1563659583\u0026sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire\u0026key=yttt1\u0026signature=AFACE5FA5CE11468EFF47E33FFDF87185F36F868.C167CE698C797FC2A3E12B1C4FFBFED5AE190BA9\u0026hl=en\u0026caps=asr\u0026xoaf=1\u0026v=qkdXAtO40Fo\u0026asr_langs=de%2Cko%2Cen%2Cpt%2Cja%2Cfr%2Cru%2Ces%2Cit%2Cnl\u0026xorp=True","visibility":"UNKNOWN"},"playerCaptionsTracklistRenderer":{"captionTracks":[{"baseUrl":"https://www.youtube.com/api/timedtext?expire=1563659583\u0026sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire\u0026key=yttt1\u0026signature=AFACE5FA5CE11468EFF47E33FFDF87185F36F868.C167CE698C797FC2A3E12B1C4FFBFED5AE190BA9\u0026hl=en\u0026caps=asr\u0026xoaf=1\u0026v=qkdXAtO40Fo\u0026asr_langs=de%2Cko%2Cen%2Cpt%2Cja%2Cfr%2Cru%2Ces%2Cit%2Cnl\u0026xorp=True\u0026kind=asr\u0026lang=en","name":{"simpleText":"English (auto-generated)"},"vssId":"a.en","languageCode":"en","kind":"asr","isTranslatable":true}],"audioTracks":[{"captionTrackIndices":[0],"visibility":"UNKNOWN"}],"translationLanguages":[{"languageCode":"af","languageName":{"simpleText":"Afrikaans"}},{"languageCode":"sq","languageName":{"simpleText":"Albanian"}},{"languageCode":"am","languageName":{"simpleText":"Amharic"}},{"languageCode":"ar","languageName":{"simpleText":"Arabic"}},{"languageCode":"hy","languageName":{"simpleText":"Armenian"}},{"languageCode":"az","languageName":{"simpleText":"Azerbaijani"}},{"languageCode":"bn","languageName":{"simpleText":"Bangla"}},{"languageCode":"eu","languageName":{"simpleText":"Basque"}},{"languageCode":"be","languageName":{"simpleText":"Belarusian"}},{"languageCode":"bs","languageName":{"simpleText":"Bosnian"}},{"languageCode":"bg","languageName":{"simpleText":"Bulgarian"}},{"languageCode":"my","languageName":{"simpleText":"Burmese"}},{"languageCode":"ca","languageName":{"simpleText":"Catalan"}},{"languageCode":"ceb","languageName":{"simpleText":"Cebuano"}},{"languageCode":"zh-Hans","languageName":{"simpleText":"Chinese (Simplified)"}},{"languageCode":"zh-Hant","languageName":{"simpleText":"Chinese (Traditional)"}},{"languageCode":"co","languageName":{"simpleText":"Corsican"}},{"languageCode":"hr","languageName":{"simpleText":"Croatian"}},{"languageCode":"cs","languageName":{"simpleText":"Czech"}},{"languageCode":"da","languageName":{"simpleText":"Danish"}},{"languageCode":"nl","languageName":{"simpleText":"Dutch"}},{"languageCode":"en","languageName":{"simpleText":"English"}},{"languageCode":"eo","languageName":{"simpleText":"Esperanto"}},{"languageCode":"et","languageName":{"simpleText":"Estonian"}},{"languageCode":"fil","languageName":{"simpleText":"Filipino"}},{"languageCode":"fi","languageName":{"simpleText":"Finnish"}},{"languageCode":"fr","languageName":{"simpleText":"French"}},{"languageCode":"gl","languageName":{"simpleText":"Galician"}},{"languageCode":"ka","languageName":{"simpleText":"Georgian"}},{"languageCode":"de","languageName":{"simpleText":"German"}},{"languageCode":"el","languageName":{"simpleText":"Greek"}},{"languageCode":"gu","languageName":{"simpleText":"Gujarati"}},{"languageCode":"ht","languageName":{"simpleText":"Haitian Creole"}},{"languageCode":"ha","languageName":{"simpleText":"Hausa"}},{"languageCode":"haw","languageName":{"simpleText":"Hawaiian"}},{"languageCode":"iw","languageName":{"simpleText":"Hebrew"}},{"languageCode":"hi","languageName":{"simpleText":"Hindi"}},{"languageCode":"hmn","languageName":{"simpleText":"Hmong"}},{"languageCode":"hu","languageName":{"simpleText":"Hungarian"}},{"languageCode":"is","languageName":{"simpleText":"Icelandic"}},{"languageCode":"ig","languageName":{"simpleText":"Igbo"}},{"languageCode":"id","languageName":{"simpleText":"Indonesian"}},{"languageCode":"ga","languageName":{"simpleText":"Irish"}},{"languageCode":"it","languageName":{"simpleText":"Italian"}},{"languageCode":"ja","languageName":{"simpleText":"Japanese"}},{"languageCode":"jv","languageName":{"simpleText":"Javanese"}},{"languageCode":"kn","languageName":{"simpleText":"Kannada"}},{"languageCode":"kk","languageName":{"simpleText":"Kazakh"}},{"languageCode":"km","languageName":{"simpleText":"Khmer"}},{"languageCode":"ko","languageName":{"simpleText":"Korean"}},{"languageCode":"ku","languageName":{"simpleText":"Kurdish"}},{"languageCode":"ky","languageName":{"simpleText":"Kyrgyz"}},{"languageCode":"lo","languageName":{"simpleText":"Lao"}},{"languageCode":"la","languageName":{"simpleText":"Latin"}},{"languageCode":"lv","languageName":{"simpleText":"Latvian"}},{"languageCode":"lt","languageName":{"simpleText":"Lithuanian"}},{"languageCode":"lb","languageName":{"simpleText":"Luxembourgish"}},{"languageCode":"mk","languageName":{"simpleText":"Macedonian"}},{"languageCode":"mg","languageName":{"simpleText":"Malagasy"}},{"languageCode":"ms","languageName":{"simpleText":"Malay"}},{"languageCode":"ml","languageName":{"simpleText":"Malayalam"}},{"languageCode":"mt","languageName":{"simpleText":"Maltese"}},{"languageCode":"mi","languageName":{"simpleText":"Maori"}},{"languageCode":"mr","languageName":{"simpleText":"Marathi"}},{"languageCode":"mn","languageName":{"simpleText":"Mongolian"}},{"languageCode":"ne","languageName":{"simpleText":"Nepali"}},{"languageCode":"no","languageName":{"simpleText":"Norwegian"}},{"languageCode":"ny","languageName":{"simpleText":"Nyanja"}},{"languageCode":"ps","languageName":{"simpleText":"Pashto"}},{"languageCode":"fa","languageName":{"simpleText":"Persian"}},{"languageCode":"pl","languageName":{"simpleText":"Polish"}},{"languageCode":"pt","languageName":{"simpleText":"Portuguese"}},{"languageCode":"pa","languageName":{"simpleText":"Punjabi"}},{"languageCode":"ro","languageName":{"simpleText":"Romanian"}},{"languageCode":"ru","languageName":{"simpleText":"Russian"}},{"languageCode":"sm","languageName":{"simpleText":"Samoan"}},{"languageCode":"gd","languageName":{"simpleText":"Scottish Gaelic"}},{"languageCode":"sr","languageName":{"simpleText":"Serbian"}},{"languageCode":"sn","languageName":{"simpleText":"Shona"}},{"languageCode":"sd","languageName":{"simpleText":"Sindhi"}},{"languageCode":"si","languageName":{"simpleText":"Sinhala"}},{"languageCode":"sk","languageName":{"simpleText":"Slovak"}},{"languageCode":"sl","languageName":{"simpleText":"Slovenian"}},{"languageCode":"so","languageName":{"simpleText":"Somali"}},{"languageCode":"st","languageName":{"simpleText":"Southern Sotho"}},{"languageCode":"es","languageName":{"simpleText":"Spanish"}},{"languageCode":"su","languageName":{"simpleText":"Sundanese"}},{"languageCode":"sw","languageName":{"simpleText":"Swahili"}},{"languageCode":"sv","languageName":{"simpleText":"Swedish"}},{"languageCode":"tg","languageName":{"simpleText":"Tajik"}},{"languageCode":"ta","languageName":{"simpleText":"Tamil"}},{"languageCode":"te","languageName":{"simpleText":"Telugu"}},{"languageCode":"th","languageName":{"simpleText":"Thai"}},{"languageCode":"tr","languageName":{"simpleText":"Turkish"}},{"languageCode":"uk","languageName":{"simpleText":"Ukrainian"}},{"languageCode":"ur","languageName":{"simpleText":"Urdu"}},{"languageCode":"uz","languageName":{"simpleText":"Uzbek"}},{"languageCode":"vi","languageName":{"simpleText":"Vietnamese"}},{"languageCode":"cy","languageName":{"simpleText":"Welsh"}},{"languageCode":"fy","languageName":{"simpleText":"Western Frisian"}},{"languageCode":"xh","languageName":{"simpleText":"Xhosa"}},{"languageCode":"yi","languageName":{"simpleText":"Yiddish"}},{"languageCode":"yo","languageName":{"simpleText":"Yoruba"}},{"languageCode":"zu","languageName":{"simpleText":"Zulu"}}],"defaultAudioTrackIndex":0}},"videoDetails":{"videoId":"qkdXAtO40Fo","title":"Baby Loves Cat","lengthSeconds":"91","keywords":["Cat (Animal)","Kitten (Animal)","baby","babies","laughing","funny","happy","silly","cats","kittens","Cute","Cuteness (Website Category)","Animal (Film Character)","Kitty","happiness","joy","family","Babies (Film)","baby loves cat","baby can't","cat baby","cat and baby","baby and cat","baby cat","baby funny video","baby video","funny baby video","cat with baby","funny babies","Laugh","Smile","Peace"],"channelId":"UC5P8yei950tif7UmdPpkJLQ","isOwnerViewing":false,"shortDescription":"She's incapable of controlling her limbs when her kitty is around. The obsession grows every day.\n\nPs. That's a sleep sack she's in. Not a starfish outfit. Although I wish I were cool enough to dress my daughter in a starfish outfit.\n\nJukin Media Verified (Original)\n*For licensing / permission to use please contact licensing(at)jukinmediadotcom","isCrawlable":true,"thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/qkdXAtO40Fo/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLC43rJRVOd4U_tni1h79dj7UixPVg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/qkdXAtO40Fo/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB\u0026rs=AOn4CLDy4FR7Yg_h9OrxbXzBhO0oO9BpKA","width":196,"height":110},{"url":"https://i.ytimg.com/vi/qkdXAtO40Fo/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLCa7ttQZ951YP91wePoP3aZJcKrag","width":246,"height":138},{"url":"https://i.ytimg.com/vi/qkdXAtO40Fo/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==\u0026rs=AOn4CLBO2N82fey-_z5dwStt-7lylcpa-g","width":336,"height":188}]},"averageRating":4.4216495,"allowRatings":true,"viewCount":"30127917","author":"Merkley Family","isPrivate":false,"isUnpluggedCorpus":false,"isLiveContent":false},"annotations":[{"playerAnnotationsUrlsRenderer":{"invideoUrl":"//www.youtube.com/annotations_invideo?cap_hist=1\u0026video_id=qkdXAtO40Fo\u0026client=1","loadPolicy":"ALWAYS","allowInPlaceSwitch":false}}],"playerConfig":{"audioConfig":{"loudnessDb":-7.9190006,"perceptualLoudnessDb":-28.919001},"playbackStartConfig":{"startSeconds":18},"streamSelectionConfig":{"maxBitrate":"12590000"},"mediaCommonConfig":{"dynamicReadaheadConfig":{"maxReadAheadMediaTimeMs":120000,"minReadAheadMediaTimeMs":15000,"readAheadGrowthRateMs":1000}}},"storyboards":{"playerStoryboardSpecRenderer":{"spec":"https://i9.ytimg.com/sb/qkdXAtO40Fo/storyboard3_L$L/$N.jpg?sqp=ovOX_wMGCJ6zxa4F|48#27#100#10#10#0#default#rs$AOn4CLAqSSHWRQDOnM4rVC7PiTslOFl3oA|80#45#92#10#10#1000#M$M#rs$AOn4CLCwBc-6YXxWaG-G2MfwlKGplPnbGw|160#90#92#5#5#1000#M$M#rs$AOn4CLCce54uKpORVpI3RI5Ukav0JaIcLQ"}},"trackingParams":"CAEQu2kiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","attestation":{"playerAttestationRenderer":{"challenge":"a=4\u0026b=yzKbV84WY-N0jIC7OC-dNH38yoo\u0026c=1563634383\u0026d=1\u0026e=qkdXAtO40Fo\u0026c3a=13\u0026c1a=1\u0026c6a=1\u0026hh=sTD6Gno_K9wupWJ-6pgtHCn91LAIaOSWzpGgF9_5Ul8","botguardData":{"program":"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","interpreterUrl":"//www.google.com/js/bg/RIejQ4te4w0STk1CYjH2g9Wbh7cgpqwyLVRpzczBFWM.js"}}},"messages":[{"mealbarPromoRenderer":{"messageTexts":[{"runs":[{"text":"Get YouTube without the ads."}]}],"actionButton":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","size":"SIZE_DEFAULT","text":{"runs":[{"text":"1 month free"}]},"navigationEndpoint":{"clickTrackingParams":"CAYQ7G8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/premium?ybp=Eg9GRXdoYXRfdG9fd2F0Y2gqEmRtZWEtYWNxLWMtZWdzaVZEYToaCAYYASoUChJkbWVhLWFjcS1jLWVnc2lWRGE%253D","webPageType":"WEB_PAGE_TYPE_BROWSE"}},"browseEndpoint":{"browseId":"SPunlimited","params":"kgNBEg9GRXdoYXRfdG9fd2F0Y2gqEmRtZWEtYWNxLWMtZWdzaVZEYToaCAYYASoUChJkbWVhLWFjcS1jLWVnc2lWRGE%3D"}},"trackingParams":"CAYQ7G8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},"dismissButton":{"buttonRenderer":{"style":"STYLE_TEXT","size":"SIZE_DEFAULT","text":{"runs":[{"text":"Skip trial"}]},"serviceEndpoint":{"clickTrackingParams":"CAUQ7W8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0=","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpKRj6bk_3w7yPOVk_NYwPGd6LJLBTiq1sNFv-nrArUTRJgfXtBeT-lwknx6LMHFXa_2wba6-1vdcb1z7HA196XqBVv9sCUEQjR_hDeDDQwCHKurJuHS6QMImZtNUC3DrWBKrAoFUfD1yl2XPNGYJFu6YTTMhQ","uiActions":{"hideEnclosingContainer":true}}},"trackingParams":"CAUQ7W8iEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},"triggerCondition":"TRIGGER_CONDITION_POST_AD","style":"STYLE_MESSAGE","trackingParams":"CAQQ42kYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","impressionEndpoints":[{"clickTrackingParams":"CAQQ42kYAiITCIu77P_fw-MCFRPkVQod5kALsSj4HQ==","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"feedbackEndpoint":{"feedbackToken":"AB9zfpIV80Rjmm0kmTg_2P_dnDBVoBllUaEI6o1szcWENkt6nEJmJK4qgQE4-6TcYzTWIqpM6FVWLseUgR8Q8OIBuJ5Ri32FARCZRUCCimUkrZvbvVr-gljlZvyXiDz9HeOIurjupBKdJeVgozzZEPKa_UubTNZf8Q","uiActions":{"hideEnclosingContainer":false}}}],"isVisible":true,"messageTitle":{"runs":[{"text":"YouTube Premium"}]}}}],"endscreen":{"endscreenUrlRenderer":{"url":"//www.youtube.com/get_endscreen?client=1\u0026ei=zyozXcuXGJPI1wLmga2ICw\u0026v=qkdXAtO40Fo"}},"ibaDebugInfo":"IBA info:\nembed : False\ngap : False\niba_disabled_channel: False\niba_disabled_host : False\nk12 : False\nkids_app : False\npost_unicorn : False\nrelevant_ads_optout : False\nunicorn : False\n\n\nRemarketing info:\nFOC enabled by publisher : False\nRemarketing disabled channel by policy: False\nRemarketing disabled video by policy : False\nRemarketing enabled by publisher : False\nRemarketing ignore VIA for video : False\n\n\nAdSafetyExperienceReason:\napm_user_preference {\n}\nis_search_history_paused: true\nis_crosswalk: true\n","adPlacements":[{"adPlacementRenderer":{"config":{"adPlacementConfig":{"kind":"AD_PLACEMENT_KIND_START","adTimeOffset":{"offsetStartMilliseconds":"0","offsetEndMilliseconds":"-1"},"hideCueRangeMarker":true}},"renderer":{"adBreakServiceRenderer":{"getAdBreakUrl":"https://www.youtube.com/get_midroll_info?ei=zyozXcuXGJPI1wLmga2ICw\u0026m_pos=0\u0026token=AFjjc2PUKOd4u11SSovfrxqgOBmlWbKeaBxWF35V5IC1dWGT7g8BiVimCWKVNvsHNDC7w-_IS9s62k4zjbBCe-UXElT-J1i74ek--kpu0PHxuswDl0y2OmmRP5OdcwR165pZ3HeYPLt1gfcb1vSJtVyZkmX_GGVVbYBu1Go7MXNWHkRd00ECocK81hkgSPdKnbiIvmL9ntus4PJUZfuOHcHuBBiA1IP4k54jVflFqMtc3UxD6oYdS9AIUTtoQYEV-D5Tx4faMiMn7TP-PX-CwlMRsTGi9X1uJEKDSN9p57VrMFG5gPiw-Z0AeUsujV6fIfwKKx4Oodj_\u0026index=0\u0026cpn=[CPN]\u0026lact=[LACT]\u0026vis=[VIS]\u0026ad_block=[AD_BLOCK]\u0026tsla=[TSLA]\u0026bid=[BISCOTTI_ID]\u0026dt=[DT]\u0026flash=[FLASH]\u0026frm=[FRM]\u0026ca_type=[CA_TYPE]\u0026u_tz=[U_TZ]\u0026u_his=[U_HIS]\u0026u_java=[U_JAVA]\u0026u_h=[U_H]\u0026u_w=[U_W]\u0026u_ah=[U_AH]\u0026u_aw=[U_AW]\u0026u_cd=[U_CD]\u0026u_nplug=[U_NPLUG]\u0026u_nmime=[U_NMIME]\u0026p_w=[P_W]\u0026p_h=[P_H]\u0026c=WEB\u0026cver=2.20190718"}},"trackingParams":"CAMQ9vcBGAMiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}},{"adPlacementRenderer":{"config":{"adPlacementConfig":{"kind":"AD_PLACEMENT_KIND_END","adTimeOffset":{"offsetStartMilliseconds":"-1","offsetEndMilliseconds":"-1"},"hideCueRangeMarker":true}},"renderer":{"adBreakServiceRenderer":{"prefetchMilliseconds":"10000","getAdBreakUrl":"https://www.youtube.com/get_midroll_info?ei=zyozXcuXGJPI1wLmga2ICw\u0026m_pos=-1\u0026token=AFjjc2MNztSrM1Smq4toT-rQYqGSa1h0ScIEWRX2p4PwTIawXP0yedpMnHi_Vhr6Aa_cTCjWtw6MaJe3BgRlUO-ZDsG3l0aboXNLedK6eqODYvH80pmvAIAN9S0Lfpfgvgcsu7ojMC_fMr6Cr_yy6rZbfygeKLS8jchMPei6uo9wt-M-8ZbRFINNihZJpw3cDxGXbixd9qNbmjAAhB5NGCBtlf3BCDrl--bJIfz_oluw4O88umKDJIXaOvXCQmQ9WEs4e9Q9uD0cXhXCLDsvbv5LGLN9Gc-Etdy8vON6q5sxLCy9XW2DH7dzbkhajo4hUuBqhDByFi3U\u0026index=1\u0026cpn=[CPN]\u0026lact=[LACT]\u0026vis=[VIS]\u0026ad_block=[AD_BLOCK]\u0026tsla=[TSLA]\u0026bid=[BISCOTTI_ID]\u0026dt=[DT]\u0026flash=[FLASH]\u0026frm=[FRM]\u0026ca_type=[CA_TYPE]\u0026u_tz=[U_TZ]\u0026u_his=[U_HIS]\u0026u_java=[U_JAVA]\u0026u_h=[U_H]\u0026u_w=[U_W]\u0026u_ah=[U_AH]\u0026u_aw=[U_AW]\u0026u_cd=[U_CD]\u0026u_nplug=[U_NPLUG]\u0026u_nmime=[U_NMIME]\u0026p_w=[P_W]\u0026p_h=[P_H]\u0026c=WEB\u0026cver=2.20190718"}},"trackingParams":"CAIQ9vcBGAQiEwiLu-z_38PjAhUT5FUKHeZAC7Eo-B0="}}],"adSafetyReason":{"isSearchHistoryPaused":true,"isCrosswalk":true}};
if (window.ytcsi) {window.ytcsi.tick("pdr", null, '');}
</script>

<script >
(function() {
var setFiller = function() {
var blankSwfConfig = {"args":{"fflags":"html5_default_ad_gain=0.5\u0026html5_disable_liveonly_seeks=true\u0026html5_gapless_encrypted_to_clear=true\u0026playready_first_play_expiration=-1\u0026android_early_fetch_for_autoplay=true\u0026html5_probe_live_using_range=true\u0026use_ima_media_selection_in_bulleit=true\u0026bulleit_register_placements_in_order=true\u0026html5_max_av_sync_drift=50\u0026spacecast_uniplayer_decorate_manifest=true\u0026html5_probe_media_capabilities=true\u0026html5_platform_minimum_readahead_seconds=0.0\u0026html5_stale_dash_manifest_retry_factor=1.0\u0026html5_manifestless_no_redundant_seek_to_head=true\u0026enforce_cuerange_priority_on_web=true\u0026enable_simple_preview_for_postrolls_html5=true\u0026html5_prefer_server_bwe3=true\u0026hardwire_web_unplugged_get_video_info_to_tv=true\u0026html5_playbackmanager_enable_notify_new_drm_info=true\u0026allow_live_autoplay=true\u0026html5_hls_initial_bitrate=0\u0026vss_dni_delayping=0\u0026html5_turn_down_slates=true\u0026html5_waiting_before_ended=true\u0026html5_hfr_quality_cap=0\u0026variable_load_timeout_ms=0\u0026display_endscreen_heartbeat=true\u0026html5_suspend_manifest_on_pause=true\u0026html5_live_4k_more_buffer=true\u0026html5_log_playback_rate_change_killswitch=true\u0026mweb_playsinline_webview=true\u0026html5_ignore_bad_bitrates=true\u0026html5_variability_no_discount_thresh=1.0\u0026html5_widevine_robustness_strings=true\u0026kevlar_miniplayer_button=true\u0026variable_buffer_timeout_ms=0\u0026html5_subsegment_readahead_min_load_speed=1.5\u0026skip_restore_on_abandon_in_bulleit=true\u0026enable_html5_midroll_tsla_update=true\u0026html5_gapless_seek_tolerance_secs=0.0\u0026dynamic_ad_break_pause_threshold_sec=0\u0026android_attestation_flow=yt_player\u0026html5_seeking_buffering_only_playing=true\u0026bulleit_terminate_ad_when_ending_with_commands=true\u0026ad_to_video_use_gel=true\u0026html5_manifestless_accurate_sliceinfo=true\u0026low_engagement_player_quality_cap=360\u0026html5_new_seeking=true\u0026html5_pseudo_gapless=true\u0026html5_gapless_ended_transition_buffer_ms=200\u0026midroll_notify_time_seconds=5\u0026html5_max_buffer_duration=120\u0026live_fresca_v2=true\u0026desktop_image_companion_wta_support=true\u0026render_enhanced_overlays_as_ctas_for_desktop_style=unset\u0026html5_new_queueing=true\u0026bulleit_get_midroll_info_timeout_ms=8000\u0026enable_eviction_protection_for_bulleit=true\u0026html5_pipeline_manifestless=true\u0026skip_ad_pod_to_end_ads_quality=true\u0026html5_gaplesstransition_error_new_elem=true\u0026mweb_autonav=true\u0026html5_shrink_live_timestamps=true\u0026bulleit_extract_delayed_mpu_on_all_placement_init=true\u0026use_new_style=true\u0026use_touch_events_for_bulleit_mweb=true\u0026html5_av1_thresh=720\u0026attach_child_on_gel_web=true\u0026html5_license_constraint_delay=5000\u0026html5_av1_tv_killswitch=true\u0026desktop_player_button_tooltip_with_shortcut=true\u0026web_player_music_visualizer_treatment=fake\u0026html5_gapless_ad_byterate_multiplier=1.6\u0026html5_qoe_bearer=true\u0026html5_gapless_error_check_killswitch=true\u0026html5_release_mediakey_after_load=true\u0026html5_restrict_streaming_xhr_on_sqless_requests=true\u0026kevlar_frontend_video_list_actions=true\u0026html5_fludd_suspend=true\u0026enable_mute_ad_endpoint_resolution_on_bulleit=true\u0026html5_full_gapless_content_resume=true\u0026html5_tight_max_buffer_allowed_impaired_time=0.0\u0026autoplay_time=8000\u0026enable_overlays_wta=true\u0026html5_hls_pair_distinct_audio=true\u0026html5_max_readahead_bandwidth_cap=0\u0026enable_live_premiere_web_player_indicator=true\u0026fill_manifestless_windowed_live_config=true\u0026html5_ad_stats_bearer=true\u0026html5_gapless_allow_late_transitions=true\u0026html5_dynamic_readahead_growth_rate=0.0\u0026html5_max_live_dvr_window_plus_margin_secs=46800.0\u0026mweb_enable_instream_ui_refresh=true\u0026enable_instream_companion_on_mweb=true\u0026bulleit_update_tsla_cookie=true\u0026html5_decode_to_texture_cap=true\u0026live_readahead_seconds_multiplier=0.8\u0026html5_autonav_quality_cap=0\u0026show_thumbnail_behind_ypc_offer_module=true\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms=0\u0026html5_use_hasAdvanced_for_pbs=true\u0026html5_df_downgrade_thresh=0.2\u0026enable_website_actions_on_mweb=true\u0026html5_incremental_parser_buffer_duration_secs=1.5\u0026html5_qoe_intercept=\u0026html5_inline_video_quality_survey=true\u0026live_chunk_readahead=3\u0026html5_frame_accurate_seek_limit=3\u0026html5_expire_preloaded_players=true\u0026html5_index_range_auth=true\u0026enable_prefetch_for_postrolls=true\u0026website_actions_throttle_percentage=1.0\u0026html5_progressive_fallback=true\u0026web_player_response_fairplay_config_killswitch=true\u0026html5_request_sizing_multiplier=0.8\u0026html5_post_interrupt_readahead=20\u0026use_forced_linebreak_preskip_text=true\u0026html5_log_hls_video_height_change_as_format_change=true\u0026html5_parse_inline_fallback_host=true\u0026html5_live_low_latency_bandwidth_window=0.0\u0026use_fast_fade_in_0s=true\u0026html5_min_has_advanced=true\u0026html5_live_ultra_low_latency_bandwidth_window=0.0\u0026enable_afv_div_reset_in_kevlar=true\u0026youtubei_for_web=true\u0026html5_subsegment_readahead_timeout_secs=2.0\u0026html5_probe_primary_delay_base_ms=0\u0026desktop_companion_wta_support=true\u0026html5_hack_gapless_init=true\u0026html5_manifestless_captions=true\u0026html5_enable_fairplay_key_rotation=true\u0026add_border_to_bulleit_mweb_skip=true\u0026html5_min_readbehind_secs=0\u0026postroll_notify_time_seconds=5\u0026html5_ad_timeout_ms=0\u0026bulleit_remove_client_side_midroll_reactivation=true\u0026html5_variability_full_discount_thresh=3.0\u0026enable_bulleit_lidar_integration=true\u0026html5_pipeline_ultra_low_latency=true\u0026enable_brand_companion_on_mweb=true\u0026debug_dapper_trace_id=\u0026html5_readahead_ratelimit=3000\u0026stop_using_ima_sdk_gpt_request_activity=true\u0026html5_enable_widevine_key_rotation=true\u0026disable_web_watchlater_during_ads=true\u0026html5_gapless_disable_preload_at_finish=true\u0026playready_on_borg=true\u0026html5_bulleit_handle_gained_ended_state=true\u0026html5_probe_secondary_during_timeout_miss_count=2\u0026html5_maximum_readahead_seconds=0.0\u0026html5_adaptation_fix=true\u0026html5_progress_fix_fix=true\u0026html5_repredict_interval_secs=0.0\u0026persist_text_on_preview_button=true\u0026bulleit_send_engage_ping_on_companion_click=true\u0026html5_subsegment_readahead_target_buffer_health_secs=0.5\u0026html5_cut_vss_on_visibility=true\u0026kevlar_allow_multistep_video_init=true\u0026align_ad_to_video_player_lifecycle_for_bulleit=true\u0026html5_manifestless_request_prediction=true\u0026html5_request_size_max_secs=31\u0026html5_subsegment_readahead_load_speed_check_interval=0.5\u0026html5_remove_pause=false\u0026ad_to_ad_use_gel=true\u0026ensure_only_one_resolved_midroll_response_on_web=true\u0026www_for_videostats=true\u0026vmap_enabled_living_room=true\u0026html5_max_headm_for_streaming_xhr=0\u0026html5_gapless=true\u0026html5_min_upgrade_health=0\u0026enable_bulleit_mweb_remix_ui=true\u0026enable_text_ad_overlay_link_fix=true\u0026embed_api_deprecation=true\u0026html5_disable_aac_ac3=true\u0026tvhtml5_yongle_quality_cap=0\u0026enable_wta_for_tv_html5_unplugged=true\u0026html5_allowable_liveness_drift_chunks=2\u0026html5_jumbo_ull_subsegment_readahead_target=1.3\u0026html5_live_no_streaming_impedance_mismatch=true\u0026enable_static_font_size_on_text_only_preview=true\u0026bulleit_block_player_pause_until_ad_start=true\u0026send_html5_api_stats_ads_abandon=true\u0026disable_client_side_midroll_freq_capping_nonpc=true\u0026enable_html5_conversion_ve_reporting=true\u0026html5_disable_move_pssh_to_moov=true\u0026html5_no_placeholder_rollbacks=true\u0026html5_manifestless_shrink_timestamps=true\u0026web_player_api_logging_fraction=0.01\u0026html5_gl_fps_threshold=0\u0026html5_gapless_manage_live_readahead=true\u0026enable_live_premieres_vss_live_type_lp=true\u0026bulleit_web_dim_skip_using_css=true\u0026html5_pause_video_fix=true\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout=0.1\u0026html5_jumbo_ull_nonstreaming_mffa_ms=4000\u0026web_player_kaios_autoplay=true\u0026ima_disable_reset_active_media_load_timeout=true\u0026html5_live_disable_dg_pacing=true\u0026html5_prefer_low_quality_audio=true\u0026process_extensions_in_vast_wrappers_for_survey_ads=true\u0026sdk_wrapper_levels_allowed=0\u0026html5_vis_upgrades_are_resizes=true\u0026enable_composite_ad_player_presentation_for_bulleit=true\u0026html5_fallbacks_delay_primary_probes=true\u0026doubleclick_gpt_retagging=true\u0026web_player_response_overlay_parsing=false\u0026show_thumbnail_on_standard=true\u0026html5_background_cap_idle_secs=60\u0026release_player_on_abandon_for_bulleit_lr_ads_frontend=true\u0026html5_serverside_call_server_on_biscotti_error=true\u0026html5_limit_adaptation_requests=true\u0026html5_platform_whitelisted_for_frame_accurate_seeks=true\u0026html5_enable_ac3=true\u0026enable_ypc_clickwrap_on_living_room=true\u0026html5_suspend_loader=true\u0026html5_gapless_max_played_ranges=12\u0026html5_gapless_min_duration_ms=0\u0026visibility_error_html_dump_sample_rate=0.01\u0026sdk_ad_prefetch_time_seconds=-1\u0026bulleit_use_touch_events_for_skip=true\u0026tvhtml5_disable_live_prefetch=true\u0026legacy_autoplay_flag=true\u0026bulleit_mimic_ima_player_api_calls=true\u0026html5_connect_timeout_secs=7.0\u0026html5_msi_error_fallback=true\u0026html5_bmffparser_use_fast_read_string=true\u0026disable_annotations_cache_if_owner=true\u0026hide_preskip=true\u0026html5_playback_data_migration=true\u0026web_logging_max_batch=100\u0026desktop_action_companion_wta_support=true\u0026use_new_skip_icon=true\u0026disable_organic_cta_on_ad_playback=true\u0026interaction_screen_on_gel_web=true\u0026fixed_padding_skip_button=true\u0026set_interstitial_advertisers_question_text=true\u0026mpu_visible_threshold_count=2\u0026enable_embed_autoplay_delay=true\u0026html5_log_rebuffer_events=0\u0026ad_pod_disable_companion_persist_ads_quality=true\u0026html5_no_shadow_env_data_redux=true\u0026enable_on_skip_command_for_bulleit_living_room=true\u0026html5_gapless_no_requests_after_lock=true\u0026ima_video_ad_with_overlay_class_logging_percentage=0.01\u0026html5_optimality_migration=true\u0026html5_adjust_effective_request_size=true\u0026html5_creativeless_vast_on_ima=true\u0026web_player_attestation_auth_headers=true\u0026html5_jumbo_mobile_subsegment_readahead_target=3.0\u0026html5_subsegment_readahead_seek_latency_fudge=0.5\u0026bulleit_use_http_get_by_default_for_get_midroll_info=true\u0026forced_brand_precap_duration_ms=2000\u0026disable_client_side_midroll_freq_capping=true\u0026html5_av1_thresh_hcc=720\u0026uniplayer_dbp=true\u0026mweb_cougar=true\u0026html5_manifestless_interpolate=true\u0026mweb_muted_autoplay_animation=shrink\u0026enable_bulleit_for_mweb=true\u0026allow_poltergust_autoplay=true\u0026show_countdown_on_bumper=true\u0026html5_manifestless_always_redux=true\u0026html5_disable_audio_slicing=true\u0026html5_player_autonav_logging=true\u0026html5_disable_subscribe_new_vis=true\u0026html5_subsegment_readahead_min_buffer_health_secs=0.25\u0026html5_drm_output_restriction_retry_logic=true\u0026html5_disable_non_contiguous=true\u0026enable_cc_button_for_lasr=true\u0026use_always_dimmed_skip_in_bulleit_web=true\u0026html5_video_tbd_min_kb=0\u0026html5_elbow_tracking_tweaks=true\u0026html5_live_abr_repredict_fraction=0.0\u0026html5_stop_video_in_cancel_playback=true\u0026max_resolution_for_white_noise=360\u0026pass_biscotti_id_in_header_ajax=true\u0026html5_use_streaming_xhr_abort_support=true\u0026html5_variability_discount=0.5\u0026delay_bulleit_media_load_timer=true\u0026html5_enable_4k_hq_enc=true\u0026fast_autonav_in_background=true\u0026html5_get_video_info_timeout_ms=30000\u0026provide_default_wta_reasons=true\u0026tv_html5_bulleit_unify_adinfo=true\u0026html5_media_fullscreen=true\u0026html5_simple_buffered_bytes=true\u0026king_crimson_player_redux=true\u0026unplugged_tvhtml5_botguard_attestation=true\u0026segment_volume_reporting=true\u0026html5_disable_manifestless_sqless_sync=true\u0026html5_streaming_xhr_progress_includes_latest=true\u0026preskip_button_style_ads_backend=countdown_next_to_thumbnail\u0026lightweight_watch_video_swf=true\u0026player_unified_fullscreen_transitions=true\u0026html5_non_zero_gapless=true\u0026use_survey_skip_in_0s=true\u0026html5_aspect_from_adaptive_format=true\u0026html5_default_quality_cap=0\u0026dynamic_ad_break_seek_threshold_sec=0\u0026desktop_cleanup_companion_on_instream_begin=true\u0026html5_bandwidth_window_size=0\u0026bulleit_use_cue_video_to_reset_on_stop_ad=true\u0026defer_playability_status_fillers=true\u0026lasr_captions_holdback_counterfactual_id=0\u0026web_gel_debounce_ms=10000\u0026html5_gapless_preloading=true\u0026enable_bulleit_mweb_gaming_ui=true\u0026call_release_video_in_bulleit=true\u0026video_to_ad_use_gel=true\u0026bulleit_use_video_end_cuerange_for_completion=true\u0026web_player_sentinel_is_uniplayer=true\u0026html5_quality_cap_min_age_secs=0\u0026flex_theater_mode=true\u0026disable_new_pause_state3=true\u0026fix_bulleit_cue_range_seek=true\u0026html5_new_vis_fullscreen_and_airplay=true\u0026show_interstitial_for_3s=true\u0026html5_delay_initial_loading=true\u0026enable_client_monitoring_for_bulleit_adplacement_schedule=true\u0026html5_tv_bearer=true\u0026html5_serverside_call_server_on_biscotti_timeout=true\u0026desktop_shopping_companion_wta_support=true\u0026html5_reuse_loader=true\u0026use_refreshed_overlay_buttons=true\u0026html5_hls_min_video_height=0\u0026bulleit_use_video_ad_div_as_overlay_container=true\u0026web_player_assume_format3_available=true\u0026allow_midrolls_on_watch_resume_in_bulleit=true\u0026html5_skip_widevine_innertube_drm_heartbeats=true\u0026html5_serverside_biscotti_id_wait_ms=1000\u0026mweb_playsinline=true\u0026html5_disable_vp8_only_browsers=true\u0026html5_live_pin_to_tail=true\u0026kevlar_miniplayer=true\u0026enable_ad_pod_specific_ui=true\u0026html5_av1_thresh_lcc=360\u0026delay_ads_gvi_call_on_bulleit_living_room_ms=0\u0026html5_gapless_skip_remove=true\u0026tvhtml5_min_readbehind_secs=20\u0026html5_use_adaptive_live_readahead=true\u0026html5_peak_shave=true\u0026enable_kevlar_action_companion_cleanup=true\u0026web_player_response_ypc_parsing=true\u0026html5_live_quality_cap=0\u0026html5_firefox_ambisonic_opus=true\u0026ad_video_end_renderer_duration_milliseconds=7000\u0026html5_enable_embedded_player_visibility_signals=true\u0026dash_manifest_version=5\u0026html5_disable_extra_update_resource=true\u0026html5_request_size_min_secs=0.0\u0026html5_show_stats_nerds_debug_info=true\u0026desktop_videowall_companion_wta_support=true\u0026html5_vss_live_mode_killswitch=true\u0026html5_store_xhr_headers_readable=true\u0026html5_disable_vod_timestamp_rewriting=true\u0026html5_av1_ads=true\u0026player_destroy_old_version=true\u0026set_default_wta_if_missing_for_externs=true\u0026html5_streaming_xhr_buffer_mdat=true\u0026html5_min_readbehind_cap_secs=60\u0026html5_stop_start_seconds=true\u0026html5_ignore_updates_before_initial_ping=true\u0026html5_streaming_xhr_optimize_lengthless_mp4=true\u0026html5_use_media_capabilities=true\u0026ensure_only_one_ads_termination_ping_for_bulleit=true\u0026html5_background_quality_cap=360\u0026html5_incremental_parser_buffer_extra_bytes=16384\u0026html5_minimum_readahead_seconds=0.0\u0026skip_ad_button_with_thumbnail=true\u0026mweb_add_ad_info_button_on_fullscreen_only_devices=true\u0026hfr_dropped_framerate_fallback_threshold=0\u0026ad_duration_threshold_for_showing_endcap_seconds=15\u0026html5_desktop_vr180_allow_panning=true\u0026html5_request_size_padding_secs=3.0\u0026html5_exile_broken_instances=true\u0026html5_live_abr_head_miss_fraction=0.0\u0026use_full_timing_library=true\u0026html5_dont_predict_end_time_in_past=true\u0026web_player_response_playback_tracking_parsing=true\u0026html5_reason_reporting_migration=true\u0026use_local_interactions_library=true\u0026html5_vp9_live_whitelist=true\u0026embed_new_info_bar=true\u0026variable_buffer_timeout_living_room_ms=0\u0026html5_no_audio_append_cap=true\u0026log_playback_associated_web=true\u0026mweb_cougar_big_controls=true\u0026html5_deadzone_multiplier=1.0\u0026enable_vss_type_post=true\u0026html5_ultra_low_latency_streaming_responses=true\u0026external_fullscreen_with_edu=true\u0026preskip_countdown_font_size=\u0026html5_disable_preserve_reference=true\u0026html5_ad_no_buffer_abort_after_skippable=true\u0026html5_tight_max_buffer_allowed_bandwidth_stddevs=0.0\u0026html5_live_normal_latency_bandwidth_window=0.0\u0026bulleit_round_up_tsla=true\u0026html5_min_secs_between_format_selections=8.0\u0026set_interstitial_start_button=true\u0026interaction_click_on_gel_web=true\u0026html5_sticky_reduces_discount_by=0.0\u0026show_interstitial_white=true\u0026html5_vp9_live_blacklist_edge=true\u0026html5_manifestless_synchronized=true\u0026html5_get_video_info_promiseajax=true\u0026html5_unrewrite_timestamps=true\u0026html5_bulleit_handle_gained_paused_state=true\u0026html5_ignore_public_setPlaybackQuality=true\u0026bulleit_publish_external_playback_events=true\u0026fix_gpt_pos_params=true\u0026html5_preload_media=true\u0026enable_bulleit_ve_single_clickthrough=true\u0026html5_min_buffer_to_resume=6\u0026mweb_muted_autoplay=true\u0026turn_down_serialized_player_request_for_bulleit_living_room=true\u0026html5_av1_thresh_arm=240","innertube_api_key":"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8","use_fast_sizing_on_watch_default":false,"cr":"DE","use_miniplayer_ui":"1","external_fullscreen":true,"innertube_api_version":"v1","transparent_background":"1","fexp":"23718324,23744176,23751767,23757411,23788840,23788875,23793834,23804281,23805410,23811378,23813548,23816462,23818122,23818585,23823448,23823751,23827085,23827174,9449243,9471239","host_language":"en","gapi_hint_params":"m;\/_\/scs\/abc-static\/_\/js\/k=gapi.gapi.en.JNa9MntajDY.O\/d=1\/rs=AHpOoo_db4DX0hhorP4qsjM6Ki5qzOgeUA\/m=__features__","innertube_context_client_version":"2.20190718","show_miniplayer_button":"1","hl":"en_US","ps":"desktop-polymer","enablejsapi":"1"},"assets":{"css":"\/yts\/cssbin\/player-vfl38dkD8\/www-player-2x-webp.css","js":"\/yts\/jsbin\/player_ias-vflFxFa3y\/en_US\/base.js"},"attrs":{"id":"movie_player"}};
var fillerData = {
browse: {
filler: true,
page: 'browse'
},
home: {
filler: true,
page: 'home',
endpoint: {
commandMetadata: {
webCommandMetadata: {
url: "/",
webPageType: "WEB_PAGE_TYPE_BROWSE"
}
},
urlEndpoint: {
url: "/"
}
},
response: {
contents: {
twoColumnBrowseResultsRenderer: {
tabs: [{
tabRenderer: {
selected: true,
content: {
sectionListRenderer: {
contents: [],
continuations: [{
nextContinuationData: {continuation: ''}
}]
}
}
}
}]
}
}
}
},
search: {
filler: true,
page: 'search',
endpoint: {
commandMetadata: {
webCommandMetadata: {
url: "/results",
webPageType: "WEB_PAGE_TYPE_SEARCH"
}
},
urlEndpoint: {
url: "/results"
}
},
response: {
contents: {
twoColumnSearchResultsRenderer: {
primaryContents: {
sectionListRenderer: {
contents: [],
subMenu: {
searchSubMenuRenderer: {}
}
}
},
secondaryContents: {
secondarySearchContainerRenderer: {
contents: []
}
}
}
}
}
},
watch: {
filler: true,
page: 'watch',
endpoint: {
commandMetadata: {
webCommandMetadata: {
url: "/watch",
webPageType: "WEB_PAGE_TYPE_WATCH"
}
},
urlEndpoint: {
url: "/watch"
}
},
playerResponse: {
playabilityStatus: {
status: 'OK'
}
},
response: {
contents: {
twoColumnWatchNextResults: {
results: {
results: {
contents: [{
videoPrimaryInfoRenderer: {},
videoSecondaryInfoRenderer: {}
}]
}
},
secondaryResults: {
secondaryResults: {}
}
}
}
}
},
player: blankSwfConfig
};

window.ytcfg.set('FILLER_DATA', fillerData);
};

window.getPageData = function() {
if (window.ytcsi) {window.ytcsi.tick("pr", null, '');}
var endpoint = null;
endpoint = {"commandMetadata":{"webCommandMetadata":{"url":"/watch?v=qkdXAtO40Fo\u0026t=18s","webPageType":"WEB_PAGE_TYPE_WATCH"}},"urlEndpoint":{"url":"/watch?v=qkdXAtO40Fo\u0026t=18s"}};
var data = {
page: "watch",
player: ytplayer.config,
playerResponse: window.ytInitialPlayerResponse,
url: "\/watch?v=qkdXAtO40Fo\u0026t=18s",
csn: "zyozXcuXGJPI1wLmga2ICw",
response: window.ytInitialData,
endpoint: endpoint
};
return {
data: data,
endpoint: endpoint
};
};

if (window.loadDataHook) {
var pageData = window.getPageData();
window.loadDataHook(pageData.endpoint, pageData.data);
window.loadDataHook = null;
}
setFiller();

document.title = "Baby Loves Cat - YouTube";

})();

var meta = document.createElement('meta');
meta.name = 'referrer';
meta.content = 'origin-when-cross-origin';
document.getElementsByTagName('head')[0].appendChild(meta);
</script>
<span style="display:none" id="legal-help-page">
Go to the <a href="https://www.google.com/support/legal/answer/3110420">Legal Help page</a> to request content changes for legal reasons.
</span>

<script >if (window.ytcsi) {window.ytcsi.info("st", 817, '');}</script></body></html>
\ No newline at end of file diff --git a/backend/src/schema/resolvers/embeds/snapshots/oembed/babyLovesCat.json b/backend/src/schema/resolvers/embeds/snapshots/oembed/babyLovesCat.json deleted file mode 100644 index c4af9f45a..000000000 --- a/backend/src/schema/resolvers/embeds/snapshots/oembed/babyLovesCat.json +++ /dev/null @@ -1 +0,0 @@ -{"type":"video","provider_url":"https:\/\/www.youtube.com\/","thumbnail_url":"https:\/\/i.ytimg.com\/vi\/qkdXAtO40Fo\/hqdefault.jpg","author_name":"Merkley Family","title":"Baby Loves Cat","thumbnail_width":480,"width":480,"version":"1.0","html":"\u003ciframe width=\"480\" height=\"270\" src=\"https:\/\/www.youtube.com\/embed\/qkdXAtO40Fo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen\u003e\u003c\/iframe\u003e","thumbnail_height":360,"height":270,"author_url":"https:\/\/www.youtube.com\/channel\/UC5P8yei950tif7UmdPpkJLQ","provider_name":"YouTube"} \ No newline at end of file From 3d7a30d4190308a0a0c6b6f5d646d1f0b4a37d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 21 Jul 2019 22:20:44 +0200 Subject: [PATCH 090/131] Remove `metascraper-logo-favicon` altogether It's doing http requests which are hard to test and hard to maintain. Therefore let's remove it until we really need it. --- backend/package.json | 1 - backend/src/schema/resolvers/embeds.spec.js | 2 -- .../src/schema/resolvers/embeds/scraper.js | 25 +++++++++---------- backend/src/schema/types/embed.gql | 1 - backend/yarn.lock | 9 ------- 5 files changed, 12 insertions(+), 26 deletions(-) diff --git a/backend/package.json b/backend/package.json index 60553c719..c9cd0181c 100644 --- a/backend/package.json +++ b/backend/package.json @@ -81,7 +81,6 @@ "metascraper-lang": "^4.8.5", "metascraper-lang-detector": "^4.8.5", "metascraper-logo": "^5.5.0", - "metascraper-logo-favicon": "^4.8.5", "metascraper-publisher": "^4.8.5", "metascraper-soundcloud": "^5.5.3", "metascraper-title": "^4.8.5", diff --git a/backend/src/schema/resolvers/embeds.spec.js b/backend/src/schema/resolvers/embeds.spec.js index 2170048ed..6414fbd8f 100644 --- a/backend/src/schema/resolvers/embeds.spec.js +++ b/backend/src/schema/resolvers/embeds.spec.js @@ -58,7 +58,6 @@ describe('Query', () => { audio video lang - logo sources html } @@ -92,7 +91,6 @@ describe('Query', () => { audio: null, video: null, lang: 'de', - logo: 'https://www.youtube.com/favicon.ico', sources: ['resource', 'oembed'], html: '', diff --git a/backend/src/schema/resolvers/embeds/scraper.js b/backend/src/schema/resolvers/embeds/scraper.js index 5a6da8eba..11a70e362 100644 --- a/backend/src/schema/resolvers/embeds/scraper.js +++ b/backend/src/schema/resolvers/embeds/scraper.js @@ -16,7 +16,6 @@ const metascraper = Metascraper([ require('metascraper-lang')(), require('metascraper-lang-detector')(), require('metascraper-logo')(), - require('metascraper-logo-favicon')(), // require('metascraper-clearbit-logo')(), require('metascraper-publisher')(), require('metascraper-title')(), @@ -37,16 +36,16 @@ oEmbedProvidersFile = oEmbedProvidersFile.replace('{format}', 'json') const oEmbedProviders = JSON.parse(oEmbedProvidersFile) -const fetchEmbed = async targetUrl => { +const fetchEmbed = async url => { const provider = oEmbedProviders.find(provider => { - return provider.provider_url.includes(targetUrl.hostname) + return provider.provider_url.includes(url.hostname) }) if (!provider) return {} const { endpoints: [endpoint], } = provider const endpointUrl = new URL(endpoint.url) - endpointUrl.searchParams.append('url', targetUrl) + endpointUrl.searchParams.append('url', url) endpointUrl.searchParams.append('format', 'json') const response = await fetch(endpointUrl) const json = await response.json() @@ -61,26 +60,26 @@ const fetchEmbed = async targetUrl => { return { type, html, author: author_name, date: upload_date, sources } } -const fetchMeta = async targetUrl => { - const response = await fetch(targetUrl) +const fetchMeta = async url => { + const response = await fetch(url) const html = await response.text() - const metadata = await metascraper({ html, url: targetUrl }) + const metadata = await metascraper({ html, url }) return { - sources: ['resource'], type: 'link', + sources: ['resource'], ...metadata, } } -export default async function scrape(targetUrl) { - targetUrl = new URL(targetUrl) - if (targetUrl.hostname === 'youtu.be') { +export default async function scrape(url) { + url = new URL(url) + if (url.hostname === 'youtu.be') { // replace youtu.be to get proper results - targetUrl.hostname = 'youtube.com' + url.hostname = 'youtube.com' } - const [meta, embed] = await Promise.all([fetchMeta(targetUrl), fetchEmbed(targetUrl)]) + const [meta, embed] = await Promise.all([fetchMeta(url), fetchEmbed(url)]) const output = mergeWith(meta, embed, (objValue, srcValue) => { if (isArray(objValue)) { diff --git a/backend/src/schema/types/embed.gql b/backend/src/schema/types/embed.gql index b4090e44f..d59f696b2 100644 --- a/backend/src/schema/types/embed.gql +++ b/backend/src/schema/types/embed.gql @@ -10,7 +10,6 @@ type Embed { audio: String video: String lang: String - logo: String html: String sources: [String] } diff --git a/backend/yarn.lock b/backend/yarn.lock index f7925ebab..e769990a5 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5691,15 +5691,6 @@ metascraper-lang@^4.8.5: dependencies: "@metascraper/helpers" "^4.10.2" -metascraper-logo-favicon@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-logo-favicon/-/metascraper-logo-favicon-4.10.2.tgz#b85176ee72b6d066a398661cc418140b7935deb7" - integrity sha512-CKdeaeIChTqRKQmd9pXSax9Us3bqWGdhKGkU2drgKptrcigsudjEp2rTyv5lDGDeMHLLD21xx7KuYr/R0Ysxtw== - dependencies: - "@metascraper/helpers" "^4.10.2" - got "~9.6.0" - lodash "~4.17.11" - metascraper-logo@^5.5.0: version "5.6.2" resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.6.2.tgz#2677d3d00dc716cf8a62741e0b1770e93c201439" From 657a5ac1f59861a205ddfc21bc72ff3801c8fad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 21 Jul 2019 23:31:44 +0200 Subject: [PATCH 091/131] Fix resolve function returns undefind I'm also trying to make sense of the attribute `sources` - probably it's indicating where the data is coming from. --- backend/src/jest/snapshots/embeds/pr960.html | 10042 ++++++++++++++++ backend/src/middleware/index.js | 2 +- backend/src/schema/resolvers/embeds.spec.js | 41 +- .../src/schema/resolvers/embeds/scraper.js | 54 +- 4 files changed, 10116 insertions(+), 23 deletions(-) create mode 100644 backend/src/jest/snapshots/embeds/pr960.html diff --git a/backend/src/jest/snapshots/embeds/pr960.html b/backend/src/jest/snapshots/embeds/pr960.html new file mode 100644 index 000000000..9b564f09a --- /dev/null +++ b/backend/src/jest/snapshots/embeds/pr960.html @@ -0,0 +1,10042 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Editor embeds merge in nitro embed by mattwr18 · Pull Request #960 · Human-Connection/Human-Connection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Skip to content +
+ + + + + + + + + + +
+ +
+ + +
+ +
+ + + +
+
+
+ + + + + + + + + + + + + + + +
+
+ +
    + + + + + +
  • + +
    + +
    + + + Unwatch + + +
    + Notifications +
    +
    + + + + + + + +
    +
    +
    + +
    +
  • + +
  • +
    +
    + + +
    +
    + + +
    + +
  • + +
  • +
    + + Fork + +
    + +

    Fork Human-Connection

    +
    +
    + +
    +

    If this dialog fails to load, you can visit the fork page directly.

    +
    +
    +
    +
    + + +
  • +
+ +

+ + /Human-Connection + + + + + + + + + +
+
+ + Select a Repo + + shift + + + z + + +
+
+
+
+ +
+
+ + +
+ Switch repository + + + + +
+ + +
+
+ +
+
+ + + +
+ Loading your repositories... +
+ + +
+
+
/Nitro +
+ + +

+ +
+ + + + +
+
+
+ + + +
+ + + + +
+ + +
+ +
+
+
+ + +
+ +

+ + Editor embeds merge in nitro embed + + #960 +

+
+ +
+
+ + + +
+
+
+ + + Open + + + +
+
+ + + wants to merge + 55 + commits into + + + + + +
+
+ + base: + master + + + + + + +
+
+ +
+ +from + + + + + +
+
+ + + +
+
+ + + + + + + +

Conversation

+
+ +
+ +
Pipelines
+ + + + + + + + +
+
+ +
+ + + + Projects + + +
+
+ Projects + +
+ +
+ +
+
+ +
+
+
+ + + + None yet + + +
+ +
Not inside a Release
+ + + +
+
+ +
+ 4 participants +
+ +
+
+ + + +
+
+ + + Lock conversation + + +
+
+ +

+ Lock conversation on this pull request +

+
+
+
    +
  • Other users can’t add new comments to this pull request.
  • +
  • + You and other members of teams with + write access + to this repository can still leave comments that others can see. +
  • +
  • You can always unlock this pull request again in the future.
  • +
+ +
+
+ +
+
+ +

+ Optionally, choose a reason for locking that others can see. Learn more about when + it’s appropriate to lock conversations. +

+
+
+
+ +
+
+
+ + + + + + +
+ +
+ +
+
+ + +
+ Move issue to another repository + + + + + +
+ + + + +
+
+ +
+
+ + +
+
+ Loading your repositories... +
+
+
+
+
+
+ + + +
+
+ + +
+ +
+
+ + +
+ + + +
+ @mattwr18 + +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
+ + + + + + +
+

+ Pick your reaction +

+ + + +
+ + + + + + + + + + +
+
+ +
+ + + + +
+ + + + + + Copy link + + + + + + + + + + + + Report abuse + + + +
+ +
+ + + + + Member + + + + + + +

+ + + + + commented + + + 18 days ago + + + + +

+
+ + +
+ + + + + + + + + +
+

cake Pullrequest

+ +

Issues

+ + +
+
+ + + + +
+
+ +
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+ +
Editor embeds merge in nitro embed hasno dependencies
+ + + + +
+ + + + +
+ + +
+

+ + + + + appinteractive + and others + added some commits + + on Dec 27, 2018 + +

+
+
+ + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + cc06d53 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + +
+ + Create README.md + + + +
+ +
+ + + +
+ +
+
+ +
+ + 3b49e9f + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + 18bfc85 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + f44121b + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + 32fad61 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + f8f0ff3 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + 8e71c27 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + +
+ + Improved readme + + + +
+ +
+ + + +
+ +
+
+ +
+ + 053cc86 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + 9ddf89d + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + +
+ + Upgraded screenshot + + + +
+ +
+ + + +
+ +
+
+ +
+ + c310644 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + 296fc5a + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-bot +
+
+ + + +
+ + Bump got from 9.5.0 to 9.6.0 + + + + + +
Bumps [got](https://github.com/sindresorhus/got) from 9.5.0 to 9.6.0.
+- [Release notes](https://github.com/sindresorhus/got/releases)
+- [Commits](sindresorhus/got@v9.5.0...v9.6.0)
+
+Signed-off-by: dependabot[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + 6461a43 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-bot +
+
+ + + +
+ + Bump metascraper from 4.8.5 to 4.10.3 + + + + + +
Bumps [metascraper](https://github.com/microlinkhq/metascraper) from 4.8.5 to 4.10.3.
+- [Release notes](https://github.com/microlinkhq/metascraper/releases)
+- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
+- [Commits](microlinkhq/metascraper@v4.8.5...v4.10.3)
+
+Signed-off-by: dependabot[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + f228eb3 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @appinteractive +
+
+ + + +
+ + Update README.md + + + +
+ +
+ + + +
+ +
+
+ +
+ + d3624ab + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-description from 4.8.5 to 5.5.0 + + + + + +
Bumps [metascraper-description](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0.
+- [Release notes](https://github.com/microlinkhq/metascraper/releases)
+- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
+- [Commits](microlinkhq/metascraper@v4.8.5...v5.5.0)
+
+Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + 2a81c5b + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #7 from Human-Connection/dependabot/npm_and_yarn/g… + + + + + +
…ot-9.6.0
+
+Bump got from 9.5.0 to 9.6.0
+ +
+ +
+ + + +
+ +
+
+ +
+ + 2e66ee4 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #17 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-4.10.3
+
+Bump metascraper from 4.8.5 to 4.10.3
+ +
+ +
+ + + +
+ +
+
+ +
+ + b7e7f22 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-clearbit-logo from 4.8.5 to 5.3.0 + + + + + +
Bumps [metascraper-clearbit-logo](https://github.com/microlinkhq/metascraper-clearbit-logo) from 4.8.5 to 5.3.0.
+- [Release notes](https://github.com/microlinkhq/metascraper-clearbit-logo/releases)
+- [Commits](https://github.com/microlinkhq/metascraper-clearbit-logo/commits)
+
+Signed-off-by: dependabot[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + 4ceff96 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-video from 4.8.5 to 5.5.0 + + + + + +
Bumps [metascraper-video](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0.
+- [Release notes](https://github.com/microlinkhq/metascraper/releases)
+- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
+- [Commits](microlinkhq/metascraper@v4.8.5...v5.5.0)
+
+Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + 69b1a25 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-logo from 4.8.5 to 5.5.0 + + + + + +
Bumps [metascraper-logo](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0.
+- [Release notes](https://github.com/microlinkhq/metascraper/releases)
+- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
+- [Commits](microlinkhq/metascraper@v4.8.5...v5.5.0)
+
+Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + b7ef87e + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-audio from 4.8.5 to 5.5.0 + + + + + +
Bumps [metascraper-audio](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0.
+- [Release notes](https://github.com/microlinkhq/metascraper/releases)
+- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
+- [Commits](microlinkhq/metascraper@v4.8.5...v5.5.0)
+
+Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + 82dcc99 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + + + +
+ + + +
+ +
+
+ +
+ + af8ed1c + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-description from 4.8.5 to 5.5.0 + + + + + +
Bumps [metascraper-description](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0.
+- [Release notes](https://github.com/microlinkhq/metascraper/releases)
+- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
+- [Commits](microlinkhq/metascraper@v4.8.5...v5.5.0)
+
+Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + d1efdad + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-url from 4.8.5 to 5.5.0 + + + + + +
Bumps [metascraper-url](https://github.com/microlinkhq/metascraper) from 4.8.5 to 5.5.0.
+- [Release notes](https://github.com/microlinkhq/metascraper/releases)
+- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
+- [Commits](microlinkhq/metascraper@v4.8.5...v5.5.0)
+
+Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + b8725f1 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge branch 'master' of github.com:Human-Connection/Nitro-Embed into… + + + + + +
… dependabot/npm_and_yarn/metascraper-description-5.5.0
+ +
+ +
+ + +
+ +
+
+ +
+ + 05db6fe + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge branch 'dependabot/npm_and_yarn/metascraper-description-5.5.0' … + + + + + +
…of github.com:Human-Connection/Nitro-Embed into dependabot/npm_and_yarn/metascraper-description-5.5.0
+ +
+ +
+ + +
+ +
+
+ +
+ + bc9c21c + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #67 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-description-5.5.0
+
+Bump metascraper-description from 4.8.5 to 5.5.0
+ +
+ +
+ + + +
+ +
+
+ +
+ + d633331 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #25 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-clearbit-logo-5.3.0
+
+Bump metascraper-clearbit-logo from 4.8.5 to 5.3.0
+ +
+ +
+ + + +
+ +
+
+ +
+ + acfc956 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #69 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-logo-5.5.0
+
+Bump metascraper-logo from 4.8.5 to 5.5.0
+ +
+ +
+ + + +
+ +
+
+ +
+ + a22edd9 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #71 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-audio-5.5.0
+
+Bump metascraper-audio from 4.8.5 to 5.5.0
+ +
+ +
+ + + +
+ +
+
+ +
+ + 0e89f27 + +
+
+ + +
+
+
+ + +
+ + + + + +
+ + +
+

+ + + + + mattwr18 + and others + added some commits + + 19 days ago + +

+
+
+ + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #72 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-video-5.5.0
+
+Bump metascraper-video from 4.8.5 to 5.5.0
+ +
+ +
+ + + +
+ +
+
+ +
+ + 46edb24 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @dependabot-preview +
+
+ + + +
+ + Bump metascraper-soundcloud from 4.8.5 to 5.5.3 + + + + + +
Bumps [metascraper-soundcloud](https://github.com/microlinkhq/metascraper-soundcloud) from 4.8.5 to 5.5.3.
+- [Release notes](https://github.com/microlinkhq/metascraper-soundcloud/releases)
+- [Commits](https://github.com/microlinkhq/metascraper-soundcloud/commits)
+
+Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
+ +
+ +
+ + + +
+ +
+
+ +
+ + 721c75e + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge branch 'master' of github.com:Human-Connection/Nitro-Embed into… + + + + + +
… dependabot/npm_and_yarn/metascraper-url-5.5.0
+ +
+ +
+ + +
+ +
+
+ +
+ + 93e82de + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #73 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-url-5.5.0
+
+Bump metascraper-url from 4.8.5 to 5.5.0
+ +
+ +
+ + + +
+ +
+
+ +
+ + 27eb5a2 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #75 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…apollo-server-2.6.7
+
+Bump apollo-server from 2.3.1 to 2.6.7
+ +
+ +
+ + + +
+ +
+
+ +
+ + 638f1f3 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge pull request #76 from Human-Connection/dependabot/npm_and_yarn/… + + + + + +
…metascraper-soundcloud-5.5.3
+
+Bump metascraper-soundcloud from 4.8.5 to 5.5.3
+ +
+ +
+ + + +
+ +
+
+ +
+ + 5091fe5 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + + + +
+ + +
+ +
+
+ +
+ + 089b07c + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + + + +
+ + +
+ +
+
+ +
+ + cc6819e + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + + + +
+ + +
+ +
+
+ +
+ + 7a3694a + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + +
+ + Merge in Nitro-Embed + + + +
+ +
+ + +
+ +
+ +
+ + + + +
+ + +
+ +
+ + eabb58e + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @mattwr18 +
+
+ + + + + +
+ + +
+ +
+ +
+ + + + +
+ + +
+ +
+ + ed658e9 + +
+
+ + +
+
+
+ + +
+ + + +
+ + +
+ + + +
+ @codecov + +
+ + + +
+
+ + + + +
+ +
+

+ This comment has been minimized. + +

+
Show comment
+
Hide comment
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + Copy link + + + + + + + + +
+ + +
+
+ + +
+ + + + Report abuse + +
+ Block user + + + +
+ + + +
+
+ +
+ @codecov +
+

+ + + + codecov + bot + + + + 18 days ago + +

+ + + + +
+

Codecov Report

+
+

exclamation No coverage uploaded for pull request base (master@324330a). Click here to learn what that means.
+The diff coverage is n/a.

+
+
+
+
+
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
+ + + + + + +
+

+ Pick your reaction +

+ + + +
+ + + + + + + + + + +
+
+ +
+ + + + +
+ + + + + + Copy link + + + + + + +
+ + + Reference in new issue + + +
+ +

Reference in new issue

+
+ +
+ +
+
+
+
+
+ + + Human-Connection + + +
+ Repositories +
+
+
+ + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+ + + + + + + +
+ + +
+ + + + Report abuse + +
+ Block user + + + +
+ + + +
+
+ +
+ + + + + + + + +

+ + + + + commented + + + 18 days ago + + + + +

+
+ + +
+
+ + +
+ +

Choose a reason for hiding this comment

+

The reason will be displayed to describe this comment to others. Learn more.

+
+ + + +
+ +
+ + + + + + + + + +
+

Codecov Report

+
+

exclamation No coverage uploaded for pull request base (master@324330a). Click here to learn what that means.
+The diff coverage is n/a.

+
+
+
+ + + + +
+
+ +
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+ + +
+ + +
+ + + + +
+ +
+

+ + + + @mattwr18 + mattwr18 + + + referenced this pull request + + 16 days ago + +

+ + + + + Closed + + + + + + +

+ + Editor embeds + #953 +

+ + + + + + + +
+ + + +
+ + + +
+ + +
+ + + +
+ @mattwr18 + +
+ + + +
+
+ + + + +
+ +
+

+ This comment has been minimized. + +

+
Show comment
+
Hide comment
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + Copy link + + + + + + + + +
+ + +
+
+ + +
+ + + + Report abuse + + +
+
+ +
+ @mattwr18 +
+

+ + + + mattwr18 + + + + + 9 days ago + +

+ + + Member + + + + Author + + + +
+

does this look ok @roschaefer? I used tomono, but because I already had a repo with the name Human-Connection, I needed to remove it and recreate it with the merged commit history. This caused some small issues for me locally, but I think others won't face the same.

+

The files changed and commit history look good to me

+
+
+
+
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
+ + + + + + +
+

+ Pick your reaction +

+ + + +
+ + + + + + + + + + +
+
+ +
+ + + + +
+ + + + + + Copy link + + + + + + +
+ + + Reference in new issue + + +
+ +

Reference in new issue

+
+ +
+ +
+
+
+
+
+ + + Human-Connection + + +
+ Repositories +
+
+
+ + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+ + + + + + + +
+ + +
+ + + + Report abuse + + +
+
+ +
+ + + + + Member + + + + + Author + + + + +

+ + + + + commented + + + 9 days ago + + + + +

+
+ + +
+
+ + +
+ +

Choose a reason for hiding this comment

+

The reason will be displayed to describe this comment to others. Learn more.

+
+ + + +
+ +
+ + + + + + + + + +
+

does this look ok @roschaefer? I used tomono, but because I already had a repo with the name Human-Connection, I needed to remove it and recreate it with the merged commit history. This caused some small issues for me locally, but I think others won't face the same.

+

The files changed and commit history look good to me

+
+
+ + + + +
+
+ +
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+ + +
+ + +
+ + + + +
+ + +
+
+
+ + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Merge remote-tracking branch 'origin/master' into 256-editor-embeds-m… + + + + + +
…erge-in-nitro-embed
+ +
+ +
+ + +
+ +
+
+ +
+ + b745908 + +
+
+ + +
+
+
+ + +
+ + + +
+ + +
+ + + +
+ @roschaefer + +
+ + + +
+
+ + + + +
+ +
+

+ This comment has been minimized. + +

+
Show comment
+
Hide comment
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + Copy link + + + + + + + + +
+ + +
+
+ + +
+ +
+
+ +
+ @roschaefer +
+

+ + + + roschaefer + + + + + 5 days ago + +

+ + + Member + + + + +
+

@mattwr18 this looks good, but could sb. explain me why this is a separate service and not just another resolver in our backend?

+

@appinteractive maybe?

+
+
+
+
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
+ + + + + + +
+

+ Pick your reaction +

+ + + +
+ + + + + + + + + + +
+
+ +
+ + + + +
+ + + + + + Copy link + + + + + + +
+ + + Reference in new issue + + +
+ +

Reference in new issue

+
+ +
+ +
+
+
+
+
+ + + Human-Connection + + +
+ Repositories +
+
+
+ + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+ + + + + + + +
+ + +
+ +
+
+ +
+ + + + + Member + + + + + + +

+ + + + + commented + + + 5 days ago + + + + +

+
+ + +
+
+ + +
+ +

Choose a reason for hiding this comment

+

The reason will be displayed to describe this comment to others. Learn more.

+
+ + + +
+ +
+ + + + + + + + + +
+

@mattwr18 this looks good, but could sb. explain me why this is a separate service and not just another resolver in our backend?

+

@appinteractive maybe?

+
+
+ + + + +
+
+ +
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+ + +
+ + +
+ + + + +
+ + +
+ + + +
+ @mattwr18 + +
+ + + +
+
+ + + + +
+ +
+

+ This comment has been minimized. + +

+
Show comment
+
Hide comment
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + Copy link + + + + + + + + +
+ + +
+
+ + +
+ + + + Report abuse + + +
+
+ +
+ @mattwr18 +
+

+ + + + mattwr18 + + + + + 5 days ago + +

+ + + Member + + + + Author + + + +
+

I think it could be, I thought the same thing myself @roschaefer

+
+
+
+
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
+ + + + + + +
+

+ Pick your reaction +

+ + + +
+ + + + + + + + + + +
+
+ +
+ + + + +
+ + + + + + Copy link + + + + + + +
+ + + Reference in new issue + + +
+ +

Reference in new issue

+
+ +
+ +
+
+
+
+
+ + + Human-Connection + + +
+ Repositories +
+
+
+ + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+ + + + + + + +
+ + +
+ + + + Report abuse + + +
+
+ +
+ + + + + Member + + + + + Author + + + + +

+ + + + + commented + + + 5 days ago + + + + +

+
+ + +
+
+ + +
+ +

Choose a reason for hiding this comment

+

The reason will be displayed to describe this comment to others. Learn more.

+
+ + + +
+ +
+ + + + + + + + + +
+

I think it could be, I thought the same thing myself @roschaefer

+
+
+ + + + +
+
+ +
+ +
+
+ +
+ + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + +

+ The content you are editing has changed. Please try again. +

+ + +
+ + + + + + + + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+ + +
+
+
+

Nothing to preview

+
+
+ +
+ +
+ + + + +
+ + +
+
+ + +
+ +
+
+ + +
+ + +
+ + + + +
+ + +
+

+ + + + + roschaefer + + added some commits + + 2 days ago + +

+
+
+ + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Merge remote-tracking branch 'origin/master' into 256-editor-embeds-m… + + + + + +
…erge-in-nitro-embed
+ +
+ +
+ + +
+ +
+
+ +
+ + b3712d9 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + + + +
+ + +
+ +
+
+ +
+ + d4c3b7a + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + + + +
+ + +
+ +
+
+ +
+ + 2e6ea62 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + + + +
+ + +
+ +
+ +
+ + + + +
+ + +
+ +
+ + f82b2c3 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + + + +
+ + +
+ +
+ +
+ + + + +
+ + +
+ +
+ + 17ccbce + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Fix lint + + + +
+ +
+ + +
+ +
+ +
+ + + + +
+ + +
+ +
+ + 73e879e + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Merge branch 'master' of github.com:Human-Connection/Human-Connection… + + + + + +
… into 256-editor-embeds-merge-in-nitro-embed
+ +
+ +
+ + +
+ +
+
+ +
+ + 7a9d933 + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Remove obscure `embed` attribute and remove cache + + + + + +
The cache is a possible memory leak: It grows over time and never gets
+cleaned.
+ +
+ +
+ + +
+ +
+
+ +
+ + d81c38c + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Start to mock+test embeds resolver + + + + + +
+ Put oembed providers into a file
++ Add test snapshots
++ Remove unnecessary request-native dependency
+ +
+ +
+ + +
+ +
+
+ +
+ + f5730fc + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + + + +
+ + +
+ +
+
+ +
+ + 579ec7e + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Add npm script to run tests without http servers + + + + + +
Remove this script once we refactored all tests to use
+`apollo-server-testing`.
+ +
+ +
+ + +
+ +
+
+ +
+ + d7d2c2e + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + + + +
+ + +
+ +
+ +
+ + + + +
+ + +
+ +
+ + 75743ca + +
+
+ + + + +
+ +
+ +
+ + +
+
+ + @roschaefer +
+
+ + + +
+ + Remove `metascraper-logo-favicon` altogether + + + + + +
It's doing http requests which are hard to test and hard to maintain.
+Therefore let's remove it until we really need it.
+ +
+ +
+ + +
+ +
+ +
+ + + + +
+ + +
+ +
+ + 3d7a30d + +
+
+ + +
+
+
+ + +
+ + + + + +
+
+ +
+ + +
+ +
+ + + +
+ +

Merge state

+
+

Add more commits by pushing to the 256-editor-embeds-merge-in-nitro-embed branch on Human-Connection/Human-Connection.

+ + + + + + +
+ + + +
+
+ +
+
+ +
+ + + Add your review + + +

+ Review required +

+ + + At least 1 approving review is required by reviewers with write access. + Learn more. + + + +
+ + +
+
+ +
+ +
+ + +

All checks have passed

+ 4 successful checks +
+ +
+
+
+ +
+ + + @travis-ci + + + +
+ + Travis CI - Branch + + + Successful in 18m + + — + Build Passed +
+ +
+ Required + + Details +
+ +
+
+
+ +
+ + + @travis-ci + + + +
+ + Travis CI - Pull Request + + + Successful in 17m + + — + Build Passed +
+ +
+ Required + + Details +
+ +
+
+
+ +
+ + + @codecov + + + +
+ + codecov/project/backend + + + + + — + 25.29% (+1.97%) compared to d901432 +
+ +
+ + Details +
+ +
+
+
+ +
+ + + @codecov + + + +
+ + codecov/project/webapp + + + + + — + 45.23% remains the same compared to d901432 +
+ +
+ + Details +
+ +
+ +
+
+ + +
+
+ +
+
Merging is blocked
+ Merging can be performed automatically with 1 approving review. +
+ + + +
+ + +
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+
+ +
+
+
+ + +

+ + + + or view . +

+ + +
+

Merging via command line

+

+ If you do not want to use the merge button or an automatic merge cannot be + performed, you can perform a manual merge on the command line. +

+ +
+
+
+ +
+ +
+ + + + + + + + +
+
+ +

Step 1: From your project repository, bring in the changes and test.

+
+
+ + + +
+
git fetch origin
+git checkout -b 256-editor-embeds-merge-in-nitro-embed origin/256-editor-embeds-merge-in-nitro-embed
+git merge master
+
+ +

Step 2: Merge the changes and update on GitHub.

+
+
+ + + +
+
git checkout master
+git merge --no-ff 256-editor-embeds-merge-in-nitro-embed
+git push origin master
+
+
+ +
+
+
+
+ + + + +
+ + + + + +
+ + + +
+ +

Couldn’t update branch

+

Oops, something went wrong.

+ +
+
+ +

Connect this pull request with an existing issue

+ +
+ @roschaefer + +
+ + + + +
+ +
+
+ + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + + + +
+ Select a reply + ctrl . +
+ + + +
+
+ +
+ +
+ +
+ + + + + +
+ + + + + + + +

+ + + + + Attach files by dragging & dropping, selecting or pasting them. + + + Uploading your files… + + + We don’t support that file type. + + with a + GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Attaching documents requires write permission to this repository. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + We don’t support that file type. + + with a GIF, JPEG, JPG, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP. + + + + Yowza, that’s a big file + + with a file smaller than 10MB. + + + + This file is empty. + + with a file that’s not empty. + + + + This file is hidden. + + with another file. + + + + Something went really wrong, and we can’t process that file. + + + + + + + + + + +

+ +
+
+
+ + + +
+
+

Nothing to preview

+
+
+ +
+ + + + +
+ +
+
+ + + + + + +
+ +
+
+
+
+ + ProTip! + Add .patch or .diff to the end of URLs for Git’s plaintext views. +
+
+ + +
+
+ +
+
+ + + +
+ + +
+ +
+ +
+
+ + +
+ + + + + + +
+ + + You can’t perform that action at this time. +
+ + + + + + + + + + + + + + +
+ + + + +
\ No newline at end of file diff --git a/backend/src/middleware/index.js b/backend/src/middleware/index.js index 19c72c19f..a0b36f9ea 100644 --- a/backend/src/middleware/index.js +++ b/backend/src/middleware/index.js @@ -52,10 +52,10 @@ export default schema => { if (CONFIG.DISABLED_MIDDLEWARES) { const disabledMiddlewares = CONFIG.DISABLED_MIDDLEWARES.split(',') order = order.filter(key => { + if(disabledMiddlewares.includes(key)) console.log(`Warning: Disabled "${disabledMiddlewares}" middleware.`) return !disabledMiddlewares.includes(key) }) /* eslint-disable-next-line no-console */ - console.log(`Warning: "${disabledMiddlewares}" middlewares have been disabled.`) } const appliedMiddlewares = order.map(key => middlewares[key]) diff --git a/backend/src/schema/resolvers/embeds.spec.js b/backend/src/schema/resolvers/embeds.spec.js index 6414fbd8f..5cc382dc4 100644 --- a/backend/src/schema/resolvers/embeds.spec.js +++ b/backend/src/schema/resolvers/embeds.spec.js @@ -1,15 +1,19 @@ import fetch from 'node-fetch' - import fs from 'fs' import path from 'path' import { createTestClient } from 'apollo-server-testing' import createServer from '../../server' import { gql } from '../../jest/helpers' + jest.mock('node-fetch') const { Response } = jest.requireActual('node-fetch') let variables = {} +const pr960 = fs.readFileSync( + path.join(__dirname, '../../jest/snapshots/embeds/pr960.html'), + 'utf8', +) const babyLovesCat = fs.readFileSync( path.join(__dirname, '../../jest/snapshots/embeds/babyLovesCat.html'), 'utf8', @@ -67,6 +71,39 @@ describe('Query', () => { } }) + describe('given a Github link', () => { + beforeEach(() => { + fetch + .mockReturnValueOnce(Promise.resolve(new Response(pr960))) + variables = { url: "https://github.com/Human-Connection/Human-Connection/pull/960" } + }) + + it('returns meta data even if no embed html can be retrieved', async () => { + const expected = expect.objectContaining({ + data: { + embed: { + "type": "link", + "title": "Editor embeds merge in nitro embed by mattwr18 · Pull Request #960 · Human-Connection/Human-Connection", + "author": "Human-Connection", + "publisher": "GitHub", + "date": "2019-07-21T00:56:00.000Z", + "description": "🍰 Pullrequest Issues fixes #256", + "url": "https://github.com/Human-Connection/Human-Connection/pull/960", + "image": "https://repository-images.githubusercontent.com/112590397/52c9a000-7e11-11e9-899d-aaa55f3a3d72", + "audio": null, + "video": null, + "lang": "en", + "sources": [ + "resource" + ], + "html": null + }, + }, + }) + await expect(embedAction(variables)).resolves.toEqual(expected) + }) + }) + describe('given a youtube link', () => { beforeEach(() => { fetch @@ -75,7 +112,7 @@ describe('Query', () => { variables = { url: 'https://www.youtube.com/watch?v=qkdXAtO40Fo&t=18s' } }) - it('returns meta data', async () => { + it('returns meta data plus youtube iframe html', async () => { const expected = expect.objectContaining({ data: { embed: { diff --git a/backend/src/schema/resolvers/embeds/scraper.js b/backend/src/schema/resolvers/embeds/scraper.js index 11a70e362..a35fa7e9c 100644 --- a/backend/src/schema/resolvers/embeds/scraper.js +++ b/backend/src/schema/resolvers/embeds/scraper.js @@ -49,26 +49,23 @@ const fetchEmbed = async url => { endpointUrl.searchParams.append('format', 'json') const response = await fetch(endpointUrl) const json = await response.json() - const { - type = 'link', - html, - author_name, // eslint-disable-line camelcase - upload_date, // eslint-disable-line camelcase - sources = ['oembed'], - } = json - - return { type, html, author: author_name, date: upload_date, sources } -} - -const fetchMeta = async url => { - const response = await fetch(url) - const html = await response.text() - const metadata = await metascraper({ html, url }) return { - type: 'link', + type: json.type, + html: json.html, + author: json.author_name, + date: json.upload_date, + sources: ['oembed'], + } +} + +const fetchResource = async url => { + const response = await fetch(url) + const html = await response.text() + const resource = await metascraper({ html, url }) + return { sources: ['resource'], - ...metadata, + ...resource } } @@ -79,8 +76,7 @@ export default async function scrape(url) { url.hostname = 'youtube.com' } - const [meta, embed] = await Promise.all([fetchMeta(url), fetchEmbed(url)]) - + const [meta, embed] = await Promise.all([fetchResource(url), fetchEmbed(url)]) const output = mergeWith(meta, embed, (objValue, srcValue) => { if (isArray(objValue)) { return objValue.concat(srcValue) @@ -91,5 +87,23 @@ export default async function scrape(url) { throw new ApolloError('Not found', 'NOT_FOUND') } - return output + const defaults = { + type: 'link', + title: null, + author: null, + publisher: null, + date: null, + description: null, + url: null, + image: null, + audio: null, + video: null, + lang: null, + html: null, + } + + return { + ...defaults, + ...output + } } From c5789cbf90763aaf001f8c5104283933fd9b4a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 22 Jul 2019 00:20:43 +0200 Subject: [PATCH 092/131] Fix `get-video-id expects a string` bug --- .../snapshots/embeds/HumanConnectionOrg.html | 38 ++++++ backend/src/middleware/index.js | 6 +- backend/src/schema/resolvers/embeds.spec.js | 109 +++++++++++++++--- .../src/schema/resolvers/embeds/scraper.js | 20 +++- 4 files changed, 148 insertions(+), 25 deletions(-) create mode 100644 backend/src/jest/snapshots/embeds/HumanConnectionOrg.html diff --git a/backend/src/jest/snapshots/embeds/HumanConnectionOrg.html b/backend/src/jest/snapshots/embeds/HumanConnectionOrg.html new file mode 100644 index 000000000..ed3f96cda --- /dev/null +++ b/backend/src/jest/snapshots/embeds/HumanConnectionOrg.html @@ -0,0 +1,38 @@ + + +Human Connection - Startseite | Facebook + + + + + + + + + + + + + + + + + + + + + + + +
Mehr von Human Connection auf Facebook anzeigen
Mehr von Human Connection auf Facebook anzeigen
oder
Neues Konto erstellen
Willkommen bei Human Connection
Human Connection ist ein gemeinnütziges soziales Wissens- und Aktionsnetzwerk mit Sitz in Weilheim-T...
Mehr anzeigen
CommunityAlle ansehen
Highlights info row image
24.407 Personen gefällt das
Highlights info row image
25.652 Personen haben das abonniert
Highlights info row image
72 Besuche
Highlights info row image
Bahnhofstraße 11 (512,71 km)
73235 Weilheim an der Teck
Highlights info row image
01514 3804222
Highlights info row image
Preisklasse €
SeitentransparenzMehr anzeigen
Facebook liefert Informationen, mit denen du die Intention von Seiten besser verstehst. Hier erfährst du mehr zu den Personen, die die Seiten verwalten und Beiträge darin posten.
Seite erstellt – 21. Oktober 2015
Ähnliche Seiten
OrteWeilheim an der TeckHuman Connection
Beiträge

Human Connection soll mehr als nur ein einfacher Facebookersatz werden – nämlich vor allem lösungsorientiert und zukunftsfähig. Wir möchten mit unserem Netzwerk dazu beitragen, dass mehr Menschen aktiv werden und selbst etwas verändern. Vor allem möchten wir, dass sie nicht jede negative Neuigkeit in einem sozialen Netzwerk “schlucken” müssen. Der Gedanke man könne doch eh nichts ändern, stimmt nur dann, wenn andere Leser genauso denken. Gemeinsam ist so viel mehr möglich und... dafür braucht es zunächst erst einmal jeden Einzelnen.

Wie kann Human Connection dabei helfen?

Das erfahrt ihr im ganzen Beitrag:
https://human-connection.org/human-connection-loesungsorie…/

Mehr anzeigen
Bild könnte enthalten: Text

Human Connection ist unser Herzensprojekt, welches allerdings uns und auch euch sehr viel Geduld abfordert. Warum dauert das eigentlich so lange?

Hier erfahrt ihr die Antwort:

human-connection.org
Human Connection ist unser Herzensprojekt, welches allerdings uns und auch euch sehr viel Geduld abfordert. Warum dauert das eigentlich so lange?
Videos
Schau es an und Du weißt, was zu tun ist
10
2
Messe Fair Handeln: Human Connection beim Hackathon (Stuttgart 26.-28.04.2019)
9
1
In Nerds We Trust - Open Source - Wir lieben freie Software!
4
1
+ + + + \ No newline at end of file diff --git a/backend/src/middleware/index.js b/backend/src/middleware/index.js index a0b36f9ea..ba5b9d324 100644 --- a/backend/src/middleware/index.js +++ b/backend/src/middleware/index.js @@ -52,10 +52,12 @@ export default schema => { if (CONFIG.DISABLED_MIDDLEWARES) { const disabledMiddlewares = CONFIG.DISABLED_MIDDLEWARES.split(',') order = order.filter(key => { - if(disabledMiddlewares.includes(key)) console.log(`Warning: Disabled "${disabledMiddlewares}" middleware.`) + if (disabledMiddlewares.includes(key)) { + /* eslint-disable-next-line no-console */ + console.log(`Warning: Disabled "${disabledMiddlewares}" middleware.`) + } return !disabledMiddlewares.includes(key) }) - /* eslint-disable-next-line no-console */ } const appliedMiddlewares = order.map(key => middlewares[key]) diff --git a/backend/src/schema/resolvers/embeds.spec.js b/backend/src/schema/resolvers/embeds.spec.js index 5cc382dc4..348fb50b0 100644 --- a/backend/src/schema/resolvers/embeds.spec.js +++ b/backend/src/schema/resolvers/embeds.spec.js @@ -8,8 +8,16 @@ import { gql } from '../../jest/helpers' jest.mock('node-fetch') const { Response } = jest.requireActual('node-fetch') +afterEach(() => { + fetch.mockRestore() +}) + let variables = {} +const HumanConnectionOrg = fs.readFileSync( + path.join(__dirname, '../../jest/snapshots/embeds/HumanConnectionOrg.html'), + 'utf8', +) const pr960 = fs.readFileSync( path.join(__dirname, '../../jest/snapshots/embeds/pr960.html'), 'utf8', @@ -71,32 +79,99 @@ describe('Query', () => { } }) + describe('given a video link', () => { + beforeEach(() => { + fetch + .mockReturnValueOnce(Promise.resolve(new Response(''))) + .mockReturnValueOnce(Promise.resolve(JSON.stringify({}))) + variables = { url: 'https://www.w3schools.com/html/mov_bbb.mp4' } + }) + + it('shows some default data', async () => { + const expected = expect.objectContaining({ + data: { + embed: { + audio: null, + author: null, + date: null, + description: null, + html: null, + image: null, + lang: null, + publisher: null, + sources: ['resource'], + title: null, + type: 'link', + url: 'https://www.w3schools.com/html/mov_bbb.mp4', + video: null, + }, + }, + }) + await expect(embedAction(variables)).resolves.toEqual(expected) + }) + }) + + describe('given a Facebook link', () => { + beforeEach(() => { + fetch + .mockReturnValueOnce(Promise.resolve(new Response(HumanConnectionOrg))) + .mockReturnValueOnce(Promise.resolve('invalid json')) + variables = { url: 'https://www.facebook.com/HumanConnectionOrg/' } + }) + + it('does not crash if embed provider returns invalid JSON', async () => { + const expected = expect.objectContaining({ + data: { + embed: { + audio: null, + author: null, + date: expect.any(String), + description: + 'Human Connection, Weilheim an der Teck. Gefällt 24.407 Mal. An upcoming non-profit social network focused on local and global positive change. Twitter accounts : @hc_world (EN), @hc_deutschland (GE),...', + html: null, + image: + 'https://scontent.ftxl3-1.fna.fbcdn.net/v/t1.0-1/c5.0.200.200a/p200x200/12108307_997373093648222_70057205881020137_n.jpg?_nc_cat=110&_nc_oc=AQnPPYQlR0dU556gOfl4xkXr7IPZdRIAUfQeXl3fpUv4DAsFN8T4PfgOjPwuq85GPKGZ5S5E5mWQ8IVV1UiRBAIZ&_nc_ht=scontent.ftxl3-1.fna&oh=90309adddaab38839782f16e7d4b7bcf&oe=5DEEDFE5', + lang: 'de', + publisher: 'Facebook', + sources: ['resource'], + title: 'Human Connection', + type: 'link', + url: 'https://www.facebook.com/HumanConnectionOrg/', + video: null, + }, + }, + }) + await expect(embedAction(variables)).resolves.toEqual(expected) + }) + }) + describe('given a Github link', () => { beforeEach(() => { fetch .mockReturnValueOnce(Promise.resolve(new Response(pr960))) - variables = { url: "https://github.com/Human-Connection/Human-Connection/pull/960" } + .mockReturnValueOnce(Promise.resolve(JSON.stringify({}))) + variables = { url: 'https://github.com/Human-Connection/Human-Connection/pull/960' } }) it('returns meta data even if no embed html can be retrieved', async () => { const expected = expect.objectContaining({ data: { embed: { - "type": "link", - "title": "Editor embeds merge in nitro embed by mattwr18 · Pull Request #960 · Human-Connection/Human-Connection", - "author": "Human-Connection", - "publisher": "GitHub", - "date": "2019-07-21T00:56:00.000Z", - "description": "🍰 Pullrequest Issues fixes #256", - "url": "https://github.com/Human-Connection/Human-Connection/pull/960", - "image": "https://repository-images.githubusercontent.com/112590397/52c9a000-7e11-11e9-899d-aaa55f3a3d72", - "audio": null, - "video": null, - "lang": "en", - "sources": [ - "resource" - ], - "html": null + type: 'link', + title: + 'Editor embeds merge in nitro embed by mattwr18 · Pull Request #960 · Human-Connection/Human-Connection', + author: 'Human-Connection', + publisher: 'GitHub', + date: expect.any(String), + description: '🍰 Pullrequest Issues fixes #256', + url: 'https://github.com/Human-Connection/Human-Connection/pull/960', + image: + 'https://repository-images.githubusercontent.com/112590397/52c9a000-7e11-11e9-899d-aaa55f3a3d72', + audio: null, + video: null, + lang: 'en', + sources: ['resource'], + html: null, }, }, }) @@ -120,7 +195,7 @@ describe('Query', () => { title: 'Baby Loves Cat', author: 'Merkley Family', publisher: 'YouTube', - date: '2015-08-16T00:00:00.000Z', + date: expect.any(String), description: 'She’s incapable of controlling her limbs when her kitty is around. The obsession grows every day. Ps. That’s a sleep sack she’s in. Not a starfish outfit. Al...', url: 'https://www.youtube.com/watch?v=qkdXAtO40Fo', diff --git a/backend/src/schema/resolvers/embeds/scraper.js b/backend/src/schema/resolvers/embeds/scraper.js index a35fa7e9c..7ec92bd05 100644 --- a/backend/src/schema/resolvers/embeds/scraper.js +++ b/backend/src/schema/resolvers/embeds/scraper.js @@ -8,6 +8,8 @@ import isEmpty from 'lodash/isEmpty' import isArray from 'lodash/isArray' import mergeWith from 'lodash/mergeWith' +const error = require('debug')('embed:error') + const metascraper = Metascraper([ require('metascraper-author')(), require('metascraper-date')(), @@ -45,10 +47,16 @@ const fetchEmbed = async url => { endpoints: [endpoint], } = provider const endpointUrl = new URL(endpoint.url) - endpointUrl.searchParams.append('url', url) + endpointUrl.searchParams.append('url', url.href) endpointUrl.searchParams.append('format', 'json') - const response = await fetch(endpointUrl) - const json = await response.json() + let json + try { + const response = await fetch(endpointUrl) + json = await response.json() + } catch (err) { + error(`Error fetching embed data: ${err.message}`) + return {} + } return { type: json.type, @@ -62,10 +70,10 @@ const fetchEmbed = async url => { const fetchResource = async url => { const response = await fetch(url) const html = await response.text() - const resource = await metascraper({ html, url }) + const resource = await metascraper({ html, url: url.href }) return { sources: ['resource'], - ...resource + ...resource, } } @@ -104,6 +112,6 @@ export default async function scrape(url) { return { ...defaults, - ...output + ...output, } } From 4ee20d4e7ee678dfea52f2b6e7d89e53603e3e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 22 Jul 2019 00:37:49 +0200 Subject: [PATCH 093/131] Coerce undefinedToNull in embed resolver --- backend/src/schema/helpers.js | 9 +++++++++ backend/src/schema/resolvers/embeds.js | 20 +++++++++++++++++++ .../src/schema/resolvers/embeds/scraper.js | 17 +--------------- backend/src/schema/resolvers/users.js | 11 +--------- 4 files changed, 31 insertions(+), 26 deletions(-) create mode 100644 backend/src/schema/helpers.js diff --git a/backend/src/schema/helpers.js b/backend/src/schema/helpers.js new file mode 100644 index 000000000..fe61ccf57 --- /dev/null +++ b/backend/src/schema/helpers.js @@ -0,0 +1,9 @@ +export const undefinedToNull = list => { + const resolvers = {} + list.forEach(key => { + resolvers[key] = async (parent, params, context, resolveInfo) => { + return typeof parent[key] === 'undefined' ? null : parent[key] + } + }) + return resolvers +} diff --git a/backend/src/schema/resolvers/embeds.js b/backend/src/schema/resolvers/embeds.js index a60057f14..ba27f77b2 100644 --- a/backend/src/schema/resolvers/embeds.js +++ b/backend/src/schema/resolvers/embeds.js @@ -1,4 +1,5 @@ import scrape from './embeds/scraper.js' +import { undefinedToNull } from '../helpers' export default { Query: { @@ -6,4 +7,23 @@ export default { return scrape(url) }, }, + Embed: { + ...undefinedToNull([ + 'type', + 'title', + 'author', + 'publisher', + 'date', + 'description', + 'url', + 'image', + 'audio', + 'video', + 'lang', + 'html', + ]), + sources: async (parent, params, context, resolveInfo) => { + return typeof parent.sources === 'undefined' ? [] : parent.sources + }, + }, } diff --git a/backend/src/schema/resolvers/embeds/scraper.js b/backend/src/schema/resolvers/embeds/scraper.js index 7ec92bd05..607f7aeb9 100644 --- a/backend/src/schema/resolvers/embeds/scraper.js +++ b/backend/src/schema/resolvers/embeds/scraper.js @@ -95,23 +95,8 @@ export default async function scrape(url) { throw new ApolloError('Not found', 'NOT_FOUND') } - const defaults = { - type: 'link', - title: null, - author: null, - publisher: null, - date: null, - description: null, - url: null, - image: null, - audio: null, - video: null, - lang: null, - html: null, - } - return { - ...defaults, + type: 'link', ...output, } } diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index 820688a1a..610f84ae1 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -2,6 +2,7 @@ import { neo4jgraphql } from 'neo4j-graphql-js' import fileUpload from './fileUpload' import { neode } from '../../bootstrap/neo4j' import { UserInputError } from 'apollo-server' +import { undefinedToNull } from '../helpers' const instance = neode() @@ -36,16 +37,6 @@ const count = obj => { return resolvers } -const undefinedToNull = list => { - const resolvers = {} - list.forEach(key => { - resolvers[key] = async (parent, params, context, resolveInfo) => { - return typeof parent[key] === 'undefined' ? null : parent[key] - } - }) - return resolvers -} - export const hasMany = obj => { const resolvers = {} for (const [key, connection] of Object.entries(obj)) { From db1ca5767a4771208fdfc7a267ae895d81b50817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 22 Jul 2019 00:40:12 +0200 Subject: [PATCH 094/131] Remove unnecessary got module --- backend/package.json | 1 - backend/yarn.lock | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/package.json b/backend/package.json index c9cd0181c..9db2c305b 100644 --- a/backend/package.json +++ b/backend/package.json @@ -59,7 +59,6 @@ "dotenv": "~8.0.0", "express": "^4.17.1", "faker": "Marak/faker.js#master", - "got": "^9.6.0", "graphql": "~14.4.2", "graphql-custom-directives": "~0.2.14", "graphql-iso-date": "~3.6.1", diff --git a/backend/yarn.lock b/backend/yarn.lock index e769990a5..53b319b49 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -3868,7 +3868,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -got@^9.3.2, got@^9.6.0, got@~9.6.0: +got@^9.3.2, got@~9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== From f8df0eabf93e1fd7ba0a0445b62f3cb544b37015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 22 Jul 2019 00:42:56 +0200 Subject: [PATCH 095/131] Remove obsolete kubernetes configuration --- .../human-connection/deployment-embed.yaml | 38 ------------------- .../human-connection/service-embed.yaml | 14 ------- 2 files changed, 52 deletions(-) delete mode 100644 deployment/human-connection/deployment-embed.yaml delete mode 100644 deployment/human-connection/service-embed.yaml diff --git a/deployment/human-connection/deployment-embed.yaml b/deployment/human-connection/deployment-embed.yaml deleted file mode 100644 index 405b4bca2..000000000 --- a/deployment/human-connection/deployment-embed.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: nitro-embed - namespace: human-connection -spec: - replicas: 1 - minReadySeconds: 15 - progressDeadlineSeconds: 60 - strategy: - rollingUpdate: - maxSurge: 0 - maxUnavailable: "100%" - selector: - matchLabels: - human-connection.org/selector: deployment-human-connection-embed - template: - metadata: - labels: - human-connection.org/commit: COMMIT - human-connection.org/selector: deployment-human-connection-embed - name: "nitro-embed" - spec: - containers: - - name: nitro-embed - image: humanconnection/nitro-embed:latest - imagePullPolicy: Always - ports: - - containerPort: 4000 - envFrom: - - configMapRef: - name: configmap - - secretRef: - name: human-connection - restartPolicy: Always - terminationGracePeriodSeconds: 30 -status: {} diff --git a/deployment/human-connection/service-embed.yaml b/deployment/human-connection/service-embed.yaml deleted file mode 100644 index 85a4ad7b5..000000000 --- a/deployment/human-connection/service-embed.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: nitro-embed - namespace: human-connection - labels: - human-connection.org/selector: deployment-human-connection-embed -spec: - ports: - - name: web - port: 3050 - targetPort: 3050 - selector: - human-connection.org/selector: deployment-human-connection-embed From cdc6fbc1c1cc90f43dc481aed25dc4192f814d08 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 04:41:42 +0000 Subject: [PATCH 096/131] Bump merge-graphql-schemas from 1.5.8 to 1.6.1 in /backend Bumps [merge-graphql-schemas](https://github.com/Urigo/merge-graphql-schemas) from 1.5.8 to 1.6.1. - [Release notes](https://github.com/Urigo/merge-graphql-schemas/releases) - [Changelog](https://github.com/Urigo/merge-graphql-schemas/blob/master/CHANGELOG.md) - [Commits](https://github.com/Urigo/merge-graphql-schemas/commits) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 171 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 155 insertions(+), 18 deletions(-) diff --git a/backend/package.json b/backend/package.json index f82d91dc0..df6b3a783 100644 --- a/backend/package.json +++ b/backend/package.json @@ -68,7 +68,7 @@ "jsonwebtoken": "~8.5.1", "linkifyjs": "~2.1.8", "lodash": "~4.17.14", - "merge-graphql-schemas": "^1.5.8", + "merge-graphql-schemas": "^1.6.1", "neo4j-driver": "~1.7.4", "neo4j-graphql-js": "^2.6.3", "neode": "^0.2.16", diff --git a/backend/yarn.lock b/backend/yarn.lock index ac4de5313..2fbe72826 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -983,6 +983,17 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" +"@kamilkisiela/graphql-tools@4.0.6": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@kamilkisiela/graphql-tools/-/graphql-tools-4.0.6.tgz#6dcf4d18bedaf34f6ab1d5bad2414e530d0875d1" + integrity sha512-IPWa+dOFCE4zaCsrJrAMp7yWXnfOZLNhqoMEOmn958WkLM0mmsDc/W/Rh7/7xopIT6P0oizb6/N1iH5HnNXOUA== + dependencies: + apollo-link "^1.2.3" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.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" @@ -1121,6 +1132,15 @@ "@types/express-serve-static-core" "*" "@types/serve-static" "*" +"@types/glob@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + "@types/istanbul-lib-coverage@*": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" @@ -1156,6 +1176,11 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" integrity sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA== +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + "@types/node@*", "@types/node@^10.1.0": version "10.12.18" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" @@ -1294,6 +1319,14 @@ activitystreams-context@>=3.0.0, activitystreams-context@^3.0.0: resolved "https://registry.yarnpkg.com/activitystreams-context/-/activitystreams-context-3.1.0.tgz#28334e129f17cfb937e8c702c52c1bcb1d2830c7" integrity sha512-KBQ+igwf1tezMXGVw5MvRSEm0gp97JI1hTZ45I6MEkWv25lEgNoA9L6wqfaOiCX8wnMRWw9pwRsPZKypdtxAtg== +aggregate-error@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" + integrity sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA== + dependencies: + clean-stack "^2.0.0" + indent-string "^3.2.0" + ajv@^6.10.0, ajv@^6.5.5, ajv@^6.9.1: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" @@ -1774,6 +1807,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +asyncro@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/asyncro/-/asyncro-3.0.0.tgz#3c7a732e263bc4a42499042f48d7d858e9c0134e" + integrity sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg== + atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -2207,6 +2245,11 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +clean-stack@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" + integrity sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA== + cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" @@ -2443,6 +2486,14 @@ cross-fetch@2.2.2: node-fetch "2.1.2" whatwg-fetch "2.0.4" +cross-fetch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.4.tgz#7bef7020207e684a7638ef5f2f698e24d9eb283c" + integrity sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw== + dependencies: + node-fetch "2.6.0" + whatwg-fetch "3.0.0" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2623,10 +2674,10 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== +deepmerge@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" + integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== define-properties@^1.1.2: version "1.1.3" @@ -3613,6 +3664,18 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -3692,6 +3755,14 @@ graphql-extensions@0.8.0: apollo-server-env "2.4.0" apollo-server-types "0.2.0" +graphql-import@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" + integrity sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw== + dependencies: + lodash "^4.17.4" + resolve-from "^4.0.0" + graphql-iso-date@~3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/graphql-iso-date/-/graphql-iso-date-3.6.1.tgz#bd2d0dc886e0f954cbbbc496bbf1d480b57ffa96" @@ -3733,6 +3804,25 @@ graphql-tag@^2.9.2, graphql-tag@~2.10.1: resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.1.tgz#10aa41f1cd8fae5373eaf11f1f67260a3cad5e02" integrity sha512-jApXqWBzNXQ8jYa/HLkZJaVw9jgwNqZkywa2zfFn16Iv1Zb7ELNHkJaXHR7Quvd5SIGsy6Ny7SUKATgnu05uEg== +graphql-toolkit@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/graphql-toolkit/-/graphql-toolkit-0.4.1.tgz#f5a9fa225b51168dd0d0558dc59e8fc3d379e9b1" + integrity sha512-asTRlNn0381f6/wVp8F0X2vsz8GJnv4TX+KNHg1k8Ybe6Ii5HBreJTxBHJ7GXlNDhj5MGCNi09nt8Oe7Ategrg== + dependencies: + "@kamilkisiela/graphql-tools" "4.0.6" + "@types/glob" "7.1.1" + aggregate-error "3.0.0" + asyncro "^3.0.0" + cross-fetch "^3.0.4" + deepmerge "4.0.0" + glob "7.1.4" + graphql-import "0.7.1" + is-glob "4.0.1" + is-valid-path "0.1.1" + lodash "4.17.15" + tslib "^1.9.3" + valid-url "1.0.9" + graphql-tools@^4.0.0, graphql-tools@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.4.tgz#ca08a63454221fdde825fe45fbd315eb2a6d566b" @@ -4030,7 +4120,7 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^3.1.0: +indent-string@^3.1.0, indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= @@ -4208,6 +4298,11 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -4235,6 +4330,20 @@ is-generator@^1.0.2: resolved "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz#c14c21057ed36e328db80347966c693f886389f3" integrity sha1-wUwhBX7TbjKNuANHlmxpP4hjifM= +is-glob@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-glob@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -4257,6 +4366,13 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" +is-invalid-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" + integrity sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ= + dependencies: + is-glob "^2.0.0" + is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -4332,6 +4448,13 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-valid-path@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" + integrity sha1-EQ+f90w39mPh7HkV60UfLbk6yd8= + dependencies: + is-invalid-path "^0.1.0" + is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -5146,6 +5269,11 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash@4.17.15, lodash@^4.17.4: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + lodash@=3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" @@ -5250,14 +5378,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.5.8: - version "1.5.8" - resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.5.8.tgz#89457b60312aabead44d5b2b7625643f8ab9e369" - integrity sha512-0TGOKebltvmWR9h9dPYS2vAqMPThXwJ6gVz7O5MtpBp2sunAg/M25iMSNI7YhU6PDJVtGtldTfqV9a+55YhB+A== +merge-graphql-schemas@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/merge-graphql-schemas/-/merge-graphql-schemas-1.6.1.tgz#4c4744bd3f2395a876d0e6885e60c90a9a5a4568" + integrity sha512-XEgol3ThgEPo65Cj+cx8UhOFE4IuTSF1Mh0iK8AVOEM/hKrhLfNECmtg9U6HoHfa9nINLxeGZIVvq9rjoSx3cQ== dependencies: - deepmerge "^2.2.1" - glob "^7.1.3" - is-glob "^4.0.0" + graphql-toolkit "0.4.1" + tslib "1.10.0" merge-stream@^1.0.1: version "1.0.1" @@ -5534,7 +5661,7 @@ node-fetch@2.1.2: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= -node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@~2.6.0: +node-fetch@2.6.0, node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@~2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== @@ -7434,10 +7561,10 @@ ts-invariant@^0.4.0: dependencies: tslib "^1.9.3" -tslib@^1.9.0, tslib@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +tslib@1.10.0, tslib@^1.9.0, tslib@^1.9.3: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== tunnel-agent@^0.6.0: version "0.6.0" @@ -7641,6 +7768,11 @@ v8flags@^3.1.1: dependencies: homedir-polyfill "^1.0.1" +valid-url@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -7774,6 +7906,11 @@ whatwg-fetch@2.0.4: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== +whatwg-fetch@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== + whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" From 420ea7e810c74d2af2d68dc96176a57f068f5c41 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 04:42:26 +0000 Subject: [PATCH 097/131] Bump neode from 0.2.16 to 0.2.18 Bumps [neode](https://github.com/adam-cowley/neode) from 0.2.16 to 0.2.18. - [Release notes](https://github.com/adam-cowley/neode/releases) - [Commits](https://github.com/adam-cowley/neode/commits) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 87ec4e9ef..6076e4b11 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "faker": "Marak/faker.js#master", "graphql-request": "^1.8.2", "neo4j-driver": "^1.7.5", - "neode": "^0.2.16", + "neode": "^0.2.18", "npm-run-all": "^4.1.5", "slug": "^1.1.0" } diff --git a/yarn.lock b/yarn.lock index b3e4af00b..c1b33f39a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3569,10 +3569,10 @@ neo4j-driver@^1.6.3, neo4j-driver@^1.7.5: text-encoding-utf-8 "^1.0.2" uri-js "^4.2.2" -neode@^0.2.16: - version "0.2.16" - resolved "https://registry.yarnpkg.com/neode/-/neode-0.2.16.tgz#20532cc67604fd00cc88de841d422f5238ae5bd3" - integrity sha512-L9p55IDKGzAZsQgHdXrfd2xasDuB46RipcrPw6NP7ESgkmfJMaMWRZ1F3Kv+f4V4U1WnhZ1IILvwVFhYPnpXEg== +neode@^0.2.18: + version "0.2.18" + resolved "https://registry.yarnpkg.com/neode/-/neode-0.2.18.tgz#b7cc26e69df46dbfc3ea2e97334db8691f52d9e7" + integrity sha512-oUWYMao6tM8DdsqeyaVUmFKhwEbjqIfwW2KKL9HQE4ffWK531cnslWqzu2B/xoQj+d1Q3Ebhe3to1U5Z1Y+pfQ== dependencies: dotenv "^4.0.0" joi "^13.7.0" From bbe071d0210094249b6553bfbd29bd17df511da0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 04:44:09 +0000 Subject: [PATCH 098/131] Bump eslint-plugin-jest from 22.11.1 to 22.13.0 in /backend Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.11.1 to 22.13.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.11.1...v22.13.0) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/package.json b/backend/package.json index f82d91dc0..4a0c96d9f 100644 --- a/backend/package.json +++ b/backend/package.json @@ -99,7 +99,7 @@ "eslint-config-prettier": "~6.0.0", "eslint-config-standard": "~12.0.0", "eslint-plugin-import": "~2.18.0", - "eslint-plugin-jest": "~22.11.1", + "eslint-plugin-jest": "~22.13.0", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", "eslint-plugin-promise": "~4.2.1", diff --git a/backend/yarn.lock b/backend/yarn.lock index ac4de5313..a29846143 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -3031,10 +3031,10 @@ eslint-plugin-import@~2.18.0: read-pkg-up "^2.0.0" resolve "^1.11.0" -eslint-plugin-jest@~22.11.1: - version "22.11.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.11.1.tgz#04b586e2fddd07e55900a381255d6b3d9242ae87" - integrity sha512-kPF1Nmr5xMLz6DT7qEttz0TTeyx1x6SozIkNO9y4F2yxuWjHMp/e70fo742pR3y0MewgXQQMIIXeSKLB66iO7Q== +eslint-plugin-jest@~22.13.0: + version "22.13.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.0.tgz#d7d134c6e3c2f67cc50f5fa89a329db579d28428" + integrity sha512-bIr8LL7buUXS8Pk69SFgaDKgyvPQkDu6i8ko0lP54uccszlo4EOwtstDXOZl5Af3JwudbECxRUbCpL/2cKDkkg== eslint-plugin-node@~9.1.0: version "9.1.0" From b9eae65b8b452aef10224ce8a4a8dc4bae506722 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 04:51:16 +0000 Subject: [PATCH 099/131] Bump eslint-plugin-import from 2.18.0 to 2.18.2 in /webapp Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.0 to 2.18.2. - [Release notes](https://github.com/benmosher/eslint-plugin-import/releases) - [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md) - [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.0...v2.18.2) Signed-off-by: dependabot-preview[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 1053b7feb..cd91dfb43 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -94,7 +94,7 @@ "eslint-config-prettier": "~6.0.0", "eslint-config-standard": "~12.0.0", "eslint-loader": "~2.2.1", - "eslint-plugin-import": "~2.18.0", + "eslint-plugin-import": "~2.18.2", "eslint-plugin-jest": "~22.11.1", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index fc8d2ab34..6db6fe0fe 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -4320,10 +4320,10 @@ eslint-plugin-es@^1.4.0: eslint-utils "^1.3.0" regexpp "^2.0.1" -eslint-plugin-import@~2.18.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz#7a5ba8d32622fb35eb9c8db195c2090bd18a3678" - integrity sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig== +eslint-plugin-import@~2.18.2: + version "2.18.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" + integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== dependencies: array-includes "^3.0.3" contains-path "^0.1.0" @@ -4332,8 +4332,8 @@ eslint-plugin-import@~2.18.0: eslint-import-resolver-node "^0.3.2" eslint-module-utils "^2.4.0" has "^1.0.3" - lodash "^4.17.11" minimatch "^3.0.4" + object.values "^1.1.0" read-pkg-up "^2.0.0" resolve "^1.11.0" From c5604038d12248ec8da6c62bcef8f9554dccdd4e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 04:54:16 +0000 Subject: [PATCH 100/131] Bump @babel/core from 7.5.4 to 7.5.5 in /backend Bumps [@babel/core](https://github.com/babel/babel) from 7.5.4 to 7.5.5. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.5.4...v7.5.5) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 82 ++++++++++++-------------------------------- 2 files changed, 23 insertions(+), 61 deletions(-) diff --git a/backend/package.json b/backend/package.json index f82d91dc0..885b78c01 100644 --- a/backend/package.json +++ b/backend/package.json @@ -84,7 +84,7 @@ }, "devDependencies": { "@babel/cli": "~7.5.0", - "@babel/core": "~7.5.4", + "@babel/core": "~7.5.5", "@babel/node": "~7.5.5", "@babel/plugin-proposal-throw-expressions": "^7.2.0", "@babel/preset-env": "~7.5.5", diff --git a/backend/yarn.lock b/backend/yarn.lock index ac4de5313..ef45d8dd4 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -31,52 +31,34 @@ optionalDependencies: chokidar "^2.0.4" -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.5.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.1.0", "@babel/core@~7.5.4": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.4.tgz#4c32df7ad5a58e9ea27ad025c11276324e0b4ddd" - integrity sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ== +"@babel/core@^7.1.0", "@babel/core@~7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.5.0" - "@babel/helpers" "^7.5.4" - "@babel/parser" "^7.5.0" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.0" - "@babel/types" "^7.5.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" - lodash "^4.17.11" + lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.0.tgz#f20e4b7a91750ee8b63656073d843d2a736dca4a" - integrity sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA== - dependencies: - "@babel/types" "^7.5.0" - jsesc "^2.5.1" - lodash "^4.17.11" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.5.5": +"@babel/generator@^7.0.0", "@babel/generator@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== @@ -268,14 +250,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.5.4": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.4.tgz#2f00608aa10d460bde0ccf665d6dcf8477357cf0" - integrity sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow== +"@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" + integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== dependencies: "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.0" - "@babel/types" "^7.5.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" "@babel/highlight@^7.0.0": version "7.0.0" @@ -298,12 +280,7 @@ node-environment-flags "^1.0.5" v8flags "^3.1.1" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.4", "@babel/parser@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.0.tgz#3e0713dff89ad6ae37faec3b29dcfc5c979770b7" - integrity sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA== - -"@babel/parser@^7.5.5": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== @@ -753,22 +730,7 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.0.tgz#4216d6586854ef5c3c4592dab56ec7eb78485485" - integrity sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.5.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.0" - "@babel/types" "^7.5.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" - -"@babel/traverse@^7.5.5": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== @@ -783,7 +745,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0", "@babel/types@^7.5.5": +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== From bcb7b8e8fd67ab2f717076dfb10d55401606b9ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Mon, 22 Jul 2019 13:34:34 +0200 Subject: [PATCH 101/131] Yarn Install --- backend/yarn.lock | 746 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 738 insertions(+), 8 deletions(-) diff --git a/backend/yarn.lock b/backend/yarn.lock index 4b8fd985d..5ce8ac94c 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -956,6 +956,55 @@ iterall "^1.1.3" uuid "^3.1.0" +"@metascraper/helpers@^4.10.2": + version "4.10.2" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-4.10.2.tgz#864e49c71468548441f3a1ab68fdb2913855821b" + integrity sha512-l2IyF2X4ytz5Mj/TaVenmjEhEZCCj+Qb1PnIbW10Kas/qg0O58x5hBAHsszkSWQSx/OvnDvT2Mpft77qcBa77g== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~1.0.0" + file-extension "~4.0.5" + image-extensions "~1.1.0" + is-relative-url "~2.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.1.0" + isostring "0.0.1" + lodash "~4.17.11" + mime-types "~2.1.22" + normalize-url "~4.2.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.0.1" + url-regex "~4.1.1" + video-extensions "~1.1.0" + +"@metascraper/helpers@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.6.3.tgz#88d3d3a174f94ccb617145cb9f60c999b57d9b60" + integrity sha512-FWqQmh+sZI5JRxJHVPPzBjilgZCqKWDFSo/eqRIgLLW/5kB79uuX4aseSTep1JpXUAcD5F/Z0KZYQl4JTbTopA== + dependencies: + audio-extensions "0.0.0" + chrono-node "~1.3.11" + condense-whitespace "~2.0.0" + entities "~2.0.0" + file-extension "~4.0.5" + has-values "~2.0.1" + image-extensions "~1.1.0" + is-relative-url "~3.0.0" + is-uri "~1.2.0" + iso-639-3 "~1.2.0" + isostring "0.0.1" + lodash "~4.17.15" + mem "~5.1.1" + mime-types "~2.1.24" + normalize-url "~4.3.0" + smartquotes "~2.3.1" + title "~3.4.1" + truncate "~2.1.0" + url-regex "~5.0.0" + video-extensions "~1.1.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" @@ -1009,6 +1058,18 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + "@types/accepts@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" @@ -1289,6 +1350,14 @@ aggregate-error@3.0.0: clean-stack "^2.0.0" indent-string "^3.2.0" +aggregate-error@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-1.0.0.tgz#888344dad0220a72e3af50906117f48771925fac" + integrity sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w= + dependencies: + clean-stack "^1.0.0" + indent-string "^3.0.0" + ajv@^6.10.0, ajv@^6.5.5, ajv@^6.9.1: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" @@ -1331,7 +1400,7 @@ ansi-regex@^4.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.1.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1604,6 +1673,11 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +arch@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== + are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" @@ -1612,6 +1686,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050" + integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1779,6 +1858,11 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +audio-extensions@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/audio-extensions/-/audio-extensions-0.0.0.tgz#d0eefe077fb9eb625898eed9985890548cf1f8d2" + integrity sha1-0O7+B3+562JYmO7ZmFiQVIzx+NI= + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2079,6 +2163,19 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + callsites@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" @@ -2132,6 +2229,15 @@ chai@~4.2.0: pathval "^1.1.0" type-detect "^4.0.5" +chalk@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2151,7 +2257,12 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -cheerio@~1.0.0-rc.3: +cheerio-advanced-selectors@~2.0.1: + version "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: 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== @@ -2187,6 +2298,13 @@ chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== +chrono-node@~1.3.11: + version "1.3.11" + resolved "https://registry.yarnpkg.com/chrono-node/-/chrono-node-1.3.11.tgz#b86a26b7e3157edcc4fe3374e1b6f90caedc8e39" + integrity sha512-jDWRnY6nYvzfV3HPYBqo+tot7tcsUs9i3arGbMdI0TouPSXP2C2y/Ctp27rxKTQDi6yuTxAB2cw+Q6igGhOhdQ== + dependencies: + moment "2.21.0" + ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" @@ -2207,11 +2325,21 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +clean-stack@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" + integrity sha1-noIVAa6XmYbEax1m0tQy2y/UrjE= + clean-stack@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" integrity sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA== +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" @@ -2239,6 +2367,14 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= +clipboardy@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2" + integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw== + dependencies: + arch "^2.1.0" + execa "^0.8.0" + cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -2248,6 +2384,13 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2258,6 +2401,11 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collapse-white-space@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" + integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -2322,6 +2470,16 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +condense-whitespace@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-1.0.0.tgz#8376d98ef028e6cb2cd2468e28ce42c5c65ab1a9" + integrity sha1-g3bZjvAo5sss0kaOKM5CxcZasak= + +condense-whitespace@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/condense-whitespace/-/condense-whitespace-2.0.0.tgz#94e9644938f66aa7be4b8849f8f0b3cec97d6b3a" + integrity sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw== + configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" @@ -2619,6 +2777,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" @@ -2641,6 +2806,11 @@ deepmerge@4.0.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== +defer-to-connect@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" + integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== + define-properties@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2882,6 +3052,11 @@ entities@^1.1.1, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== +entities@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -3217,6 +3392,19 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -3409,6 +3597,11 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +file-extension@~4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/file-extension/-/file-extension-4.0.5.tgz#ae6cef34c28e7313a92baa4aa955755cacdf0ce3" + integrity sha512-l0rOL3aKkoi6ea7MNZe6OHgqYYpn48Qfflr8Pe9G9JPPTx5A+sfboK91ZufzIs59/lPqh351l0eb6iKU9J5oGg== + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3515,6 +3708,13 @@ frameguard@3.1.0: resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-3.1.0.tgz#bd1442cca1d67dc346a6751559b6d04502103a22" integrity sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g== +franc@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/franc/-/franc-4.0.0.tgz#365951bc787b92ffbb1c63c1c492d6b76cbd3a56" + integrity sha512-4991aLWY5sLg2fsyiOPflUjye5XBKyUO4V9O4FTBbQ7xKugvnmP9x3m3LlrpD7kq1BebMThNkEXnK52HaU3ZkQ== + dependencies: + trigram-utils "^1.0.0" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -3584,6 +3784,11 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= +get-src@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-src/-/get-src-1.0.1.tgz#ca11dbe4a93c7f3aa85cec95fcb0b2dfaa9539ee" + integrity sha1-yhHb5Kk8fzqoXOyV/LCy36qVOe4= + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -3594,18 +3799,32 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= -get-stream@^4.0.0: +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +get-video-id@~3.1.1: + version "3.1.4" + resolved "https://registry.yarnpkg.com/get-video-id/-/get-video-id-3.1.4.tgz#9bffb8b607aa0379f0f8a927eae7df13b5e414a3" + integrity sha512-XOZ60NZ60ozTtoWtPPpA3TC9JgDXgcd5nTfYwjBhZWAx3w48HRq6EqKp2bUJ/3F+BWgiMMHg4IkQ+acO6LxfMQ== + dependencies: + get-src "^1.0.1" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -3679,6 +3898,23 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" +got@^9.3.2, got@~9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" @@ -3842,6 +4078,11 @@ har-validator@~5.1.0: ajv "^6.5.5" har-schema "^2.0.0" +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3888,6 +4129,13 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has-values@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d" + integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w== + dependencies: + kind-of "^6.0.2" + has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -4002,6 +4250,11 @@ htmlparser2@^3.10.0, htmlparser2@^3.9.1: inherits "^2.0.1" readable-stream "^3.0.6" +http-cache-semantics@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" + integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== + http-errors@1.7.2, http-errors@^1.7.2, http-errors@~1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -4056,6 +4309,11 @@ ignore@^5.1.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.1.tgz#2fc6b8f518aff48fef65a7f348ed85632448e4a5" integrity sha512-DWjnQIFLenVrwyRCKZT+7a7/U4Cqgar4WG8V++K3hw+lrW1hc/SIwdiGmtxKCVACmHULTuGeBbHJmbwW7/sAvA== +image-extensions@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/image-extensions/-/image-extensions-1.1.0.tgz#b8e6bf6039df0056e333502a00b6637a3105d894" + integrity sha1-uOa/YDnfAFbjM1AqALZjejEF2JQ= + import-fresh@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" @@ -4082,7 +4340,7 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^3.1.0, indent-string@^3.2.0: +indent-string@^3.0.0, indent-string@^3.1.0, indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= @@ -4149,11 +4407,31 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= + +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ipaddr.js@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.0.tgz#eb21d69df2ed8ef72a3e6f243e216563036a0913" + integrity sha512-3OkP8XrM2Xq4/IxsJnClfMp3OaM3TAatLPLKPeWcxLBTrpe6hihwtX+XZfJTcXg/FTRi4qjy0y/C5qiyNxY24g== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -4371,11 +4649,31 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-port-reachable@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-port-reachable/-/is-port-reachable-2.0.1.tgz#e0778d0733beac1ade3ba72a5fe77db50a59926b" + integrity sha512-SqU55C5gkitgOhl2ccd2v23MbkbcOFa5e4aPo8h8VGqOifh7iDwG44bQBWGW/lZulTjl9AWIKP0NiUWpa+TtWA== + is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= +is-reachable@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-reachable/-/is-reachable-3.0.0.tgz#73ac3e3ff1d77af49b1dcd8d02a4bcf2721a4cec" + integrity sha512-bviQzO/xMpY1HV/4vLdLQ2waQu8D9elkNZTKsA1UOlWytU7XnLKP8Yn6GOkoZ52VEiwCCkj7biBhKGbgjtyDRg== + dependencies: + arrify "^1.0.1" + got "^9.3.2" + is-port-reachable "^2.0.0" + p-any "^1.1.0" + p-timeout "^2.0.1" + port-numbers "^4.0.4" + prepend-http "^2.0.0" + router-ips "^1.0.0" + url-parse "^1.4.4" + is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" @@ -4388,6 +4686,20 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-relative-url@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-2.0.0.tgz#72902d7fe04b3d4792e7db15f9db84b7204c9cef" + integrity sha1-cpAtf+BLPUeS59sV+duEtyBMnO8= + dependencies: + is-absolute-url "^2.0.0" + +is-relative-url@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -4410,6 +4722,14 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-uri@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-uri/-/is-uri-1.2.0.tgz#b92ff234af68c0ed97d2eed46492d01793b7d420" + integrity sha1-uS/yNK9owO2X0u7UZJLQF5O31CA= + dependencies: + parse-uri "~1.0.0" + punycode2 "~1.0.0" + is-valid-path@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" @@ -4439,6 +4759,16 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +iso-639-3@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843" + integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw== + +iso-639-3@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.2.0.tgz#eee1f5e6ca2bbb33e3ecc910857c1c12e8b295be" + integrity sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -4451,6 +4781,11 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isostring@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isostring/-/isostring-0.0.1.tgz#ddb608efbfc89cda86db9cb16be090a788134c7f" + integrity sha1-3bYI77/InNqG25yxa+CQp4gTTH8= + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -4937,6 +5272,11 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -5049,6 +5389,13 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -5231,7 +5578,7 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@4.17.15, lodash@^4.17.4: +lodash@4.17.15, lodash@^4.17.4, lodash@~4.17.11, lodash@~4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -5263,11 +5610,16 @@ lower-case@^1.1.1: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lowercase-keys@^1.0.0: +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -5297,7 +5649,7 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-age-cleaner@^0.1.1: +map-age-cleaner@^0.1.1, map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== @@ -5330,6 +5682,20 @@ mem@^4.0.0: mimic-fn "^1.0.0" p-is-promise "^2.0.0" +mem@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + +memoize-one@~5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.5.tgz#8cd3809555723a07684afafcd6f756072ac75d7e" + integrity sha512-ey6EpYv0tEaIbM/nTDOpHciXUvd+ackQrJgEzBwemhZZIWZjcyodqEcrmqDy2BKRTM3a65kKBV4WtLXJDt26SQ== + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" @@ -5355,6 +5721,133 @@ merge-stream@^1.0.1: dependencies: readable-stream "^2.0.1" +metascraper-audio@^5.5.0: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-5.6.3.tgz#f84f4e19960c698df2e14cd98212b004bac66bb9" + integrity sha512-XxO9iHVQzGa+Z7wzmnHl3dmFdBdmYfO/ozeMWH0fp/4YbU1GU3l+OlYzPaVhCEfArqzzuwf1iq8uGKdU/DOZnw== + dependencies: + "@metascraper/helpers" "^5.6.3" + +metascraper-author@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-author/-/metascraper-author-4.10.2.tgz#4047799a3f21110363ea90a19b3473983e61167f" + integrity sha512-mQwBhe5oMqMMo/95ilag/kbNFgTt1WBnqgsjCiQOl1l82SbuUo0yU4aLSUP2SEMIWp/zbtGo734q7oAbdhXVHw== + dependencies: + "@metascraper/helpers" "^4.10.2" + lodash "~4.17.11" + +metascraper-clearbit-logo@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/metascraper-clearbit-logo/-/metascraper-clearbit-logo-5.3.0.tgz#e4596dbaf35503635d585a705f4119c7eddc6773" + integrity sha512-Vg9m8cj2yEIUDrRjvCORvf8vgq2HLsWLVqNnIactNUPJ+Lcly5Xcxh5TcmHYp5Qx5DtNUCoKlakomYHn8mOjqg== + dependencies: + got "~9.6.0" + +metascraper-date@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-date/-/metascraper-date-4.10.2.tgz#fe60510cb6481ad68e9a9d76e287bc41ac887ef1" + integrity sha512-BdX5JJXQxErOZBlc2pJfU8a/suyu3G2omXrrjcrI+OCPfFD7CAXgZU43iou7HMnXiviQ33x7wT6DDsj7sSg5Nw== + dependencies: + "@metascraper/helpers" "^4.10.2" + +metascraper-description@^5.5.0: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-5.6.3.tgz#1abfde848e8002c606e5741b9523b61ca592bb34" + integrity sha512-ATfsUS6t912hSYKEOyVUX+GrwRMcUltOcvEXtD/5ER26z3h1ab83w4UvQ7imo9F6yueQX2dB6QfqTkWF92X6Vw== + dependencies: + "@metascraper/helpers" "^5.6.3" + +metascraper-image@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-4.10.2.tgz#84e2e3317017936d1f743a2ac80ae9eca16d5af9" + integrity sha512-ANelQVENmI8xpmsincBkNexVVohQcgk4eeKTZwBfT5/9nmMhtdJIV+obsKwL0eVHgMRj2iDphLMoAnFtcWXvdA== + dependencies: + "@metascraper/helpers" "^4.10.2" + +metascraper-lang-detector@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-lang-detector/-/metascraper-lang-detector-4.10.2.tgz#45744bc331125c098e8b27716d76740161b121d2" + integrity sha512-Lz1d5v/i1j08gQYz7sCdoxjOx94ArLV4UucUhGZeQpR4E6dK47V6aqfYwODRe2XAqhaU+3oLnbAipoHkOeZXiw== + dependencies: + "@metascraper/helpers" "^4.10.2" + franc "~4.0.0" + iso-639-3 "~1.1.0" + +metascraper-lang@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-4.10.2.tgz#36cb11958fa8b341946cb2d8d58dff328d76d992" + integrity sha512-+fCh5CqPqN94sa82afwVBIyvTp3/QIgxUSmti5AN0p1fVExAdO7BUiQbs3jO+0I++xJQzTZ2LH/yYZgBc+IyQA== + dependencies: + "@metascraper/helpers" "^4.10.2" + +metascraper-logo@^5.5.0: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.6.3.tgz#bb18449e872815ba6199e2aa78078259c2677b98" + integrity sha512-xeqjSuTAiudXiUczj7F0+VvXdgFvL5rqyW3D+BPXrNHOUqDyyYNlHTEhambj3HbMP6EjQyoMDEvqCF5qUezmXg== + dependencies: + "@metascraper/helpers" "^5.6.3" + +metascraper-publisher@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-publisher/-/metascraper-publisher-4.10.2.tgz#f65f44f14b9f6b00467b26a242c1f58177c713e0" + integrity sha512-mKHcMJBPvtCGGdNtE7+InQ/4ntTzoWfMMpa0O2JKH4Odd5tZ9wtJF/Y59n261qgML5d3MtloN7eSfsLZNcmaQA== + dependencies: + "@metascraper/helpers" "^4.10.2" + +metascraper-soundcloud@^5.5.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-5.6.3.tgz#c2bb5904857d079a44c0d1e1511dfaf4d0f19945" + integrity sha512-v44pktX4I7pnUjThGs11YZLNpuQbuB6iY2RcYnODjasgor8t7ZHPwrJqy01b0mkTmHoRbQ84Vheq1SkAD0Vz8g== + dependencies: + "@metascraper/helpers" "^5.6.3" + memoize-one "~5.0.5" + tldts "~5.3.1" + +metascraper-title@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-4.10.2.tgz#8c0235beb2fe3ab9261dd117e864372f61e21ec8" + integrity sha512-wPjqI36Hcq7FYjbbV60sDwZOcauNi9GFhg2cM8cEKCSBlV1+rf5EgJ+L85Z0ClhPO4z/ulJXtcGTieqOqTwIkg== + dependencies: + "@metascraper/helpers" "^4.10.2" + lodash "~4.17.11" + +metascraper-url@^5.5.0: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-url/-/metascraper-url-5.6.3.tgz#7e756f79ed2a5e1591682e29b665551855ddda5d" + integrity sha512-hFHff2AsWuW552CkktWR9ViVp2poZufP1YUAVJWRe7UaHC67vx2mE5hjNZkVBSi1rOoPIbNN+jPVvcKwT6tkAw== + dependencies: + "@metascraper/helpers" "^5.6.3" + +metascraper-video@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-4.10.2.tgz#6378f3ac6bf0a2e11a27096545464cf6a19e1e74" + integrity sha512-cM8Tq9j6sKUMJxomd0TP619khJrn89zh0A1T7HC9tjGvaF+RGdpjpBq8xbpPDrXbeqDl4BVTX9VQ4MDU3+UuQA== + dependencies: + "@metascraper/helpers" "^4.10.2" + lodash "~4.17.11" + +metascraper-youtube@^4.8.5: + version "4.10.2" + resolved "https://registry.yarnpkg.com/metascraper-youtube/-/metascraper-youtube-4.10.2.tgz#d8bd437f90f2bf40c30613c0f4fb1f56c094119a" + integrity sha512-cmW0JOCVJUsspaBS3WFM8YvMKEG0sPtB21KjPTzRN9yhYyXYy63Pw21G/KxTEdth7GWxfnuttRtiD4BnfntApg== + dependencies: + "@metascraper/helpers" "^4.10.2" + get-video-id "~3.1.1" + is-reachable "~3.0.0" + p-locate "~4.0.0" + +metascraper@^4.10.3: + version "4.10.3" + resolved "https://registry.yarnpkg.com/metascraper/-/metascraper-4.10.3.tgz#8a97ed2e914e81d1dbc1f17a5b1e64f1b804493f" + integrity sha512-wNQm5A/PIxWcahaMwI+b3rOmmXRDNmjyF6Q15dHYXEqYoGl3dFaaT4lnTTm8yntvE+fOj8+o51ON2FBdstxbsA== + dependencies: + "@metascraper/helpers" "^4.10.2" + cheerio "~1.0.0-rc.2" + cheerio-advanced-selectors "~2.0.1" + lodash "~4.17.11" + p-reduce "~2.0.0" + whoops "~4.0.2" + methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -5396,7 +5889,7 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "~1.37.0" -mime-types@~2.1.24: +mime-types@~2.1.22, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== @@ -5413,6 +5906,21 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.1.0: + version "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-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -5470,6 +5978,11 @@ mkdirp@^0.5.0, mkdirp@^0.5.1: dependencies: minimist "0.0.8" +moment@2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" + integrity sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ== + moment@^2.17.1: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" @@ -5504,6 +6017,11 @@ mz@^2.4.0: object-assign "^4.0.1" thenify-all "^1.0.0" +n-gram@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/n-gram/-/n-gram-1.1.1.tgz#a374dc176a9063a2388d1be18ed7c35828be2a97" + integrity sha512-qibRqvUghLIVsq+RTwVuwOzgOxf0l4DDZKVYAK0bMam5sG9ZzaJ6BUSJyG2Td8kTc7c/HcMUtjiN5ShobZA2bA== + n3@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/n3/-/n3-0.9.1.tgz#430b547d58dc7381408c45784dd8058171903932" @@ -5734,6 +6252,16 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^4.1.0, normalize-url@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + +normalize-url@~4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.2.0.tgz#e747f16b58e6d7f391495fd86415fa04ec7c9897" + integrity sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg== + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -5956,6 +6484,18 @@ output-file-sync@^2.0.0: is-plain-obj "^1.1.0" mkdirp "^0.5.1" +p-any@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-any/-/p-any-1.1.0.tgz#1d03835c7eed1e34b8e539c47b7b60d0d015d4e1" + integrity sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g== + dependencies: + p-some "^2.0.0" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -5978,6 +6518,11 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -6006,11 +6551,37 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.0.0.tgz#fff5d4a5dc4f89babe7d266f6efc685630038651" + integrity sha512-IvOiDT1hbCdrsFKKXs8AGjxouEfn9VVdz/edtT08IDr+RIn2U/o3Xx+Agx455+CkSRdomMs3EN5BgR2Q0LZX0g== + dependencies: + p-limit "^2.0.0" + p-reduce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= +p-reduce@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.0.0.tgz#365a26916213650711124881a6bdc4e32c2bfe36" + integrity sha512-VcNNEqiYIkRCGeUHELY5dUrnQHCRwL6eIH/L9oSbl/PsvyHQXD1ws/MFwuEb+6dgH/URCfROVUqOYL37eHi2kQ== + +p-some@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-some/-/p-some-2.0.1.tgz#65d87c8b154edbcf5221d167778b6d2e150f6f06" + integrity sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY= + dependencies: + aggregate-error "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -6065,6 +6636,11 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse-uri@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.0.tgz#2872dcc22f1a797acde1583d8a0ac29552ddac20" + integrity sha1-KHLcwi8aeXrN4Vg9igrClVLdrCA= + parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" @@ -6202,6 +6778,11 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== +port-numbers@^4.0.4: + version "4.0.13" + resolved "https://registry.yarnpkg.com/port-numbers/-/port-numbers-4.0.13.tgz#563b6c6947a92d6df7ad909b96a54de49703091b" + integrity sha512-Nu/yQsPdBZ+dsJFBs8zUZk4ZEY/yL1RN1LqnaRYWtlzALPLj7VLKh/MFUFQuzPOGZpsj9Mh5wL1gNJzWQGPKyQ== + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -6226,6 +6807,11 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -6339,6 +6925,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode2@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/punycode2/-/punycode2-1.0.0.tgz#e2b4b9a9a8ff157d0b84438e203181ee7892dfd8" + integrity sha1-4rS5qaj/FX0LhEOOIDGB7niS39g= + punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -6359,6 +6950,11 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -6656,6 +7252,11 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -6690,6 +7291,13 @@ resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0 dependencies: path-parse "^1.0.6" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -6720,6 +7328,11 @@ rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: dependencies: glob "^7.1.3" +router-ips@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/router-ips/-/router-ips-1.0.0.tgz#44e00858ebebc0133d58e40b2cd8a1fbb04203f5" + integrity sha1-ROAIWOvrwBM9WOQLLNih+7BCA/U= + rsvp@^3.3.3: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" @@ -6962,6 +7575,11 @@ slug@~1.1.0: dependencies: unicode ">= 0.3.1" +smartquotes@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/smartquotes/-/smartquotes-2.3.1.tgz#01ebb595d6c7a9e24d90e8cb95c17d0e1af49407" + integrity sha1-Aeu1ldbHqeJNkOjLlcF9Dhr0lAc= + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -7287,6 +7905,13 @@ supertest@~4.0.2: methods "^1.1.2" superagent "^3.8.3" +supports-color@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= + dependencies: + has-flag "^2.0.0" + supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -7408,6 +8033,38 @@ title-case@^2.1.1: no-case "^2.2.0" upper-case "^1.0.3" +title@~3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/title/-/title-3.4.1.tgz#166177c48f52ae9b73afe9901a183f0b6c97b2e6" + integrity sha512-CoIakPr4Gi91bm4Xp6xTuZ3EENxPcKgOJzHzrhSdUatGtFMeVJa2qxI4WNhJHgz0Jak5Ck6jY2UNFM71/yBIsw== + dependencies: + arg "1.0.0" + chalk "2.3.0" + clipboardy "1.2.2" + titleize "1.0.0" + +titleize@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" + integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= + +tlds@^1.187.0, tlds@^1.203.0: + version "1.203.1" + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" + integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== + +tldts-core@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.3.1.tgz#040450d7148107880ba9020e77b3b28a6cc5d9db" + integrity sha512-z8C2wcT2XvSgk5p0HWapXPkvvKG7E8Jei71N+9Mpp9Eoh2/wjtQPhDeENSuzHNmjTdRz6KFIcM7aWTB+7g0OyA== + +tldts@~5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-5.3.1.tgz#39b2164b71777e69b3d05e5db5a30b5e1a5df6b7" + integrity sha512-JHG3Gonv+17qi1gyskY0KwdpjVkQfQK4pMHm52vpdKXV3y9AzEhhinDT/GfLF8w7kRLpIHhcViZ0rEsFla81lA== + dependencies: + tldts-core "^5.3.1" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -7432,6 +8089,11 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -7497,11 +8159,25 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +trigram-utils@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/trigram-utils/-/trigram-utils-1.0.2.tgz#47574b7fade636e0fc06515788cbbd61786d2292" + integrity sha512-4/DmYtegpRAyTHPpL+asfLHfTdrTZ5N0FNaixyb4L6Bx3mi+g1wgsFJNixZ9Ycsjs3+FrK4zJoWW86cdMaL8RA== + dependencies: + collapse-white-space "^1.0.3" + n-gram "^1.0.0" + trim "0.0.1" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + trunc-html@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/trunc-html/-/trunc-html-1.1.2.tgz#1e97d51f67d470b67662b1a670e6d0ea7a8edafe" @@ -7516,6 +8192,16 @@ trunc-text@1.0.1: resolved "https://registry.yarnpkg.com/trunc-text/-/trunc-text-1.0.1.tgz#58f876d8ac59b224b79834bb478b8656e69622b5" integrity sha1-WPh22KxZsiS3mDS7R4uGVuaWIrU= +truncate@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.0.1.tgz#dd1a6d15630515663d8475f6f24edf2f800ebb1b" + integrity sha1-3RptFWMFFWY9hHX28k7fL4AOuxs= + +truncate@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/truncate/-/truncate-2.1.0.tgz#391183563a25cffbd4d613a1d00ae5844c9e55d3" + integrity sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ== + ts-invariant@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.2.tgz#8685131b8083e67c66d602540e78763408be9113" @@ -7683,6 +8369,37 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.4: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-regex@~4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-4.1.1.tgz#a5617b22e15e26dac57ce74c3f52088bcdfec995" + integrity sha512-ViSDgDPNKkrQHI81GLCjdDN+Rsk3tAW/uLXlBOJxtcHzWZjta58Z0APXhfXzS89YszsheMnEvXeDXsWUB53wwA== + dependencies: + ip-regex "^1.0.1" + tlds "^1.187.0" + +url-regex@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -7757,6 +8474,11 @@ verror@1.10.0, verror@^1.9.0: core-util-is "1.0.2" extsprintf "^1.2.0" +video-extensions@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/video-extensions/-/video-extensions-1.1.0.tgz#eaa86b45f29a853c2b873e9d8e23b513712997d6" + integrity sha1-6qhrRfKahTwrhz6djiO1E3Epl9Y= + vocabs-as@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/vocabs-as/-/vocabs-as-3.0.0.tgz#0dd0549cecb331ba4e917d2c5a4e83b146865c23" @@ -7908,6 +8630,14 @@ 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== + dependencies: + clean-stack "~2.0.0" + mimic-fn "~2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" From d61cac64bfebd6fcf1c5c3472493598e39e68a63 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 12:05:05 +0000 Subject: [PATCH 102/131] Bump @babel/cli from 7.5.0 to 7.5.5 in /backend Bumps [@babel/cli](https://github.com/babel/babel) from 7.5.0 to 7.5.5. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.5) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 31 +++++++------------------------ 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/backend/package.json b/backend/package.json index 159e3f724..22edd6049 100644 --- a/backend/package.json +++ b/backend/package.json @@ -100,7 +100,7 @@ "wait-on": "~3.3.0" }, "devDependencies": { - "@babel/cli": "~7.5.0", + "@babel/cli": "~7.5.5", "@babel/core": "~7.5.5", "@babel/node": "~7.5.5", "@babel/plugin-proposal-throw-expressions": "^7.2.0", diff --git a/backend/yarn.lock b/backend/yarn.lock index 5ce8ac94c..7d0f2f75e 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -14,16 +14,16 @@ resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz#3ce939cb127fb8aaa3ffc1e90dff9b8af9f2e3dc" integrity sha512-8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ== -"@babel/cli@~7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.5.0.tgz#f403c930692e28ecfa3bf02a9e7562b474f38271" - integrity sha512-qNH55fWbKrEsCwID+Qc/3JDPnsSGpIIiMDbppnR8Z6PxLAqMQCFNqBctkIkBrMH49Nx+qqVTrHRWUR+ho2k+qQ== +"@babel/cli@~7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.5.5.tgz#bdb6d9169e93e241a08f5f7b0265195bf38ef5ec" + integrity sha512-UHI+7pHv/tk9g6WXQKYz+kmXTI77YtuY3vqC59KIqcoWEjsJJSG6rAxKaLsgj3LDyadsPrCB929gVOKM6Hui0w== dependencies: commander "^2.8.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.11" + lodash "^4.17.13" mkdirp "^0.5.1" output-file-sync "^2.0.0" slash "^2.0.0" @@ -3845,7 +3845,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob@7.1.4: +glob@7.1.4, glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -3857,18 +3857,6 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -5578,7 +5566,7 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@4.17.15, lodash@^4.17.4, lodash@~4.17.11, lodash@~4.17.15: +lodash@4.17.15, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.11, lodash@~4.17.14, lodash@~4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -5588,11 +5576,6 @@ lodash@=3.10.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.5, lodash@~4.17.14: - version "4.17.14" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" - integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== - long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" From 0e1bc2e9c0cb3135e68a8fe6d6b8d704b762c404 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 12:05:07 +0000 Subject: [PATCH 103/131] Bump eslint-plugin-import from 2.18.0 to 2.18.2 in /backend Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.0 to 2.18.2. - [Release notes](https://github.com/benmosher/eslint-plugin-import/releases) - [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md) - [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.0...v2.18.2) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 46 +++++++++++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/backend/package.json b/backend/package.json index 159e3f724..29f8905ee 100644 --- a/backend/package.json +++ b/backend/package.json @@ -115,7 +115,7 @@ "eslint": "~6.0.1", "eslint-config-prettier": "~6.0.0", "eslint-config-standard": "~12.0.0", - "eslint-plugin-import": "~2.18.0", + "eslint-plugin-import": "~2.18.2", "eslint-plugin-jest": "~22.13.0", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", diff --git a/backend/yarn.lock b/backend/yarn.lock index 5ce8ac94c..dbdbaa8f5 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -2811,7 +2811,7 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== -define-properties@^1.1.2: +define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -3071,18 +3071,7 @@ error-stack-parser@^2.0.1: dependencies: stackframe "^1.0.4" -es-abstract@^1.4.3: - version "1.12.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-abstract@^1.5.1, es-abstract@^1.7.0: +es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -3094,6 +3083,17 @@ es-abstract@^1.5.1, es-abstract@^1.7.0: is-regex "^1.0.4" object-keys "^1.0.12" +es-abstract@^1.4.3: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + es-to-primitive@^1.1.1, es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" @@ -3202,10 +3202,10 @@ eslint-plugin-es@^1.4.0: eslint-utils "^1.3.0" regexpp "^2.0.1" -eslint-plugin-import@~2.18.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz#7a5ba8d32622fb35eb9c8db195c2090bd18a3678" - integrity sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig== +eslint-plugin-import@~2.18.2: + version "2.18.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" + integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== dependencies: array-includes "^3.0.3" contains-path "^0.1.0" @@ -3214,8 +3214,8 @@ eslint-plugin-import@~2.18.0: eslint-import-resolver-node "^0.3.2" eslint-module-utils "^2.4.0" has "^1.0.3" - lodash "^4.17.11" minimatch "^3.0.4" + object.values "^1.1.0" read-pkg-up "^2.0.0" resolve "^1.11.0" @@ -6400,6 +6400,16 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" From 8875314b046a9e8b04588f02c15aac280059155a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2019 21:03:00 +0000 Subject: [PATCH 104/131] Bump eslint from 6.0.1 to 6.1.0 in /backend Bumps [eslint](https://github.com/eslint/eslint) from 6.0.1 to 6.1.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v6.0.1...v6.1.0) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 98 ++++++++++++++++++++++++++------------------ 2 files changed, 58 insertions(+), 42 deletions(-) diff --git a/backend/package.json b/backend/package.json index 2b5bd1365..e08cde2ad 100644 --- a/backend/package.json +++ b/backend/package.json @@ -112,7 +112,7 @@ "babel-jest": "~24.8.0", "chai": "~4.2.0", "cucumber": "~5.1.0", - "eslint": "~6.0.1", + "eslint": "~6.1.0", "eslint-config-prettier": "~6.0.0", "eslint-config-standard": "~12.0.0", "eslint-plugin-import": "~2.18.2", diff --git a/backend/yarn.lock b/backend/yarn.lock index 3021c27ed..0ca396dc9 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -1400,6 +1400,11 @@ ansi-regex@^4.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w== +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-styles@^3.1.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -3261,10 +3266,10 @@ eslint-scope@3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -3279,10 +3284,10 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@~6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.0.1.tgz#4a32181d72cb999d6f54151df7d337131f81cda7" - integrity sha512-DyQRaMmORQ+JsWShYsSg4OPTjY56u1nCjAmICrE8vLWqyLKxhFXOthwMj1SA8xwfrv0CofLNVnqbfyhwCkaO0w== +eslint@~6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.1.0.tgz#06438a4a278b1d84fb107d24eaaa35471986e646" + integrity sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -3290,7 +3295,7 @@ eslint@~6.0.1: cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.3" + eslint-scope "^5.0.0" eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" espree "^6.0.0" @@ -3298,28 +3303,29 @@ eslint@~6.0.1: esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^3.1.0" + glob-parent "^5.0.0" globals "^11.7.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.2.2" + inquirer "^6.4.1" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.11" + lodash "^4.17.14" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" progress "^2.0.0" regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" table "^5.2.3" text-table "^0.2.0" + v8-compile-cache "^2.0.3" espree@^6.0.0: version "6.0.0" @@ -3845,6 +3851,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== + dependencies: + is-glob "^4.0.1" + glob@7.1.4, glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -4356,10 +4369,10 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" - integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== +inquirer@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" + integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -4367,12 +4380,12 @@ inquirer@^6.2.2: cli-width "^2.0.0" external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.17.11" + lodash "^4.17.12" mute-stream "0.0.7" run-async "^2.2.0" rxjs "^6.4.0" string-width "^2.1.0" - strip-ansi "^5.0.0" + strip-ansi "^5.1.0" through "^2.3.6" insane@2.6.1: @@ -4558,7 +4571,7 @@ is-generator@^1.0.2: resolved "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz#c14c21057ed36e328db80347966c693f886389f3" integrity sha1-wUwhBX7TbjKNuANHlmxpP4hjifM= -is-glob@4.0.1: +is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -4579,13 +4592,6 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= - dependencies: - is-extglob "^2.1.1" - is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" @@ -5566,7 +5572,7 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@4.17.15, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.11, lodash@~4.17.14, lodash@~4.17.15: +lodash@4.17.15, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.11, lodash@~4.17.14, lodash@~4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -7428,15 +7434,15 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -semver@^6.0.0, semver@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.0.tgz#e95dc415d45ecf03f2f9f83b264a6b11f49c0cca" - integrity sha512-kCqEOOHoBcFs/2Ccuk4Xarm/KiWRSLEX9CAZF8xkJ6ZPlIoTZ8V5f7J16vYLJqDbR7KrxTJpR2lqjIEm2Qx9cQ== +semver@^6.0.0, semver@^6.1.0, semver@^6.1.2: + version "6.2.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" + integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A== send@0.17.1: version "0.17.1" @@ -7841,12 +7847,12 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" - integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: - ansi-regex "^4.0.0" + ansi-regex "^4.1.0" strip-bom@^3.0.0: version "3.0.0" @@ -7858,7 +7864,12 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -8433,6 +8444,11 @@ uuid@^3.1.0, uuid@^3.3.2, uuid@~3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== +v8-compile-cache@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" + integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + v8flags@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.1.tgz#42259a1461c08397e37fe1d4f1cfb59cad85a053" From 511edfd4bd3238fb4ac18d784d2cfc2d30da7662 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 04:29:02 +0000 Subject: [PATCH 105/131] Bump eslint-plugin-jest from 22.11.1 to 22.13.6 in /webapp Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.11.1 to 22.13.6. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.11.1...v22.13.6) Signed-off-by: dependabot-preview[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 42 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index cd91dfb43..ea811fe02 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -95,7 +95,7 @@ "eslint-config-standard": "~12.0.0", "eslint-loader": "~2.2.1", "eslint-plugin-import": "~2.18.2", - "eslint-plugin-jest": "~22.11.1", + "eslint-plugin-jest": "~22.13.6", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", "eslint-plugin-promise": "~4.2.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 6db6fe0fe..f9c8be4b6 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -1376,6 +1376,11 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/json-schema@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" + integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== + "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" @@ -1447,6 +1452,23 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== +"@typescript-eslint/experimental-utils@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz#b08c60d780c0067de2fb44b04b432f540138301e" + integrity sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "1.13.0" + eslint-scope "^4.0.0" + +"@typescript-eslint/typescript-estree@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e" + integrity sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw== + dependencies: + lodash.unescape "4.0.1" + semver "5.5.0" + "@vue/babel-helper-vue-jsx-merge-props@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040" @@ -4337,10 +4359,12 @@ eslint-plugin-import@~2.18.2: read-pkg-up "^2.0.0" resolve "^1.11.0" -eslint-plugin-jest@~22.11.1: - version "22.11.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.11.1.tgz#04b586e2fddd07e55900a381255d6b3d9242ae87" - integrity sha512-kPF1Nmr5xMLz6DT7qEttz0TTeyx1x6SozIkNO9y4F2yxuWjHMp/e70fo742pR3y0MewgXQQMIIXeSKLB66iO7Q== +eslint-plugin-jest@~22.13.6: + version "22.13.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.6.tgz#85630e7709fe1ecbe0099956590af32d5e157448" + integrity sha512-wn3n9Djj+Dyi8AS1kvGOXpzUJfs9SJYhoZxIb49y4cwHRPaSgDHzSJPZX3sliZ3k8l6bYVeEGW76QvvqoOjSEw== + dependencies: + "@typescript-eslint/experimental-utils" "^1.13.0" eslint-plugin-node@~9.1.0: version "9.1.0" @@ -6962,6 +6986,11 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -9793,6 +9822,11 @@ semver-diff@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + semver@^6.0.0, semver@^6.1.0, semver@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" From 4d7c1367f1b5de41d3d3f24c7a2cca08d11e2dbf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 04:29:33 +0000 Subject: [PATCH 106/131] Bump @vue/eslint-config-prettier from 4.0.1 to 5.0.0 in /webapp Bumps [@vue/eslint-config-prettier](https://github.com/vuejs/eslint-config-prettier) from 4.0.1 to 5.0.0. - [Release notes](https://github.com/vuejs/eslint-config-prettier/releases) - [Changelog](https://github.com/vuejs/eslint-config-prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/vuejs/eslint-config-prettier/commits/v5.0.0) Signed-off-by: dependabot-preview[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 25 ++++++++----------------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index cd91dfb43..6dedd589d 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -84,7 +84,7 @@ "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/preset-env": "~7.5.5", "@vue/cli-shared-utils": "~3.9.0", - "@vue/eslint-config-prettier": "~4.0.1", + "@vue/eslint-config-prettier": "~5.0.0", "@vue/server-test-utils": "~1.0.0-beta.29", "@vue/test-utils": "~1.0.0-beta.29", "babel-core": "~7.0.0-bridge.0", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 6db6fe0fe..62cec4799 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -1544,14 +1544,12 @@ source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" -"@vue/eslint-config-prettier@~4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-4.0.1.tgz#a036d0d2193c5c836542b35a3a7c35c4e1c68c97" - integrity sha512-rJEDXPb61Hfgg8GllO3XXFP98bcIxdNNHSrNcxP/vBSukOolgOwQyZJ5f5z/c7ViPyh5/IDlC4qBnhx/0n+I4g== +"@vue/eslint-config-prettier@~5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-5.0.0.tgz#ce66c8c4d9e01ad1d4e1a12140ab685bd5ef345a" + integrity sha512-OXcH+XWevp3DIdC3BBornC1q6/MNYfca/3HY66awV6aGm+dtkR/hpfBb6fX7nsVjcox13kgG+eSUtUfJ3uxZ8A== dependencies: - eslint-config-prettier "^3.3.0" - eslint-plugin-prettier "^3.0.0" - prettier "^1.15.2" + eslint-config-prettier "^6.0.0" "@vue/server-test-utils@~1.0.0-beta.29": version "1.0.0-beta.29" @@ -4266,14 +4264,7 @@ escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^3.3.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz#8ca3ffac4bd6eeef623a0651f9d754900e3ec217" - integrity sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ== - dependencies: - get-stdin "^6.0.0" - -eslint-config-prettier@~6.0.0: +eslint-config-prettier@^6.0.0, eslint-config-prettier@~6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz#f429a53bde9fc7660e6353910fd996d6284d3c25" integrity sha512-vDrcCFE3+2ixNT5H83g28bO/uYAwibJxerXPj+E7op4qzBCsAV36QfvdAyVOoNxKAH2Os/e01T/2x++V0LPukA== @@ -4354,7 +4345,7 @@ eslint-plugin-node@~9.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prettier@^3.0.0, eslint-plugin-prettier@~3.1.0: +eslint-plugin-prettier@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz#8695188f95daa93b0dc54b249347ca3b79c4686d" integrity sha512-XWX2yVuwVNLOUhQijAkXz+rMPPoCr7WFiAl8ig6I7Xn+pPVhDhzg4DxHpmbeb0iqjO9UronEA3Tb09ChnFVHHA== @@ -8913,7 +8904,7 @@ prettier@1.16.3: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw== -prettier@^1.15.2, prettier@~1.18.2: +prettier@~1.18.2: version "1.18.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== From ff8a552921f38efa0b9d70bcb5f9062fc914e554 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 04:37:29 +0000 Subject: [PATCH 107/131] Bump metascraper-date from 4.10.2 to 5.6.3 in /backend Bumps [metascraper-date](https://github.com/microlinkhq/metascraper) from 4.10.2 to 5.6.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.10.2...v5.6.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index 2b5bd1365..898dcb114 100644 --- a/backend/package.json +++ b/backend/package.json @@ -74,7 +74,7 @@ "metascraper-audio": "^5.5.0", "metascraper-author": "^4.8.5", "metascraper-clearbit-logo": "^5.3.0", - "metascraper-date": "^4.8.5", + "metascraper-date": "^5.6.3", "metascraper-description": "^5.5.0", "metascraper-image": "^4.8.5", "metascraper-lang": "^4.8.5", diff --git a/backend/yarn.lock b/backend/yarn.lock index 3021c27ed..48784550c 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5726,12 +5726,12 @@ metascraper-clearbit-logo@^5.3.0: dependencies: got "~9.6.0" -metascraper-date@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-date/-/metascraper-date-4.10.2.tgz#fe60510cb6481ad68e9a9d76e287bc41ac887ef1" - integrity sha512-BdX5JJXQxErOZBlc2pJfU8a/suyu3G2omXrrjcrI+OCPfFD7CAXgZU43iou7HMnXiviQ33x7wT6DDsj7sSg5Nw== +metascraper-date@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-date/-/metascraper-date-5.6.3.tgz#516fad38391a45137a58430f639a57037eee96f2" + integrity sha512-sdbY0IOu1BcZHocwVIJ8/CPkguVR8oDho13apIGNsZjyItIdMMLrziDqzOSGcJI++AXGmS3MNHW8M+bdYHVj1g== dependencies: - "@metascraper/helpers" "^4.10.2" + "@metascraper/helpers" "^5.6.3" metascraper-description@^5.5.0: version "5.6.3" From 0187a93432335345bca55807a5bbc6ed79fdfacc Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 04:39:32 +0000 Subject: [PATCH 108/131] Bump eslint-plugin-jest from 22.13.0 to 22.13.6 in /backend Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.13.0 to 22.13.6. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.13.0...v22.13.6) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 44 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index 2b5bd1365..0b896d928 100644 --- a/backend/package.json +++ b/backend/package.json @@ -116,7 +116,7 @@ "eslint-config-prettier": "~6.0.0", "eslint-config-standard": "~12.0.0", "eslint-plugin-import": "~2.18.2", - "eslint-plugin-jest": "~22.13.0", + "eslint-plugin-jest": "~22.13.6", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", "eslint-plugin-promise": "~4.2.1", diff --git a/backend/yarn.lock b/backend/yarn.lock index 3021c27ed..2c54a2855 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -1189,6 +1189,11 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/json-schema@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" + integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== + "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" @@ -1250,6 +1255,23 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== +"@typescript-eslint/experimental-utils@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz#b08c60d780c0067de2fb44b04b432f540138301e" + integrity sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "1.13.0" + eslint-scope "^4.0.0" + +"@typescript-eslint/typescript-estree@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e" + integrity sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw== + dependencies: + lodash.unescape "4.0.1" + semver "5.5.0" + "@wry/context@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.0.tgz#8a8718408e4dd0514a0f8f4231bb4b87130b34e3" @@ -3219,10 +3241,12 @@ eslint-plugin-import@~2.18.2: read-pkg-up "^2.0.0" resolve "^1.11.0" -eslint-plugin-jest@~22.13.0: - version "22.13.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.0.tgz#d7d134c6e3c2f67cc50f5fa89a329db579d28428" - integrity sha512-bIr8LL7buUXS8Pk69SFgaDKgyvPQkDu6i8ko0lP54uccszlo4EOwtstDXOZl5Af3JwudbECxRUbCpL/2cKDkkg== +eslint-plugin-jest@~22.13.6: + version "22.13.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.6.tgz#85630e7709fe1ecbe0099956590af32d5e157448" + integrity sha512-wn3n9Djj+Dyi8AS1kvGOXpzUJfs9SJYhoZxIb49y4cwHRPaSgDHzSJPZX3sliZ3k8l6bYVeEGW76QvvqoOjSEw== + dependencies: + "@typescript-eslint/experimental-utils" "^1.13.0" eslint-plugin-node@~9.1.0: version "9.1.0" @@ -3261,7 +3285,7 @@ eslint-scope@3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^4.0.3: +eslint-scope@^4.0.0, eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== @@ -5566,6 +5590,11 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= + lodash@4.17.15, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.11, lodash@~4.17.14, lodash@~4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" @@ -7433,6 +7462,11 @@ semver-diff@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + semver@^6.0.0, semver@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.0.tgz#e95dc415d45ecf03f2f9f83b264a6b11f49c0cca" From c138701413c3d4d57d9ae86042bfe063c12c0bb5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 04:46:50 +0000 Subject: [PATCH 109/131] Bump metascraper-publisher from 4.10.2 to 5.6.3 in /backend Bumps [metascraper-publisher](https://github.com/microlinkhq/metascraper) from 4.10.2 to 5.6.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.10.2...v5.6.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index 2b5bd1365..277c4b0c2 100644 --- a/backend/package.json +++ b/backend/package.json @@ -80,7 +80,7 @@ "metascraper-lang": "^4.8.5", "metascraper-lang-detector": "^4.8.5", "metascraper-logo": "^5.5.0", - "metascraper-publisher": "^4.8.5", + "metascraper-publisher": "^5.6.3", "metascraper-soundcloud": "^5.5.3", "metascraper-title": "^4.8.5", "metascraper-url": "^5.5.0", diff --git a/backend/yarn.lock b/backend/yarn.lock index 3021c27ed..a80cf208c 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5770,12 +5770,12 @@ metascraper-logo@^5.5.0: dependencies: "@metascraper/helpers" "^5.6.3" -metascraper-publisher@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-publisher/-/metascraper-publisher-4.10.2.tgz#f65f44f14b9f6b00467b26a242c1f58177c713e0" - integrity sha512-mKHcMJBPvtCGGdNtE7+InQ/4ntTzoWfMMpa0O2JKH4Odd5tZ9wtJF/Y59n261qgML5d3MtloN7eSfsLZNcmaQA== +metascraper-publisher@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-publisher/-/metascraper-publisher-5.6.3.tgz#3729cd7dac117c94f92020ff3a8397a1b965a27e" + integrity sha512-1Z+bwrTn6j4Tf85DatYL0zDmqBfoJCfYa0nNlZ9HWfjM+QWDxBeIu1v/85N3AYGYPwk5G38IdvEYBb4MpMEQvQ== dependencies: - "@metascraper/helpers" "^4.10.2" + "@metascraper/helpers" "^5.6.3" metascraper-soundcloud@^5.5.3: version "5.6.3" From 2fdbdf84463c99d2031243051410100ebab4dd1f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 08:30:30 +0000 Subject: [PATCH 110/131] Bump metascraper-lang from 4.10.2 to 5.6.3 in /backend Bumps [metascraper-lang](https://github.com/microlinkhq/metascraper) from 4.10.2 to 5.6.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.10.2...v5.6.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index a39b12ab7..2397cfaf3 100644 --- a/backend/package.json +++ b/backend/package.json @@ -77,7 +77,7 @@ "metascraper-date": "^5.6.3", "metascraper-description": "^5.5.0", "metascraper-image": "^4.8.5", - "metascraper-lang": "^4.8.5", + "metascraper-lang": "^5.6.3", "metascraper-lang-detector": "^4.8.5", "metascraper-logo": "^5.5.0", "metascraper-publisher": "^4.8.5", diff --git a/backend/yarn.lock b/backend/yarn.lock index 1979b1ff6..e5ceca645 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5762,12 +5762,12 @@ metascraper-lang-detector@^4.8.5: franc "~4.0.0" iso-639-3 "~1.1.0" -metascraper-lang@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-4.10.2.tgz#36cb11958fa8b341946cb2d8d58dff328d76d992" - integrity sha512-+fCh5CqPqN94sa82afwVBIyvTp3/QIgxUSmti5AN0p1fVExAdO7BUiQbs3jO+0I++xJQzTZ2LH/yYZgBc+IyQA== +metascraper-lang@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-5.6.3.tgz#d2d7a20f4145b0785391fffec629e154737fc942" + integrity sha512-c13zxmREcB/hDXs7MIxio7RNfVsSzGfixk6FrfQQh3fypmiR84SpeZmQR+G/e2X/BDNwpIydJM62R7BayY709Q== dependencies: - "@metascraper/helpers" "^4.10.2" + "@metascraper/helpers" "^5.6.3" metascraper-logo@^5.5.0: version "5.6.3" From e357002f7f020ebc0ef36a308f0f262a0d5b9e91 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 08:30:30 +0000 Subject: [PATCH 111/131] Bump metascraper-author from 4.10.2 to 5.6.3 in /backend Bumps [metascraper-author](https://github.com/microlinkhq/metascraper) from 4.10.2 to 5.6.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.10.2...v5.6.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/package.json b/backend/package.json index a39b12ab7..b7235abb7 100644 --- a/backend/package.json +++ b/backend/package.json @@ -72,7 +72,7 @@ "merge-graphql-schemas": "^1.6.1", "metascraper": "^4.10.3", "metascraper-audio": "^5.5.0", - "metascraper-author": "^4.8.5", + "metascraper-author": "^5.6.3", "metascraper-clearbit-logo": "^5.3.0", "metascraper-date": "^5.6.3", "metascraper-description": "^5.5.0", diff --git a/backend/yarn.lock b/backend/yarn.lock index 1979b1ff6..beab537f5 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5717,13 +5717,13 @@ metascraper-audio@^5.5.0: dependencies: "@metascraper/helpers" "^5.6.3" -metascraper-author@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-author/-/metascraper-author-4.10.2.tgz#4047799a3f21110363ea90a19b3473983e61167f" - integrity sha512-mQwBhe5oMqMMo/95ilag/kbNFgTt1WBnqgsjCiQOl1l82SbuUo0yU4aLSUP2SEMIWp/zbtGo734q7oAbdhXVHw== +metascraper-author@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-author/-/metascraper-author-5.6.3.tgz#8ecc0d4257be1438e9f8242b4f0c1a5137f5bb13" + integrity sha512-BNnYWjaEFOS5JX5s6KFo6MIv5M2hgnaWV47LM/EOvfHpe0a6DovVtLkGrVj6SpbPio3tzTjakouBwjQpuo1Dlg== dependencies: - "@metascraper/helpers" "^4.10.2" - lodash "~4.17.11" + "@metascraper/helpers" "^5.6.3" + lodash "~4.17.15" metascraper-clearbit-logo@^5.3.0: version "5.3.0" From 3e72e4c9e7c70ec61bff21d36c3fcd77f34a84b6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2019 08:30:38 +0000 Subject: [PATCH 112/131] Bump eslint-plugin-jest from 22.13.0 to 22.13.6 in /backend Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.13.0 to 22.13.6. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.13.0...v22.13.6) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 50 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/backend/package.json b/backend/package.json index a39b12ab7..1303139ea 100644 --- a/backend/package.json +++ b/backend/package.json @@ -116,7 +116,7 @@ "eslint-config-prettier": "~6.0.0", "eslint-config-standard": "~12.0.0", "eslint-plugin-import": "~2.18.2", - "eslint-plugin-jest": "~22.13.0", + "eslint-plugin-jest": "~22.13.6", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", "eslint-plugin-promise": "~4.2.1", diff --git a/backend/yarn.lock b/backend/yarn.lock index 1979b1ff6..5aac124ce 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -1189,6 +1189,11 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/json-schema@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" + integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== + "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" @@ -1250,6 +1255,23 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== +"@typescript-eslint/experimental-utils@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz#b08c60d780c0067de2fb44b04b432f540138301e" + integrity sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "1.13.0" + eslint-scope "^4.0.0" + +"@typescript-eslint/typescript-estree@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e" + integrity sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw== + dependencies: + lodash.unescape "4.0.1" + semver "5.5.0" + "@wry/context@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.0.tgz#8a8718408e4dd0514a0f8f4231bb4b87130b34e3" @@ -3224,10 +3246,12 @@ eslint-plugin-import@~2.18.2: read-pkg-up "^2.0.0" resolve "^1.11.0" -eslint-plugin-jest@~22.13.0: - version "22.13.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.0.tgz#d7d134c6e3c2f67cc50f5fa89a329db579d28428" - integrity sha512-bIr8LL7buUXS8Pk69SFgaDKgyvPQkDu6i8ko0lP54uccszlo4EOwtstDXOZl5Af3JwudbECxRUbCpL/2cKDkkg== +eslint-plugin-jest@~22.13.6: + version "22.13.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.6.tgz#85630e7709fe1ecbe0099956590af32d5e157448" + integrity sha512-wn3n9Djj+Dyi8AS1kvGOXpzUJfs9SJYhoZxIb49y4cwHRPaSgDHzSJPZX3sliZ3k8l6bYVeEGW76QvvqoOjSEw== + dependencies: + "@typescript-eslint/experimental-utils" "^1.13.0" eslint-plugin-node@~9.1.0: version "9.1.0" @@ -3266,6 +3290,14 @@ eslint-scope@3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + eslint-scope@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" @@ -5572,6 +5604,11 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= + lodash@4.17.15, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.11, lodash@~4.17.14, lodash@~4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" @@ -7439,6 +7476,11 @@ semver-diff@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + semver@^6.0.0, semver@^6.1.0, semver@^6.1.2: version "6.2.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" From b70760e67082ba518cbc543d1ad5d1b9486bc1d3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2019 04:25:06 +0000 Subject: [PATCH 113/131] Bump metascraper-title from 4.10.2 to 5.6.3 in /backend Bumps [metascraper-title](https://github.com/microlinkhq/metascraper) from 4.10.2 to 5.6.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.10.2...v5.6.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/package.json b/backend/package.json index 40e012834..7b02afd60 100644 --- a/backend/package.json +++ b/backend/package.json @@ -82,7 +82,7 @@ "metascraper-logo": "^5.5.0", "metascraper-publisher": "^5.6.3", "metascraper-soundcloud": "^5.5.3", - "metascraper-title": "^4.8.5", + "metascraper-title": "^5.6.3", "metascraper-url": "^5.5.0", "metascraper-video": "^4.8.5", "metascraper-youtube": "^4.8.5", diff --git a/backend/yarn.lock b/backend/yarn.lock index 10c398ab3..4118f2307 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5792,13 +5792,13 @@ metascraper-soundcloud@^5.5.3: memoize-one "~5.0.5" tldts "~5.3.1" -metascraper-title@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-4.10.2.tgz#8c0235beb2fe3ab9261dd117e864372f61e21ec8" - integrity sha512-wPjqI36Hcq7FYjbbV60sDwZOcauNi9GFhg2cM8cEKCSBlV1+rf5EgJ+L85Z0ClhPO4z/ulJXtcGTieqOqTwIkg== +metascraper-title@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-5.6.3.tgz#219bf9a4da28d48ea180497a1d6d2b4fa4871cc2" + integrity sha512-sZ+SWojZhECisyw+el5fc1q2ENEAeQDzy/HabSkeA/saB3xqf3XnfqtCGIuElyxKiXS65KWzQOX+u3KseZdiAg== dependencies: - "@metascraper/helpers" "^4.10.2" - lodash "~4.17.11" + "@metascraper/helpers" "^5.6.3" + lodash "~4.17.15" metascraper-url@^5.5.0: version "5.6.3" From c73bb068fbffeb99c85c29b5e02a59150acf480b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2019 04:25:54 +0000 Subject: [PATCH 114/131] Bump date-fns from 2.0.0-beta.1 to 2.0.0-beta.3 in /backend Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.0.0-beta.1 to 2.0.0-beta.3. - [Release notes](https://github.com/date-fns/date-fns/releases) - [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md) - [Commits](https://github.com/date-fns/date-fns/compare/v2.0.0-beta.1...v2.0.0-beta.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/package.json b/backend/package.json index 40e012834..8795e7719 100644 --- a/backend/package.json +++ b/backend/package.json @@ -54,7 +54,7 @@ "cheerio": "~1.0.0-rc.3", "cors": "~2.8.5", "cross-env": "~5.2.0", - "date-fns": "2.0.0-beta.1", + "date-fns": "2.0.0-beta.3", "debug": "~4.1.1", "dotenv": "~8.0.0", "express": "^4.17.1", diff --git a/backend/yarn.lock b/backend/yarn.lock index 10c398ab3..19100644e 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -2746,10 +2746,10 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-fns@2.0.0-beta.1: - version "2.0.0-beta.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-beta.1.tgz#6f3209ea8be559211be5160e0a6379a7eade227b" - integrity sha512-ls5W/PUZmrtck53HD3Sd0564NlnNoQtcxNCwWcIzULJMNNgAPVKHoylVXPau7vdyu5/JTd25ljtan+iWnnUKkw== +date-fns@2.0.0-beta.3: + version "2.0.0-beta.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-beta.3.tgz#2e28f5af945930f774ddd778e184d68227101d55" + integrity sha512-z5O262BvHPhwUvA1weXH+AZodygnZUcORERw8hjwBUrRPGrAo2e/rjXfC8Ykf1OGJZGDuLnK/WXbEZBIc0exGQ== debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" From 96a726c2482402516c14577adb27b4d85eeff8d3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2019 04:32:02 +0000 Subject: [PATCH 115/131] Bump cypress-cucumber-preprocessor from 1.12.0 to 1.13.0 Bumps [cypress-cucumber-preprocessor](https://github.com/TheBrainFamily/cypress-cucumber-preprocessor) from 1.12.0 to 1.13.0. - [Release notes](https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/releases) - [Changelog](https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/blob/master/CHANGELOG.md) - [Commits](https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/compare/v1.12.0...v1.13.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6076e4b11..c7a78bc38 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "codecov": "^3.5.0", "cross-env": "^5.2.0", "cypress": "^3.4.0", - "cypress-cucumber-preprocessor": "^1.12.0", + "cypress-cucumber-preprocessor": "^1.13.0", "cypress-file-upload": "^3.3.2", "cypress-plugin-retries": "^1.2.2", "dotenv": "^8.0.0", diff --git a/yarn.lock b/yarn.lock index c1b33f39a..46815741d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1810,10 +1810,10 @@ cucumber@^4.2.1: util-arity "^1.0.2" verror "^1.9.0" -cypress-cucumber-preprocessor@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-1.12.0.tgz#092428ba267331e3d2cc6e1309c331d17632b8b1" - integrity sha512-uKrWbs51hGeHiLgcSZcjFvvVEW9UdStsLVpD1snuPuik9WE61kbZv7xumlPjRmkMF81zTUGnNLwZuAk3CV9dEw== +cypress-cucumber-preprocessor@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-1.13.0.tgz#efacd70ce21c7d0adc60e25af166f5fb2e990fb8" + integrity sha512-Y3B4El3oYqKUvEhfn7k7NrX/hMJvOCJIO+sgMbvvPXsUngzLWUdiS2LOAaSxpV4t2BCyFuvfzGH0j+C3tu4UvA== dependencies: "@cypress/browserify-preprocessor" "^1.1.2" chai "^4.1.2" From f344abaf9a680f9e68d211d2d3c59aca7ced1a59 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2019 04:33:59 +0000 Subject: [PATCH 116/131] Bump date-fns from 2.0.0-beta.2 to 2.0.0-beta.3 in /webapp Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.0.0-beta.2 to 2.0.0-beta.3. - [Release notes](https://github.com/date-fns/date-fns/releases) - [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md) - [Commits](https://github.com/date-fns/date-fns/compare/v2.0.0-beta.2...v2.0.0-beta.3) Signed-off-by: dependabot-preview[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index c65d3bd48..032d7015b 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -59,7 +59,7 @@ "apollo-client": "~2.6.3", "cookie-universal-nuxt": "~2.0.16", "cross-env": "~5.2.0", - "date-fns": "2.0.0-beta.2", + "date-fns": "2.0.0-beta.3", "express": "~4.17.1", "graphql": "~14.4.2", "isemail": "^3.2.0", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index a123b72f7..bf0551cc4 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -3811,10 +3811,10 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-fns@2.0.0-beta.2: - version "2.0.0-beta.2" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-beta.2.tgz#ccd556df832ef761baa88c600f53d2e829245999" - integrity sha512-4cicZF707RNerr3/Q3CcdLo+3OHMCfrRXE7h5iFgn7AMvX07sqKLxSf8Yp+WJW5bvKr2cy9/PkctXLv4iFtOaA== +date-fns@2.0.0-beta.3: + version "2.0.0-beta.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-beta.3.tgz#2e28f5af945930f774ddd778e184d68227101d55" + integrity sha512-z5O262BvHPhwUvA1weXH+AZodygnZUcORERw8hjwBUrRPGrAo2e/rjXfC8Ykf1OGJZGDuLnK/WXbEZBIc0exGQ== date-now@^0.1.4: version "0.1.4" From 67c7864533ae54a29ff072eba7fe22ce4f0dfe6d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2019 08:08:19 +0000 Subject: [PATCH 117/131] Bump metascraper-image from 4.10.2 to 5.6.3 in /backend Bumps [metascraper-image](https://github.com/microlinkhq/metascraper) from 4.10.2 to 5.6.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.10.2...v5.6.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index 9bfd72411..36e99226f 100644 --- a/backend/package.json +++ b/backend/package.json @@ -76,7 +76,7 @@ "metascraper-clearbit-logo": "^5.3.0", "metascraper-date": "^5.6.3", "metascraper-description": "^5.5.0", - "metascraper-image": "^4.8.5", + "metascraper-image": "^5.6.3", "metascraper-lang": "^5.6.3", "metascraper-lang-detector": "^4.8.5", "metascraper-logo": "^5.5.0", diff --git a/backend/yarn.lock b/backend/yarn.lock index 9385a2058..a6e966897 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5783,12 +5783,12 @@ metascraper-description@^5.5.0: dependencies: "@metascraper/helpers" "^5.6.3" -metascraper-image@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-4.10.2.tgz#84e2e3317017936d1f743a2ac80ae9eca16d5af9" - integrity sha512-ANelQVENmI8xpmsincBkNexVVohQcgk4eeKTZwBfT5/9nmMhtdJIV+obsKwL0eVHgMRj2iDphLMoAnFtcWXvdA== +metascraper-image@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-5.6.3.tgz#1d2fa627d90d5545f45bdda6e874af421ee1c622" + integrity sha512-pDq6fU6X59642KNmE1WmJUUgJxepU4TDj1u2HDR0XCdqeiEGpskqmO/rFJSdgRFJNFUo7RJ1Er8cT4yVKCgqtg== dependencies: - "@metascraper/helpers" "^4.10.2" + "@metascraper/helpers" "^5.6.3" metascraper-lang-detector@^4.8.5: version "4.10.2" From f21aded62699b7add5929e6f9405898f455f6e34 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2019 04:29:54 +0000 Subject: [PATCH 118/131] Bump helmet from 3.19.0 to 3.20.0 in /backend Bumps [helmet](https://github.com/helmetjs/helmet) from 3.19.0 to 3.20.0. - [Release notes](https://github.com/helmetjs/helmet/releases) - [Changelog](https://github.com/helmetjs/helmet/blob/master/CHANGELOG.md) - [Commits](https://github.com/helmetjs/helmet/compare/v3.19.0...v3.20.0) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/backend/package.json b/backend/package.json index 6e841d73f..318fb1a1e 100644 --- a/backend/package.json +++ b/backend/package.json @@ -65,7 +65,7 @@ "graphql-middleware": "~3.0.2", "graphql-shield": "~6.0.4", "graphql-tag": "~2.10.1", - "helmet": "~3.19.0", + "helmet": "~3.20.0", "jsonwebtoken": "~8.5.1", "linkifyjs": "~2.1.8", "lodash": "~4.17.14", diff --git a/backend/yarn.lock b/backend/yarn.lock index b210239bc..a2a9c9a3e 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -2536,10 +2536,10 @@ content-disposition@0.5.3: dependencies: safe-buffer "5.1.2" -content-security-policy-builder@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz#8749a1d542fcbe82237281ea9f716ce68b394dd2" - integrity sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w== +content-security-policy-builder@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb" + integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ== content-type@~1.0.4: version "1.0.4" @@ -4194,20 +4194,20 @@ helmet-crossdomain@0.4.0: resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e" integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA== -helmet-csp@2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.7.1.tgz#e8e0b5186ffd4db625cfcce523758adbfadb9dca" - integrity sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ== +helmet-csp@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.8.0.tgz#746d329e24ef39c4ebc00278a48abd3c209e0378" + integrity sha512-MlCPeM0Sm3pS9RACRihx70VeTHmkQwa7sum9EK1tfw1VZyvFU0dBWym9nHh3CRkTRNlyNm/WFCMvuh9zXkOjNw== dependencies: camelize "1.0.0" - content-security-policy-builder "2.0.0" + content-security-policy-builder "2.1.0" dasherize "2.0.0" platform "1.3.5" -helmet@~3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.19.0.tgz#02c524dd69e03b0af20dce7bc9929ff951081a29" - integrity sha512-l58Q3unSpYatlurvFzkCbTRQ8oWUmdXbOs7h+pnwQbFJRhRJDjER6UMyqHxp9iFtWPcVA05VLcUGSi0EXIv7GA== +helmet@~3.20.0: + version "3.20.0" + resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.20.0.tgz#8a9383bf8230a461cafe8bc763423fbde110d2fc" + integrity sha512-Ob+TqmQFZ5f7WgP8kBbAzNPsbf6p1lOj5r+327/ymw/IILWih3wcx9u/u/S8Mwv5wbBkO7Li6x5s23t3COhUKw== dependencies: depd "2.0.0" dns-prefetch-control "0.2.0" @@ -4216,7 +4216,7 @@ helmet@~3.19.0: feature-policy "0.3.0" frameguard "3.1.0" helmet-crossdomain "0.4.0" - helmet-csp "2.7.1" + helmet-csp "2.8.0" hide-powered-by "1.1.0" hpkp "2.0.0" hsts "2.2.0" From b2bdc0b683d0a910a21f3eea2056495ff6919f1a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2019 04:30:26 +0000 Subject: [PATCH 119/131] Bump metascraper-video from 4.10.2 to 5.6.3 in /backend Bumps [metascraper-video](https://github.com/microlinkhq/metascraper) from 4.10.2 to 5.6.3. - [Release notes](https://github.com/microlinkhq/metascraper/releases) - [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md) - [Commits](https://github.com/microlinkhq/metascraper/compare/v4.10.2...v5.6.3) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/package.json b/backend/package.json index 6e841d73f..b1f367372 100644 --- a/backend/package.json +++ b/backend/package.json @@ -84,7 +84,7 @@ "metascraper-soundcloud": "^5.5.3", "metascraper-title": "^5.6.3", "metascraper-url": "^5.5.0", - "metascraper-video": "^4.8.5", + "metascraper-video": "^5.6.3", "metascraper-youtube": "^4.8.5", "neo4j-driver": "~1.7.4", "neo4j-graphql-js": "^2.6.3", diff --git a/backend/yarn.lock b/backend/yarn.lock index b210239bc..203ee488a 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5844,13 +5844,13 @@ metascraper-url@^5.5.0: dependencies: "@metascraper/helpers" "^5.6.3" -metascraper-video@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-4.10.2.tgz#6378f3ac6bf0a2e11a27096545464cf6a19e1e74" - integrity sha512-cM8Tq9j6sKUMJxomd0TP619khJrn89zh0A1T7HC9tjGvaF+RGdpjpBq8xbpPDrXbeqDl4BVTX9VQ4MDU3+UuQA== +metascraper-video@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-5.6.3.tgz#4567095b52749c7e8083af6d5bd32a5ff182fcf8" + integrity sha512-ejkebLHkktvvDJ1EfPzA4X4LWlkzeJZ69KzslRC94vQJuE36PA6k+EdoorZqryOzhHPV9TaNP5j+ZXU26S731g== dependencies: - "@metascraper/helpers" "^4.10.2" - lodash "~4.17.11" + "@metascraper/helpers" "^5.6.3" + lodash "~4.17.15" metascraper-youtube@^4.8.5: version "4.10.2" From 9fcc5202d1527de3c72443895e60f1d9179a8a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Thu, 25 Jul 2019 15:34:43 +0200 Subject: [PATCH 120/131] Give more space to neo4j-data --- deployment/volumes/neo4j-data.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/volumes/neo4j-data.yaml b/deployment/volumes/neo4j-data.yaml index f077be933..1f453a684 100644 --- a/deployment/volumes/neo4j-data.yaml +++ b/deployment/volumes/neo4j-data.yaml @@ -9,4 +9,4 @@ - ReadWriteOnce resources: requests: - storage: 1Gi + storage: 5Gi From 5380e74887361a1a4c4162b828e7a805b30ed293 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2019 04:22:06 +0000 Subject: [PATCH 121/131] Bump node from 12.6-alpine to 12.7-alpine in /webapp Bumps node from 12.6-alpine to 12.7-alpine. Signed-off-by: dependabot-preview[bot] --- webapp/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/Dockerfile b/webapp/Dockerfile index d3a17a3aa..cad4c171d 100644 --- a/webapp/Dockerfile +++ b/webapp/Dockerfile @@ -1,4 +1,4 @@ -FROM node:12.6-alpine as base +FROM node:12.7-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 From b0bde9f73eead7a3b79bd8998378ac975814f035 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2019 04:22:08 +0000 Subject: [PATCH 122/131] Bump node from 12.6-alpine to 12.7-alpine in /backend Bumps node from 12.6-alpine to 12.7-alpine. Signed-off-by: dependabot-preview[bot] --- backend/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 935077c98..0df78f727 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:12.6-alpine as base +FROM node:12.7-alpine as base LABEL Description="Backend of the Social Network Human-Connection.org" Vendor="Human Connection gGmbH" Version="0.0.1" Maintainer="Human Connection gGmbH (developer@human-connection.org)" EXPOSE 4000 From 137a761f90903c0f6fb4f620d5e282024786cb24 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2019 04:28:13 +0000 Subject: [PATCH 123/131] Bump apollo-server-express from 2.7.0 to 2.7.2 in /backend Bumps [apollo-server-express](https://github.com/apollographql/apollo-server) from 2.7.0 to 2.7.2. - [Release notes](https://github.com/apollographql/apollo-server/releases) - [Changelog](https://github.com/apollographql/apollo-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-server/compare/apollo-server-express@2.7.0...apollo-server-express@2.7.2) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 141 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 137 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index 6e841d73f..59e3b159a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -49,7 +49,7 @@ "apollo-link-context": "~1.0.18", "apollo-link-http": "~1.5.15", "apollo-server": "~2.7.0", - "apollo-server-express": "^2.6.9", + "apollo-server-express": "^2.7.2", "bcryptjs": "~2.4.3", "cheerio": "~1.0.0-rc.3", "cors": "~2.8.5", diff --git a/backend/yarn.lock b/backend/yarn.lock index b210239bc..c5f9b1491 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -9,6 +9,13 @@ dependencies: apollo-env "0.5.1" +"@apollographql/apollo-tools@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.4.0.tgz#8a1a0ab7a0bb12ccc03b72e4a104cfa5d969fd5f" + integrity sha512-7wEO+S+zgz/wVe3ilFQqICufRBYYDSNUkd1V03JWvXuSydbYq2SM5EgvWmFF+04iadt+aQ0XCCsRzCzRPQODfQ== + dependencies: + apollo-env "0.5.1" + "@apollographql/graphql-playground-html@1.6.24": version "1.6.24" resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz#3ce939cb127fb8aaa3ffc1e90dff9b8af9f2e3dc" @@ -1455,6 +1462,14 @@ apollo-cache-control@0.8.0: apollo-server-env "2.4.0" graphql-extensions "0.8.0" +apollo-cache-control@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.8.1.tgz#707c0b958c02c5b47ddf49a02f60ea88a64783fb" + integrity sha512-yQy5KB/OuX90PsdztWc4vfc4R//ZmW/AxNgXKWga0xW5OzEsysdJWHAsTzb40/rkJ9VNeQ+0N5wGikiS+jSCzg== + dependencies: + apollo-server-env "2.4.1" + graphql-extensions "0.8.1" + apollo-cache-inmemory@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.2.tgz#bbf2e4e1eacdf82b2d526f5c2f3b37e5acee3c5e" @@ -1496,6 +1511,14 @@ apollo-datasource@0.6.0: apollo-server-caching "0.5.0" apollo-server-env "2.4.0" +apollo-datasource@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.6.1.tgz#697870f564da90bee53fa30d07875cb46c4d6b06" + integrity sha512-oy7c+9Up8PSZwJ1qTK9Idh1acDpIocvw+C0zcHg14ycvNz7qWHSwLUSaAjuQMd9SYFzB3sxfyEhyfyhIogT2+Q== + dependencies: + apollo-server-caching "0.5.0" + apollo-server-env "2.4.1" + apollo-engine-reporting-protobuf@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.4.0.tgz#e34c192d86493b33a73181fd6be75721559111ec" @@ -1515,6 +1538,18 @@ apollo-engine-reporting@1.4.0: async-retry "^1.2.1" graphql-extensions "0.8.0" +apollo-engine-reporting@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-1.4.2.tgz#f6c1e964c3c2c09bdb25c449f6b7ab05952ff459" + integrity sha512-Srw6Roqx38P82c5If6NmWdM/HVETLwcCGIl4x6a+DDcuPJl6n6ef+Sluoz4QAGrqQDJhMYk3jL9xOnEysgtonA== + dependencies: + apollo-engine-reporting-protobuf "0.4.0" + apollo-graphql "^0.3.3" + apollo-server-env "2.4.1" + apollo-server-types "0.2.1" + async-retry "^1.2.1" + graphql-extensions "0.8.2" + apollo-env@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.5.1.tgz#b9b0195c16feadf0fe9fd5563edb0b9b7d9e97d3" @@ -1611,6 +1646,32 @@ apollo-server-core@2.7.0: subscriptions-transport-ws "^0.9.11" ws "^6.0.0" +apollo-server-core@2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.7.2.tgz#4acd9f4d0d235bef0e596e2a821326dfc07ae7b2" + integrity sha512-Dv6ZMMf8Y+ovkj1ioMtcYvjbcsSMqnZblbPPzOWo29vvKEjMXAL1OTSL1WBYxGA/WSBSCTnxAzipn71XZkYoCw== + dependencies: + "@apollographql/apollo-tools" "^0.4.0" + "@apollographql/graphql-playground-html" "1.6.24" + "@types/ws" "^6.0.0" + apollo-cache-control "0.8.1" + apollo-datasource "0.6.1" + apollo-engine-reporting "1.4.2" + apollo-server-caching "0.5.0" + apollo-server-env "2.4.1" + apollo-server-errors "2.3.1" + apollo-server-plugin-base "0.6.1" + apollo-server-types "0.2.1" + apollo-tracing "0.8.1" + fast-json-stable-stringify "^2.0.0" + graphql-extensions "0.8.2" + graphql-tag "^2.9.2" + graphql-tools "^4.0.0" + graphql-upload "^8.0.2" + sha.js "^2.4.11" + subscriptions-transport-ws "^0.9.11" + ws "^6.0.0" + apollo-server-env@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.0.tgz#6611556c6b627a1636eed31317d4f7ea30705872" @@ -1619,12 +1680,20 @@ apollo-server-env@2.4.0: node-fetch "^2.1.2" util.promisify "^1.0.0" +apollo-server-env@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.1.tgz#58264ecfeb151919e0f480320b4e3769be9f18f3" + integrity sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg== + dependencies: + node-fetch "^2.1.2" + util.promisify "^1.0.0" + apollo-server-errors@2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.3.1.tgz#033cf331463ebb99a563f8354180b41ac6714eb6" integrity sha512-errZvnh0vUQChecT7M4A/h94dnBSRL213dNxpM5ueMypaLYgnp4hiCTWIEaooo9E4yMGd1qA6WaNbLDG2+bjcg== -apollo-server-express@2.7.0, apollo-server-express@^2.6.9: +apollo-server-express@2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.7.0.tgz#c19bf56c32473a76b1eb87237d713018984f838e" integrity sha512-TIOaLyuxD8xIECXjbPfS9HUWgHCKsG3rR4WuTpTreVEB08EsGeg+VcNGn0hmUnch18fPXTciBHWCv/fFV/YhMg== @@ -1643,6 +1712,26 @@ apollo-server-express@2.7.0, apollo-server-express@^2.6.9: graphql-tools "^4.0.0" type-is "^1.6.16" +apollo-server-express@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.7.2.tgz#a6b9514f42463c9514d2dda34e07ee240b73f764" + integrity sha512-XW+MTKyjJDrHqeLJt9Z3OzLTCRxp53XzVVhF0f/Bs9GCODPlTiBaoiMwY2mXQ7WqK6gkYAH1kRp7d/psPFKE5w== + dependencies: + "@apollographql/graphql-playground-html" "1.6.24" + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.17.0" + "@types/cors" "^2.8.4" + "@types/express" "4.17.0" + accepts "^1.3.5" + apollo-server-core "2.7.2" + apollo-server-types "0.2.1" + body-parser "^1.18.3" + cors "^2.8.4" + graphql-subscriptions "^1.0.0" + graphql-tools "^4.0.0" + subscriptions-transport-ws "^0.9.16" + type-is "^1.6.16" + apollo-server-plugin-base@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.6.0.tgz#4186296ea5d52cfe613961d252a8a2f9e13e6ba6" @@ -1650,6 +1739,13 @@ apollo-server-plugin-base@0.6.0: dependencies: apollo-server-types "0.2.0" +apollo-server-plugin-base@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.6.1.tgz#b9c209aa2102a26c6134f51bfa1e4a8307b63b11" + integrity sha512-gLLF0kz4QOOyczDGWuR2ZNDfa1nHfyFNG76ue8Es0/0ujnMT9KoSokXkx1hDh0X7FFTMj/MelYYoNEqgTH88zw== + dependencies: + apollo-server-types "0.2.1" + apollo-server-testing@~2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/apollo-server-testing/-/apollo-server-testing-2.7.0.tgz#df8f8fb0df85f9781b6822fc92ee36fdc039b024" @@ -1666,6 +1762,15 @@ apollo-server-types@0.2.0: apollo-server-caching "0.5.0" apollo-server-env "2.4.0" +apollo-server-types@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.2.1.tgz#553da40ea1ad779ef0390c250ddad7eb782fdf64" + integrity sha512-ls26d6jjY7x91ctLWtbpQHGW0lcFR1LcOpDvBQUC2aCwQzuW/6yV7F3hfcEdLR9pjIxcA4yAtFQcKf5olDWVkA== + dependencies: + apollo-engine-reporting-protobuf "0.4.0" + apollo-server-caching "0.5.0" + apollo-server-env "2.4.1" + apollo-server@~2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.7.0.tgz#6a326f06ed1c5cc4e57e1731b74ec92c79237889" @@ -1685,6 +1790,14 @@ apollo-tracing@0.8.0: apollo-server-env "2.4.0" graphql-extensions "0.8.0" +apollo-tracing@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.8.1.tgz#220aeac6ad598c67f9333739155b7a56bd63ccab" + integrity sha512-zhVNC7N6hg9IJEeSEXFDxcnXD5GJQAbHxaoKVBKEolcIIsz6EGd700ORdagJgFKLReVp9O65HPrZJCg66sVx7g== + dependencies: + apollo-server-env "2.4.1" + graphql-extensions "0.8.1" + apollo-utilities@1.3.2, apollo-utilities@^1.0.1, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.2.tgz#8cbdcf8b012f664cd6cb5767f6130f5aed9115c9" @@ -3986,6 +4099,24 @@ graphql-extensions@0.8.0: apollo-server-env "2.4.0" apollo-server-types "0.2.0" +graphql-extensions@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.8.1.tgz#f5f1fed5fe49620c4e70c5d08bdbd0039e91c402" + integrity sha512-d/L4x7/PPWhviJqi7jIWOVJPzfzagYgPizSQUpa+3hozbWhwpWEnfxwgL5/If5MnPUikBnqlkOLCyjHMNdipYA== + dependencies: + "@apollographql/apollo-tools" "^0.4.0" + apollo-server-env "2.4.1" + apollo-server-types "0.2.1" + +graphql-extensions@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.8.2.tgz#071f29b111b16b359eb9994b0a036bdeec106492" + integrity sha512-d0nbxMfMe7wxdsVdCn0OBx2rX0sbcIjo9TOud38i9OgNa9eeS23OxbNfe+ezTCkEvSVqgPzpy5DAOvM4HNDV4Q== + dependencies: + "@apollographql/apollo-tools" "^0.4.0" + apollo-server-env "2.4.1" + apollo-server-types "0.2.1" + graphql-import@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" @@ -7916,10 +8047,10 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -subscriptions-transport-ws@^0.9.11: - version "0.9.15" - resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.15.tgz#68a8b7ba0037d8c489fb2f5a102d1494db297d0d" - integrity sha512-f9eBfWdHsePQV67QIX+VRhf++dn1adyC/PZHP6XI5AfKnZ4n0FW+v5omxwdHVpd4xq2ZijaHEcmlQrhBY79ZWQ== +subscriptions-transport-ws@^0.9.11, subscriptions-transport-ws@^0.9.16: + version "0.9.16" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz#90a422f0771d9c32069294c08608af2d47f596ec" + integrity sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw== dependencies: backo2 "^1.0.2" eventemitter3 "^3.1.0" From f2e20db8384123a0828993326f12a67b19520d0f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2019 04:29:19 +0000 Subject: [PATCH 124/131] Bump apollo-server-testing from 2.7.0 to 2.7.2 in /backend Bumps [apollo-server-testing](https://github.com/apollographql/apollo-server) from 2.7.0 to 2.7.2. - [Release notes](https://github.com/apollographql/apollo-server/releases) - [Changelog](https://github.com/apollographql/apollo-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-server/compare/apollo-server-testing@2.7.0...apollo-server-testing@2.7.2) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 121 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 117 insertions(+), 6 deletions(-) diff --git a/backend/package.json b/backend/package.json index 6e841d73f..e6389b456 100644 --- a/backend/package.json +++ b/backend/package.json @@ -106,7 +106,7 @@ "@babel/plugin-proposal-throw-expressions": "^7.2.0", "@babel/preset-env": "~7.5.5", "@babel/register": "~7.5.5", - "apollo-server-testing": "~2.7.0", + "apollo-server-testing": "~2.7.2", "babel-core": "~7.0.0-0", "babel-eslint": "~10.0.2", "babel-jest": "~24.8.0", diff --git a/backend/yarn.lock b/backend/yarn.lock index b210239bc..56f388b1e 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -9,6 +9,13 @@ dependencies: apollo-env "0.5.1" +"@apollographql/apollo-tools@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.4.0.tgz#8a1a0ab7a0bb12ccc03b72e4a104cfa5d969fd5f" + integrity sha512-7wEO+S+zgz/wVe3ilFQqICufRBYYDSNUkd1V03JWvXuSydbYq2SM5EgvWmFF+04iadt+aQ0XCCsRzCzRPQODfQ== + dependencies: + apollo-env "0.5.1" + "@apollographql/graphql-playground-html@1.6.24": version "1.6.24" resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz#3ce939cb127fb8aaa3ffc1e90dff9b8af9f2e3dc" @@ -1455,6 +1462,14 @@ apollo-cache-control@0.8.0: apollo-server-env "2.4.0" graphql-extensions "0.8.0" +apollo-cache-control@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.8.1.tgz#707c0b958c02c5b47ddf49a02f60ea88a64783fb" + integrity sha512-yQy5KB/OuX90PsdztWc4vfc4R//ZmW/AxNgXKWga0xW5OzEsysdJWHAsTzb40/rkJ9VNeQ+0N5wGikiS+jSCzg== + dependencies: + apollo-server-env "2.4.1" + graphql-extensions "0.8.1" + apollo-cache-inmemory@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.2.tgz#bbf2e4e1eacdf82b2d526f5c2f3b37e5acee3c5e" @@ -1496,6 +1511,14 @@ apollo-datasource@0.6.0: apollo-server-caching "0.5.0" apollo-server-env "2.4.0" +apollo-datasource@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.6.1.tgz#697870f564da90bee53fa30d07875cb46c4d6b06" + integrity sha512-oy7c+9Up8PSZwJ1qTK9Idh1acDpIocvw+C0zcHg14ycvNz7qWHSwLUSaAjuQMd9SYFzB3sxfyEhyfyhIogT2+Q== + dependencies: + apollo-server-caching "0.5.0" + apollo-server-env "2.4.1" + apollo-engine-reporting-protobuf@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.4.0.tgz#e34c192d86493b33a73181fd6be75721559111ec" @@ -1515,6 +1538,18 @@ apollo-engine-reporting@1.4.0: async-retry "^1.2.1" graphql-extensions "0.8.0" +apollo-engine-reporting@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-1.4.2.tgz#f6c1e964c3c2c09bdb25c449f6b7ab05952ff459" + integrity sha512-Srw6Roqx38P82c5If6NmWdM/HVETLwcCGIl4x6a+DDcuPJl6n6ef+Sluoz4QAGrqQDJhMYk3jL9xOnEysgtonA== + dependencies: + apollo-engine-reporting-protobuf "0.4.0" + apollo-graphql "^0.3.3" + apollo-server-env "2.4.1" + apollo-server-types "0.2.1" + async-retry "^1.2.1" + graphql-extensions "0.8.2" + apollo-env@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.5.1.tgz#b9b0195c16feadf0fe9fd5563edb0b9b7d9e97d3" @@ -1611,6 +1646,32 @@ apollo-server-core@2.7.0: subscriptions-transport-ws "^0.9.11" ws "^6.0.0" +apollo-server-core@2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.7.2.tgz#4acd9f4d0d235bef0e596e2a821326dfc07ae7b2" + integrity sha512-Dv6ZMMf8Y+ovkj1ioMtcYvjbcsSMqnZblbPPzOWo29vvKEjMXAL1OTSL1WBYxGA/WSBSCTnxAzipn71XZkYoCw== + dependencies: + "@apollographql/apollo-tools" "^0.4.0" + "@apollographql/graphql-playground-html" "1.6.24" + "@types/ws" "^6.0.0" + apollo-cache-control "0.8.1" + apollo-datasource "0.6.1" + apollo-engine-reporting "1.4.2" + apollo-server-caching "0.5.0" + apollo-server-env "2.4.1" + apollo-server-errors "2.3.1" + apollo-server-plugin-base "0.6.1" + apollo-server-types "0.2.1" + apollo-tracing "0.8.1" + fast-json-stable-stringify "^2.0.0" + graphql-extensions "0.8.2" + graphql-tag "^2.9.2" + graphql-tools "^4.0.0" + graphql-upload "^8.0.2" + sha.js "^2.4.11" + subscriptions-transport-ws "^0.9.11" + ws "^6.0.0" + apollo-server-env@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.0.tgz#6611556c6b627a1636eed31317d4f7ea30705872" @@ -1619,6 +1680,14 @@ apollo-server-env@2.4.0: node-fetch "^2.1.2" util.promisify "^1.0.0" +apollo-server-env@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.1.tgz#58264ecfeb151919e0f480320b4e3769be9f18f3" + integrity sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg== + dependencies: + node-fetch "^2.1.2" + util.promisify "^1.0.0" + apollo-server-errors@2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.3.1.tgz#033cf331463ebb99a563f8354180b41ac6714eb6" @@ -1650,12 +1719,19 @@ apollo-server-plugin-base@0.6.0: dependencies: apollo-server-types "0.2.0" -apollo-server-testing@~2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/apollo-server-testing/-/apollo-server-testing-2.7.0.tgz#df8f8fb0df85f9781b6822fc92ee36fdc039b024" - integrity sha512-geBTK5T8mqZ2UOscC3oHQ/QoKMINLK+Mmq5ZfZe9UhmdXi+WqQ3/6B+3HMoQ7eQ7D6bNILe8b7N2EKuyUkePdg== +apollo-server-plugin-base@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.6.1.tgz#b9c209aa2102a26c6134f51bfa1e4a8307b63b11" + integrity sha512-gLLF0kz4QOOyczDGWuR2ZNDfa1nHfyFNG76ue8Es0/0ujnMT9KoSokXkx1hDh0X7FFTMj/MelYYoNEqgTH88zw== dependencies: - apollo-server-core "2.7.0" + apollo-server-types "0.2.1" + +apollo-server-testing@~2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/apollo-server-testing/-/apollo-server-testing-2.7.2.tgz#c0fb18fa7eef0c945c5b73887d19c704dac5957e" + integrity sha512-fjWJ6K5t3xilPrXg5rQtqFZN0JbNSthkNyJb4Qfpdj9WA5r0vZCeARAFcIrv7o3pSBstyy1UBvJuNG0Rw6HTzA== + dependencies: + apollo-server-core "2.7.2" apollo-server-types@0.2.0: version "0.2.0" @@ -1666,6 +1742,15 @@ apollo-server-types@0.2.0: apollo-server-caching "0.5.0" apollo-server-env "2.4.0" +apollo-server-types@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.2.1.tgz#553da40ea1ad779ef0390c250ddad7eb782fdf64" + integrity sha512-ls26d6jjY7x91ctLWtbpQHGW0lcFR1LcOpDvBQUC2aCwQzuW/6yV7F3hfcEdLR9pjIxcA4yAtFQcKf5olDWVkA== + dependencies: + apollo-engine-reporting-protobuf "0.4.0" + apollo-server-caching "0.5.0" + apollo-server-env "2.4.1" + apollo-server@~2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.7.0.tgz#6a326f06ed1c5cc4e57e1731b74ec92c79237889" @@ -1685,6 +1770,14 @@ apollo-tracing@0.8.0: apollo-server-env "2.4.0" graphql-extensions "0.8.0" +apollo-tracing@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.8.1.tgz#220aeac6ad598c67f9333739155b7a56bd63ccab" + integrity sha512-zhVNC7N6hg9IJEeSEXFDxcnXD5GJQAbHxaoKVBKEolcIIsz6EGd700ORdagJgFKLReVp9O65HPrZJCg66sVx7g== + dependencies: + apollo-server-env "2.4.1" + graphql-extensions "0.8.1" + apollo-utilities@1.3.2, apollo-utilities@^1.0.1, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.2.tgz#8cbdcf8b012f664cd6cb5767f6130f5aed9115c9" @@ -3986,6 +4079,24 @@ graphql-extensions@0.8.0: apollo-server-env "2.4.0" apollo-server-types "0.2.0" +graphql-extensions@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.8.1.tgz#f5f1fed5fe49620c4e70c5d08bdbd0039e91c402" + integrity sha512-d/L4x7/PPWhviJqi7jIWOVJPzfzagYgPizSQUpa+3hozbWhwpWEnfxwgL5/If5MnPUikBnqlkOLCyjHMNdipYA== + dependencies: + "@apollographql/apollo-tools" "^0.4.0" + apollo-server-env "2.4.1" + apollo-server-types "0.2.1" + +graphql-extensions@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.8.2.tgz#071f29b111b16b359eb9994b0a036bdeec106492" + integrity sha512-d0nbxMfMe7wxdsVdCn0OBx2rX0sbcIjo9TOud38i9OgNa9eeS23OxbNfe+ezTCkEvSVqgPzpy5DAOvM4HNDV4Q== + dependencies: + "@apollographql/apollo-tools" "^0.4.0" + apollo-server-env "2.4.1" + apollo-server-types "0.2.1" + graphql-import@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" From b021437a7e6e06b5567d011543a7fc3a30ea5cc3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2019 04:30:17 +0000 Subject: [PATCH 125/131] Bump eslint-plugin-jest from 22.13.6 to 22.14.0 in /webapp Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.13.6 to 22.14.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.13.6...v22.14.0) Signed-off-by: dependabot-preview[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 032d7015b..b50d901d7 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -95,7 +95,7 @@ "eslint-config-standard": "~12.0.0", "eslint-loader": "~2.2.1", "eslint-plugin-import": "~2.18.2", - "eslint-plugin-jest": "~22.13.6", + "eslint-plugin-jest": "~22.14.0", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", "eslint-plugin-promise": "~4.2.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index bf0551cc4..7ac4c5e4a 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -4350,10 +4350,10 @@ eslint-plugin-import@~2.18.2: read-pkg-up "^2.0.0" resolve "^1.11.0" -eslint-plugin-jest@~22.13.6: - version "22.13.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.6.tgz#85630e7709fe1ecbe0099956590af32d5e157448" - integrity sha512-wn3n9Djj+Dyi8AS1kvGOXpzUJfs9SJYhoZxIb49y4cwHRPaSgDHzSJPZX3sliZ3k8l6bYVeEGW76QvvqoOjSEw== +eslint-plugin-jest@~22.14.0: + version "22.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.14.0.tgz#f9b09837f665cfe360b55c08866904255294cc16" + integrity sha512-Xtc9ZTtxdYFC7vu0PHxDeQ9lOMQ8gjwMmSQq/ni83TdflgL3eVh/qg3t99I7gcDxpeXfcp+lHu9C0vN3QAhATw== dependencies: "@typescript-eslint/experimental-utils" "^1.13.0" From 8deee89c7ecef851fcbfbed2a10eb26188eea215 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2019 04:30:56 +0000 Subject: [PATCH 126/131] Bump eslint-plugin-jest from 22.13.6 to 22.14.0 in /backend Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.13.6 to 22.14.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.13.6...v22.14.0) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/package.json b/backend/package.json index 6e841d73f..4c68602fa 100644 --- a/backend/package.json +++ b/backend/package.json @@ -116,7 +116,7 @@ "eslint-config-prettier": "~6.0.0", "eslint-config-standard": "~12.0.0", "eslint-plugin-import": "~2.18.2", - "eslint-plugin-jest": "~22.13.6", + "eslint-plugin-jest": "~22.14.0", "eslint-plugin-node": "~9.1.0", "eslint-plugin-prettier": "~3.1.0", "eslint-plugin-promise": "~4.2.1", diff --git a/backend/yarn.lock b/backend/yarn.lock index b210239bc..50daa214a 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -3246,10 +3246,10 @@ eslint-plugin-import@~2.18.2: read-pkg-up "^2.0.0" resolve "^1.11.0" -eslint-plugin-jest@~22.13.6: - version "22.13.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.13.6.tgz#85630e7709fe1ecbe0099956590af32d5e157448" - integrity sha512-wn3n9Djj+Dyi8AS1kvGOXpzUJfs9SJYhoZxIb49y4cwHRPaSgDHzSJPZX3sliZ3k8l6bYVeEGW76QvvqoOjSEw== +eslint-plugin-jest@~22.14.0: + version "22.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.14.0.tgz#f9b09837f665cfe360b55c08866904255294cc16" + integrity sha512-Xtc9ZTtxdYFC7vu0PHxDeQ9lOMQ8gjwMmSQq/ni83TdflgL3eVh/qg3t99I7gcDxpeXfcp+lHu9C0vN3QAhATw== dependencies: "@typescript-eslint/experimental-utils" "^1.13.0" From 0b9b42a8f26f87c6600ac9312151c87caf766492 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2019 04:31:01 +0000 Subject: [PATCH 127/131] Bump cookie-universal-nuxt from 2.0.16 to 2.0.17 in /webapp Bumps [cookie-universal-nuxt](https://github.com/microcipcip/cookie-universal) from 2.0.16 to 2.0.17. - [Release notes](https://github.com/microcipcip/cookie-universal/releases) - [Commits](https://github.com/microcipcip/cookie-universal/compare/v2.0.16...v2.0.17) Signed-off-by: dependabot-preview[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 032d7015b..47562c9c9 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -57,7 +57,7 @@ "accounting": "~0.4.1", "apollo-cache-inmemory": "~1.5.1", "apollo-client": "~2.6.3", - "cookie-universal-nuxt": "~2.0.16", + "cookie-universal-nuxt": "~2.0.17", "cross-env": "~5.2.0", "date-fns": "2.0.0-beta.3", "express": "~4.17.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index bf0551cc4..59aa08b78 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -3362,10 +3362,10 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie-universal-nuxt@~2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/cookie-universal-nuxt/-/cookie-universal-nuxt-2.0.16.tgz#8d528098c973162b352199240e40da0e5429b13f" - integrity sha512-wRK2zw8w+a5xPehb5kLbgOic/4mbjl2exUCxWZwGuttcwsFgOymiwDrCOzmQslqrDevPDL2SsBbH6wtOm7dB9g== +cookie-universal-nuxt@~2.0.17: + version "2.0.17" + resolved "https://registry.yarnpkg.com/cookie-universal-nuxt/-/cookie-universal-nuxt-2.0.17.tgz#efa066cade8bc28ab81046c35b6557e3e4ec29fb" + integrity sha512-kJTLOJFOJBiWHd8ehLnheTNyFJbc4zqdZ9YinDSZmWgBMKOrNPd+3hTCsSVGCmybJdpmEJkDenSbRg/xFouqTQ== dependencies: "@types/cookie" "^0.3.1" cookie-universal "^2.0.16" From 08504ad2ffb0567c0009ca4207a167a0138d7d3d Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Mon, 29 Jul 2019 08:36:16 +0200 Subject: [PATCH 128/131] Gitignore ssh directory --- deployment/legacy-migration/maintenance-worker/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/deployment/legacy-migration/maintenance-worker/.gitignore b/deployment/legacy-migration/maintenance-worker/.gitignore index 59ba63a8b..485bc00e6 100644 --- a/deployment/legacy-migration/maintenance-worker/.gitignore +++ b/deployment/legacy-migration/maintenance-worker/.gitignore @@ -1 +1,2 @@ .ssh/ +ssh/ \ No newline at end of file From 19b2b7a49190e1a927212e1bc20326d3ee3c9534 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Mon, 29 Jul 2019 08:45:58 +0200 Subject: [PATCH 129/131] Reset branch to master, copy changes to ContributionForm in --- .../components/ContributionForm/ContributionForm.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 593ff2dc6..23a1c75de 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -9,6 +9,9 @@ :src="contribution.image | proxyApiUrl" /> + + + import gql from 'graphql-tag' -import HcEditor from '~/components/Editor/Editor' import orderBy from 'lodash/orderBy' +import { mapGetters } from 'vuex' +import HcEditor from '~/components/Editor/Editor' import locales from '~/locales' import PostMutations from '~/graphql/PostMutations.js' import HcCategoriesSelect from '~/components/CategoriesSelect/CategoriesSelect' import HcTeaserImage from '~/components/TeaserImage/TeaserImage' +import HcUser from '~/components/User' export default { components: { HcEditor, HcCategoriesSelect, HcTeaserImage, + HcUser, }, props: { contribution: { type: Object, default: () => {} }, @@ -128,6 +134,9 @@ export default { : locales.find(loc => this.$i18n.locale() === loc.code) return locale.name }, + ...mapGetters({ + currentUser: 'auth/user', + }), }, mounted() { this.availableLocales() From 6ba550f1987dbe5ee8e21f0e8df4e10a721ad427 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Mon, 29 Jul 2019 09:13:38 +0200 Subject: [PATCH 130/131] Make page mobile responsive, use styleguide font --- .../maintenance/maintenance.html | 62 ++++++++++++++++--- 1 file changed, 52 insertions(+), 10 deletions(-) diff --git a/deployment/human-connection/maintenance/maintenance.html b/deployment/human-connection/maintenance/maintenance.html index 2ddff2216..906286342 100644 --- a/deployment/human-connection/maintenance/maintenance.html +++ b/deployment/human-connection/maintenance/maintenance.html @@ -1,17 +1,59 @@ - -
-

+ + + + +
+

At the moment we are doing some scheduled maintenance, please try again later.

- Maintenance mode image -

+ Maintenance mode image +

Any Questions or concerns, send an email to
-

From 31d093ed47a865d7fbf9656913f788f5e705b92e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2019 07:26:46 +0000 Subject: [PATCH 131/131] Bump apollo-server from 2.7.0 to 2.7.2 in /backend Bumps [apollo-server](https://github.com/apollographql/apollo-server) from 2.7.0 to 2.7.2. - [Release notes](https://github.com/apollographql/apollo-server/releases) - [Changelog](https://github.com/apollographql/apollo-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-server/compare/apollo-server@2.7.0...apollo-server@2.7.2) Signed-off-by: dependabot-preview[bot] --- backend/package.json | 2 +- backend/yarn.lock | 33 +++++++-------------------------- 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/backend/package.json b/backend/package.json index 5c285423e..68c7b7056 100644 --- a/backend/package.json +++ b/backend/package.json @@ -48,7 +48,7 @@ "apollo-client": "~2.6.3", "apollo-link-context": "~1.0.18", "apollo-link-http": "~1.5.15", - "apollo-server": "~2.7.0", + "apollo-server": "~2.7.2", "apollo-server-express": "^2.7.2", "bcryptjs": "~2.4.3", "cheerio": "~1.0.0-rc.3", diff --git a/backend/yarn.lock b/backend/yarn.lock index f555e6744..66c7bde2c 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -1693,26 +1693,7 @@ apollo-server-errors@2.3.1: resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.3.1.tgz#033cf331463ebb99a563f8354180b41ac6714eb6" integrity sha512-errZvnh0vUQChecT7M4A/h94dnBSRL213dNxpM5ueMypaLYgnp4hiCTWIEaooo9E4yMGd1qA6WaNbLDG2+bjcg== -apollo-server-express@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.7.0.tgz#c19bf56c32473a76b1eb87237d713018984f838e" - integrity sha512-TIOaLyuxD8xIECXjbPfS9HUWgHCKsG3rR4WuTpTreVEB08EsGeg+VcNGn0hmUnch18fPXTciBHWCv/fFV/YhMg== - dependencies: - "@apollographql/graphql-playground-html" "1.6.24" - "@types/accepts" "^1.3.5" - "@types/body-parser" "1.17.0" - "@types/cors" "^2.8.4" - "@types/express" "4.17.0" - accepts "^1.3.5" - apollo-server-core "2.7.0" - apollo-server-types "0.2.0" - body-parser "^1.18.3" - cors "^2.8.4" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.0" - type-is "^1.6.16" - -apollo-server-express@^2.7.2: +apollo-server-express@2.7.2, apollo-server-express@^2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.7.2.tgz#a6b9514f42463c9514d2dda34e07ee240b73f764" integrity sha512-XW+MTKyjJDrHqeLJt9Z3OzLTCRxp53XzVVhF0f/Bs9GCODPlTiBaoiMwY2mXQ7WqK6gkYAH1kRp7d/psPFKE5w== @@ -1771,13 +1752,13 @@ apollo-server-types@0.2.1: apollo-server-caching "0.5.0" apollo-server-env "2.4.1" -apollo-server@~2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.7.0.tgz#6a326f06ed1c5cc4e57e1731b74ec92c79237889" - integrity sha512-UKYROQqcwSgIjUEjaxAllRJQFTa3flPY+fV5Q0Kz2e3XE5QomEkuNBmO54IefIOr8LllhRU9246WmMHRuwun+w== +apollo-server@~2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.7.2.tgz#a3eeb6916f11802502ab40819e9f06a4c553c84a" + integrity sha512-0FkNi2ViLJoTglTuBTZ8OeUSK2/LOk4sMGmojDYUYkyVuM5lZX+GWVf3pDNvhrnC2po6TkntkNL4EJLXfKwNMA== dependencies: - apollo-server-core "2.7.0" - apollo-server-express "2.7.0" + apollo-server-core "2.7.2" + apollo-server-express "2.7.2" express "^4.0.0" graphql-subscriptions "^1.0.0" graphql-tools "^4.0.0"