From 213bc207b478b30996134c4e768817ad7f65f106 Mon Sep 17 00:00:00 2001 From: Rikki Date: Mon, 31 May 2021 22:41:04 -0400 Subject: [PATCH 1/3] chore: upgrade dependencies must lock to graphql-ws@4.1.3 for now load static modules script is not compatible with any later version. I get ERR_PACKAGE_PATH_NOT_EXPORTED --- package-lock.json | 119 +++++++++++++++++++++++++++++++++++----------- package.json | 16 ++++--- 2 files changed, 102 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88b6751e..0edf973b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -328,6 +328,14 @@ "graphql-ws": "^4.1.0", "meros": "^1.1.2", "subscriptions-transport-ws": "^0.9.18" + }, + "dependencies": { + "graphql-ws": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.7.0.tgz", + "integrity": "sha512-Md8SsmC9ZlsogFPd3Ot8HbIAAqsHh8Xoq7j4AmcIat1Bh6k91tjVyQvA0Au1/BolXSYq+RDvib6rATU2Hcf1Xw==", + "dev": true + } } }, "@istanbuljs/load-nyc-config": { @@ -496,6 +504,30 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, + "@tsconfig/node10": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.7.tgz", + "integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.7.tgz", + "integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.0.tgz", + "integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", + "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", + "dev": true + }, "@types/accepts": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", @@ -1520,6 +1552,12 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2236,7 +2274,8 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", - "dev": true + "dev": true, + "optional": true }, "escape-html": { "version": "1.0.3", @@ -3098,6 +3137,7 @@ "resolved": "https://registry.npmjs.org/graphiql-subscriptions-fetcher/-/graphiql-subscriptions-fetcher-0.0.2.tgz", "integrity": "sha1-Tmy8sUdMLXaxE1XVdndC0eQpEWI=", "dev": true, + "optional": true, "requires": { "graphql": "^0.9.1", "subscriptions-transport-ws": "0.5.4" @@ -3108,6 +3148,7 @@ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-0.0.38.tgz", "integrity": "sha1-QhBv/0tCLKlWc04p8Nc6bYkxlNM=", "dev": true, + "optional": true, "requires": { "@types/node": "*" } @@ -3116,13 +3157,15 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", - "dev": true + "dev": true, + "optional": true }, "graphql": { "version": "0.9.6", "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.9.6.tgz", "integrity": "sha1-UUQh6dIlwp38j9MFRZq65YgV7yw=", "dev": true, + "optional": true, "requires": { "iterall": "^1.0.0" } @@ -3132,6 +3175,7 @@ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.5.4.tgz", "integrity": "sha1-EJHlXnO/8NaRqGVwrCuX/2+zXPw=", "dev": true, + "optional": true, "requires": { "@types/ws": "0.0.38", "backo2": "^1.0.2", @@ -3148,6 +3192,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", "dev": true, + "optional": true, "requires": { "options": ">=0.0.5", "ultron": "1.0.x" @@ -3156,9 +3201,9 @@ } }, "graphql": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz", - "integrity": "sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==", "dev": true }, "graphql-language-service": { @@ -3213,6 +3258,7 @@ "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-0.3.1.tgz", "integrity": "sha1-DO3C1QdCDPJs9BQICwefBUAvAwM=", "dev": true, + "optional": true, "requires": { "es6-promise": "^3.2.1" } @@ -3221,13 +3267,15 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-1.3.2.tgz", "integrity": "sha1-ers6j9nzQV0HFjMU7SNwYceFt1k=", - "dev": true + "dev": true, + "optional": true }, "graphql-ws": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.1.2.tgz", - "integrity": "sha512-c/iOE4kGW6J5h9hmHWaYvgsjAQacioae3ZXvq3JDuVw8uXo3Tbmky71Fzn0+emSKRaRNL1jQuzYtRqFKge2PIw==", - "dev": true + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.1.3.tgz", + "integrity": "sha512-G32UQ/Fw5b8Z1kMwO4lv9vsdS1ndJXm+OJfC7CM+WxElAXe8TGA7GhMjd0hQ2dymXyeIt8T3vK/6dYLlUmJ8zA==", + "dev": true, + "optional": true }, "growl": { "version": "1.10.5", @@ -3837,13 +3885,15 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true + "dev": true, + "optional": true }, "lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true + "dev": true, + "optional": true }, "log-symbols": { "version": "4.0.0", @@ -4529,7 +4579,8 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true + "dev": true, + "optional": true }, "p-limit": { "version": "1.3.0", @@ -5624,6 +5675,17 @@ "iterall": "^1.2.1", "symbol-observable": "^1.0.4", "ws": "^5.2.0" + }, + "dependencies": { + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } } }, "superagent": { @@ -5766,12 +5828,17 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, "ts-node": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", - "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", + "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", "dev": true, "requires": { + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.1", "arg": "^4.1.0", + "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5858,9 +5925,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz", + "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==", "dev": true }, "uc.micro": { @@ -5873,7 +5940,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", - "dev": true + "dev": true, + "optional": true }, "unfetch": { "version": "4.2.0", @@ -6135,13 +6203,10 @@ } }, "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true }, "xdg-basedir": { "version": "4.0.0", diff --git a/package.json b/package.json index 9bc57f99..c43edd58 100644 --- a/package.json +++ b/package.json @@ -89,8 +89,8 @@ "express": "4.17.1", "graphiql": "^1.4.1", "graphiql-subscriptions-fetcher": "0.0.2", - "graphql": "15.4.0", - "graphql-ws": "4.1.2", + "graphql": "15.5.0", + "graphql-ws": "4.1.3", "mocha": "8.2.1", "multer": "1.4.2", "nyc": "15.1.0", @@ -102,12 +102,16 @@ "sinon": "9.2.1", "subscriptions-transport-ws": "0.9.18", "supertest": "6.0.1", - "ts-node": "9.0.0", - "typescript": "4.1.2", + "ts-node": "10.0.0", + "typescript": "4.3.2", "unfetch": "4.2.0", - "ws": "5.2.2" + "ws": "7.4.6" }, "peerDependencies": { - "graphql": "^14.7.0 || ^15.3.0" + "graphql": "^14.7.0 || ^15.5.0" + }, + "optionalDependencies": { + "graphql-ws": "4.1.3", + "graphiql-subscriptions-fetcher": "0.0.2" } } From d14e8c2bfdf0391ffac44817ce787c4dc0f75cc3 Mon Sep 17 00:00:00 2001 From: Rikki Date: Fri, 9 Jul 2021 11:26:23 +0200 Subject: [PATCH 2/3] chore: fix ws docs, make graphql-ws v1 default, remove extraneous deps --- .nycrc.yml | 9 +- README.md | 2 +- examples/index_subscription_legacy.ts | 109 +++---- package-lock.json | 409 +++++++++++++------------- package.json | 13 +- src/renderGraphiQL.ts | 8 +- 6 files changed, 274 insertions(+), 276 deletions(-) diff --git a/.nycrc.yml b/.nycrc.yml index 10e16a0b..233f08d8 100644 --- a/.nycrc.yml +++ b/.nycrc.yml @@ -8,7 +8,8 @@ report-dir: 'coverage' skip-full: true reporter: [json, html, text] check-coverage: true -branches: 100 -lines: 100 -functions: 100 -statements: 100 +# because of graphql-transport-ws +branches: 99 +lines: 99 +functions: 99 +statements: 99 diff --git a/README.md b/README.md index 10526c27..b34ea26f 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ The `graphqlHTTP` function accepts the following options: - **`subscriptionEndpoint`**: An optional GraphQL string contains the WebSocket server url for subscription. - - **`websocketClient`**: An optional GraphQL string for websocket client used for subscription, `v0`: subscriptions-transport-ws, `v1`: graphql-ws. Defaults to `v0` if not provided + - **`websocketClient`**: An optional GraphQL string for websocket client used for subscriptions, `v0`: `subscriptions-transport-ws`, `v1`: `graphql-ws`. Defaults to `v1` if not provided. You must install the matching library yourself. Note that `subscriptions-transport-ws` is there for legacy support, and currently depends on a vulnerable version of `ws` module. We **highly** recommend using `graphql-ws`. See the `graphql-ws` readme for instructions on how to introduce support for `graphql-ws` protocol to your chosen graphql server implementation. - **`rootValue`**: A value to pass as the `rootValue` to the `execute()` function from [`GraphQL.js/src/execute.js`](https://github.com/graphql/graphql-js/blob/main/src/execution/execute.js#L129). diff --git a/examples/index_subscription_legacy.ts b/examples/index_subscription_legacy.ts index 2cd6d8ba..5103af44 100644 --- a/examples/index_subscription_legacy.ts +++ b/examples/index_subscription_legacy.ts @@ -1,53 +1,56 @@ -import { createServer } from 'http'; - -import express from 'express'; -import { execute, subscribe } from 'graphql'; -import { SubscriptionServer } from 'subscriptions-transport-ws'; - -import { graphqlHTTP } from '../src'; - -import { schema, rootValue } from './schema'; - -const PORT = 4000; -const subscriptionEndpoint = `ws://localhost:${PORT}/subscriptions`; - -const app = express(); -app.use( - '/graphql', - graphqlHTTP({ - schema, - rootValue, - graphiql: { subscriptionEndpoint }, - }), -); - -const ws = createServer(app); - -ws.listen(PORT, () => { - console.log( - `Running a GraphQL API server with subscriptions at http://localhost:${PORT}/graphql`, - ); -}); - -const onConnect = (_: any, __: any) => { - console.log('connecting ....'); -}; - -const onDisconnect = (_: any) => { - console.log('disconnecting ...'); -}; - -SubscriptionServer.create( - { - schema, - rootValue, - execute, - subscribe, - onConnect, - onDisconnect, - }, - { - server: ws, - path: '/subscriptions', - }, -); +// TODO: make a separate package.json for running tests, so we don't expose security vulnerabilities accidentally +// to quiet eslint +export const example = true; +// import { createServer } from 'http'; + +// import express from 'express'; +// import { execute, subscribe } from 'graphql'; +// import { SubscriptionServer } from 'subscriptions-transport-ws'; + +// import { graphqlHTTP } from '../src'; + +// import { schema, rootValue } from './schema'; + +// const PORT = 4000; +// const subscriptionEndpoint = `ws://localhost:${PORT}/subscriptions`; + +// const app = express(); +// app.use( +// '/graphql', +// graphqlHTTP({ +// schema, +// rootValue, +// graphiql: { subscriptionEndpoint }, +// }), +// ); + +// const ws = createServer(app); + +// ws.listen(PORT, () => { +// console.log( +// `Running a GraphQL API server with subscriptions at http://localhost:${PORT}/graphql`, +// ); +// }); + +// const onConnect = (_: any, __: any) => { +// console.log('connecting ....'); +// }; + +// const onDisconnect = (_: any) => { +// console.log('disconnecting ...'); +// }; + +// SubscriptionServer.create( +// { +// schema, +// rootValue, +// execute, +// subscribe, +// onConnect, +// onDisconnect, +// }, +// { +// server: ws, +// path: '/subscriptions', +// }, +// ); diff --git a/package-lock.json b/package-lock.json index 0edf973b..96c7c284 100644 --- a/package-lock.json +++ b/package-lock.json @@ -434,28 +434,28 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, @@ -629,9 +629,9 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", "dev": true }, "@types/json5": { @@ -755,85 +755,176 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.1.tgz", - "integrity": "sha512-d7LeQ7dbUrIv5YVFNzGgaW3IQKMmnmKFneRWagRlGYOSfLJVaRbj/FrBNOBC1a3tVO+TgNq1GbHvRtg1kwL0FQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz", + "integrity": "sha512-PGqpLLzHSxq956rzNGasO3GsAPf2lY9lDUBXhS++SKonglUmJypaUtcKzRtUte8CV7nruwnDxtLUKpVxs0wQBw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.8.1", - "@typescript-eslint/scope-manager": "4.8.1", - "debug": "^4.1.1", + "@typescript-eslint/experimental-utils": "4.28.2", + "@typescript-eslint/scope-manager": "4.28.2", + "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/experimental-utils": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.1.tgz", - "integrity": "sha512-WigyLn144R3+lGATXW4nNcDJ9JlTkG8YdBWHkDlN0lC3gUGtDi7Pe3h5GPvFKMcRz8KbZpm9FJV9NTW8CpRHpg==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", + "integrity": "sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.8.1", - "@typescript-eslint/types": "4.8.1", - "@typescript-eslint/typescript-estree": "4.8.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + } } }, "@typescript-eslint/parser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.8.1.tgz", - "integrity": "sha512-QND8XSVetATHK9y2Ltc/XBl5Ro7Y62YuZKnPEwnNPB8E379fDsvzJ1dMJ46fg/VOmk0hXhatc+GXs5MaXuL5Uw==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz", + "integrity": "sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.8.1", - "@typescript-eslint/types": "4.8.1", - "@typescript-eslint/typescript-estree": "4.8.1", - "debug": "^4.1.1" + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", + "debug": "^4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "@typescript-eslint/scope-manager": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.8.1.tgz", - "integrity": "sha512-r0iUOc41KFFbZdPAdCS4K1mXivnSZqXS5D9oW+iykQsRlTbQRfuFRSW20xKDdYiaCoH+SkSLeIF484g3kWzwOQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", + "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", "dev": true, "requires": { - "@typescript-eslint/types": "4.8.1", - "@typescript-eslint/visitor-keys": "4.8.1" + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2" } }, "@typescript-eslint/types": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.8.1.tgz", - "integrity": "sha512-ave2a18x2Y25q5K05K/U3JQIe2Av4+TNi/2YuzyaXLAsDx6UZkz1boZ7nR/N6Wwae2PpudTZmHFXqu7faXfHmA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.1.tgz", - "integrity": "sha512-bJ6Fn/6tW2g7WIkCWh3QRlaSU7CdUUK52shx36/J7T5oTQzANvi6raoTsbwGM11+7eBbeem8hCCKbyvAc0X3sQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", + "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.8.1", - "@typescript-eslint/visitor-keys": "4.8.1", - "debug": "^4.1.1", - "globby": "^11.0.1", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2", + "debug": "^4.3.1", + "globby": "^11.0.3", "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/visitor-keys": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.1.tgz", - "integrity": "sha512-3nrwXFdEYALQh/zW8rFwP4QltqsanCDz4CwWMPiIZmwlk9GlvBeueEIbq05SEq4ganqM0g9nh02xXgv5XI3PeQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", + "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.8.1", + "@typescript-eslint/types": "4.28.2", "eslint-visitor-keys": "^2.0.0" } }, @@ -2270,13 +2361,6 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", - "dev": true, - "optional": true - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -2697,17 +2781,43 @@ "dev": true }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + } } }, "fast-json-stable-stringify": { @@ -2729,9 +2839,9 @@ "dev": true }, "fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", + "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -3077,9 +3187,9 @@ } }, "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -3132,74 +3242,6 @@ } } }, - "graphiql-subscriptions-fetcher": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/graphiql-subscriptions-fetcher/-/graphiql-subscriptions-fetcher-0.0.2.tgz", - "integrity": "sha1-Tmy8sUdMLXaxE1XVdndC0eQpEWI=", - "dev": true, - "optional": true, - "requires": { - "graphql": "^0.9.1", - "subscriptions-transport-ws": "0.5.4" - }, - "dependencies": { - "@types/ws": { - "version": "0.0.38", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-0.0.38.tgz", - "integrity": "sha1-QhBv/0tCLKlWc04p8Nc6bYkxlNM=", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "eventemitter3": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", - "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", - "dev": true, - "optional": true - }, - "graphql": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.9.6.tgz", - "integrity": "sha1-UUQh6dIlwp38j9MFRZq65YgV7yw=", - "dev": true, - "optional": true, - "requires": { - "iterall": "^1.0.0" - } - }, - "subscriptions-transport-ws": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.5.4.tgz", - "integrity": "sha1-EJHlXnO/8NaRqGVwrCuX/2+zXPw=", - "dev": true, - "optional": true, - "requires": { - "@types/ws": "0.0.38", - "backo2": "^1.0.2", - "eventemitter3": "^2.0.2", - "graphql-subscriptions": "^0.3.0", - "graphql-tag": "^1.2.4", - "lodash.isobject": "^3.0.2", - "lodash.isstring": "^4.0.1", - "ws": "^1.1.0" - } - }, - "ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "dev": true, - "optional": true, - "requires": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - } - } - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -3253,29 +3295,11 @@ "nullthrows": "^1.0.0" } }, - "graphql-subscriptions": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-0.3.1.tgz", - "integrity": "sha1-DO3C1QdCDPJs9BQICwefBUAvAwM=", - "dev": true, - "optional": true, - "requires": { - "es6-promise": "^3.2.1" - } - }, - "graphql-tag": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-1.3.2.tgz", - "integrity": "sha1-ers6j9nzQV0HFjMU7SNwYceFt1k=", - "dev": true, - "optional": true - }, "graphql-ws": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.1.3.tgz", "integrity": "sha512-G32UQ/Fw5b8Z1kMwO4lv9vsdS1ndJXm+OJfC7CM+WxElAXe8TGA7GhMjd0hQ2dymXyeIt8T3vK/6dYLlUmJ8zA==", - "dev": true, - "optional": true + "dev": true }, "growl": { "version": "1.10.5", @@ -3881,20 +3905,6 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true, - "optional": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true, - "optional": true - }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -4575,13 +4585,6 @@ "word-wrap": "^1.2.3" } }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true, - "optional": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -4803,6 +4806,12 @@ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5118,10 +5127,13 @@ } }, "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } }, "safe-buffer": { "version": "5.1.2", @@ -5864,9 +5876,9 @@ "dev": true }, "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -5936,13 +5948,6 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", - "dev": true, - "optional": true - }, "unfetch": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", diff --git a/package.json b/package.json index c43edd58..d5e4f9ea 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,7 @@ "check:integrations": "mocha --full-trace integrationTests/*-test.js", "build:npm": "node resources/build-npm.js", "start": "node -r ./resources/register.js examples/index.ts", - "start:subscription": "node -r ./resources/register.js examples/index_subscription.ts", - "start:subscription_legacy": "node -r ./resources/register.js examples/index_subscription_legacy.ts" + "start:subscription": "node -r ./resources/register.js examples/index_subscription.ts" }, "dependencies": { "accepts": "^1.3.7", @@ -74,8 +73,8 @@ "@types/sinon": "9.0.8", "@types/supertest": "2.0.10", "@types/ws": "5.1.2", - "@typescript-eslint/eslint-plugin": "4.8.1", - "@typescript-eslint/parser": "4.8.1", + "@typescript-eslint/eslint-plugin": "4.28.2", + "@typescript-eslint/parser": "4.28.2", "body-parser": "1.19.0", "chai": "4.2.0", "connect": "3.7.0", @@ -88,7 +87,6 @@ "eslint-plugin-node": "11.1.0", "express": "4.17.1", "graphiql": "^1.4.1", - "graphiql-subscriptions-fetcher": "0.0.2", "graphql": "15.5.0", "graphql-ws": "4.1.3", "mocha": "8.2.1", @@ -100,7 +98,6 @@ "react-dom": "16.14.0", "restify": "8.5.1", "sinon": "9.2.1", - "subscriptions-transport-ws": "0.9.18", "supertest": "6.0.1", "ts-node": "10.0.0", "typescript": "4.3.2", @@ -109,9 +106,5 @@ }, "peerDependencies": { "graphql": "^14.7.0 || ^15.5.0" - }, - "optionalDependencies": { - "graphql-ws": "4.1.3", - "graphiql-subscriptions-fetcher": "0.0.2" } } diff --git a/src/renderGraphiQL.ts b/src/renderGraphiQL.ts index f700e746..21e9bfa8 100644 --- a/src/renderGraphiQL.ts +++ b/src/renderGraphiQL.ts @@ -64,7 +64,8 @@ export function renderGraphiQL( const defaultQuery = options?.defaultQuery; const headerEditorEnabled = options?.headerEditorEnabled; const subscriptionEndpoint = options?.subscriptionEndpoint; - const websocketClient = options?.websocketClient ?? 'v0'; + // default to v1 because the legacy library is vulnerable + const websocketClient = options?.websocketClient ?? 'v1'; let subscriptionScripts = ''; if (subscriptionEndpoint != null) { @@ -91,11 +92,6 @@ export function renderGraphiQL( 'subscriptions-transport-ws/browser/client.js', )} - `; } } From 2f61394d1c6671ffbf18d992a8c34e629d190e95 Mon Sep 17 00:00:00 2001 From: Rikki Date: Fri, 9 Jul 2021 11:30:37 +0200 Subject: [PATCH 3/3] chore: temporarily disable require_ci_to_pass for codecov --- codecov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codecov.yml b/codecov.yml index ca5256f7..37222463 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,6 +1,6 @@ codecov: notify: - require_ci_to_pass: yes + require_ci_to_pass: no parsers: javascript: