Merge branch 'master' of github.com:Human-Connection/Human-Connection into 1709-send-feedbacks-in-report-processes

This commit is contained in:
Wolfgang Huß 2019-12-18 11:22:50 +01:00
commit 4da67d3bc8
16 changed files with 403 additions and 365 deletions

View File

@ -34,8 +34,8 @@
"dependencies": {
"@hapi/joi": "^16.1.8",
"@sentry/node": "^5.10.2",
"apollo-cache-inmemory": "~1.6.3",
"apollo-client": "~2.6.4",
"apollo-cache-inmemory": "~1.6.5",
"apollo-client": "~2.6.8",
"apollo-link-context": "~1.0.19",
"apollo-link-http": "~1.5.16",
"apollo-server": "~2.9.13",
@ -63,26 +63,26 @@
"lodash": "~4.17.14",
"merge-graphql-schemas": "^1.7.3",
"metascraper": "^5.8.9",
"metascraper-audio": "^5.8.7",
"metascraper-audio": "^5.8.10",
"metascraper-author": "^5.8.7",
"metascraper-clearbit-logo": "^5.3.0",
"metascraper-date": "^5.8.7",
"metascraper-description": "^5.8.7",
"metascraper-image": "^5.8.7",
"metascraper-lang": "^5.8.9",
"metascraper-description": "^5.8.10",
"metascraper-image": "^5.8.10",
"metascraper-lang": "^5.8.10",
"metascraper-lang-detector": "^4.10.2",
"metascraper-logo": "^5.8.7",
"metascraper-logo": "^5.8.10",
"metascraper-publisher": "^5.8.7",
"metascraper-soundcloud": "^5.8.9",
"metascraper-title": "^5.8.7",
"metascraper-soundcloud": "^5.8.10",
"metascraper-title": "^5.8.10",
"metascraper-url": "^5.8.7",
"metascraper-video": "^5.8.9",
"metascraper-youtube": "^5.8.9",
"metascraper-video": "^5.8.10",
"metascraper-youtube": "^5.8.10",
"minimatch": "^3.0.4",
"mustache": "^3.1.0",
"neo4j-driver": "~1.7.6",
"neo4j-graphql-js": "^2.10.1",
"neode": "^0.3.3",
"neo4j-graphql-js": "^2.10.2",
"neode": "^0.3.6",
"node-fetch": "~2.6.0",
"nodemailer": "^6.4.2",
"nodemailer-html-to-text": "^3.1.0",
@ -115,7 +115,7 @@
"eslint-plugin-import": "~2.19.1",
"eslint-plugin-jest": "~23.1.1",
"eslint-plugin-node": "~10.0.0",
"eslint-plugin-prettier": "~3.1.1",
"eslint-plugin-prettier": "~3.1.2",
"eslint-plugin-promise": "~4.2.1",
"eslint-plugin-standard": "~4.0.1",
"jest": "~24.9.0",

View File

@ -70,15 +70,11 @@ describe('slug', () => {
})
it(' ', async () => {
await expect(createUser({ slug: 'matt rider' })).rejects.toThrow(
/fails to match the required pattern/,
)
await expect(createUser({ slug: 'matt rider' })).rejects.toThrow('ERROR_VALIDATION')
})
it('ä', async () => {
await expect(createUser({ slug: 'mätt' })).rejects.toThrow(
/fails to match the required pattern/,
)
await expect(createUser({ slug: 'mätt' })).rejects.toThrow('ERROR_VALIDATION')
})
})
})

View File

