From 47d7c615a5d795c167f064b28648dfe68868ad6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 10 May 2019 17:13:54 +0200 Subject: [PATCH 1/6] Refactoring: Put all data validations in one place @ulfgebhardt @mattwr18 @tirokk Here's how I imagined the data validation middleware. If we roll our own input validations I would suggest to put them all in one place. @ulfgebhardt this commit is a great example of how tests can speed you up: Since I can rely on existing tests, I don't have to check the validations manually. With tests you can refactor with confidence! :+1: --- backend/src/middleware/index.js | 4 +-- backend/src/middleware/userMiddleware.js | 7 +---- backend/src/middleware/userMiddleware.spec.js | 3 +- backend/src/middleware/validUrlMiddleware.js | 18 ----------- backend/src/middleware/validation/index.js | 30 +++++++++++++++++++ 5 files changed, 35 insertions(+), 27 deletions(-) delete mode 100644 backend/src/middleware/validUrlMiddleware.js create mode 100644 backend/src/middleware/validation/index.js diff --git a/backend/src/middleware/index.js b/backend/src/middleware/index.js index 4f725ef72..17b9d63fb 100644 --- a/backend/src/middleware/index.js +++ b/backend/src/middleware/index.js @@ -10,14 +10,14 @@ import permissionsMiddleware from './permissionsMiddleware' import userMiddleware from './userMiddleware' import includedFieldsMiddleware from './includedFieldsMiddleware' import orderByMiddleware from './orderByMiddleware' -import validUrlMiddleware from './validUrlMiddleware' +import validationMiddleware from './validation' import notificationsMiddleware from './notifications' export default schema => { let middleware = [ passwordMiddleware, dateTimeMiddleware, - validUrlMiddleware, + validationMiddleware, sluggifyMiddleware, excerptMiddleware, notificationsMiddleware, diff --git a/backend/src/middleware/userMiddleware.js b/backend/src/middleware/userMiddleware.js index 4789b4cbd..78f04638d 100644 --- a/backend/src/middleware/userMiddleware.js +++ b/backend/src/middleware/userMiddleware.js @@ -1,5 +1,4 @@ import dotenv from 'dotenv' -import { UserInputError } from 'apollo-server' import createOrUpdateLocations from './nodes/locations' @@ -13,13 +12,9 @@ export default { return result }, UpdateUser: async (resolve, root, args, context, info) => { - const USERNAME_MIN_LENGTH = 3 // TODO move to the correct place - if (!args.name || args.name.length < USERNAME_MIN_LENGTH) { - throw new UserInputError(`Username must be at least ${USERNAME_MIN_LENGTH} characters long!`) - } const result = await resolve(root, args, context, info) await createOrUpdateLocations(args.id, args.locationName, context.driver) return result - } + }, } } diff --git a/backend/src/middleware/userMiddleware.spec.js b/backend/src/middleware/userMiddleware.spec.js index 9aa8f96c1..ef752c729 100644 --- a/backend/src/middleware/userMiddleware.spec.js +++ b/backend/src/middleware/userMiddleware.spec.js @@ -71,7 +71,8 @@ describe('userMiddleware', () => { it('with too short name', async () => { const variables = { - id: 'u1' + id: 'u1', + name: ' ' } const expected = 'Username must be at least 3 characters long!' await expect(client.request(mutation, variables)) diff --git a/backend/src/middleware/validUrlMiddleware.js b/backend/src/middleware/validUrlMiddleware.js deleted file mode 100644 index 37f06199c..000000000 --- a/backend/src/middleware/validUrlMiddleware.js +++ /dev/null @@ -1,18 +0,0 @@ -const validURL = str => { - const isValid = str.match(/^(?:https?:\/\/)(?:[^@\n])?(?:www\.)?([^:/\n?]+)/g) - return !!isValid -} - -export default { - Mutation: { - CreateSocialMedia: async (resolve, root, args, context, info) => { - let socialMedia - if (validURL(args.url)) { - socialMedia = await resolve(root, args, context, info) - } else { - throw Error('Input is not a URL') - } - return socialMedia - } - } -} diff --git a/backend/src/middleware/validation/index.js b/backend/src/middleware/validation/index.js new file mode 100644 index 000000000..c84e111ee --- /dev/null +++ b/backend/src/middleware/validation/index.js @@ -0,0 +1,30 @@ +import { UserInputError } from 'apollo-server' + +const USERNAME_MIN_LENGTH = 3 + +const validateUsername = async (resolve, root, args, context, info) => { + if (args.name && args.name.length >= USERNAME_MIN_LENGTH) { + return await resolve(root, args, context, info) + } else { + throw new UserInputError(`Username must be at least ${USERNAME_MIN_LENGTH} characters long!`) + } +} + +const validateUrl = async (resolve, root, args, context, info) => { + const { url } = args + const isValid = url.match(/^(?:https?:\/\/)(?:[^@\n])?(?:www\.)?([^:/\n?]+)/g) + if (isValid) { + return await resolve(root, args, context, info) + } else { + throw new UserInputError('Input is not a URL') + } +} + +export default { + Mutation: { + // CreateUser: validateUsername, + UpdateUser: validateUsername, + CreateSocialMedia: validateUrl + } +} + From 81a26e14ffbbc680f2e49c46903dd799025539e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 10 May 2019 17:34:05 +0200 Subject: [PATCH 2/6] Fix test case, move spec to the right location @ulfgebhardt: The reason why the test case was failing is pretty obvious. You forgot to create a user that you want to update. If there is no user to update, then you get an empty response. @ulfgebhardt: I moved the spec also in the right directory. You're testing resolvers, so that's where I moved the `.spec` file. --- backend/src/middleware/userMiddleware.js | 2 +- backend/src/middleware/validation/index.js | 5 +-- .../users.spec.js} | 34 +++++++++++-------- 3 files changed, 24 insertions(+), 17 deletions(-) rename backend/src/{middleware/userMiddleware.spec.js => resolvers/users.spec.js} (71%) diff --git a/backend/src/middleware/userMiddleware.js b/backend/src/middleware/userMiddleware.js index 78f04638d..b3fc1bf2c 100644 --- a/backend/src/middleware/userMiddleware.js +++ b/backend/src/middleware/userMiddleware.js @@ -15,6 +15,6 @@ export default { const result = await resolve(root, args, context, info) await createOrUpdateLocations(args.id, args.locationName, context.driver) return result - }, + } } } diff --git a/backend/src/middleware/validation/index.js b/backend/src/middleware/validation/index.js index c84e111ee..de9be72e9 100644 --- a/backend/src/middleware/validation/index.js +++ b/backend/src/middleware/validation/index.js @@ -4,6 +4,7 @@ const USERNAME_MIN_LENGTH = 3 const validateUsername = async (resolve, root, args, context, info) => { if (args.name && args.name.length >= USERNAME_MIN_LENGTH) { + /* 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!`) @@ -14,6 +15,7 @@ const validateUrl = async (resolve, root, args, context, info) => { const { url } = args const isValid = url.match(/^(?:https?:\/\/)(?:[^@\n])?(?:www\.)?([^:/\n?]+)/g) if (isValid) { + /* eslint-disable-next-line no-return-await */ return await resolve(root, args, context, info) } else { throw new UserInputError('Input is not a URL') @@ -22,9 +24,8 @@ const validateUrl = async (resolve, root, args, context, info) => { export default { Mutation: { - // CreateUser: validateUsername, + CreateUser: validateUsername, UpdateUser: validateUsername, CreateSocialMedia: validateUrl } } - diff --git a/backend/src/middleware/userMiddleware.spec.js b/backend/src/resolvers/users.spec.js similarity index 71% rename from backend/src/middleware/userMiddleware.spec.js rename to backend/src/resolvers/users.spec.js index ef752c729..6d2b791e3 100644 --- a/backend/src/middleware/userMiddleware.spec.js +++ b/backend/src/resolvers/users.spec.js @@ -5,15 +5,15 @@ import Factory from '../seed/factories' const factory = Factory() let client -afterAll(async () => { +afterEach(async () => { await factory.cleanDatabase() }) -describe('userMiddleware', () => { - describe('create User', () => { +describe('users', () => { + describe('CreateUser', () => { const mutation = ` - mutation($id: ID, $password: String!, $email: String!) { - CreateUser(id: $id, password: $password, email: $email) { + mutation($id: ID, $name: String, $password: String!, $email: String!) { + CreateUser(id: $id, name: $name, password: $password, email: $email) { id } } @@ -22,6 +22,7 @@ describe('userMiddleware', () => { it('with password and email', async () => { const variables = { + name: 'John Doe', password: '123', email: '123@123.de' } @@ -35,34 +36,39 @@ describe('userMiddleware', () => { }) }) - describe('update User', () => { + describe('UpdateUser', () => { + beforeEach(async () => { + await factory.create('User', { id: 'u47', name: 'John Doe' }) + }) + const mutation = ` mutation($id: ID!, $name: String) { UpdateUser(id: $id, name: $name) { + id name } } ` client = new GraphQLClient(host) - // TODO why is this failing - it returns { UpdateUser: null } - that should not be - /* it('name within specifications', async () => { + it('name within specifications', async () => { const variables = { - id: 'u1', - name: 'Peter Lustig' + id: 'u47', + name: 'James Doe' } const expected = { UpdateUser: { - name: 'Peter Lustig' + id: 'u47', + name: 'James Doe' } } await expect(client.request(mutation, variables)) .resolves.toEqual(expected) - }) */ + }) it('with no name', async () => { const variables = { - id: 'u1' + id: 'u47' } const expected = 'Username must be at least 3 characters long!' await expect(client.request(mutation, variables)) @@ -71,7 +77,7 @@ describe('userMiddleware', () => { it('with too short name', async () => { const variables = { - id: 'u1', + id: 'u47', name: ' ' } const expected = 'Username must be at least 3 characters long!' From 4a021db36b52fde1dd4710e13b9634d9c3df8788 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 13 May 2019 04:49:20 +0000 Subject: [PATCH 3/6] Bump eslint-plugin-prettier from 3.0.1 to 3.1.0 in /webapp Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.0.1 to 3.1.0. - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v3.0.1...v3.1.0) Signed-off-by: dependabot[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 27ed779b6..9e44730c7 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -92,7 +92,7 @@ "eslint": "~5.16.0", "eslint-config-prettier": "~4.2.0", "eslint-loader": "~2.1.2", - "eslint-plugin-prettier": "~3.0.1", + "eslint-plugin-prettier": "~3.1.0", "eslint-plugin-vue": "~5.2.2", "fuse.js": "^3.4.4", "jest": "~24.8.0", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 0d6d160ec..d63253be2 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -4148,10 +4148,10 @@ eslint-loader@~2.1.2: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-plugin-prettier@^3.0.0, eslint-plugin-prettier@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.1.tgz#19d521e3981f69dd6d14f64aec8c6a6ac6eb0b0d" - integrity sha512-/PMttrarPAY78PLvV3xfWibMOdMDl57hmlQ2XqFeA37wd+CJ7WSxV7txqjVPHi/AAFKd2lX0ZqfsOc/i5yFCSQ== +eslint-plugin-prettier@^3.0.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== dependencies: prettier-linter-helpers "^1.0.0" From 2d1daee23aceec496a2a91d3193af64b34bad3d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 13 May 2019 12:44:47 +0200 Subject: [PATCH 4/6] Don't document that we can set IDs in mutations --- backend/src/resolvers/users.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/resolvers/users.spec.js b/backend/src/resolvers/users.spec.js index 6d2b791e3..48e4741d7 100644 --- a/backend/src/resolvers/users.spec.js +++ b/backend/src/resolvers/users.spec.js @@ -12,8 +12,8 @@ afterEach(async () => { describe('users', () => { describe('CreateUser', () => { const mutation = ` - mutation($id: ID, $name: String, $password: String!, $email: String!) { - CreateUser(id: $id, name: $name, password: $password, email: $email) { + mutation($name: String, $password: String!, $email: String!) { + CreateUser(name: $name, password: $password, email: $email) { id } } From 62c639a9f89db8fcee3bdf9a0503bf645d9d2687 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 14 May 2019 04:54:16 +0000 Subject: [PATCH 5/6] Bump tiptap-extensions from 1.19.1 to 1.19.2 in /webapp Bumps [tiptap-extensions](https://github.com/scrumpy/tiptap) from 1.19.1 to 1.19.2. - [Release notes](https://github.com/scrumpy/tiptap/releases) - [Commits](https://github.com/scrumpy/tiptap/compare/tiptap-extensions@1.19.1...tiptap-extensions@1.19.2) Signed-off-by: dependabot[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 66 ++++++++++++++++++++++----------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 27ed779b6..2a8700a85 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -70,7 +70,7 @@ "stack-utils": "^1.0.2", "string-hash": "^1.1.3", "tiptap": "1.19.0", - "tiptap-extensions": "1.19.1", + "tiptap-extensions": "1.19.2", "v-tooltip": "~2.0.2", "vue-count-to": "~1.0.13", "vue-izitoast": "1.1.2", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 0d6d160ec..6ba5f5326 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -8767,15 +8767,15 @@ prosemirror-utils@^0.7.6: resolved "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.7.7.tgz#a9bda2468113d34f3721ba15eaa2fd04b81d7dc8" integrity sha512-0cSWive9oCOr4nnTlEQ9scr8g8kj126glAigb6cKLB4sq/eSyumVu8Ogqus6KEoLInBy6WONXJbgm/2xJ8MShw== -prosemirror-utils@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.8.0.tgz#fbec60512fd8a4544e1d8d95a9706c58699c505a" - integrity sha512-GRhxIYosyfDNivcxOzJw42O1gS6mq7zyCGUXKMdfOk/RAcimYRzL20Z0ll38mX+xU7xRH+0a8WoPb3+XDeiyxg== +prosemirror-utils@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.8.1.tgz#a9cb9f5ce292dc20c21ec996af02879651395a65" + integrity sha512-u1tCdkj4I5T7sBmL6IvBAnH8p0a//vJ2N3g7pVKbfxPVDQ7gcC9UibbPijpvhb6PALxX/oeccvo+PJXHm6j4vA== -prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.9.2.tgz#4ccc0085fe49b1f400845d78837e4ab4bb321ce4" - integrity sha512-UzeKJB+WNUZky/OgRdHymQE32XsRXPsE6WLFgvGVj7IKDAAQZRToydq85poYWCcCl07V8eEj30gqpaHI9YxJmA== +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.9.2, prosemirror-view@^1.9.4: + version "1.9.4" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.9.4.tgz#d0490846c9e8c88e1460e5f8ed5ee0c8d8f47298" + integrity sha512-3l6pzxEjgSZawW0Y0iUeKSW4pCCfSNxCNZT3q0C6MOqE30dVpA+0acTFOEZz6Gf8D3Lo20FwwaCSH6ld1P+8Lw== dependencies: prosemirror-model "^1.1.0" prosemirror-state "^1.0.0" @@ -10267,22 +10267,22 @@ tippy.js@^4.3.1: dependencies: popper.js "^1.14.7" -tiptap-commands@^1.10.0, tiptap-commands@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.10.1.tgz#d2dde3e0a70093f2e08b5ba1b7de5a1e827ea6aa" - integrity sha512-0+HNWkLx4TBJ170uN2jMQm88bRVHUR0qfeKrnspxR1xU24Wl3VgRX77QbRH9tpUZ1uk0CQnXVytiVouDd1taDQ== +tiptap-commands@^1.10.0, tiptap-commands@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.10.2.tgz#34a9534126331d65bd3bad7fcb3893ceef34d5ee" + integrity sha512-OTNMBx1SVnUnZlnUOnx2HC/IFop2QpRJreuvEt/XzqE3eNLExLgQLVELkGkrrLnIDU61MOva010La+6RaoF5NQ== dependencies: prosemirror-commands "^1.0.7" prosemirror-inputrules "^1.0.2" prosemirror-model "^1.7.0" prosemirror-schema-list "^1.0.3" prosemirror-state "^1.2.3" - tiptap-utils "^1.5.1" + tiptap-utils "^1.5.2" -tiptap-extensions@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.19.1.tgz#890220dae85f61a41629c2a43c1d33e1930b2b86" - integrity sha512-JlRwlhR3R6DP2ipW6Se9N5iR2BrW3BhxsrjqyLQHxq+RXRXcDLQmfdfQFLAlCFijJh9/KPapywAwHh37UjTnfw== +tiptap-extensions@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.19.2.tgz#54313fa82cf5966ae3ee85f3acca819a1c215d90" + integrity sha512-0f/+3qOzAY71GO837puJSpe08gQdzNsQgSa3+RFVgY1HFo9+YHX/AGHZu6PhZTxDBlaUgCLJGtcPpdXW4OrTzw== dependencies: lowlight "^1.11.0" prosemirror-collab "^1.1.1" @@ -10291,10 +10291,10 @@ tiptap-extensions@1.19.1: prosemirror-state "^1.2.3" prosemirror-tables "^0.8.0" prosemirror-transform "^1.1.3" - prosemirror-utils "^0.8.0" - prosemirror-view "^1.9.2" - tiptap "^1.19.1" - tiptap-commands "^1.10.1" + prosemirror-utils "^0.8.1" + prosemirror-view "^1.9.4" + tiptap "^1.19.2" + tiptap-commands "^1.10.2" tiptap-utils@^1.5.0: version "1.5.0" @@ -10306,15 +10306,15 @@ tiptap-utils@^1.5.0: prosemirror-tables "^0.8.0" prosemirror-utils "^0.7.6" -tiptap-utils@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.5.1.tgz#0126cd4ebe35d2850c69d994de56b0436afd9bab" - integrity sha512-zKdjeXiOR4CL1JmLh3ivgTw5scAFSmpytqza9a7EJPcTqjCWuBn9chGJGZIKjsk7zDPgBWMg5/2ciGvu17Ywjg== +tiptap-utils@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.5.2.tgz#6a2c459c4bcc2c3f4d14c31601cc41fe49b88311" + integrity sha512-Upw5ImtgzkrcNnKh6T+IwER8HZWOkposST5GnT07AjnyKddbn2yYCH9xxSODzao66pu0PhlwSoCR+9mXs3Tb6Q== dependencies: prosemirror-model "^1.7.0" prosemirror-state "^1.2.3" prosemirror-tables "^0.8.0" - prosemirror-utils "^0.8.0" + prosemirror-utils "^0.8.1" tiptap@1.19.0: version "1.19.0" @@ -10332,10 +10332,10 @@ tiptap@1.19.0: tiptap-commands "^1.10.0" tiptap-utils "^1.5.0" -tiptap@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.19.1.tgz#5db4591e5ac949f19bee00aaa1461c14167f012b" - integrity sha512-GCc+2Z5Iz4hfc2U7snwLaPToLAr4TLNkaBEEBuXU5sfCBTdgwCqVuPYqrwj55XJf0E9yJ55GLJmZpL+plTMCcw== +tiptap@^1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.19.2.tgz#6d349c32185b358d9f9326c461f4993a99c0374d" + integrity sha512-RQxvHZznQYMaYe935ihueGbepWGASn8fM+BQG1LMQEvqjlPZ6+F95lJ5vBFahE/CV9w0A9ddN06RacbF4P+6EA== dependencies: prosemirror-commands "^1.0.7" prosemirror-dropcursor "^1.1.1" @@ -10344,9 +10344,9 @@ tiptap@^1.19.1: prosemirror-keymap "^1.0.1" prosemirror-model "^1.7.0" prosemirror-state "^1.2.3" - prosemirror-view "^1.9.2" - tiptap-commands "^1.10.1" - tiptap-utils "^1.5.1" + prosemirror-view "^1.9.4" + tiptap-commands "^1.10.2" + tiptap-utils "^1.5.2" tmp@^0.0.33: version "0.0.33" From 9078d00fa182d806998cc9223f3ba58110deec5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 14 May 2019 04:55:46 +0000 Subject: [PATCH 6/6] Bump @nuxtjs/apollo from 4.0.0-rc4 to 4.0.0-rc4.1 in /webapp Bumps [@nuxtjs/apollo](https://github.com/nuxt-community/apollo-module) from 4.0.0-rc4 to 4.0.0-rc4.1. - [Release notes](https://github.com/nuxt-community/apollo-module/releases) - [Commits](https://github.com/nuxt-community/apollo-module/compare/v4.0.0-rc.4...v4.0.0-rc.4.1) Signed-off-by: dependabot[bot] --- webapp/package.json | 2 +- webapp/yarn.lock | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 27ed779b6..1fb22a813 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -51,7 +51,7 @@ }, "dependencies": { "@human-connection/styleguide": "0.5.17", - "@nuxtjs/apollo": "4.0.0-rc4", + "@nuxtjs/apollo": "4.0.0-rc4.1", "@nuxtjs/axios": "~5.4.1", "@nuxtjs/dotenv": "~1.3.0", "@nuxtjs/style-resources": "~0.1.2", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 0d6d160ec..2b12f7862 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -1103,16 +1103,17 @@ webpack-node-externals "^1.7.2" webpackbar "^3.2.0" -"@nuxtjs/apollo@4.0.0-rc4": - version "4.0.0-rc4" - resolved "https://registry.yarnpkg.com/@nuxtjs/apollo/-/apollo-4.0.0-rc4.tgz#21e444f9b027bbb379f04feb04ee999aa94d2568" - integrity sha512-kdqjlUSpYZMKIF6InNZox3lqwWnJSyscj1hGNnHLVpspooLs4l+MlOtUGQeS7kSZAW0hrPG3yjQeVwx80rJR5g== +"@nuxtjs/apollo@4.0.0-rc4.1": + version "4.0.0-rc4.1" + resolved "https://registry.yarnpkg.com/@nuxtjs/apollo/-/apollo-4.0.0-rc4.1.tgz#c9d27d0ad95c36805efdfceceb6150ed0eded81e" + integrity sha512-FAWpGlq6vcD5IHX8yElO6p73vVK8OabQB/ddc5z0idm3lv8ZQnG+RHvzwQ7qrqQseGUzCbMu/haehmaWA78JzA== dependencies: cookie "^0.3.1" isomorphic-fetch "^2.2.1" js-cookie "^2.2.0" - vue-apollo "^3.0.0-beta.28" - vue-cli-plugin-apollo "^0.19.1" + vue-apollo "^3.0.0-beta.29" + vue-cli-plugin-apollo "^0.20.0" + webpack-node-externals "^1.7.2" "@nuxtjs/axios@~5.4.1": version "5.4.1" @@ -10833,7 +10834,7 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" -vue-apollo@^3.0.0-beta.28: +vue-apollo@^3.0.0-beta.29: version "3.0.0-beta.29" resolved "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.29.tgz#a331b4a506e6ff0a5a13cb989441daaf8edef2e7" integrity sha512-iyyrE1xzTDZnSDN8XJkmBTs67m1pzR5QUJTdoz1VlLLQq/arvKV22AZUpR7zzU5anvfo/jc9tCyDKLxJsWkmTA== @@ -10841,10 +10842,10 @@ vue-apollo@^3.0.0-beta.28: chalk "^2.4.2" throttle-debounce "^2.1.0" -vue-cli-plugin-apollo@^0.19.1: - version "0.19.2" - resolved "https://registry.yarnpkg.com/vue-cli-plugin-apollo/-/vue-cli-plugin-apollo-0.19.2.tgz#ec6a6bdc98fcfa886a616e3a64eaaff71bbeb911" - integrity sha512-gWZsSbfHR2CmMLgpHxj6viwLczUdZ3zdwkXPoEUa7yn34Z8mZJW/fokwhPONgQNTrs3KNcq+zNQA7ED09+fP4A== +vue-cli-plugin-apollo@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/vue-cli-plugin-apollo/-/vue-cli-plugin-apollo-0.20.0.tgz#0539ec96d8502cbe2fd9ab6a431f5b989145e396" + integrity sha512-Ey/luK5HtP4ZQhua5RKETR672pE7BPymaso//Ccl/wxQI1BqVTxg9o/wYeXuURBIw2Et9JaVLXmh0e9uKgk8Jw== dependencies: apollo-cache-inmemory "^1.5.1" apollo-client "^2.5.1"