@ -40,7 +40,7 @@ export default {
`,
{ nonce, email },
)
const emailAddress = await neode.hydrateFirst(result, 'email', neode.model('Email'))
const emailAddress = await neode.hydrateFirst(result, 'email', neode.model('EmailAddress'))
if (!emailAddress) throw new UserInputError('Invalid email or nonce')
args = await fileUpload(args, { file: 'avatarUpload', url: 'avatar' })
args = await encryptPassword(args)

View File

@ -38,6 +38,12 @@ const createServer = options => {
schema: middleware(schema),
debug: !!CONFIG.DEBUG,
tracing: !!CONFIG.DEBUG,
formatError: error => {
if (error.message === 'ERROR_VALIDATION') {
return new Error(error.originalError.details.map(d => d.message))
}
return error
},
}
const server = new ApolloServer(Object.assign({}, defaults, options))

View File

@ -1034,10 +1034,10 @@
url-regex "~4.1.1"
video-extensions "~1.1.0"
"@metascraper/helpers@^5.8.7":
version "5.8.7"
resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.8.7.tgz#b05f83f2a90001f7753c18a8b1bb978bd7c2f9d9"
integrity sha512-gDErMAA3d1CdkGxvAG4cDi7D2+fReZpD6lzYNJ/gsq45U3Pdz7ltsAvbp4amK92bGKYYPZtnUq85Wrr+Q+e06Q==
"@metascraper/helpers@^5.8.10", "@metascraper/helpers@^5.8.7":
version "5.8.10"
resolved "https://registry.yarnpkg.com/@metascraper/helpers/-/helpers-5.8.10.tgz#efaae1d57afca6db1f0846852fe88d1608601f13"
integrity sha512-o7vrlNC+wzfArTkQcQfHKT4iHUYEQYs6hoORTWN7A1dj5v8P1wl5oOs0oAc7MNGJ3nWnex3/bq/5SUWV301Arg==
dependencies:
audio-extensions "0.0.0"
chrono-node "~1.3.11"
@ -1614,37 +1614,37 @@ apollo-cache-control@^0.8.8:
apollo-server-env "^2.4.3"
graphql-extensions "^0.10.7"
apollo-cache-inmemory@~1.6.3:
version "1.6.3"
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.3.tgz#826861d20baca4abc45f7ca7a874105905b8525d"
integrity sha512-S4B/zQNSuYc0M/1Wq8dJDTIO9yRgU0ZwDGnmlqxGGmFombOZb9mLjylewSfQKmjNpciZ7iUIBbJ0mHlPJTzdXg==
apollo-cache-inmemory@~1.6.5:
version "1.6.5"
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.5.tgz#2ccaa3827686f6ed7fb634203dbf2b8d7015856a"
integrity sha512-koB76JUDJaycfejHmrXBbWIN9pRKM0Z9CJGQcBzIOtmte1JhEBSuzsOUu7NQgiXKYI4iGoMREcnaWffsosZynA==
dependencies:
apollo-cache "^1.3.2"
apollo-utilities "^1.3.2"
apollo-cache "^1.3.4"
apollo-utilities "^1.3.3"
optimism "^0.10.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
tslib "^1.10.0"
apollo-cache@1.3.2, apollo-cache@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.2.tgz#df4dce56240d6c95c613510d7e409f7214e6d26a"
integrity sha512-+KA685AV5ETEJfjZuviRTEImGA11uNBp/MJGnaCvkgr+BYRrGLruVKBv6WvyFod27WEB2sp7SsG8cNBKANhGLg==
apollo-cache@1.3.4, apollo-cache@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.4.tgz#0c9f63c793e1cd6e34c450f7668e77aff58c9a42"
integrity sha512-7X5aGbqaOWYG+SSkCzJNHTz2ZKDcyRwtmvW4mGVLRqdQs+HxfXS4dUS2CcwrAj449se6tZ6NLUMnjko4KMt3KA==
dependencies:
apollo-utilities "^1.3.2"
tslib "^1.9.3"
apollo-utilities "^1.3.3"
tslib "^1.10.0"
apollo-client@~2.6.4:
version "2.6.4"
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.4.tgz#872c32927263a0d34655c5ef8a8949fbb20b6140"
integrity sha512-oWOwEOxQ9neHHVZrQhHDbI6bIibp9SHgxaLRVPoGvOFy7OH5XUykZE7hBQAVxq99tQjBzgytaZffQkeWo1B4VQ==
apollo-client@~2.6.8:
version "2.6.8"
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.8.tgz#01cebc18692abf90c6b3806414e081696b0fa537"
integrity sha512-0zvJtAcONiozpa5z5zgou83iEKkBaXhhSSXJebFHRXs100SecDojyUWKjwTtBPn9HbM6o5xrvC5mo9VQ5fgAjw==
dependencies:
"@types/zen-observable" "^0.8.0"
apollo-cache "1.3.2"
apollo-cache "1.3.4"
apollo-link "^1.0.0"
apollo-utilities "1.3.2"
apollo-utilities "1.3.3"
symbol-observable "^1.0.2"
ts-invariant "^0.4.0"
tslib "^1.9.3"
tslib "^1.10.0"
zen-observable "^0.8.0"
apollo-datasource@^0.6.3:
@ -1847,15 +1847,15 @@ apollo-tracing@^0.8.8:
apollo-server-env "^2.4.3"
graphql-extensions "^0.10.7"
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"
integrity sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==
apollo-utilities@1.3.3, apollo-utilities@^1.0.1, apollo-utilities@^1.3.0, apollo-utilities@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.3.tgz#f1854715a7be80cd810bc3ac95df085815c0787c"
integrity sha512-F14aX2R/fKNYMvhuP2t9GD9fggID7zp5I96MF5QeKYWDWTrkRdHRp4+SVfXUVN+cXOaB/IebfvRtzPf25CM0zw==
dependencies:
"@wry/equality" "^0.1.2"
fast-json-stable-stringify "^2.0.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
tslib "^1.10.0"
aproba@^1.0.3:
version "1.2.0"
@ -3412,10 +3412,10 @@ eslint-plugin-node@~10.0.0:
resolve "^1.10.1"
semver "^6.1.0"
eslint-plugin-prettier@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.1.tgz#507b8562410d02a03f0ddc949c616f877852f2ba"
integrity sha512-A+TZuHZ0KU0cnn56/9mfR7/KjUJ9QNVXUhwvRFSR7PGPe0zQR6PTkmyqg1AtUUEOzTqeRsUwyKFh0oVZKVCrtA==
eslint-plugin-prettier@~3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba"
integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
dependencies:
prettier-linter-helpers "^1.0.0"
@ -5810,12 +5810,12 @@ merge-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
metascraper-audio@^5.8.7:
version "5.8.7"
resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-5.8.7.tgz#ce27b1f4056c1d1cbaa2cec0e819c3704f38fff4"
integrity sha512-ew9KZKOIl3u0500j7qIR/ZNiVtSohuyyiIWSxJVEeeguEOwAhMpOrpYAEkvKRo5CB89F2PNBIsXJIzMC4BWFrw==
metascraper-audio@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-audio/-/metascraper-audio-5.8.10.tgz#bc7bc0471ee178ab747baec4fb9bf7443078980d"
integrity sha512-uR4PCG7mxz7GLZ3I3x83sTCAaD/+MMTSf5rtP+shfdGJCm6h3mNmUpZm6hlBunmBx/PpDpwdI34rkl2A8SUjnQ==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
metascraper-author@^5.8.7:
version "5.8.7"
@ -5839,19 +5839,19 @@ metascraper-date@^5.8.7:
dependencies:
"@metascraper/helpers" "^5.8.7"
metascraper-description@^5.8.7:
version "5.8.7"
resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-5.8.7.tgz#e85ce218daf33b74813b1523ad7dc7dc3fb128af"
integrity sha512-KOv5gnQVvGF1CgpUczu7KJm76rWJ7SH5UFcqFST60hRNgR9xy0y3aHbVDOhZkjNN4UKqnxMF6XTS/WaQxCK/AA==
metascraper-description@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-description/-/metascraper-description-5.8.10.tgz#1b69f59fa76263fcd2c15f8ce73052b81900177a"
integrity sha512-0stYkl5OPpM0yM6Dl3WcXxLjl2gY5k77E4seeHOqHAUx1EKXNgrSrtO0I3PX9p6vcxP+WBtK6zlqHYU4qAMlSA==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
metascraper-image@^5.8.7:
version "5.8.7"
resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-5.8.7.tgz#d24697c5b5a6ba688948c48fadcb5fffeb6c703d"
integrity sha512-OMK+PFnHeavCSuEJY5tFkG5tdl/luYmPys7PKkJIwC8A8q5qoAC0InIUu+c0SDrdf4nzOj083DZTp32YQxYF5A==
metascraper-image@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-image/-/metascraper-image-5.8.10.tgz#fe21811ca88eef13e64812462fb5a21ee48933dc"
integrity sha512-WOPnTupaDEl58iZp0M6kFlUcRSRQFSPWATPUi3AeW31VJM2sepxmJlqc5qVFTen/Lm+kI23firrvEg5N8tFUVA==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
metascraper-lang-detector@^4.10.2:
version "4.10.2"
@ -5862,19 +5862,19 @@ metascraper-lang-detector@^4.10.2:
franc "~4.0.0"
iso-639-3 "~1.1.0"
metascraper-lang@^5.8.9:
version "5.8.9"
resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-5.8.9.tgz#589bac0fdc523b5b6e6317a7b6295474eedfb872"
integrity sha512-VMiU+T9LFsra/bBc0w0+fw6lk8Snb/ULoIvHUF0+5wvkv4KzQicc0z1lTAL/28Et2Xa+R5Km5A9Ts7LYuQRqVw==
metascraper-lang@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-lang/-/metascraper-lang-5.8.10.tgz#b8827282dea500b68e49ebbe8b0081fb6b6584d5"
integrity sha512-qydko4UkLGqTimKzT+AkcIaXOo7/GkHGtclGiLae80lHeKzI5NG7kYN4eMv1r4BfBkcluSNeJ/P532T6ZD2Y1Q==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
metascraper-logo@^5.8.7:
version "5.8.7"
resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.8.7.tgz#5efb7e6c5f91ccad812e2d9ec3facfef179f40b6"
integrity sha512-QudGVJBBeXLWU54Xw2PmnsTf+qPUnbyYaOl4aFLg2wkLLza1GbuvOYGMiH9Y8k0WcRoesi9sQk+P0a/611blew==
metascraper-logo@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.8.10.tgz#8e0dc0296d71db03307584ecdb57cd3fcbad1d4b"
integrity sha512-l5LkzZcVzrKclzf3JGx2cnCtPI/8Rf+EQV/SfXUqz7FUwgfT3uzRw9wBbqP25056ukh6aOuywGClTdnEu2PJcw==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
metascraper-publisher@^5.8.7:
version "5.8.7"
@ -5883,20 +5883,20 @@ metascraper-publisher@^5.8.7:
dependencies:
"@metascraper/helpers" "^5.8.7"
metascraper-soundcloud@^5.8.9:
version "5.8.9"
resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-5.8.9.tgz#5d02538078114c5ab25c46df4afc3f45a94b3d7c"
integrity sha512-0otAe2E4N/KN2UqopJAM9NFZfSMyll2Q0XKhicfV/d+6Q1ERT7LWA/vwhBmxFwQzzX2mxZ8JFKeXUf6OZqEvVg==
metascraper-soundcloud@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-soundcloud/-/metascraper-soundcloud-5.8.10.tgz#c281a35e2e7289006bd304dfb4074f01451e7f26"
integrity sha512-IBGGBFrzRiS1bTyR9+eJwv+fPvC8KoggpAZnGPABep4ZhfajblI3B+8U1kIXHMaFR4b1BaD4d+tWh3gNLZCjwQ==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
tldts "~5.6.2"
metascraper-title@^5.8.7:
version "5.8.7"
resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-5.8.7.tgz#aecbbd9515bd74d2aeafa587c83447d926508ba0"
integrity sha512-u+5KeJbsFKpi+pMnG71Gd49OLDQpkjiGIRTddhCZQhb45qHoTlGKN1nZuQ8nqJI6+ARWicFqtquomkaRXfBEnw==
metascraper-title@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-title/-/metascraper-title-5.8.10.tgz#c25dc8e8ad7073c18c8d25db0b855f62d3d986bd"
integrity sha512-CauBJmLYtS+AZ9KJfnfJHp/tzUTo9yup56P/7aaOBcfVA5PWg3xdI1lVXJegmiTsBCyDEzWRVJ41f/ZlMjbAsg==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
lodash "~4.17.15"
metascraper-url@^5.8.7:
@ -5906,20 +5906,20 @@ metascraper-url@^5.8.7:
dependencies:
"@metascraper/helpers" "^5.8.7"
metascraper-video@^5.8.9:
version "5.8.9"
resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-5.8.9.tgz#23c0fe71fae5088bc8e11bfa537eff80658aa6d9"
integrity sha512-xaimkGz1Txsd9qHUN2U5HyFMP8tkrb5LuW8bCo+0kdTu5c00HGurvs0/BpWrTW/CzUQBNl/uEybeDXm8J++03g==
metascraper-video@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-video/-/metascraper-video-5.8.10.tgz#c43bdc3d4dc7ff97b94d45e0050fb50091da27be"
integrity sha512-ofO7OLt73iMZM6IkA3iHtD1EzbEeiTYJK/xKBp+Awyl/dLUWKfsFjOAjkz9XDzLANRT+7+rwzqQmc+a2/rBVVg==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
lodash "~4.17.15"
metascraper-youtube@^5.8.9:
version "5.8.9"
resolved "https://registry.yarnpkg.com/metascraper-youtube/-/metascraper-youtube-5.8.9.tgz#595f5e384e0db519378ca2023bd8aa6603866c9d"
integrity sha512-Zuew1tLSC14ceL9ZaNvlQ4GmFopbYDalr8gL+Ofo4ha4jKyX58VaPQtmIgASAJv/jlOXd9zCwEdhNw8/YyZZWw==
metascraper-youtube@^5.8.10:
version "5.8.10"
resolved "https://registry.yarnpkg.com/metascraper-youtube/-/metascraper-youtube-5.8.10.tgz#c2b84b9faf8d4bd326a0a048e61cdbeefc7263ab"
integrity sha512-2QLqIqc8FWGJmGEwvoWDdEZnSCLg5lzH/3qZm0P9joFGA6WWrfpaONCVW4M72xfVHv/WwEblKZERzlbJNEhGVg==
dependencies:
"@metascraper/helpers" "^5.8.7"
"@metascraper/helpers" "^5.8.10"
get-video-id "~3.1.4"
is-reachable "~4.0.0"
p-locate "~4.1.0"
@ -6152,7 +6152,7 @@ neo-async@^2.6.0:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
neo4j-driver@^1.7.3, neo4j-driver@^1.7.5, neo4j-driver@~1.7.6:
neo4j-driver@^1.7.3, neo4j-driver@^1.7.6, neo4j-driver@~1.7.6:
version "1.7.6"
resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-1.7.6.tgz#eccb135a71eba9048c68717444593a6424cffc49"
integrity sha512-6c3ALO3vYDfUqNoCy8OFzq+fQ7q/ab3LCuJrmm8P04M7RmyRCCnUtJ8IzSTGbiZvyhcehGK+azNDAEJhxPV/hA==
@ -6161,10 +6161,10 @@ neo4j-driver@^1.7.3, neo4j-driver@^1.7.5, neo4j-driver@~1.7.6:
text-encoding-utf-8 "^1.0.2"
uri-js "^4.2.2"
neo4j-graphql-js@^2.10.1:
version "2.10.1"
resolved "https://registry.yarnpkg.com/neo4j-graphql-js/-/neo4j-graphql-js-2.10.1.tgz#e470d067db681bac8f4daa755f697000110aca4b"
integrity sha512-D6Gimu39lkg+3pXKWR3qEY6yMXOv/JOdKSizsYSAE73lj9CubJAYx4hdtmNXJ0Tyy+C9LxcPZwWZEzg0P9niEw==
neo4j-graphql-js@^2.10.2:
version "2.10.2"
resolved "https://registry.yarnpkg.com/neo4j-graphql-js/-/neo4j-graphql-js-2.10.2.tgz#e67d1aab6441b28f276adf0f6d655720983b9b84"
integrity sha512-CgtKEgrWgSJBjuKQ5CEPt4tcG1z14oAB3UWQjX8scDlUag0iWofgzpPlrc3brn+RitfeEc3FuMSru8E9dVDJPg==
dependencies:
"@babel/runtime" "^7.5.5"
"@babel/runtime-corejs2" "^7.5.5"
@ -6174,14 +6174,14 @@ neo4j-graphql-js@^2.10.1:
lodash "^4.17.15"
neo4j-driver "^1.7.3"
neode@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/neode/-/neode-0.3.3.tgz#a539830cce6f6e4825462f6cb03f2969a0003f1b"
integrity sha512-pArHG1hD2kVwrzLlz6B1+IgdOJRQj/BgR6KzH6DlVzSA6geoZRe68fbpvmOJtzyPU7iuUYxXVk87PpPM1A7dlg==
neode@^0.3.6:
version "0.3.6"
resolved "https://registry.yarnpkg.com/neode/-/neode-0.3.6.tgz#7daf791eff6d170e52c338ea2e5cca6fdc6bfbe3"
integrity sha512-jCskCPobtHpsIIYQD72h5lRjMJEX70KwIeqgpt1VOLI+d1zJZvUlDkcOKgarAW0fmwtHIrPOP6mLPe5G/ZG9+g==
dependencies:
"@hapi/joi" "^15.1.0"
dotenv "^4.0.0"
neo4j-driver "^1.7.5"
neo4j-driver "^1.7.6"
uuid "^3.3.2"
next-tick@^1.0.0:
@ -7509,6 +7509,11 @@ serve-static@1.14.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
parseurl "~1.3.3"
send "0.17.1"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
@ -8245,7 +8250,7 @@ ts-invariant@^0.4.0:
dependencies:
tslib "^1.9.3"
tslib@1.10.0, tslib@^1.9.0, tslib@^1.9.3:
tslib@1.10.0, 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==

View File

@ -36,7 +36,7 @@
"name": "Хэштеги",
"nameOfHashtag": "Имя",
"number": "№",
"tagCount": "Сообщений",
"tagCount": "Посты",
"tagCountUnique": "Пользователи"
},
"invites": {
@ -59,7 +59,7 @@
},
"tags": {
"name": "Теги",
"tagCount": "Сообщения",
"tagCount": "Посты",
"tagCountUnique": "Пользователи"
},
"users": {
@ -119,7 +119,7 @@
"unacceptable-behaviour": {
"description": "В нашем сообществе неприемлемо следующее поведение:",
"list": {
"0": "Дискриминационные сообщения, комментарии, высказывания или оскорбления, в частности, касающиеся пола, сексуальной ориентации, расы, религии, политической или мировоззренческой ориентации, или инвалидности.",
"0": "Дискриминационные посты, комментарии, высказывания или оскорбления, в частности, касающиеся пола, сексуальной ориентации, расы, религии, политической или мировоззренческой ориентации, или инвалидности.",
"1": "Публикация или ссылка на явно порнографические материалы.",
"2": "Прославление или умаление жестоких, или бесчеловечных актов насилия.",
"3": "Публикация персональных данных других лиц без их согласия или угрозы (\"Доксинг\").",
@ -271,7 +271,7 @@
"delete": {
"cancel": "Отменить",
"comment": {
"message": "Ты уверены, что хочешь удалить комментарий \"<b>{name}<\/b>\"?",
"message": "Вы уверены, что хотите удалить комментарий \"<b>{name}<\/b>\"?",
"success": "Комментарий успешно удален!",
"title": "Удалить комментарий",
"type": "Комментарий"
@ -360,7 +360,7 @@
"email": "Электронная почта",
"failure": "Неверный адрес электронной почты или пароль.",
"forgotPassword": "Забыли пароль?",
"hello": "Привет",
"hello": "Здравствуйте",
"login": "Вход",
"logout": "Выйти",
"moreInfo": "Что такое Human Connection?",
@ -387,32 +387,32 @@
"cancel": "Отменить",
"Comment": {
"disable": {
"message": "Ты действительно хочешь, чтобы комментарий \"<b>{name}<\/b>\" остановиться и <b>отключен<\/b>?",
"message": "Вы действительно хотите, чтобы комментарий \"<b>{name}<\/b>\" остановиться и <b>отключен<\/b>?",
"title": "Окончательно отключить комментарий"
},
"enable": {
"message": "Ты действительно хочешь, чтобы комментарий \"<b>{name}<\/b>\" остановиться и <b>включен<\/b>?",
"message": "Вы действительно хотите, чтобы комментарий \"<b>{name}<\/b>\" остановиться и <b>включен<\/b>?",
"title": "Окончательно включить комментарий"
}
},
"Post": {
"disable": {
"message": "Ты действительно хочешь, чтобы пост \"<b>{name}<\/b>\" остановиться и <b>отключен<\/b>?",
"message": "Вы действительно хотите, чтобы пост \"<b>{name}<\/b>\" остановиться и <b>отключен<\/b>?",
"title": "Окончательно отключить пост"
},
"enable": {
"message": "Ты действительно хочешь, чтобы пост \"<b>{name}<\/b>\" остановиться и <b>включен<\/b>?",
"message": "Вы действительно хотите, чтобы пост \"<b>{name}<\/b>\" остановиться и <b>включен<\/b>?",
"title": "Окончательно включить пост"
}
},
"submit": "Подтвердить решение",
"User": {
"disable": {
"message": "Ты действительно хочешь, чтобы пользователь \"<b>{name}<\/b>\" остановиться и <b>отключен<\/b>?",
"message": "Вы действительно хотите, чтобы пользователь \"<b>{name}<\/b>\" остановиться и <b>отключен<\/b>?",
"title": "Окончательно отключить пользователя"
},
"enable": {
"message": "Ты уверены, что хочешь поделиться пользователем \"<b>{name}<\/b>\"?",
"message": "Вы уверены, что хотите поделиться пользователем \"<b>{name}<\/b>\"?",
"title": "Окончательно включить пост"
}
}
@ -477,7 +477,7 @@
"pin": "Закрепить пост",
"pinnedSuccessfully": "Пост больше не закреплен!",
"unpin": "Открепить пост",
"unpinnedSuccessfully": "Сообщение успешно не закреплено!"
"unpinnedSuccessfully": "Пост успешно не закреплено!"
},
"moreInfo": {
"description": "Здесь содержится дополнительная информация по теме.",
@ -630,7 +630,7 @@
"name": "Удалить аккаунт"
},
"deleteUserAccount": {
"accountDescription": "Обратите внимание, что ваши сообщения и комментарии важны для сообщества. Если вы все равно хотите их удалить, то вы должны отметить соответствующие опции ниже.",
"accountDescription": "Обратите внимание, что ваши посты и комментарии важны для сообщества. Если вы все равно хотите их удалить, то вы должны отметить соответствующие опции ниже.",
"accountWarning": "Вы <b>НЕ СМОЖЕТЕ<\/b> восстановить свой аккаунт, посты или комментарии после удаления.",
"commentedCount": "Удалить мои комментарии: {count}",
"contributionsCount": "Удалить мои посты: {count}",
@ -716,10 +716,10 @@
"social-media": {
"name": "Социальные Медиа",
"placeholder": "Ссылка на профиль социальной сети",
"requireUnique": "Cсылка уже существует",
"requireUnique": "Ссылка уже существует",
"submit": "Добавить ссылку",
"successAdd": "Добавлены социальные медиа. Профиль обновлен!",
"successDelete": "Социальные мадиа удалены. Профиль обновлен!"
"successAdd": "Добавлены социальные меди. Профиль обновлен!",
"successDelete": "Социальные Меди удалены. Профиль обновлен!"
},
"validation": {
"slug": {
@ -791,11 +791,11 @@
"title": "Нет коммерческого использования"
},
"privacy-statement": {
"description": "Наша сеть — это социальная сеть знаний и действий. Поэтому для нас особенно важно, чтобы как можно больше контента было общедоступным. В процессе развития нашей сети будет добавлено больше возможностей для управления видимостью личных данных. Об этих новых функциях мы сообщим дополнительно. В противном случае вы должны думать о том, какие личные данные вы раскрываете о себе (или других). Это особенно актуально для содержания постов и комментариев, поскольку они имеют в основном общедоступный характер. Позже появятся возможности ограничения видимости вашего профиля. Часть условий использования — это наша политика конфиденциальности, которая информирует вас об обработке персональных данных в нашей сети: <a href=\"https:\/\/human-connection.org\/datenschutz\/#netzwerk\" target=\"_blank\">https:\/\/human-connection.org\/datenschutz\/#netzwerk<\/a> или <a href=\"https:\/\/human-connection.org\/datenschutz\/\" target=\"_blank\">https:\/\/human-connection.org\/datenschutz<\/a>. Наше заявление о конфиденциальности корректируется в соответствии с законодательством и характеристиками нашей сети и является действительной в настоящей версии.",
"description": "Наша сеть — это социальная сеть знаний и действий. Поэтому для нас особенно важно, чтобы как можно больше контента было общедоступным. В процессе развития нашей сети будет добавлено больше возможностей для управления видимостью личных данных. Об этих новых функциях мы сообщим дополнительно. В противном случае вы должны думать о том, какие личные данные вы раскрываете о себе (или других). Это особенно актуально для содержания постов и комментариев, поскольку они имеют в основном общедоступный характер. Позже появятся возможности ограничения видимости вашего профиля. Часть условий использования — это наша политика конфиденциальности, которая информирует вас об обработке персональных данных в нашей сети: <a href=\"https:\/\/human-connection.org\/datenschutz\/#netzwerk\" target=\"_blank\">https:\/\/human-connection.org\/datenschutz\/#netzwerk<\/a> или <a href=\"https:\/\/human-connection.org\/datenschutz\/\" target=\"_blank\">https:\/\/human-connection.org\/datenschutz<\/a>. Наше заявление о конфиденциальности корректируется в соответствии с законодательством и характеристиками нашей сети и является действительной в настоящей версии.",
"title": "Заявление о конфиденциальности"
},
"terms-of-service": {
"description": "Следующие условия использования являются основой для использования нашей сети. При регистрации вы должны принять их, а мы при необходимости сообщим вам об изменениях. Сеть Human Connection работает в Германии и поэтому регулируется немецким законодательством. Место юрисдикции - Kirchheim \/ Teck. Подробности в выходных данных: <a href=\"https:\/\/human-connection.org\/en\/imprint\" target=\"_blank\">https:\/\/human-connection.org\/en\/imprint<\/a>.",
"description": "Следующие условия использования являются основой для использования нашей сети. При регистрации вы должны принять их, а мы при необходимости сообщим вам об изменениях. Сеть Human Connection работает в Германии и поэтому регулируется немецким законодательством. Место юрисдикции - Kirchheim \/ Teck. Подробности в выходных данных: <a href=\"https:\/\/human-connection.org\/en\/imprint\" target=\"_blank\" >https:\/\/human-connection.org\/en\/imprint<\/a>.",
"title": "Условия обслуживания"
},
"termsAndConditionsConfirmed": "Я прочитал(а) и подтверждаю <a href=\"\/terms-and-conditions\" target=\"_blank\">Условия и положения<\/a>.",

View File

@ -22,10 +22,6 @@ describe('ContentMenu.vue', () => {
locale: () => 'en',
},
$router: {
resolve: jest.fn(obj => {
obj.href = '/post/edit/d23a4265-f5f7-4e17-9f86-85f714b4b9f8'
return obj
}),
push: jest.fn(),
},
}
@ -76,7 +72,7 @@ describe('ContentMenu.vue', () => {
.at(0)
.find('span.ds-menu-item-link')
.attributes('to'),
).toBe('/post/edit/d23a4265-f5f7-4e17-9f86-85f714b4b9f8')
).toBe('/post-edit-id')
})
it('can delete the contribution', () => {

View File

@ -17,7 +17,7 @@
@click.stop.prevent="openItem(item.route, toggleMenu)"
>
<base-icon :name="item.route.icon" />
{{ item.route.name }}
{{ item.route.label }}
</ds-menu-item>
</ds-menu>
</div>
@ -58,17 +58,15 @@ export default {
if (this.resourceType === 'contribution') {
if (this.isOwner) {
routes.push({
name: this.$t(`post.menu.edit`),
path: this.$router.resolve({
name: 'post-edit-id',
params: {
id: this.resource.id,
},
}).href,
label: this.$t(`post.menu.edit`),
name: 'post-edit-id',
params: {
id: this.resource.id,
},
icon: 'edit',
})
routes.push({
name: this.$t(`post.menu.delete`),
label: this.$t(`post.menu.delete`),
callback: () => {
this.openModal('confirm', 'delete')
},
@ -79,7 +77,7 @@ export default {
if (this.isAdmin) {
if (!this.resource.pinnedBy) {
routes.push({
name: this.$t(`post.menu.pin`),
label: this.$t(`post.menu.pin`),
callback: () => {
this.$emit('pinPost', this.resource)
},
@ -87,7 +85,7 @@ export default {
})
} else {
routes.push({
name: this.$t(`post.menu.unpin`),
label: this.$t(`post.menu.unpin`),
callback: () => {
this.$emit('unpinPost', this.resource)
},
@ -99,14 +97,14 @@ export default {
if (this.isOwner && this.resourceType === 'comment') {
routes.push({
name: this.$t(`comment.menu.edit`),
label: this.$t(`comment.menu.edit`),
callback: () => {
this.$emit('showEditCommentMenu', true)
},
icon: 'edit',
})
routes.push({
name: this.$t(`comment.menu.delete`),
label: this.$t(`comment.menu.delete`),
callback: () => {
this.openModal('confirm', 'delete')
},
@ -116,7 +114,7 @@ export default {
if (!this.isOwner) {
routes.push({
name: this.$t(`report.${this.resourceType}.title`),
label: this.$t(`report.${this.resourceType}.title`),
callback: () => {
this.openModal('report')
},
@ -127,7 +125,7 @@ export default {
if (!this.isOwner && this.isModerator) {
if (!this.resource.disabled) {
routes.push({
name: this.$t(`disable.${this.resourceType}.title`),
label: this.$t(`disable.${this.resourceType}.title`),
callback: () => {
this.openModal('disable')
},
@ -135,7 +133,7 @@ export default {
})
} else {
routes.push({
name: this.$t(`release.${this.resourceType}.title`),
label: this.$t(`release.${this.resourceType}.title`),
callback: () => {
this.openModal('release')
},
@ -147,14 +145,14 @@ export default {
if (this.resourceType === 'user') {
if (this.isOwner) {
routes.push({
name: this.$t(`settings.name`),
label: this.$t(`settings.name`),
path: '/settings',
icon: 'edit',
})
} else {
if (this.resource.isBlocked) {
routes.push({
name: this.$t(`settings.blocked-users.unblock`),
label: this.$t(`settings.blocked-users.unblock`),
callback: () => {
this.$emit('unblock', this.resource)
},
@ -162,7 +160,7 @@ export default {
})
} else {
routes.push({
name: this.$t(`settings.blocked-users.block`),
label: this.$t(`settings.blocked-users.block`),
callback: () => {
this.$emit('block', this.resource)
},
@ -186,7 +184,7 @@ export default {
if (route.callback) {
route.callback()
} else {
this.$router.push(route.path)
this.$router.push(route)
}
toggleMenu()
},

View File

@ -38,23 +38,21 @@
</ds-chip>
<ds-chip v-else size="base">{{ form.title.length }}/{{ formSchema.title.max }}</ds-chip>
</ds-text>
<client-only>
<hc-editor
:users="users"
:value="form.content"
:hashtags="hashtags"
@input="updateEditorContent"
/>
<ds-text align="right">
<ds-chip v-if="errors && errors.content" color="danger" size="base">
{{ contentLength }}
<ds-icon name="warning"></ds-icon>
</ds-chip>
<ds-chip v-else size="base">
{{ contentLength }}
</ds-chip>
</ds-text>
</client-only>
<hc-editor
:users="users"
:value="form.content"
:hashtags="hashtags"
@input="updateEditorContent"
/>
<ds-text align="right">
<ds-chip v-if="errors && errors.content" color="danger" size="base">
{{ contentLength }}
<ds-icon name="warning"></ds-icon>
</ds-chip>
<ds-chip v-else size="base">
{{ contentLength }}
</ds-chip>
</ds-text>
<ds-space margin-bottom="small" />
<hc-categories-select model="categoryIds" :existingCategoryIds="form.categoryIds" />
<ds-text align="right">

View File

@ -24,7 +24,6 @@
import { Editor, EditorContent } from 'tiptap'
import { History } from 'tiptap-extensions'
import linkify from 'linkify-it'
import stringHash from 'string-hash'
import { replace, build } from 'xregexp/xregexp-all.js'
import * as key from '../../constants/keycodes'
@ -108,17 +107,6 @@ export default {
},
},
watch: {
value: {
immediate: true,
handler: function(content, old) {
const contentHash = stringHash(content)
if (!content || contentHash === this.lastValueHash) {
return
}
this.lastValueHash = contentHash
this.$nextTick(() => this.editor.setContent(content))
},
},
placeholder: {
immediate: true,
handler: function(val) {
@ -129,7 +117,7 @@ export default {
},
},
},
created() {
mounted() {
this.editor = new Editor({
content: this.value || '',
doc: this.doc,
@ -247,11 +235,7 @@ export default {
},
onUpdate(e) {
const content = e.getHTML()
const contentHash = stringHash(content)
if (contentHash !== this.lastValueHash) {
this.lastValueHash = contentHash
this.$emit('input', content)
}
this.$emit('input', content)
},
toggleLinkInput(attrs, element) {
if (!this.isLinkInputActive && attrs && element) {

View File

@ -33,12 +33,12 @@
</template>
<script>
import gql from 'graphql-tag'
import Dropdown from '~/components/Dropdown'
import find from 'lodash/find'
import orderBy from 'lodash/orderBy'
import locales from '~/locales'
import { mapGetters, mapMutations } from 'vuex'
import { updateUserMutation } from '~/graphql/User.js'
export default {
components: {
@ -87,7 +87,14 @@ export default {
if (!this.currentUser || !this.currentUser.id) return null
try {
await this.$apollo.mutate({
mutation: updateUserMutation(),
mutation: gql`
mutation($id: ID!, $locale: String) {
UpdateUser(id: $id, locale: $locale) {
id
locale
}
}
`,
variables: {
id: this.currentUser.id,
locale: this.$i18n.locale(),

View File

@ -1,6 +1,6 @@
import gql from 'graphql-tag'
export const linkableUserFragment = lang => gql`
export const userFragment = gql`
fragment user on User {
id
slug
@ -10,19 +10,8 @@ export const linkableUserFragment = lang => gql`
deleted
}
`
export const userFragment = lang => gql`
fragment user on User {
id
slug
name
avatar
disabled
deleted
shoutedCount
contributionsCount
commentedCount
followedByCount
followedByCurrentUser
export const locationAndBadgesFragment = lang => gql`
fragment locationAndBadges on User {
location {
name: name${lang}
}
@ -33,15 +22,17 @@ export const userFragment = lang => gql`
}
`
export const postCountsFragment = gql`
fragment postCounts on Post {
commentsCount
export const userCountsFragment = gql`
fragment userCounts on User {
shoutedCount
shoutedByCurrentUser
emotionsCount
contributionsCount
commentedCount
followedByCount
followedByCurrentUser
}
`
export const postFragment = lang => gql`
export const postFragment = gql`
fragment post on Post {
id
title
@ -54,9 +45,22 @@ export const postFragment = lang => gql`
slug
image
language
author {
...user
}
pinnedAt
imageAspectRatio
}
`
export const postCountsFragment = gql`
fragment postCounts on Post {
commentsCount
shoutedCount
shoutedByCurrentUser
emotionsCount
}
`
export const tagsCategoriesAndPinnedFragment = gql`
fragment tagsCategoriesAndPinned on Post {
tags {
id
}
@ -71,11 +75,10 @@ export const postFragment = lang => gql`
name
role
}
pinnedAt
imageAspectRatio
}
`
export const commentFragment = lang => gql`
export const commentFragment = gql`
fragment comment on Comment {
id
createdAt
@ -84,8 +87,5 @@ export const commentFragment = lang => gql`
deleted
content
contentExcerpt
author {
...user
}
}
`

View File

@ -1,20 +1,42 @@
import gql from 'graphql-tag'
import { userFragment, postFragment, commentFragment, postCountsFragment } from './Fragments'
import {
userFragment,
postFragment,
commentFragment,
postCountsFragment,
userCountsFragment,
locationAndBadgesFragment,
tagsCategoriesAndPinnedFragment,
} from './Fragments'
export default i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${userFragment(lang)}
${postFragment(lang)}
${userFragment}
${userCountsFragment}
${locationAndBadgesFragment(lang)}
${postFragment}
${postCountsFragment}
${commentFragment(lang)}
${tagsCategoriesAndPinnedFragment}
${commentFragment}
query Post($id: ID!) {
Post(id: $id) {
...post
...postCounts
...tagsCategoriesAndPinned
author {
...user
...userCounts
...locationAndBadges
}
comments(orderBy: createdAt_asc) {
...comment
author {
...user
...userCounts
...locationAndBadges
}
}
}
}
@ -24,14 +46,23 @@ export default i18n => {
export const filterPosts = i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${userFragment(lang)}
${postFragment(lang)}
${userFragment}
${userCountsFragment}
${locationAndBadgesFragment(lang)}
${postFragment}
${postCountsFragment}
${tagsCategoriesAndPinnedFragment}
query Post($filter: _PostFilter, $first: Int, $offset: Int, $orderBy: [_PostOrdering]) {
Post(filter: $filter, first: $first, offset: $offset, orderBy: $orderBy) {
...post
...postCounts
...tagsCategoriesAndPinned
author {
...user
...userCounts
...locationAndBadges
}
}
}
`
@ -40,9 +71,12 @@ export const filterPosts = i18n => {
export const profilePagePosts = i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${userFragment(lang)}
${postFragment(lang)}
${userFragment}
${userCountsFragment}
${locationAndBadgesFragment(lang)}
${postFragment}
${postCountsFragment}
${tagsCategoriesAndPinnedFragment}
query profilePagePosts(
$filter: _PostFilter
@ -53,6 +87,12 @@ export const profilePagePosts = i18n => {
profilePagePosts(filter: $filter, first: $first, offset: $offset, orderBy: $orderBy) {
...post
...postCounts
...tagsCategoriesAndPinned
author {
...user
...userCounts
...locationAndBadges
}
}
}
`
@ -69,17 +109,32 @@ export const PostsEmotionsByCurrentUser = () => {
export const relatedContributions = i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${userFragment(lang)}
${postFragment(lang)}
${userFragment}
${userCountsFragment}
${locationAndBadgesFragment(lang)}
${postFragment}
${postCountsFragment}
${tagsCategoriesAndPinnedFragment}
query Post($slug: String!) {
Post(slug: $slug) {
...post
...postCounts
...tagsCategoriesAndPinned
author {
...user
...userCounts
...locationAndBadges
}
relatedContributions(first: 2) {
...post
...postCounts
...tagsCategoriesAndPinned
author {
...user
...userCounts
...locationAndBadges
}
}
}
}

View File

@ -1,27 +1,38 @@
import gql from 'graphql-tag'
import { linkableUserFragment, userFragment, postFragment, commentFragment } from './Fragments'
import {
userCountsFragment,
locationAndBadgesFragment,
userFragment,
postFragment,
commentFragment,
} from './Fragments'
export default i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${userFragment(lang)}
${userFragment}
${userCountsFragment}
${locationAndBadgesFragment(lang)}
query User($id: ID!) {
User(id: $id) {
...user
...userCounts
...locationAndBadges
about
locationName
createdAt
badgesCount
followingCount
following(first: 7) {
...user
}
followedByCount
followedByCurrentUser
isBlocked
following(first: 7) {
...user
...userCounts
...locationAndBadges
}
followedBy(first: 7) {
...user
...userCounts
...locationAndBadges
}
socialMedia {
id
@ -47,11 +58,10 @@ export const minimisedUserQuery = () => {
}
export const notificationQuery = i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${linkableUserFragment()}
${commentFragment(lang)}
${postFragment(lang)}
${userFragment}
${commentFragment}
${postFragment}
query($read: Boolean, $orderBy: NotificationOrdering, $first: Int, $offset: Int) {
notifications(read: $read, orderBy: $orderBy, first: $first, offset: $offset) {
@ -63,11 +73,20 @@ export const notificationQuery = i18n => {
__typename
... on Post {
...post
author {
...user
}
}
... on Comment {
...comment
author {
...user
}
post {
...post
author {
...user
}
}
}
}
@ -77,11 +96,10 @@ export const notificationQuery = i18n => {
}
export const markAsReadMutation = i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${linkableUserFragment()}
${commentFragment(lang)}
${postFragment(lang)}
${userFragment}
${commentFragment}
${postFragment}
mutation($id: ID!) {
markAsRead(id: $id) {
@ -93,11 +111,17 @@ export const markAsReadMutation = i18n => {
__typename
... on Post {
...post
author {
...user
}
}
... on Comment {
...comment
post {
...post
author {
...user
}
}
}
}
@ -107,16 +131,19 @@ export const markAsReadMutation = i18n => {
}
export const followUserMutation = i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${userFragment(lang)}
${userFragment}
${userCountsFragment}
mutation($id: ID!) {
followUser(id: $id) {
name
...user
...userCounts
followedByCount
followedByCurrentUser
followedBy(first: 7) {
...user
...userCounts
}
}
}
@ -124,16 +151,19 @@ export const followUserMutation = i18n => {
}
export const unfollowUserMutation = i18n => {
const lang = i18n.locale().toUpperCase()
return gql`
${userFragment(lang)}
${userFragment}
${userCountsFragment}
mutation($id: ID!) {
unfollowUser(id: $id) {
name
...user
...userCounts
followedByCount
followedByCurrentUser
followedBy(first: 7) {
...user
...userCounts
}
}
}
@ -150,7 +180,6 @@ export const updateUserMutation = () => {
$about: String
$allowEmbedIframes: Boolean
$showShoutsPublicly: Boolean
$locale: String
$termsAndConditionsAgreedVersion: String
$avatarUpload: Upload
) {
@ -162,7 +191,6 @@ export const updateUserMutation = () => {
about: $about
allowEmbedIframes: $allowEmbedIframes
showShoutsPublicly: $showShoutsPublicly
locale: $locale
termsAndConditionsAgreedVersion: $termsAndConditionsAgreedVersion
avatarUpload: $avatarUpload
) {

View File

@ -65,8 +65,8 @@
"@nuxtjs/sentry": "^3.0.1",
"@nuxtjs/style-resources": "~1.0.0",
"accounting": "~0.4.1",
"apollo-cache-inmemory": "~1.6.3",
"apollo-client": "~2.6.4",
"apollo-cache-inmemory": "~1.6.5",
"apollo-client": "~2.6.8",
"cookie-universal-nuxt": "~2.1.0",
"cropperjs": "^1.5.5",
"cross-env": "~6.0.3",
@ -79,11 +79,10 @@
"nuxt": "~2.10.2",
"nuxt-dropzone": "^1.0.4",
"nuxt-env": "~0.1.0",
"stack-utils": "^1.0.2",
"string-hash": "^1.1.3",
"stack-utils": "^2.0.1",
"tippy.js": "^4.3.5",
"tiptap": "~1.26.3",
"tiptap-extensions": "~1.28.5",
"tiptap": "~1.26.6",
"tiptap-extensions": "~1.28.6",
"trunc-html": "^1.1.2",
"v-tooltip": "~2.0.2",
"validator": "^12.1.0",
@ -124,7 +123,7 @@
"eslint-plugin-import": "~2.19.1",
"eslint-plugin-jest": "~23.1.1",
"eslint-plugin-node": "~10.0.0",
"eslint-plugin-prettier": "~3.1.1",
"eslint-plugin-prettier": "~3.1.2",
"eslint-plugin-promise": "~4.2.1",
"eslint-plugin-standard": "~4.0.1",
"eslint-plugin-vue": "~6.0.1",
@ -142,7 +141,7 @@
"style-loader": "~0.23.1",
"style-resources-loader": "~1.3.2",
"vue-jest": "~3.0.5",
"vue-loader": "~15.7.2",
"vue-loader": "~15.8.3",
"vue-svg-loader": "~0.15.0",
"vue-template-compiler": "^2.6.10"
}

View File

@ -3013,10 +3013,10 @@
string.prototype.padstart "^3.0.0"
strip-ansi "^6.0.0"
"@vue/component-compiler-utils@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634"
integrity sha512-am+04/0UX7ektcmvhYmrf84BDVAD8afFOf4asZjN84q8xzxFclbk5x0MtxuKGfp+zjN5WWPJn3fjFAWtDdIGSw==
"@vue/component-compiler-utils@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.0.tgz#64cd394925f5af1f9c3228c66e954536f5311857"
integrity sha512-OJ7swvl8LtKtX5aYP8jHhO6fQBIRIGkU6rvWzK+CGJiNOnvg16nzcBkd9qMZzW8trI2AsqAKx263nv7kb5rhZw==
dependencies:
consolidate "^0.15.1"
hash-sum "^1.0.2"
@ -3024,7 +3024,7 @@
merge-source-map "^1.1.0"
postcss "^7.0.14"
postcss-selector-parser "^5.0.0"
prettier "1.16.3"
prettier "^1.18.2"
source-map "~0.6.1"
vue-template-es2015-compiler "^1.9.0"
@ -3492,37 +3492,37 @@ apollo-cache-control@^0.8.5:
apollo-server-env "^2.4.3"
graphql-extensions "^0.10.4"
apollo-cache-inmemory@^1.6.3, apollo-cache-inmemory@~1.6.3:
version "1.6.3"
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.3.tgz#826861d20baca4abc45f7ca7a874105905b8525d"
integrity sha512-S4B/zQNSuYc0M/1Wq8dJDTIO9yRgU0ZwDGnmlqxGGmFombOZb9mLjylewSfQKmjNpciZ7iUIBbJ0mHlPJTzdXg==
apollo-cache-inmemory@^1.6.3, apollo-cache-inmemory@~1.6.5:
version "1.6.5"
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.5.tgz#2ccaa3827686f6ed7fb634203dbf2b8d7015856a"
integrity sha512-koB76JUDJaycfejHmrXBbWIN9pRKM0Z9CJGQcBzIOtmte1JhEBSuzsOUu7NQgiXKYI4iGoMREcnaWffsosZynA==
dependencies:
apollo-cache "^1.3.2"
apollo-utilities "^1.3.2"
apollo-cache "^1.3.4"
apollo-utilities "^1.3.3"
optimism "^0.10.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
tslib "^1.10.0"
apollo-cache@1.3.2, apollo-cache@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.2.tgz#df4dce56240d6c95c613510d7e409f7214e6d26a"
integrity sha512-+KA685AV5ETEJfjZuviRTEImGA11uNBp/MJGnaCvkgr+BYRrGLruVKBv6WvyFod27WEB2sp7SsG8cNBKANhGLg==
apollo-cache@1.3.4, apollo-cache@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.4.tgz#0c9f63c793e1cd6e34c450f7668e77aff58c9a42"
integrity sha512-7X5aGbqaOWYG+SSkCzJNHTz2ZKDcyRwtmvW4mGVLRqdQs+HxfXS4dUS2CcwrAj449se6tZ6NLUMnjko4KMt3KA==
dependencies:
apollo-utilities "^1.3.2"
tslib "^1.9.3"
apollo-utilities "^1.3.3"
tslib "^1.10.0"
apollo-client@^2.6.4, apollo-client@~2.6.4:
version "2.6.4"
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.4.tgz#872c32927263a0d34655c5ef8a8949fbb20b6140"
integrity sha512-oWOwEOxQ9neHHVZrQhHDbI6bIibp9SHgxaLRVPoGvOFy7OH5XUykZE7hBQAVxq99tQjBzgytaZffQkeWo1B4VQ==
apollo-client@^2.6.4, apollo-client@~2.6.8:
version "2.6.8"
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.8.tgz#01cebc18692abf90c6b3806414e081696b0fa537"
integrity sha512-0zvJtAcONiozpa5z5zgou83iEKkBaXhhSSXJebFHRXs100SecDojyUWKjwTtBPn9HbM6o5xrvC5mo9VQ5fgAjw==
dependencies:
"@types/zen-observable" "^0.8.0"
apollo-cache "1.3.2"
apollo-cache "1.3.4"
apollo-link "^1.0.0"
apollo-utilities "1.3.2"
apollo-utilities "1.3.3"
symbol-observable "^1.0.2"
ts-invariant "^0.4.0"
tslib "^1.9.3"
tslib "^1.10.0"
zen-observable "^0.8.0"
apollo-codegen-core@^0.35.7:
@ -3756,17 +3756,7 @@ apollo-link-ws@^1.0.19:
apollo-link "^1.2.13"
tslib "^1.9.3"
apollo-link@^1.0.0, apollo-link@^1.2.1, apollo-link@^1.2.12, apollo-link@^1.2.3:
version "1.2.12"
resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.12.tgz#014b514fba95f1945c38ad4c216f31bcfee68429"
integrity sha512-fsgIAXPKThyMVEMWQsUN22AoQI+J/pVXcjRGAShtk97h7D8O+SPskFinCGEkxPeQpE83uKaqafB2IyWdjN+J3Q==
dependencies:
apollo-utilities "^1.3.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
zen-observable-ts "^0.8.19"
apollo-link@^1.2.13:
apollo-link@^1.0.0, apollo-link@^1.2.1, apollo-link@^1.2.12, apollo-link@^1.2.13, apollo-link@^1.2.3:
version "1.2.13"
resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.13.tgz#dff00fbf19dfcd90fddbc14b6a3f9a771acac6c4"
integrity sha512-+iBMcYeevMm1JpYgwDEIDt/y0BB7VWyvlm/7x+TIPNLHCTCMgcEgDuW5kH86iQZWo0I7mNwQiTOz+/3ShPFmBw==
@ -3892,15 +3882,15 @@ apollo-upload-client@^11.0.0:
apollo-link-http-common "^0.2.14"
extract-files "^5.0.1"
apollo-utilities@1.3.2, apollo-utilities@^1.0.1, apollo-utilities@^1.0.8, apollo-utilities@^1.2.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"
integrity sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==
apollo-utilities@1.3.3, apollo-utilities@^1.0.1, apollo-utilities@^1.0.8, apollo-utilities@^1.2.1, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2, apollo-utilities@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.3.tgz#f1854715a7be80cd810bc3ac95df085815c0787c"
integrity sha512-F14aX2R/fKNYMvhuP2t9GD9fggID7zp5I96MF5QeKYWDWTrkRdHRp4+SVfXUVN+cXOaB/IebfvRtzPf25CM0zw==
dependencies:
"@wry/equality" "^0.1.2"
fast-json-stable-stringify "^2.0.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
tslib "^1.10.0"
apollo@^2.20.0:
version "2.21.0"
@ -7057,6 +7047,11 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
escape-string-regexp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
escodegen@^1.9.1:
version "1.11.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510"
@ -7153,10 +7148,10 @@ eslint-plugin-node@~10.0.0:
resolve "^1.10.1"
semver "^6.1.0"
eslint-plugin-prettier@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.1.tgz#507b8562410d02a03f0ddc949c616f877852f2ba"
integrity sha512-A+TZuHZ0KU0cnn56/9mfR7/KjUJ9QNVXUhwvRFSR7PGPe0zQR6PTkmyqg1AtUUEOzTqeRsUwyKFh0oVZKVCrtA==
eslint-plugin-prettier@~3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba"
integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
dependencies:
prettier-linter-helpers "^1.0.0"
@ -12900,12 +12895,7 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
prettier@1.16.3:
version "1.16.3"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d"
integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==
prettier@~1.19.1:
prettier@^1.18.2, prettier@~1.19.1:
version "1.19.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
@ -13090,7 +13080,7 @@ prosemirror-inputrules@1.1.2:
prosemirror-state "^1.0.0"
prosemirror-transform "^1.0.0"
prosemirror-keymap@1.1.3, prosemirror-keymap@^1.1.2:
prosemirror-keymap@1.1.3, prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.3.tgz#be22d6108df2521608e9216a87b1a810f0ed361e"
integrity sha512-PRA4NzkUMzV/NFf5pyQ6tmlIHiW/qjQ1kGWUlV2rF/dvlOxtpGpTEjIMhWgLuMf+HiDEFnUEP7uhYXu+t+491g==
@ -13098,14 +13088,6 @@ prosemirror-keymap@1.1.3, prosemirror-keymap@^1.1.2:
prosemirror-state "^1.0.0"
w3c-keyname "^2.2.0"
prosemirror-keymap@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.0.1.tgz#03ef32b828e3a859dfb570eb84928bf2e5330bc2"
integrity sha512-e79ApE7PXXZMFtPz7WbjycjAFd1NPjgY1MkecVz98tqwlBSggXWXYQnWFk6x7UkmnBYRHHbXHkR/RXmu2wyBJg==
dependencies:
prosemirror-state "^1.0.0"
w3c-keyname "^1.1.8"
prosemirror-model@1.8.2, prosemirror-model@^1.0.0, prosemirror-model@^1.1.0, prosemirror-model@^1.8.1:
version "1.8.2"
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.8.2.tgz#c74eaacb0bbfea49b59a6d89fef5516181666a56"
@ -14302,11 +14284,6 @@ serve-static@1.14.1, serve-static@^1.14.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
parseurl "~1.3.3"
send "0.17.1"
server-destroy@^1.0.1:
version "1.0.1"
@ -14942,11 +14919,18 @@ stack-trace@0.0.10:
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
stack-utils@^1.0.1, stack-utils@^1.0.2:
stack-utils@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
stack-utils@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.1.tgz#3df48345a3b92adc06038f0e95782df61beff742"
integrity sha512-BvBTnHGm8boe+HiJFqP19ywEsGlfQAKqW78pbfvUuzCbUuxPPUyLrH5dYFY+Xn9IpLY3b5ZmMcl8jAqXB4wddg==
dependencies:
escape-string-regexp "^2.0.0"
stackframe@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b"
@ -15052,11 +15036,6 @@ strict-uri-encode@^1.0.0:
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
string-hash@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b"
integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
string-length@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
@ -15575,10 +15554,10 @@ tippy.js@^4.3.5:
dependencies:
popper.js "^1.14.7"
tiptap-commands@^1.12.4:
version "1.12.4"
resolved "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.12.4.tgz#03ef3eda290f0d2ed71a54d73d7619452b05dced"
integrity sha512-szgSZzd/5FHn3Hs02zxySLxNEwNqbyqPOmz5NEAkIJmcyatTkuL+RQDKHA/RNQRUT66SsUCrEXgL1osTqdOSyQ==
tiptap-commands@^1.12.5:
version "1.12.5"
resolved "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.12.5.tgz#d2bd1adcc79fe47938bd64b91b6dec4688a88086"
integrity sha512-wzQCH3CL1VWy6E47Hy+9kt882w7SND+FD9e9xAAsYhG/QI0cmuvAf/8doZZhUmYwkraYeF7/2bU04IXr36t44Q==
dependencies:
prosemirror-commands "1.1.2"
prosemirror-inputrules "1.1.2"
@ -15589,10 +15568,10 @@ tiptap-commands@^1.12.4:
prosemirror-utils "0.9.6"
tiptap-utils "^1.8.3"
tiptap-extensions@~1.28.5:
version "1.28.5"
resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.28.5.tgz#6fba6f7c61abd82729f413f3afa68438b0ba8dd7"
integrity sha512-WvwRvznzgELeSA9JIFse4xNlDEcQ0JMN2PV2sybyPamKM1cvqrYBwF6fqf+EKGmrvwJzmr33CFZpMuzrMeAmWw==
tiptap-extensions@~1.28.6:
version "1.28.6"
resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.28.6.tgz#ce3ca3ccd9c9658e749c5aa5e97255a70468eaff"
integrity sha512-hkYKJHxkqmeIRyuOaVvsrC/IcoXZmBw/Gx4JJHPiCAKvLQyjgYZpNjbVH9nIgdlxLvVjFDVBoPWGHy00qGp8qQ==
dependencies:
lowlight "1.13.0"
prosemirror-collab "1.2.2"
@ -15603,8 +15582,8 @@ tiptap-extensions@~1.28.5:
prosemirror-transform "1.2.2"
prosemirror-utils "0.9.6"
prosemirror-view "1.13.4"
tiptap "^1.26.5"
tiptap-commands "^1.12.4"
tiptap "^1.26.6"
tiptap-commands "^1.12.5"
tiptap-utils@^1.8.3:
version "1.8.3"
@ -15616,10 +15595,10 @@ tiptap-utils@^1.8.3:
prosemirror-tables "1.0.0"
prosemirror-utils "0.9.6"
tiptap@^1.26.5, tiptap@~1.26.3:
version "1.26.5"
resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.26.5.tgz#d35f000e0bf93d97532357a29692fa7655e396da"
integrity sha512-PTm9w/UGDQTq6TEjyrNCpNBq9+ZbNU8aZrl+5KLLcmVyMpWCXRd/29b7nKqil8cmi0zUlLrQb9vHteExEgyyrg==
tiptap@^1.26.6, tiptap@~1.26.6:
version "1.26.6"
resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.26.6.tgz#b287fa7cb1c20690868aee8dc526de5390b054f0"
integrity sha512-U5qyYZi5IH7LhYwYrStRBp5MxF5MiGFLt9ogOAF/0N/LIg0XwVwe/AaSx0UH/s4dY7R8OvEa9u4qimO08Wp1LA==
dependencies:
prosemirror-commands "1.1.2"
prosemirror-dropcursor "1.3.2"
@ -15629,7 +15608,7 @@ tiptap@^1.26.5, tiptap@~1.26.3:
prosemirror-model "1.8.2"
prosemirror-state "1.3.2"
prosemirror-view "1.13.4"
tiptap-commands "^1.12.4"
tiptap-commands "^1.12.5"
tiptap-utils "^1.8.3"
title-case@^2.1.0:
@ -16380,12 +16359,12 @@ vue-jest@~3.0.5:
tsconfig "^7.0.0"
vue-template-es2015-compiler "^1.6.0"
vue-loader@^15.7.1, vue-loader@~15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.2.tgz#cc89e2716df87f70fe656c9da9d7f8bec06c73d6"
integrity sha512-H/P9xt/nkocyu4hZKg5TzPqyCT1oKOaCSk9zs0JCbJuy0Q8KtR0bjJpnT/5R5x/Ckd1GFkkLQnQ1C4x6xXeLZg==
vue-loader@^15.7.1, vue-loader@~15.8.3:
version "15.8.3"
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.8.3.tgz#857cb9e30eb5fc25e66db48dce7e4f768602a23c"
integrity sha512-yFksTFbhp+lxlm92DrKdpVIWMpranXnTEuGSc0oW+Gk43M9LWaAmBTnfj5+FCdve715mTHvo78IdaXf5TbiTJg==
dependencies:
"@vue/component-compiler-utils" "^3.0.0"
"@vue/component-compiler-utils" "^3.1.0"
hash-sum "^1.0.2"
loader-utils "^1.1.0"
vue-hot-reload-api "^2.3.0"
@ -16500,11 +16479,6 @@ w3c-hr-time@^1.0.1:
dependencies:
browser-process-hrtime "^0.1.2"
w3c-keyname@^1.1.8:
version "1.1.8"
resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-1.1.8.tgz#4e2219663760fd6535b7a1550f1552d71fc9372c"
integrity sha512-2HAdug8GTiu3b4NYhssdtY8PXRue3ICnh1IlxvZYl+hiINRq0GfNWei3XOPDg8L0PsxbmYjWVLuLj6BMRR/9vA==
w3c-keyname@^2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.1.tgz#c4fe1a4b9e303c95e833b3d854b7d81070400db9"
@ -17085,14 +17059,6 @@ yn@^3.0.0:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114"
integrity sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==
zen-observable-ts@^0.8.19:
version "0.8.19"
resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz#c094cd20e83ddb02a11144a6e2a89706946b5694"
integrity sha512-u1a2rpE13G+jSzrg3aiCqXU5tN2kw41b+cBZGmnc+30YimdkKiDj9bTowcB41eL77/17RF/h+393AuVgShyheQ==
dependencies:
tslib "^1.9.3"
zen-observable "^0.8.0"
zen-observable-ts@^0.8.20:
version "0.8.20"
resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.20.tgz#44091e335d3fcbc97f6497e63e7f57d5b516b163"