├── .gitignore ├── .travis.yml ├── README.md ├── examples ├── authentication │ ├── index.ts │ ├── package.json │ └── yarn.lock ├── caching │ ├── index.ts │ ├── package.json │ └── yarn.lock ├── combining │ ├── index.ts │ ├── package.json │ └── yarn.lock ├── logging │ ├── index.ts │ ├── package.json │ └── yarn.lock └── validation │ ├── index.ts │ ├── package.json │ └── yarn.lock ├── package.json ├── src └── index.ts ├── test.ts ├── tsconfig.json ├── tslint.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | lib -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: 3 | directories: 4 | - ~/.npm 5 | notifications: 6 | email: false 7 | node_js: 8 | - '9' 9 | - '8' 10 | after_success: 11 | - npm run travis-deploy-once "npm run semantic-release" 12 | branches: 13 | except: 14 | - /^v\d+\.\d+\.\d+$/ 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GraphQL Chain 2 | 3 | Create GraphQL middleware that resembles how Express middleware works. 4 | 5 | ## Install 6 | 7 | ``` 8 | yarn add graphql-chain 9 | ``` 10 | 11 | ## How to use 12 | 13 | ### Step 1 14 | 15 | Create middleware 16 | 17 | ```js 18 | const validationMiddleware: MiddlewareResolver = ( 19 | next, 20 | parent, 21 | args, 22 | context, 23 | info 24 | ) => { 25 | if (args.name.length > 10) { 26 | throw new Error("too long"); 27 | } 28 | 29 | return next(); 30 | }; 31 | ``` 32 | 33 | It has access to all the regular parameters a resolver gets plus a `next` parameter at the beginning which you call and return to call the next middleware or resolver. 34 | 35 | You don't always have to call the next middleware or resolver though. This can be helpful if you want create a caching middleware: 36 | 37 | ```js 38 | const cachingMiddleware: MiddlewareResolver = async (next, _, args) => { 39 | const data = await redis.get("hello:cache"); 40 | if (data) { 41 | // found data in the cache, so return early 42 | console.log("CACHE HIT"); 43 | return data; 44 | } 45 | // did not find data, so call the next middleware 46 | console.log("CACHE MISS"); 47 | const result = await next(); 48 | // set cache for next call 49 | await redis.set("hello:cache", result); 50 | return result; 51 | }; 52 | ``` 53 | 54 | You can also change the value of the arguments and then use them later 55 | 56 | ```js 57 | const getUserMiddleware: MiddlewareResolver = async (next, _, __, context) => { 58 | if (validToken(context.authToken)) { 59 | // you can add properties to context that you can use later 60 | context.user = await getUser(context.authToken); 61 | } 62 | 63 | return next(); 64 | }; 65 | ``` 66 | 67 | So you can then have a middleware that checks the user 68 | 69 | ```js 70 | const authorizationMiddleware: MiddlewareResolver = (next, _, __, context) => { 71 | if (!context.user || !context.user.admin) { 72 | throw new Error("not authorized"); 73 | } 74 | 75 | return next(); 76 | }; 77 | ``` 78 | 79 | ### Step 2 80 | 81 | Chain as many middlewares together as you like 82 | 83 | ```js 84 | import { chain } from "graphql-chain"; 85 | 86 | const helloMiddleware = chain([ 87 | getUserMiddleware, 88 | authorizationMiddleware, 89 | validationMiddleware 90 | ]); 91 | ``` 92 | 93 | ### Step 3 94 | 95 | Wrap the resolver you want the middleware to run on 96 | 97 | ```js 98 | const resolvers: IResolvers = { 99 | Query: { 100 | hello: helloMiddleware((_, { name }) => `Hello ${name || "World"}`) 101 | } 102 | }; 103 | ``` 104 | 105 | The execution sequence will be `getUserMiddleware` -> `authorizationMiddleware` -> `validationMiddleware` -> `hello` 106 | 107 | Checkout the `examples` directory for complete examples 108 | -------------------------------------------------------------------------------- /examples/authentication/index.ts: -------------------------------------------------------------------------------- 1 | import { GraphQLServer } from "graphql-yoga"; 2 | import { IResolvers } from "graphql-yoga/dist/types"; 3 | import { MiddlewareResolver, chain } from "../../src/index"; 4 | 5 | const typeDefs = ` 6 | type Query { 7 | hello(name: String): String! 8 | } 9 | `; 10 | 11 | const validToken = async (token: string) => { 12 | // logic needed :) 13 | return true; 14 | }; 15 | 16 | const getUser = async (token: string) => { 17 | // logic needed :) 18 | return { id: 5, email: "bob@bob.com", admin: true }; 19 | }; 20 | 21 | const getUserMiddleware: MiddlewareResolver = async (next, _, __, context) => { 22 | if (validToken(context.authToken)) { 23 | // you can add properties to context that you can use later 24 | context.user = await getUser(context.authToken); 25 | } 26 | 27 | return next(); 28 | }; 29 | 30 | const authorizationMiddleware: MiddlewareResolver = (next, _, __, context) => { 31 | if (!context.user || !context.user.admin) { 32 | throw new Error("not authorized"); 33 | } 34 | 35 | return next(); 36 | }; 37 | 38 | const validationMiddleware: MiddlewareResolver = (next, _, args) => { 39 | if (args.name.length > 10) { 40 | throw new Error("too long"); 41 | } 42 | 43 | return next(); 44 | }; 45 | 46 | const helloMiddleware = chain([ 47 | getUserMiddleware, 48 | authorizationMiddleware, 49 | validationMiddleware 50 | ]); 51 | 52 | const resolvers: IResolvers = { 53 | Query: { 54 | hello: helloMiddleware( 55 | (_, { name }) => `Hello ${name || "World"}` 56 | ) 57 | } 58 | }; 59 | 60 | const server = new GraphQLServer({ 61 | typeDefs, 62 | resolvers, 63 | context: ({ request }) => ({ 64 | authToken: request.headers.authorization 65 | }) 66 | }); 67 | server.start(() => console.log("Server is running on localhost:4000")); 68 | -------------------------------------------------------------------------------- /examples/authentication/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "validation", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "devDependencies": { 7 | "ts-node": "^6.1.0", 8 | "typescript": "^2.9.1" 9 | }, 10 | "dependencies": { 11 | "graphql-yoga": "^1.14.7" 12 | }, 13 | "scripts": { 14 | "start": "ts-node index.ts" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/authentication/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.0.0-beta.40": 6 | version "7.0.0-beta.49" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.49.tgz#03b3bf07eb982072c8e851dd2ddd5110282e61bf" 8 | dependencies: 9 | core-js "^2.5.6" 10 | regenerator-runtime "^0.11.1" 11 | 12 | "@types/body-parser@*": 13 | version "1.17.0" 14 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 15 | dependencies: 16 | "@types/connect" "*" 17 | "@types/node" "*" 18 | 19 | "@types/connect@*": 20 | version "3.4.32" 21 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 22 | dependencies: 23 | "@types/node" "*" 24 | 25 | "@types/cors@^2.8.4": 26 | version "2.8.4" 27 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" 28 | dependencies: 29 | "@types/express" "*" 30 | 31 | "@types/events@*": 32 | version "1.2.0" 33 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 34 | 35 | "@types/express-serve-static-core@*": 36 | version "4.16.0" 37 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" 38 | dependencies: 39 | "@types/events" "*" 40 | "@types/node" "*" 41 | "@types/range-parser" "*" 42 | 43 | "@types/express@*", "@types/express@^4.11.1": 44 | version "4.16.0" 45 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" 46 | dependencies: 47 | "@types/body-parser" "*" 48 | "@types/express-serve-static-core" "*" 49 | "@types/serve-static" "*" 50 | 51 | "@types/graphql-deduplicator@^2.0.0": 52 | version "2.0.0" 53 | resolved "https://registry.yarnpkg.com/@types/graphql-deduplicator/-/graphql-deduplicator-2.0.0.tgz#9e577b8f3feb3d067b0ca756f4a1fb356d533922" 54 | 55 | "@types/graphql@0.12.6": 56 | version "0.12.6" 57 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.12.6.tgz#3d619198585fcabe5f4e1adfb5cf5f3388c66c13" 58 | 59 | "@types/graphql@^0.13.0": 60 | version "0.13.1" 61 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.13.1.tgz#7d39750355c9ecb921816d6f76c080405b5f6bea" 62 | 63 | "@types/mime@*": 64 | version "2.0.0" 65 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 66 | 67 | "@types/node@*": 68 | version "10.3.1" 69 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.1.tgz#51092fbacaed768a122a293814474fbf6e5e8b6d" 70 | 71 | "@types/node@^9.4.6": 72 | version "9.6.20" 73 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.20.tgz#b59a1bd357ae2df7d44d5ac98e9b64eb96ea1fef" 74 | 75 | "@types/range-parser@*": 76 | version "1.2.2" 77 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" 78 | 79 | "@types/serve-static@*": 80 | version "1.13.2" 81 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 82 | dependencies: 83 | "@types/express-serve-static-core" "*" 84 | "@types/mime" "*" 85 | 86 | "@types/zen-observable@^0.5.3": 87 | version "0.5.3" 88 | resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.5.3.tgz#91b728599544efbb7386d8b6633693a3c2e7ade5" 89 | 90 | accepts@~1.3.5: 91 | version "1.3.5" 92 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 93 | dependencies: 94 | mime-types "~2.1.18" 95 | negotiator "0.6.1" 96 | 97 | apollo-cache-control@^0.1.0: 98 | version "0.1.1" 99 | resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.1.1.tgz#173d14ceb3eb9e7cb53de7eb8b61bee6159d4171" 100 | dependencies: 101 | graphql-extensions "^0.0.x" 102 | 103 | apollo-link@1.2.1: 104 | version "1.2.1" 105 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.1.tgz#c120b16059f9bd93401b9f72b94d2f80f3f305d2" 106 | dependencies: 107 | "@types/node" "^9.4.6" 108 | apollo-utilities "^1.0.0" 109 | zen-observable-ts "^0.8.6" 110 | 111 | apollo-link@^1.2.1: 112 | version "1.2.2" 113 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.2.tgz#54c84199b18ac1af8d63553a68ca389c05217a03" 114 | dependencies: 115 | "@types/graphql" "0.12.6" 116 | apollo-utilities "^1.0.0" 117 | zen-observable-ts "^0.8.9" 118 | 119 | apollo-server-core@^1.3.6: 120 | version "1.3.6" 121 | resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.6.tgz#08636243c2de56fa8c267d68dd602cb1fbd323e3" 122 | dependencies: 123 | apollo-cache-control "^0.1.0" 124 | apollo-tracing "^0.1.0" 125 | graphql-extensions "^0.0.x" 126 | 127 | apollo-server-express@^1.3.6: 128 | version "1.3.6" 129 | resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-1.3.6.tgz#2120b05021a87def44fafd846e8a0e2a32852db7" 130 | dependencies: 131 | apollo-server-core "^1.3.6" 132 | apollo-server-module-graphiql "^1.3.4" 133 | 134 | apollo-server-lambda@1.3.6: 135 | version "1.3.6" 136 | resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-1.3.6.tgz#bdaac37f143c6798e40b8ae75580ba673cea260e" 137 | dependencies: 138 | apollo-server-core "^1.3.6" 139 | apollo-server-module-graphiql "^1.3.4" 140 | 141 | apollo-server-module-graphiql@^1.3.4: 142 | version "1.3.4" 143 | resolved "https://registry.yarnpkg.com/apollo-server-module-graphiql/-/apollo-server-module-graphiql-1.3.4.tgz#50399b7c51b7267d0c841529f5173e5fc7304de4" 144 | 145 | apollo-tracing@^0.1.0: 146 | version "0.1.4" 147 | resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.1.4.tgz#5b8ae1b01526b160ee6e552a7f131923a9aedcc7" 148 | dependencies: 149 | graphql-extensions "~0.0.9" 150 | 151 | apollo-upload-server@^5.0.0: 152 | version "5.0.0" 153 | resolved "https://registry.yarnpkg.com/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz#c953b523608313966e0c8444637f4ae8ef77d5bc" 154 | dependencies: 155 | "@babel/runtime" "^7.0.0-beta.40" 156 | busboy "^0.2.14" 157 | object-path "^0.11.4" 158 | 159 | apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: 160 | version "1.0.13" 161 | resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.13.tgz#793c858bb42243f7254d3c2961c64a7158e51022" 162 | 163 | argparse@^1.0.7: 164 | version "1.0.10" 165 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 166 | dependencies: 167 | sprintf-js "~1.0.2" 168 | 169 | array-flatten@1.1.1: 170 | version "1.1.1" 171 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 172 | 173 | arrify@^1.0.0: 174 | version "1.0.1" 175 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 176 | 177 | async-limiter@~1.0.0: 178 | version "1.0.0" 179 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 180 | 181 | aws-lambda@^0.1.2: 182 | version "0.1.2" 183 | resolved "https://registry.yarnpkg.com/aws-lambda/-/aws-lambda-0.1.2.tgz#19b1585075df31679597b976a5f1def61f12ccee" 184 | dependencies: 185 | aws-sdk "^*" 186 | commander "^2.5.0" 187 | dotenv "^0.4.0" 188 | 189 | aws-sdk@^*: 190 | version "2.252.1" 191 | resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.252.1.tgz#4ce45b16dc408883e20a564bd86270c67f25bb60" 192 | dependencies: 193 | buffer "4.9.1" 194 | events "1.1.1" 195 | ieee754 "1.1.8" 196 | jmespath "0.15.0" 197 | querystring "0.2.0" 198 | sax "1.2.1" 199 | url "0.10.3" 200 | uuid "3.1.0" 201 | xml2js "0.4.17" 202 | 203 | backo2@^1.0.2: 204 | version "1.0.2" 205 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 206 | 207 | balanced-match@^1.0.0: 208 | version "1.0.0" 209 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 210 | 211 | base64-js@^1.0.2: 212 | version "1.3.0" 213 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 214 | 215 | body-parser-graphql@1.1.0: 216 | version "1.1.0" 217 | resolved "https://registry.yarnpkg.com/body-parser-graphql/-/body-parser-graphql-1.1.0.tgz#80a80353c7cb623562fd375750dfe018d75f0f7c" 218 | dependencies: 219 | body-parser "^1.18.2" 220 | 221 | body-parser@1.18.2: 222 | version "1.18.2" 223 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 224 | dependencies: 225 | bytes "3.0.0" 226 | content-type "~1.0.4" 227 | debug "2.6.9" 228 | depd "~1.1.1" 229 | http-errors "~1.6.2" 230 | iconv-lite "0.4.19" 231 | on-finished "~2.3.0" 232 | qs "6.5.1" 233 | raw-body "2.3.2" 234 | type-is "~1.6.15" 235 | 236 | body-parser@^1.18.2: 237 | version "1.18.3" 238 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 239 | dependencies: 240 | bytes "3.0.0" 241 | content-type "~1.0.4" 242 | debug "2.6.9" 243 | depd "~1.1.2" 244 | http-errors "~1.6.3" 245 | iconv-lite "0.4.23" 246 | on-finished "~2.3.0" 247 | qs "6.5.2" 248 | raw-body "2.3.3" 249 | type-is "~1.6.16" 250 | 251 | brace-expansion@^1.1.7: 252 | version "1.1.11" 253 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 254 | dependencies: 255 | balanced-match "^1.0.0" 256 | concat-map "0.0.1" 257 | 258 | buffer-from@^1.0.0: 259 | version "1.1.0" 260 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 261 | 262 | buffer@4.9.1: 263 | version "4.9.1" 264 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 265 | dependencies: 266 | base64-js "^1.0.2" 267 | ieee754 "^1.1.4" 268 | isarray "^1.0.0" 269 | 270 | busboy@^0.2.14: 271 | version "0.2.14" 272 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" 273 | dependencies: 274 | dicer "0.2.5" 275 | readable-stream "1.1.x" 276 | 277 | bytes@3.0.0: 278 | version "3.0.0" 279 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 280 | 281 | commander@^2.5.0: 282 | version "2.15.1" 283 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 284 | 285 | concat-map@0.0.1: 286 | version "0.0.1" 287 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 288 | 289 | content-disposition@0.5.2: 290 | version "0.5.2" 291 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 292 | 293 | content-type@~1.0.4: 294 | version "1.0.4" 295 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 296 | 297 | cookie-signature@1.0.6: 298 | version "1.0.6" 299 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 300 | 301 | cookie@0.3.1: 302 | version "0.3.1" 303 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 304 | 305 | core-js@^2.5.3, core-js@^2.5.6: 306 | version "2.5.7" 307 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 308 | 309 | core-util-is@~1.0.0: 310 | version "1.0.2" 311 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 312 | 313 | cors@^2.8.4: 314 | version "2.8.4" 315 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" 316 | dependencies: 317 | object-assign "^4" 318 | vary "^1" 319 | 320 | cross-fetch@2.0.0: 321 | version "2.0.0" 322 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.0.0.tgz#a17475449561e0f325146cea636a8619efb9b382" 323 | dependencies: 324 | node-fetch "2.0.0" 325 | whatwg-fetch "2.0.3" 326 | 327 | debug@2.6.9: 328 | version "2.6.9" 329 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 330 | dependencies: 331 | ms "2.0.0" 332 | 333 | depd@1.1.1: 334 | version "1.1.1" 335 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 336 | 337 | depd@~1.1.1, depd@~1.1.2: 338 | version "1.1.2" 339 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 340 | 341 | deprecated-decorator@^0.1.6: 342 | version "0.1.6" 343 | resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" 344 | 345 | destroy@~1.0.4: 346 | version "1.0.4" 347 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 348 | 349 | dicer@0.2.5: 350 | version "0.2.5" 351 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" 352 | dependencies: 353 | readable-stream "1.1.x" 354 | streamsearch "0.1.2" 355 | 356 | diff@^3.1.0: 357 | version "3.5.0" 358 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 359 | 360 | dotenv@^0.4.0: 361 | version "0.4.0" 362 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-0.4.0.tgz#f6fb351363c2d92207245c737802c9ab5ae1495a" 363 | 364 | ee-first@1.1.1: 365 | version "1.1.1" 366 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 367 | 368 | encodeurl@~1.0.2: 369 | version "1.0.2" 370 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 371 | 372 | escape-html@~1.0.3: 373 | version "1.0.3" 374 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 375 | 376 | esprima@^4.0.0: 377 | version "4.0.0" 378 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 379 | 380 | etag@~1.8.1: 381 | version "1.8.1" 382 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 383 | 384 | eventemitter3@^2.0.3: 385 | version "2.0.3" 386 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" 387 | 388 | events@1.1.1: 389 | version "1.1.1" 390 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 391 | 392 | express@^4.16.3: 393 | version "4.16.3" 394 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" 395 | dependencies: 396 | accepts "~1.3.5" 397 | array-flatten "1.1.1" 398 | body-parser "1.18.2" 399 | content-disposition "0.5.2" 400 | content-type "~1.0.4" 401 | cookie "0.3.1" 402 | cookie-signature "1.0.6" 403 | debug "2.6.9" 404 | depd "~1.1.2" 405 | encodeurl "~1.0.2" 406 | escape-html "~1.0.3" 407 | etag "~1.8.1" 408 | finalhandler "1.1.1" 409 | fresh "0.5.2" 410 | merge-descriptors "1.0.1" 411 | methods "~1.1.2" 412 | on-finished "~2.3.0" 413 | parseurl "~1.3.2" 414 | path-to-regexp "0.1.7" 415 | proxy-addr "~2.0.3" 416 | qs "6.5.1" 417 | range-parser "~1.2.0" 418 | safe-buffer "5.1.1" 419 | send "0.16.2" 420 | serve-static "1.13.2" 421 | setprototypeof "1.1.0" 422 | statuses "~1.4.0" 423 | type-is "~1.6.16" 424 | utils-merge "1.0.1" 425 | vary "~1.1.2" 426 | 427 | finalhandler@1.1.1: 428 | version "1.1.1" 429 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 430 | dependencies: 431 | debug "2.6.9" 432 | encodeurl "~1.0.2" 433 | escape-html "~1.0.3" 434 | on-finished "~2.3.0" 435 | parseurl "~1.3.2" 436 | statuses "~1.4.0" 437 | unpipe "~1.0.0" 438 | 439 | forwarded@~0.1.2: 440 | version "0.1.2" 441 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 442 | 443 | fresh@0.5.2: 444 | version "0.5.2" 445 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 446 | 447 | graphql-config@2.0.0: 448 | version "2.0.0" 449 | resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" 450 | dependencies: 451 | graphql-import "^0.4.0" 452 | graphql-request "^1.4.0" 453 | js-yaml "^3.10.0" 454 | lodash "^4.17.4" 455 | minimatch "^3.0.4" 456 | 457 | graphql-deduplicator@^2.0.1: 458 | version "2.0.1" 459 | resolved "https://registry.yarnpkg.com/graphql-deduplicator/-/graphql-deduplicator-2.0.1.tgz#20c6b39e3a6f096b46dfc8491432818739c0ee37" 460 | 461 | graphql-extensions@^0.0.x, graphql-extensions@~0.0.9: 462 | version "0.0.10" 463 | resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.0.10.tgz#34bdb2546d43f6a5bc89ab23c295ec0466c6843d" 464 | dependencies: 465 | core-js "^2.5.3" 466 | source-map-support "^0.5.1" 467 | 468 | graphql-import@^0.4.0: 469 | version "0.4.5" 470 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.5.tgz#e2f18c28d335733f46df8e0733d8deb1c6e2a645" 471 | dependencies: 472 | lodash "^4.17.4" 473 | 474 | graphql-import@^0.6.0: 475 | version "0.6.0" 476 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.6.0.tgz#c00cb8a269ceea263e062922c8c81a2272d1ffcb" 477 | dependencies: 478 | lodash "^4.17.4" 479 | 480 | graphql-middleware@1.2.5: 481 | version "1.2.5" 482 | resolved "https://registry.yarnpkg.com/graphql-middleware/-/graphql-middleware-1.2.5.tgz#f68c0c399cf573a6334d1d9e04cddfec038ffd4a" 483 | dependencies: 484 | graphql-tools "^3.0.2" 485 | 486 | graphql-playground-html@1.5.5: 487 | version "1.5.5" 488 | resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.5.5.tgz#e2aca543eb66b435ead495b45244b2604d6b2d48" 489 | dependencies: 490 | graphql-config "2.0.0" 491 | 492 | graphql-playground-middleware-express@1.6.3: 493 | version "1.6.3" 494 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.6.3.tgz#0f75b5b139edb2d1079208af59d158caba2309d1" 495 | dependencies: 496 | graphql-playground-html "1.5.5" 497 | 498 | graphql-playground-middleware-lambda@1.6.1: 499 | version "1.6.1" 500 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-lambda/-/graphql-playground-middleware-lambda-1.6.1.tgz#e0f1944558136dd3975570c92c702d6009cc779c" 501 | dependencies: 502 | graphql-playground-html "1.5.5" 503 | 504 | graphql-request@^1.4.0: 505 | version "1.6.0" 506 | resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.6.0.tgz#afe87cf2a336acabb0cc2a875900202eda89f412" 507 | dependencies: 508 | cross-fetch "2.0.0" 509 | 510 | graphql-subscriptions@^0.5.8: 511 | version "0.5.8" 512 | resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz#13a6143c546bce390404657dc73ca501def30aa7" 513 | dependencies: 514 | iterall "^1.2.1" 515 | 516 | graphql-tools@^2.23.1: 517 | version "2.24.0" 518 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-2.24.0.tgz#bbacaad03924012a0edb8735a5e65df5d5563675" 519 | dependencies: 520 | apollo-link "^1.2.1" 521 | apollo-utilities "^1.0.1" 522 | deprecated-decorator "^0.1.6" 523 | iterall "^1.1.3" 524 | uuid "^3.1.0" 525 | 526 | graphql-tools@^3.0.2: 527 | version "3.0.2" 528 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-3.0.2.tgz#fb79821c23b0f5d11d842c4d0c15000d856c6c8c" 529 | dependencies: 530 | apollo-link "1.2.1" 531 | apollo-utilities "^1.0.1" 532 | deprecated-decorator "^0.1.6" 533 | iterall "^1.1.3" 534 | uuid "^3.1.0" 535 | 536 | graphql-yoga@^1.14.7: 537 | version "1.14.7" 538 | resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-1.14.7.tgz#0ce1f59b131d196438711d7100d9b03c0fb3a1d7" 539 | dependencies: 540 | "@types/cors" "^2.8.4" 541 | "@types/express" "^4.11.1" 542 | "@types/graphql" "^0.13.0" 543 | "@types/graphql-deduplicator" "^2.0.0" 544 | "@types/zen-observable" "^0.5.3" 545 | apollo-server-express "^1.3.6" 546 | apollo-server-lambda "1.3.6" 547 | apollo-upload-server "^5.0.0" 548 | aws-lambda "^0.1.2" 549 | body-parser-graphql "1.1.0" 550 | cors "^2.8.4" 551 | express "^4.16.3" 552 | graphql "^0.11.0 || ^0.12.0 || ^0.13.0" 553 | graphql-deduplicator "^2.0.1" 554 | graphql-import "^0.6.0" 555 | graphql-middleware "1.2.5" 556 | graphql-playground-middleware-express "1.6.3" 557 | graphql-playground-middleware-lambda "1.6.1" 558 | graphql-subscriptions "^0.5.8" 559 | graphql-tools "^2.23.1" 560 | subscriptions-transport-ws "^0.9.8" 561 | 562 | "graphql@^0.11.0 || ^0.12.0 || ^0.13.0": 563 | version "0.13.2" 564 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" 565 | dependencies: 566 | iterall "^1.2.1" 567 | 568 | http-errors@1.6.2: 569 | version "1.6.2" 570 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 571 | dependencies: 572 | depd "1.1.1" 573 | inherits "2.0.3" 574 | setprototypeof "1.0.3" 575 | statuses ">= 1.3.1 < 2" 576 | 577 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 578 | version "1.6.3" 579 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 580 | dependencies: 581 | depd "~1.1.2" 582 | inherits "2.0.3" 583 | setprototypeof "1.1.0" 584 | statuses ">= 1.4.0 < 2" 585 | 586 | iconv-lite@0.4.19: 587 | version "0.4.19" 588 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 589 | 590 | iconv-lite@0.4.23: 591 | version "0.4.23" 592 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 593 | dependencies: 594 | safer-buffer ">= 2.1.2 < 3" 595 | 596 | ieee754@1.1.8: 597 | version "1.1.8" 598 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 599 | 600 | ieee754@^1.1.4: 601 | version "1.1.11" 602 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" 603 | 604 | inherits@2.0.3, inherits@~2.0.1: 605 | version "2.0.3" 606 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 607 | 608 | ipaddr.js@1.6.0: 609 | version "1.6.0" 610 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" 611 | 612 | isarray@0.0.1: 613 | version "0.0.1" 614 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 615 | 616 | isarray@^1.0.0: 617 | version "1.0.0" 618 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 619 | 620 | iterall@^1.1.3, iterall@^1.2.1: 621 | version "1.2.2" 622 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" 623 | 624 | jmespath@0.15.0: 625 | version "0.15.0" 626 | resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" 627 | 628 | js-yaml@^3.10.0: 629 | version "3.12.0" 630 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 631 | dependencies: 632 | argparse "^1.0.7" 633 | esprima "^4.0.0" 634 | 635 | lodash.assign@^4.2.0: 636 | version "4.2.0" 637 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 638 | 639 | lodash.isobject@^3.0.2: 640 | version "3.0.2" 641 | resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" 642 | 643 | lodash.isstring@^4.0.1: 644 | version "4.0.1" 645 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 646 | 647 | lodash@^4.0.0, lodash@^4.17.4: 648 | version "4.17.10" 649 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 650 | 651 | make-error@^1.1.1: 652 | version "1.3.4" 653 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" 654 | 655 | media-typer@0.3.0: 656 | version "0.3.0" 657 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 658 | 659 | merge-descriptors@1.0.1: 660 | version "1.0.1" 661 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 662 | 663 | methods@~1.1.2: 664 | version "1.1.2" 665 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 666 | 667 | mime-db@~1.33.0: 668 | version "1.33.0" 669 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 670 | 671 | mime-types@~2.1.18: 672 | version "2.1.18" 673 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 674 | dependencies: 675 | mime-db "~1.33.0" 676 | 677 | mime@1.4.1: 678 | version "1.4.1" 679 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 680 | 681 | minimatch@^3.0.4: 682 | version "3.0.4" 683 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 684 | dependencies: 685 | brace-expansion "^1.1.7" 686 | 687 | minimist@0.0.8: 688 | version "0.0.8" 689 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 690 | 691 | minimist@^1.2.0: 692 | version "1.2.0" 693 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 694 | 695 | mkdirp@^0.5.1: 696 | version "0.5.1" 697 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 698 | dependencies: 699 | minimist "0.0.8" 700 | 701 | ms@2.0.0: 702 | version "2.0.0" 703 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 704 | 705 | negotiator@0.6.1: 706 | version "0.6.1" 707 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 708 | 709 | node-fetch@2.0.0: 710 | version "2.0.0" 711 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.0.0.tgz#982bba43ecd4f2922a29cc186a6bbb0bb73fcba6" 712 | 713 | object-assign@^4: 714 | version "4.1.1" 715 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 716 | 717 | object-path@^0.11.4: 718 | version "0.11.4" 719 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" 720 | 721 | on-finished@~2.3.0: 722 | version "2.3.0" 723 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 724 | dependencies: 725 | ee-first "1.1.1" 726 | 727 | parseurl@~1.3.2: 728 | version "1.3.2" 729 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 730 | 731 | path-to-regexp@0.1.7: 732 | version "0.1.7" 733 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 734 | 735 | proxy-addr@~2.0.3: 736 | version "2.0.3" 737 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" 738 | dependencies: 739 | forwarded "~0.1.2" 740 | ipaddr.js "1.6.0" 741 | 742 | punycode@1.3.2: 743 | version "1.3.2" 744 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 745 | 746 | qs@6.5.1: 747 | version "6.5.1" 748 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 749 | 750 | qs@6.5.2: 751 | version "6.5.2" 752 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 753 | 754 | querystring@0.2.0: 755 | version "0.2.0" 756 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 757 | 758 | range-parser@~1.2.0: 759 | version "1.2.0" 760 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 761 | 762 | raw-body@2.3.2: 763 | version "2.3.2" 764 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 765 | dependencies: 766 | bytes "3.0.0" 767 | http-errors "1.6.2" 768 | iconv-lite "0.4.19" 769 | unpipe "1.0.0" 770 | 771 | raw-body@2.3.3: 772 | version "2.3.3" 773 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 774 | dependencies: 775 | bytes "3.0.0" 776 | http-errors "1.6.3" 777 | iconv-lite "0.4.23" 778 | unpipe "1.0.0" 779 | 780 | readable-stream@1.1.x: 781 | version "1.1.14" 782 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 783 | dependencies: 784 | core-util-is "~1.0.0" 785 | inherits "~2.0.1" 786 | isarray "0.0.1" 787 | string_decoder "~0.10.x" 788 | 789 | regenerator-runtime@^0.11.1: 790 | version "0.11.1" 791 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 792 | 793 | safe-buffer@5.1.1: 794 | version "5.1.1" 795 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 796 | 797 | safe-buffer@~5.1.0: 798 | version "5.1.2" 799 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 800 | 801 | "safer-buffer@>= 2.1.2 < 3": 802 | version "2.1.2" 803 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 804 | 805 | sax@1.2.1: 806 | version "1.2.1" 807 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" 808 | 809 | sax@>=0.6.0: 810 | version "1.2.4" 811 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 812 | 813 | send@0.16.2: 814 | version "0.16.2" 815 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 816 | dependencies: 817 | debug "2.6.9" 818 | depd "~1.1.2" 819 | destroy "~1.0.4" 820 | encodeurl "~1.0.2" 821 | escape-html "~1.0.3" 822 | etag "~1.8.1" 823 | fresh "0.5.2" 824 | http-errors "~1.6.2" 825 | mime "1.4.1" 826 | ms "2.0.0" 827 | on-finished "~2.3.0" 828 | range-parser "~1.2.0" 829 | statuses "~1.4.0" 830 | 831 | serve-static@1.13.2: 832 | version "1.13.2" 833 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 834 | dependencies: 835 | encodeurl "~1.0.2" 836 | escape-html "~1.0.3" 837 | parseurl "~1.3.2" 838 | send "0.16.2" 839 | 840 | setprototypeof@1.0.3: 841 | version "1.0.3" 842 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 843 | 844 | setprototypeof@1.1.0: 845 | version "1.1.0" 846 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 847 | 848 | source-map-support@^0.5.1, source-map-support@^0.5.6: 849 | version "0.5.6" 850 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 851 | dependencies: 852 | buffer-from "^1.0.0" 853 | source-map "^0.6.0" 854 | 855 | source-map@^0.6.0: 856 | version "0.6.1" 857 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 858 | 859 | sprintf-js@~1.0.2: 860 | version "1.0.3" 861 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 862 | 863 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": 864 | version "1.5.0" 865 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 866 | 867 | statuses@~1.4.0: 868 | version "1.4.0" 869 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 870 | 871 | streamsearch@0.1.2: 872 | version "0.1.2" 873 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 874 | 875 | string_decoder@~0.10.x: 876 | version "0.10.31" 877 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 878 | 879 | subscriptions-transport-ws@^0.9.8: 880 | version "0.9.9" 881 | resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.9.tgz#8a0bdc4c31df2e90e92901047fd8961deb138acc" 882 | dependencies: 883 | backo2 "^1.0.2" 884 | eventemitter3 "^2.0.3" 885 | iterall "^1.2.1" 886 | lodash.assign "^4.2.0" 887 | lodash.isobject "^3.0.2" 888 | lodash.isstring "^4.0.1" 889 | symbol-observable "^1.0.4" 890 | ws "^3.0.0" 891 | 892 | symbol-observable@^1.0.4: 893 | version "1.2.0" 894 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 895 | 896 | ts-node@^6.1.0: 897 | version "6.1.0" 898 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.1.0.tgz#a2c37a11fdb58e60eca887a1269b025cf4d2f8b8" 899 | dependencies: 900 | arrify "^1.0.0" 901 | diff "^3.1.0" 902 | make-error "^1.1.1" 903 | minimist "^1.2.0" 904 | mkdirp "^0.5.1" 905 | source-map-support "^0.5.6" 906 | yn "^2.0.0" 907 | 908 | type-is@~1.6.15, type-is@~1.6.16: 909 | version "1.6.16" 910 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 911 | dependencies: 912 | media-typer "0.3.0" 913 | mime-types "~2.1.18" 914 | 915 | typescript@^2.9.1: 916 | version "2.9.1" 917 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.1.tgz#fdb19d2c67a15d11995fd15640e373e09ab09961" 918 | 919 | ultron@~1.1.0: 920 | version "1.1.1" 921 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 922 | 923 | unpipe@1.0.0, unpipe@~1.0.0: 924 | version "1.0.0" 925 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 926 | 927 | url@0.10.3: 928 | version "0.10.3" 929 | resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" 930 | dependencies: 931 | punycode "1.3.2" 932 | querystring "0.2.0" 933 | 934 | utils-merge@1.0.1: 935 | version "1.0.1" 936 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 937 | 938 | uuid@3.1.0: 939 | version "3.1.0" 940 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 941 | 942 | uuid@^3.1.0: 943 | version "3.2.1" 944 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 945 | 946 | vary@^1, vary@~1.1.2: 947 | version "1.1.2" 948 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 949 | 950 | whatwg-fetch@2.0.3: 951 | version "2.0.3" 952 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 953 | 954 | ws@^3.0.0: 955 | version "3.3.3" 956 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 957 | dependencies: 958 | async-limiter "~1.0.0" 959 | safe-buffer "~5.1.0" 960 | ultron "~1.1.0" 961 | 962 | xml2js@0.4.17: 963 | version "0.4.17" 964 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" 965 | dependencies: 966 | sax ">=0.6.0" 967 | xmlbuilder "^4.1.0" 968 | 969 | xmlbuilder@^4.1.0: 970 | version "4.2.1" 971 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" 972 | dependencies: 973 | lodash "^4.0.0" 974 | 975 | yn@^2.0.0: 976 | version "2.0.0" 977 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 978 | 979 | zen-observable-ts@^0.8.6, zen-observable-ts@^0.8.9: 980 | version "0.8.9" 981 | resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz#d3c97af08c0afdca37ebcadf7cc3ee96bda9bab1" 982 | dependencies: 983 | zen-observable "^0.8.0" 984 | 985 | zen-observable@^0.8.0: 986 | version "0.8.8" 987 | resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.8.tgz#1ea93995bf098754a58215a1e0a7309e5749ec42" 988 | -------------------------------------------------------------------------------- /examples/caching/index.ts: -------------------------------------------------------------------------------- 1 | import { GraphQLServer } from "graphql-yoga"; 2 | import { IResolvers } from "graphql-yoga/dist/types"; 3 | import * as Redis from "ioredis"; 4 | import { MiddlewareResolver, chain } from "../../src/index"; 5 | 6 | const typeDefs = ` 7 | type Query { 8 | hello(name: String): String! 9 | } 10 | `; 11 | 12 | const redis = new Redis(); 13 | 14 | const cachingMiddleware: ( 15 | getKey: (args: any) => string 16 | ) => MiddlewareResolver = getKey => async (next, _, args) => { 17 | const key = getKey(args); 18 | const data = await redis.get(key); 19 | if (data) { 20 | console.log("CACHE HIT"); 21 | return data; 22 | } 23 | console.log("CACHE MISS"); 24 | const result = await next(); 25 | // set cache 26 | await redis.set(key, result); 27 | return result; 28 | }; 29 | 30 | const helloMiddleware = chain([ 31 | cachingMiddleware(args => `hello:${args.name}`) 32 | ]); 33 | 34 | const resolvers: IResolvers = { 35 | Query: { 36 | // cache based on the name argument passing in 37 | hello: helloMiddleware((_, { name }) => `Hello ${name || "World"}`) 38 | } 39 | }; 40 | 41 | const server = new GraphQLServer({ typeDefs, resolvers }); 42 | server.start(() => console.log("Server is running on localhost:4000")); 43 | -------------------------------------------------------------------------------- /examples/caching/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "validation", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "devDependencies": { 7 | "ts-node": "^6.1.0", 8 | "typescript": "^2.9.1" 9 | }, 10 | "dependencies": { 11 | "@types/ioredis": "^3.2.8", 12 | "graphql-yoga": "^1.14.7", 13 | "ioredis": "^3.2.2" 14 | }, 15 | "scripts": { 16 | "start": "ts-node index.ts" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/caching/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.0.0-beta.40": 6 | version "7.0.0-beta.49" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.49.tgz#03b3bf07eb982072c8e851dd2ddd5110282e61bf" 8 | dependencies: 9 | core-js "^2.5.6" 10 | regenerator-runtime "^0.11.1" 11 | 12 | "@types/bluebird@*": 13 | version "3.5.20" 14 | resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.20.tgz#f6363172add6f4eabb8cada53ca9af2781e8d6a1" 15 | 16 | "@types/body-parser@*": 17 | version "1.17.0" 18 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 19 | dependencies: 20 | "@types/connect" "*" 21 | "@types/node" "*" 22 | 23 | "@types/connect@*": 24 | version "3.4.32" 25 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 26 | dependencies: 27 | "@types/node" "*" 28 | 29 | "@types/cors@^2.8.4": 30 | version "2.8.4" 31 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" 32 | dependencies: 33 | "@types/express" "*" 34 | 35 | "@types/events@*": 36 | version "1.2.0" 37 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 38 | 39 | "@types/express-serve-static-core@*": 40 | version "4.16.0" 41 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" 42 | dependencies: 43 | "@types/events" "*" 44 | "@types/node" "*" 45 | "@types/range-parser" "*" 46 | 47 | "@types/express@*", "@types/express@^4.11.1": 48 | version "4.16.0" 49 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" 50 | dependencies: 51 | "@types/body-parser" "*" 52 | "@types/express-serve-static-core" "*" 53 | "@types/serve-static" "*" 54 | 55 | "@types/graphql-deduplicator@^2.0.0": 56 | version "2.0.0" 57 | resolved "https://registry.yarnpkg.com/@types/graphql-deduplicator/-/graphql-deduplicator-2.0.0.tgz#9e577b8f3feb3d067b0ca756f4a1fb356d533922" 58 | 59 | "@types/graphql@0.12.6": 60 | version "0.12.6" 61 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.12.6.tgz#3d619198585fcabe5f4e1adfb5cf5f3388c66c13" 62 | 63 | "@types/graphql@^0.13.0": 64 | version "0.13.1" 65 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.13.1.tgz#7d39750355c9ecb921816d6f76c080405b5f6bea" 66 | 67 | "@types/ioredis@^3.2.8": 68 | version "3.2.8" 69 | resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-3.2.8.tgz#ea2dda6ee379efa5f8dabd477f04dce4bed91815" 70 | dependencies: 71 | "@types/bluebird" "*" 72 | "@types/node" "*" 73 | 74 | "@types/mime@*": 75 | version "2.0.0" 76 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 77 | 78 | "@types/node@*": 79 | version "10.3.1" 80 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.1.tgz#51092fbacaed768a122a293814474fbf6e5e8b6d" 81 | 82 | "@types/node@^9.4.6": 83 | version "9.6.20" 84 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.20.tgz#b59a1bd357ae2df7d44d5ac98e9b64eb96ea1fef" 85 | 86 | "@types/range-parser@*": 87 | version "1.2.2" 88 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" 89 | 90 | "@types/serve-static@*": 91 | version "1.13.2" 92 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 93 | dependencies: 94 | "@types/express-serve-static-core" "*" 95 | "@types/mime" "*" 96 | 97 | "@types/zen-observable@^0.5.3": 98 | version "0.5.3" 99 | resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.5.3.tgz#91b728599544efbb7386d8b6633693a3c2e7ade5" 100 | 101 | accepts@~1.3.5: 102 | version "1.3.5" 103 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 104 | dependencies: 105 | mime-types "~2.1.18" 106 | negotiator "0.6.1" 107 | 108 | apollo-cache-control@^0.1.0: 109 | version "0.1.1" 110 | resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.1.1.tgz#173d14ceb3eb9e7cb53de7eb8b61bee6159d4171" 111 | dependencies: 112 | graphql-extensions "^0.0.x" 113 | 114 | apollo-link@1.2.1: 115 | version "1.2.1" 116 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.1.tgz#c120b16059f9bd93401b9f72b94d2f80f3f305d2" 117 | dependencies: 118 | "@types/node" "^9.4.6" 119 | apollo-utilities "^1.0.0" 120 | zen-observable-ts "^0.8.6" 121 | 122 | apollo-link@^1.2.1: 123 | version "1.2.2" 124 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.2.tgz#54c84199b18ac1af8d63553a68ca389c05217a03" 125 | dependencies: 126 | "@types/graphql" "0.12.6" 127 | apollo-utilities "^1.0.0" 128 | zen-observable-ts "^0.8.9" 129 | 130 | apollo-server-core@^1.3.6: 131 | version "1.3.6" 132 | resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.6.tgz#08636243c2de56fa8c267d68dd602cb1fbd323e3" 133 | dependencies: 134 | apollo-cache-control "^0.1.0" 135 | apollo-tracing "^0.1.0" 136 | graphql-extensions "^0.0.x" 137 | 138 | apollo-server-express@^1.3.6: 139 | version "1.3.6" 140 | resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-1.3.6.tgz#2120b05021a87def44fafd846e8a0e2a32852db7" 141 | dependencies: 142 | apollo-server-core "^1.3.6" 143 | apollo-server-module-graphiql "^1.3.4" 144 | 145 | apollo-server-lambda@1.3.6: 146 | version "1.3.6" 147 | resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-1.3.6.tgz#bdaac37f143c6798e40b8ae75580ba673cea260e" 148 | dependencies: 149 | apollo-server-core "^1.3.6" 150 | apollo-server-module-graphiql "^1.3.4" 151 | 152 | apollo-server-module-graphiql@^1.3.4: 153 | version "1.3.4" 154 | resolved "https://registry.yarnpkg.com/apollo-server-module-graphiql/-/apollo-server-module-graphiql-1.3.4.tgz#50399b7c51b7267d0c841529f5173e5fc7304de4" 155 | 156 | apollo-tracing@^0.1.0: 157 | version "0.1.4" 158 | resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.1.4.tgz#5b8ae1b01526b160ee6e552a7f131923a9aedcc7" 159 | dependencies: 160 | graphql-extensions "~0.0.9" 161 | 162 | apollo-upload-server@^5.0.0: 163 | version "5.0.0" 164 | resolved "https://registry.yarnpkg.com/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz#c953b523608313966e0c8444637f4ae8ef77d5bc" 165 | dependencies: 166 | "@babel/runtime" "^7.0.0-beta.40" 167 | busboy "^0.2.14" 168 | object-path "^0.11.4" 169 | 170 | apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: 171 | version "1.0.13" 172 | resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.13.tgz#793c858bb42243f7254d3c2961c64a7158e51022" 173 | 174 | argparse@^1.0.7: 175 | version "1.0.10" 176 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 177 | dependencies: 178 | sprintf-js "~1.0.2" 179 | 180 | array-flatten@1.1.1: 181 | version "1.1.1" 182 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 183 | 184 | arrify@^1.0.0: 185 | version "1.0.1" 186 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 187 | 188 | async-limiter@~1.0.0: 189 | version "1.0.0" 190 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 191 | 192 | aws-lambda@^0.1.2: 193 | version "0.1.2" 194 | resolved "https://registry.yarnpkg.com/aws-lambda/-/aws-lambda-0.1.2.tgz#19b1585075df31679597b976a5f1def61f12ccee" 195 | dependencies: 196 | aws-sdk "^*" 197 | commander "^2.5.0" 198 | dotenv "^0.4.0" 199 | 200 | aws-sdk@^*: 201 | version "2.252.1" 202 | resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.252.1.tgz#4ce45b16dc408883e20a564bd86270c67f25bb60" 203 | dependencies: 204 | buffer "4.9.1" 205 | events "1.1.1" 206 | ieee754 "1.1.8" 207 | jmespath "0.15.0" 208 | querystring "0.2.0" 209 | sax "1.2.1" 210 | url "0.10.3" 211 | uuid "3.1.0" 212 | xml2js "0.4.17" 213 | 214 | backo2@^1.0.2: 215 | version "1.0.2" 216 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 217 | 218 | balanced-match@^1.0.0: 219 | version "1.0.0" 220 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 221 | 222 | base64-js@^1.0.2: 223 | version "1.3.0" 224 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 225 | 226 | bluebird@^3.3.4: 227 | version "3.5.1" 228 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 229 | 230 | body-parser-graphql@1.1.0: 231 | version "1.1.0" 232 | resolved "https://registry.yarnpkg.com/body-parser-graphql/-/body-parser-graphql-1.1.0.tgz#80a80353c7cb623562fd375750dfe018d75f0f7c" 233 | dependencies: 234 | body-parser "^1.18.2" 235 | 236 | body-parser@1.18.2: 237 | version "1.18.2" 238 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 239 | dependencies: 240 | bytes "3.0.0" 241 | content-type "~1.0.4" 242 | debug "2.6.9" 243 | depd "~1.1.1" 244 | http-errors "~1.6.2" 245 | iconv-lite "0.4.19" 246 | on-finished "~2.3.0" 247 | qs "6.5.1" 248 | raw-body "2.3.2" 249 | type-is "~1.6.15" 250 | 251 | body-parser@^1.18.2: 252 | version "1.18.3" 253 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 254 | dependencies: 255 | bytes "3.0.0" 256 | content-type "~1.0.4" 257 | debug "2.6.9" 258 | depd "~1.1.2" 259 | http-errors "~1.6.3" 260 | iconv-lite "0.4.23" 261 | on-finished "~2.3.0" 262 | qs "6.5.2" 263 | raw-body "2.3.3" 264 | type-is "~1.6.16" 265 | 266 | brace-expansion@^1.1.7: 267 | version "1.1.11" 268 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 269 | dependencies: 270 | balanced-match "^1.0.0" 271 | concat-map "0.0.1" 272 | 273 | buffer-from@^1.0.0: 274 | version "1.1.0" 275 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 276 | 277 | buffer@4.9.1: 278 | version "4.9.1" 279 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 280 | dependencies: 281 | base64-js "^1.0.2" 282 | ieee754 "^1.1.4" 283 | isarray "^1.0.0" 284 | 285 | busboy@^0.2.14: 286 | version "0.2.14" 287 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" 288 | dependencies: 289 | dicer "0.2.5" 290 | readable-stream "1.1.x" 291 | 292 | bytes@3.0.0: 293 | version "3.0.0" 294 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 295 | 296 | cluster-key-slot@^1.0.6: 297 | version "1.0.12" 298 | resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.0.12.tgz#d5deff2a520717bc98313979b687309b2d368e29" 299 | 300 | commander@^2.5.0: 301 | version "2.15.1" 302 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 303 | 304 | concat-map@0.0.1: 305 | version "0.0.1" 306 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 307 | 308 | content-disposition@0.5.2: 309 | version "0.5.2" 310 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 311 | 312 | content-type@~1.0.4: 313 | version "1.0.4" 314 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 315 | 316 | cookie-signature@1.0.6: 317 | version "1.0.6" 318 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 319 | 320 | cookie@0.3.1: 321 | version "0.3.1" 322 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 323 | 324 | core-js@^2.5.3, core-js@^2.5.6: 325 | version "2.5.7" 326 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 327 | 328 | core-util-is@~1.0.0: 329 | version "1.0.2" 330 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 331 | 332 | cors@^2.8.4: 333 | version "2.8.4" 334 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" 335 | dependencies: 336 | object-assign "^4" 337 | vary "^1" 338 | 339 | cross-fetch@2.0.0: 340 | version "2.0.0" 341 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.0.0.tgz#a17475449561e0f325146cea636a8619efb9b382" 342 | dependencies: 343 | node-fetch "2.0.0" 344 | whatwg-fetch "2.0.3" 345 | 346 | debug@2.6.9, debug@^2.6.9: 347 | version "2.6.9" 348 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 349 | dependencies: 350 | ms "2.0.0" 351 | 352 | denque@^1.1.0: 353 | version "1.3.0" 354 | resolved "https://registry.yarnpkg.com/denque/-/denque-1.3.0.tgz#681092ef44a630246d3f6edb2a199230eae8e76b" 355 | 356 | depd@1.1.1: 357 | version "1.1.1" 358 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 359 | 360 | depd@~1.1.1, depd@~1.1.2: 361 | version "1.1.2" 362 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 363 | 364 | deprecated-decorator@^0.1.6: 365 | version "0.1.6" 366 | resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" 367 | 368 | destroy@~1.0.4: 369 | version "1.0.4" 370 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 371 | 372 | dicer@0.2.5: 373 | version "0.2.5" 374 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" 375 | dependencies: 376 | readable-stream "1.1.x" 377 | streamsearch "0.1.2" 378 | 379 | diff@^3.1.0: 380 | version "3.5.0" 381 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 382 | 383 | dotenv@^0.4.0: 384 | version "0.4.0" 385 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-0.4.0.tgz#f6fb351363c2d92207245c737802c9ab5ae1495a" 386 | 387 | ee-first@1.1.1: 388 | version "1.1.1" 389 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 390 | 391 | encodeurl@~1.0.2: 392 | version "1.0.2" 393 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 394 | 395 | escape-html@~1.0.3: 396 | version "1.0.3" 397 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 398 | 399 | esprima@^4.0.0: 400 | version "4.0.0" 401 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 402 | 403 | etag@~1.8.1: 404 | version "1.8.1" 405 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 406 | 407 | eventemitter3@^2.0.3: 408 | version "2.0.3" 409 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" 410 | 411 | events@1.1.1: 412 | version "1.1.1" 413 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 414 | 415 | express@^4.16.3: 416 | version "4.16.3" 417 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" 418 | dependencies: 419 | accepts "~1.3.5" 420 | array-flatten "1.1.1" 421 | body-parser "1.18.2" 422 | content-disposition "0.5.2" 423 | content-type "~1.0.4" 424 | cookie "0.3.1" 425 | cookie-signature "1.0.6" 426 | debug "2.6.9" 427 | depd "~1.1.2" 428 | encodeurl "~1.0.2" 429 | escape-html "~1.0.3" 430 | etag "~1.8.1" 431 | finalhandler "1.1.1" 432 | fresh "0.5.2" 433 | merge-descriptors "1.0.1" 434 | methods "~1.1.2" 435 | on-finished "~2.3.0" 436 | parseurl "~1.3.2" 437 | path-to-regexp "0.1.7" 438 | proxy-addr "~2.0.3" 439 | qs "6.5.1" 440 | range-parser "~1.2.0" 441 | safe-buffer "5.1.1" 442 | send "0.16.2" 443 | serve-static "1.13.2" 444 | setprototypeof "1.1.0" 445 | statuses "~1.4.0" 446 | type-is "~1.6.16" 447 | utils-merge "1.0.1" 448 | vary "~1.1.2" 449 | 450 | finalhandler@1.1.1: 451 | version "1.1.1" 452 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 453 | dependencies: 454 | debug "2.6.9" 455 | encodeurl "~1.0.2" 456 | escape-html "~1.0.3" 457 | on-finished "~2.3.0" 458 | parseurl "~1.3.2" 459 | statuses "~1.4.0" 460 | unpipe "~1.0.0" 461 | 462 | flexbuffer@0.0.6: 463 | version "0.0.6" 464 | resolved "https://registry.yarnpkg.com/flexbuffer/-/flexbuffer-0.0.6.tgz#039fdf23f8823e440c38f3277e6fef1174215b30" 465 | 466 | forwarded@~0.1.2: 467 | version "0.1.2" 468 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 469 | 470 | fresh@0.5.2: 471 | version "0.5.2" 472 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 473 | 474 | graphql-config@2.0.0: 475 | version "2.0.0" 476 | resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" 477 | dependencies: 478 | graphql-import "^0.4.0" 479 | graphql-request "^1.4.0" 480 | js-yaml "^3.10.0" 481 | lodash "^4.17.4" 482 | minimatch "^3.0.4" 483 | 484 | graphql-deduplicator@^2.0.1: 485 | version "2.0.1" 486 | resolved "https://registry.yarnpkg.com/graphql-deduplicator/-/graphql-deduplicator-2.0.1.tgz#20c6b39e3a6f096b46dfc8491432818739c0ee37" 487 | 488 | graphql-extensions@^0.0.x, graphql-extensions@~0.0.9: 489 | version "0.0.10" 490 | resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.0.10.tgz#34bdb2546d43f6a5bc89ab23c295ec0466c6843d" 491 | dependencies: 492 | core-js "^2.5.3" 493 | source-map-support "^0.5.1" 494 | 495 | graphql-import@^0.4.0: 496 | version "0.4.5" 497 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.5.tgz#e2f18c28d335733f46df8e0733d8deb1c6e2a645" 498 | dependencies: 499 | lodash "^4.17.4" 500 | 501 | graphql-import@^0.6.0: 502 | version "0.6.0" 503 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.6.0.tgz#c00cb8a269ceea263e062922c8c81a2272d1ffcb" 504 | dependencies: 505 | lodash "^4.17.4" 506 | 507 | graphql-middleware@1.2.5: 508 | version "1.2.5" 509 | resolved "https://registry.yarnpkg.com/graphql-middleware/-/graphql-middleware-1.2.5.tgz#f68c0c399cf573a6334d1d9e04cddfec038ffd4a" 510 | dependencies: 511 | graphql-tools "^3.0.2" 512 | 513 | graphql-playground-html@1.5.5: 514 | version "1.5.5" 515 | resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.5.5.tgz#e2aca543eb66b435ead495b45244b2604d6b2d48" 516 | dependencies: 517 | graphql-config "2.0.0" 518 | 519 | graphql-playground-middleware-express@1.6.3: 520 | version "1.6.3" 521 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.6.3.tgz#0f75b5b139edb2d1079208af59d158caba2309d1" 522 | dependencies: 523 | graphql-playground-html "1.5.5" 524 | 525 | graphql-playground-middleware-lambda@1.6.1: 526 | version "1.6.1" 527 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-lambda/-/graphql-playground-middleware-lambda-1.6.1.tgz#e0f1944558136dd3975570c92c702d6009cc779c" 528 | dependencies: 529 | graphql-playground-html "1.5.5" 530 | 531 | graphql-request@^1.4.0: 532 | version "1.6.0" 533 | resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.6.0.tgz#afe87cf2a336acabb0cc2a875900202eda89f412" 534 | dependencies: 535 | cross-fetch "2.0.0" 536 | 537 | graphql-subscriptions@^0.5.8: 538 | version "0.5.8" 539 | resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz#13a6143c546bce390404657dc73ca501def30aa7" 540 | dependencies: 541 | iterall "^1.2.1" 542 | 543 | graphql-tools@^2.23.1: 544 | version "2.24.0" 545 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-2.24.0.tgz#bbacaad03924012a0edb8735a5e65df5d5563675" 546 | dependencies: 547 | apollo-link "^1.2.1" 548 | apollo-utilities "^1.0.1" 549 | deprecated-decorator "^0.1.6" 550 | iterall "^1.1.3" 551 | uuid "^3.1.0" 552 | 553 | graphql-tools@^3.0.2: 554 | version "3.0.2" 555 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-3.0.2.tgz#fb79821c23b0f5d11d842c4d0c15000d856c6c8c" 556 | dependencies: 557 | apollo-link "1.2.1" 558 | apollo-utilities "^1.0.1" 559 | deprecated-decorator "^0.1.6" 560 | iterall "^1.1.3" 561 | uuid "^3.1.0" 562 | 563 | graphql-yoga@^1.14.7: 564 | version "1.14.7" 565 | resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-1.14.7.tgz#0ce1f59b131d196438711d7100d9b03c0fb3a1d7" 566 | dependencies: 567 | "@types/cors" "^2.8.4" 568 | "@types/express" "^4.11.1" 569 | "@types/graphql" "^0.13.0" 570 | "@types/graphql-deduplicator" "^2.0.0" 571 | "@types/zen-observable" "^0.5.3" 572 | apollo-server-express "^1.3.6" 573 | apollo-server-lambda "1.3.6" 574 | apollo-upload-server "^5.0.0" 575 | aws-lambda "^0.1.2" 576 | body-parser-graphql "1.1.0" 577 | cors "^2.8.4" 578 | express "^4.16.3" 579 | graphql "^0.11.0 || ^0.12.0 || ^0.13.0" 580 | graphql-deduplicator "^2.0.1" 581 | graphql-import "^0.6.0" 582 | graphql-middleware "1.2.5" 583 | graphql-playground-middleware-express "1.6.3" 584 | graphql-playground-middleware-lambda "1.6.1" 585 | graphql-subscriptions "^0.5.8" 586 | graphql-tools "^2.23.1" 587 | subscriptions-transport-ws "^0.9.8" 588 | 589 | "graphql@^0.11.0 || ^0.12.0 || ^0.13.0": 590 | version "0.13.2" 591 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" 592 | dependencies: 593 | iterall "^1.2.1" 594 | 595 | http-errors@1.6.2: 596 | version "1.6.2" 597 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 598 | dependencies: 599 | depd "1.1.1" 600 | inherits "2.0.3" 601 | setprototypeof "1.0.3" 602 | statuses ">= 1.3.1 < 2" 603 | 604 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 605 | version "1.6.3" 606 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 607 | dependencies: 608 | depd "~1.1.2" 609 | inherits "2.0.3" 610 | setprototypeof "1.1.0" 611 | statuses ">= 1.4.0 < 2" 612 | 613 | iconv-lite@0.4.19: 614 | version "0.4.19" 615 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 616 | 617 | iconv-lite@0.4.23: 618 | version "0.4.23" 619 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 620 | dependencies: 621 | safer-buffer ">= 2.1.2 < 3" 622 | 623 | ieee754@1.1.8: 624 | version "1.1.8" 625 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 626 | 627 | ieee754@^1.1.4: 628 | version "1.1.11" 629 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" 630 | 631 | inherits@2.0.3, inherits@~2.0.1: 632 | version "2.0.3" 633 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 634 | 635 | ioredis@^3.2.2: 636 | version "3.2.2" 637 | resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-3.2.2.tgz#b7d5ff3afd77bb9718bb2821329b894b9a44c00b" 638 | dependencies: 639 | bluebird "^3.3.4" 640 | cluster-key-slot "^1.0.6" 641 | debug "^2.6.9" 642 | denque "^1.1.0" 643 | flexbuffer "0.0.6" 644 | lodash.assign "^4.2.0" 645 | lodash.bind "^4.2.1" 646 | lodash.clone "^4.5.0" 647 | lodash.clonedeep "^4.5.0" 648 | lodash.defaults "^4.2.0" 649 | lodash.difference "^4.5.0" 650 | lodash.flatten "^4.4.0" 651 | lodash.foreach "^4.5.0" 652 | lodash.isempty "^4.4.0" 653 | lodash.keys "^4.2.0" 654 | lodash.noop "^3.0.1" 655 | lodash.partial "^4.2.1" 656 | lodash.pick "^4.4.0" 657 | lodash.sample "^4.2.1" 658 | lodash.shuffle "^4.2.0" 659 | lodash.values "^4.3.0" 660 | redis-commands "^1.2.0" 661 | redis-parser "^2.4.0" 662 | 663 | ipaddr.js@1.6.0: 664 | version "1.6.0" 665 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" 666 | 667 | isarray@0.0.1: 668 | version "0.0.1" 669 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 670 | 671 | isarray@^1.0.0: 672 | version "1.0.0" 673 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 674 | 675 | iterall@^1.1.3, iterall@^1.2.1: 676 | version "1.2.2" 677 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" 678 | 679 | jmespath@0.15.0: 680 | version "0.15.0" 681 | resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" 682 | 683 | js-yaml@^3.10.0: 684 | version "3.12.0" 685 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 686 | dependencies: 687 | argparse "^1.0.7" 688 | esprima "^4.0.0" 689 | 690 | lodash.assign@^4.2.0: 691 | version "4.2.0" 692 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 693 | 694 | lodash.bind@^4.2.1: 695 | version "4.2.1" 696 | resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" 697 | 698 | lodash.clone@^4.5.0: 699 | version "4.5.0" 700 | resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" 701 | 702 | lodash.clonedeep@^4.5.0: 703 | version "4.5.0" 704 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 705 | 706 | lodash.defaults@^4.2.0: 707 | version "4.2.0" 708 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 709 | 710 | lodash.difference@^4.5.0: 711 | version "4.5.0" 712 | resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" 713 | 714 | lodash.flatten@^4.4.0: 715 | version "4.4.0" 716 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 717 | 718 | lodash.foreach@^4.5.0: 719 | version "4.5.0" 720 | resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" 721 | 722 | lodash.isempty@^4.4.0: 723 | version "4.4.0" 724 | resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" 725 | 726 | lodash.isobject@^3.0.2: 727 | version "3.0.2" 728 | resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" 729 | 730 | lodash.isstring@^4.0.1: 731 | version "4.0.1" 732 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 733 | 734 | lodash.keys@^4.2.0: 735 | version "4.2.0" 736 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" 737 | 738 | lodash.noop@^3.0.1: 739 | version "3.0.1" 740 | resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" 741 | 742 | lodash.partial@^4.2.1: 743 | version "4.2.1" 744 | resolved "https://registry.yarnpkg.com/lodash.partial/-/lodash.partial-4.2.1.tgz#49f3d8cfdaa3bff8b3a91d127e923245418961d4" 745 | 746 | lodash.pick@^4.4.0: 747 | version "4.4.0" 748 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 749 | 750 | lodash.sample@^4.2.1: 751 | version "4.2.1" 752 | resolved "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz#5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d" 753 | 754 | lodash.shuffle@^4.2.0: 755 | version "4.2.0" 756 | resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b" 757 | 758 | lodash.values@^4.3.0: 759 | version "4.3.0" 760 | resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" 761 | 762 | lodash@^4.0.0, lodash@^4.17.4: 763 | version "4.17.10" 764 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 765 | 766 | make-error@^1.1.1: 767 | version "1.3.4" 768 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" 769 | 770 | media-typer@0.3.0: 771 | version "0.3.0" 772 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 773 | 774 | merge-descriptors@1.0.1: 775 | version "1.0.1" 776 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 777 | 778 | methods@~1.1.2: 779 | version "1.1.2" 780 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 781 | 782 | mime-db@~1.33.0: 783 | version "1.33.0" 784 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 785 | 786 | mime-types@~2.1.18: 787 | version "2.1.18" 788 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 789 | dependencies: 790 | mime-db "~1.33.0" 791 | 792 | mime@1.4.1: 793 | version "1.4.1" 794 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 795 | 796 | minimatch@^3.0.4: 797 | version "3.0.4" 798 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 799 | dependencies: 800 | brace-expansion "^1.1.7" 801 | 802 | minimist@0.0.8: 803 | version "0.0.8" 804 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 805 | 806 | minimist@^1.2.0: 807 | version "1.2.0" 808 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 809 | 810 | mkdirp@^0.5.1: 811 | version "0.5.1" 812 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 813 | dependencies: 814 | minimist "0.0.8" 815 | 816 | ms@2.0.0: 817 | version "2.0.0" 818 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 819 | 820 | negotiator@0.6.1: 821 | version "0.6.1" 822 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 823 | 824 | node-fetch@2.0.0: 825 | version "2.0.0" 826 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.0.0.tgz#982bba43ecd4f2922a29cc186a6bbb0bb73fcba6" 827 | 828 | object-assign@^4: 829 | version "4.1.1" 830 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 831 | 832 | object-path@^0.11.4: 833 | version "0.11.4" 834 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" 835 | 836 | on-finished@~2.3.0: 837 | version "2.3.0" 838 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 839 | dependencies: 840 | ee-first "1.1.1" 841 | 842 | parseurl@~1.3.2: 843 | version "1.3.2" 844 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 845 | 846 | path-to-regexp@0.1.7: 847 | version "0.1.7" 848 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 849 | 850 | proxy-addr@~2.0.3: 851 | version "2.0.3" 852 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" 853 | dependencies: 854 | forwarded "~0.1.2" 855 | ipaddr.js "1.6.0" 856 | 857 | punycode@1.3.2: 858 | version "1.3.2" 859 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 860 | 861 | qs@6.5.1: 862 | version "6.5.1" 863 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 864 | 865 | qs@6.5.2: 866 | version "6.5.2" 867 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 868 | 869 | querystring@0.2.0: 870 | version "0.2.0" 871 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 872 | 873 | range-parser@~1.2.0: 874 | version "1.2.0" 875 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 876 | 877 | raw-body@2.3.2: 878 | version "2.3.2" 879 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 880 | dependencies: 881 | bytes "3.0.0" 882 | http-errors "1.6.2" 883 | iconv-lite "0.4.19" 884 | unpipe "1.0.0" 885 | 886 | raw-body@2.3.3: 887 | version "2.3.3" 888 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 889 | dependencies: 890 | bytes "3.0.0" 891 | http-errors "1.6.3" 892 | iconv-lite "0.4.23" 893 | unpipe "1.0.0" 894 | 895 | readable-stream@1.1.x: 896 | version "1.1.14" 897 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 898 | dependencies: 899 | core-util-is "~1.0.0" 900 | inherits "~2.0.1" 901 | isarray "0.0.1" 902 | string_decoder "~0.10.x" 903 | 904 | redis-commands@^1.2.0: 905 | version "1.3.5" 906 | resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2" 907 | 908 | redis-parser@^2.4.0: 909 | version "2.6.0" 910 | resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" 911 | 912 | regenerator-runtime@^0.11.1: 913 | version "0.11.1" 914 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 915 | 916 | safe-buffer@5.1.1: 917 | version "5.1.1" 918 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 919 | 920 | safe-buffer@~5.1.0: 921 | version "5.1.2" 922 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 923 | 924 | "safer-buffer@>= 2.1.2 < 3": 925 | version "2.1.2" 926 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 927 | 928 | sax@1.2.1: 929 | version "1.2.1" 930 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" 931 | 932 | sax@>=0.6.0: 933 | version "1.2.4" 934 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 935 | 936 | send@0.16.2: 937 | version "0.16.2" 938 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 939 | dependencies: 940 | debug "2.6.9" 941 | depd "~1.1.2" 942 | destroy "~1.0.4" 943 | encodeurl "~1.0.2" 944 | escape-html "~1.0.3" 945 | etag "~1.8.1" 946 | fresh "0.5.2" 947 | http-errors "~1.6.2" 948 | mime "1.4.1" 949 | ms "2.0.0" 950 | on-finished "~2.3.0" 951 | range-parser "~1.2.0" 952 | statuses "~1.4.0" 953 | 954 | serve-static@1.13.2: 955 | version "1.13.2" 956 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 957 | dependencies: 958 | encodeurl "~1.0.2" 959 | escape-html "~1.0.3" 960 | parseurl "~1.3.2" 961 | send "0.16.2" 962 | 963 | setprototypeof@1.0.3: 964 | version "1.0.3" 965 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 966 | 967 | setprototypeof@1.1.0: 968 | version "1.1.0" 969 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 970 | 971 | source-map-support@^0.5.1, source-map-support@^0.5.6: 972 | version "0.5.6" 973 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 974 | dependencies: 975 | buffer-from "^1.0.0" 976 | source-map "^0.6.0" 977 | 978 | source-map@^0.6.0: 979 | version "0.6.1" 980 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 981 | 982 | sprintf-js@~1.0.2: 983 | version "1.0.3" 984 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 985 | 986 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": 987 | version "1.5.0" 988 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 989 | 990 | statuses@~1.4.0: 991 | version "1.4.0" 992 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 993 | 994 | streamsearch@0.1.2: 995 | version "0.1.2" 996 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 997 | 998 | string_decoder@~0.10.x: 999 | version "0.10.31" 1000 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1001 | 1002 | subscriptions-transport-ws@^0.9.8: 1003 | version "0.9.9" 1004 | resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.9.tgz#8a0bdc4c31df2e90e92901047fd8961deb138acc" 1005 | dependencies: 1006 | backo2 "^1.0.2" 1007 | eventemitter3 "^2.0.3" 1008 | iterall "^1.2.1" 1009 | lodash.assign "^4.2.0" 1010 | lodash.isobject "^3.0.2" 1011 | lodash.isstring "^4.0.1" 1012 | symbol-observable "^1.0.4" 1013 | ws "^3.0.0" 1014 | 1015 | symbol-observable@^1.0.4: 1016 | version "1.2.0" 1017 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 1018 | 1019 | ts-node@^6.1.0: 1020 | version "6.1.0" 1021 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.1.0.tgz#a2c37a11fdb58e60eca887a1269b025cf4d2f8b8" 1022 | dependencies: 1023 | arrify "^1.0.0" 1024 | diff "^3.1.0" 1025 | make-error "^1.1.1" 1026 | minimist "^1.2.0" 1027 | mkdirp "^0.5.1" 1028 | source-map-support "^0.5.6" 1029 | yn "^2.0.0" 1030 | 1031 | type-is@~1.6.15, type-is@~1.6.16: 1032 | version "1.6.16" 1033 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 1034 | dependencies: 1035 | media-typer "0.3.0" 1036 | mime-types "~2.1.18" 1037 | 1038 | typescript@^2.9.1: 1039 | version "2.9.1" 1040 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.1.tgz#fdb19d2c67a15d11995fd15640e373e09ab09961" 1041 | 1042 | ultron@~1.1.0: 1043 | version "1.1.1" 1044 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 1045 | 1046 | unpipe@1.0.0, unpipe@~1.0.0: 1047 | version "1.0.0" 1048 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1049 | 1050 | url@0.10.3: 1051 | version "0.10.3" 1052 | resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" 1053 | dependencies: 1054 | punycode "1.3.2" 1055 | querystring "0.2.0" 1056 | 1057 | utils-merge@1.0.1: 1058 | version "1.0.1" 1059 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1060 | 1061 | uuid@3.1.0: 1062 | version "3.1.0" 1063 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 1064 | 1065 | uuid@^3.1.0: 1066 | version "3.2.1" 1067 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 1068 | 1069 | vary@^1, vary@~1.1.2: 1070 | version "1.1.2" 1071 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1072 | 1073 | whatwg-fetch@2.0.3: 1074 | version "2.0.3" 1075 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 1076 | 1077 | ws@^3.0.0: 1078 | version "3.3.3" 1079 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 1080 | dependencies: 1081 | async-limiter "~1.0.0" 1082 | safe-buffer "~5.1.0" 1083 | ultron "~1.1.0" 1084 | 1085 | xml2js@0.4.17: 1086 | version "0.4.17" 1087 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" 1088 | dependencies: 1089 | sax ">=0.6.0" 1090 | xmlbuilder "^4.1.0" 1091 | 1092 | xmlbuilder@^4.1.0: 1093 | version "4.2.1" 1094 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" 1095 | dependencies: 1096 | lodash "^4.0.0" 1097 | 1098 | yn@^2.0.0: 1099 | version "2.0.0" 1100 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 1101 | 1102 | zen-observable-ts@^0.8.6, zen-observable-ts@^0.8.9: 1103 | version "0.8.9" 1104 | resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz#d3c97af08c0afdca37ebcadf7cc3ee96bda9bab1" 1105 | dependencies: 1106 | zen-observable "^0.8.0" 1107 | 1108 | zen-observable@^0.8.0: 1109 | version "0.8.8" 1110 | resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.8.tgz#1ea93995bf098754a58215a1e0a7309e5749ec42" 1111 | -------------------------------------------------------------------------------- /examples/combining/index.ts: -------------------------------------------------------------------------------- 1 | import { GraphQLServer } from "graphql-yoga"; 2 | import { IResolvers } from "graphql-yoga/dist/types"; 3 | import * as Redis from "ioredis"; 4 | import { MiddlewareResolver, chain } from "../../src/index"; 5 | 6 | const typeDefs = ` 7 | type Query { 8 | hello(name: String): String! 9 | } 10 | `; 11 | 12 | const redis = new Redis(); 13 | 14 | const cachingMiddleware: ( 15 | getKey: (args: any) => string 16 | ) => MiddlewareResolver = getKey => async (next, _, args) => { 17 | const key = getKey(args); 18 | const data = await redis.get(key); 19 | if (data) { 20 | console.log("CACHE HIT"); 21 | return data; 22 | } 23 | console.log("CACHE MISS"); 24 | const result = await next(); 25 | // set cache 26 | await redis.set(key, result); 27 | return result; 28 | }; 29 | 30 | const loggingMiddleware: MiddlewareResolver = (next, _, args) => { 31 | console.log("args: ", args); 32 | return next(); 33 | }; 34 | 35 | const validationMiddleware: MiddlewareResolver = (next, _, args) => { 36 | if (args.name.length > 10) { 37 | throw new Error("too long"); 38 | } 39 | 40 | return next(); 41 | }; 42 | 43 | const helloMiddleware = chain([ 44 | loggingMiddleware, 45 | validationMiddleware, 46 | cachingMiddleware(args => `hello:${args.name}`) 47 | ]); 48 | 49 | const resolvers: IResolvers = { 50 | Query: { 51 | // cache based on the name argument passing in 52 | hello: helloMiddleware((_, { name }) => `Hello ${name || "World"}`) 53 | } 54 | }; 55 | 56 | const server = new GraphQLServer({ typeDefs, resolvers }); 57 | server.start(() => console.log("Server is running on localhost:4000")); 58 | -------------------------------------------------------------------------------- /examples/combining/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "validation", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "devDependencies": { 7 | "ts-node": "^6.1.0", 8 | "typescript": "^2.9.1" 9 | }, 10 | "dependencies": { 11 | "@types/ioredis": "^3.2.8", 12 | "graphql-yoga": "^1.14.7", 13 | "ioredis": "^3.2.2" 14 | }, 15 | "scripts": { 16 | "start": "ts-node index.ts" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/combining/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.0.0-beta.40": 6 | version "7.0.0-beta.49" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.49.tgz#03b3bf07eb982072c8e851dd2ddd5110282e61bf" 8 | dependencies: 9 | core-js "^2.5.6" 10 | regenerator-runtime "^0.11.1" 11 | 12 | "@types/bluebird@*": 13 | version "3.5.20" 14 | resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.20.tgz#f6363172add6f4eabb8cada53ca9af2781e8d6a1" 15 | 16 | "@types/body-parser@*": 17 | version "1.17.0" 18 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 19 | dependencies: 20 | "@types/connect" "*" 21 | "@types/node" "*" 22 | 23 | "@types/connect@*": 24 | version "3.4.32" 25 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 26 | dependencies: 27 | "@types/node" "*" 28 | 29 | "@types/cors@^2.8.4": 30 | version "2.8.4" 31 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" 32 | dependencies: 33 | "@types/express" "*" 34 | 35 | "@types/events@*": 36 | version "1.2.0" 37 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 38 | 39 | "@types/express-serve-static-core@*": 40 | version "4.16.0" 41 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" 42 | dependencies: 43 | "@types/events" "*" 44 | "@types/node" "*" 45 | "@types/range-parser" "*" 46 | 47 | "@types/express@*", "@types/express@^4.11.1": 48 | version "4.16.0" 49 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" 50 | dependencies: 51 | "@types/body-parser" "*" 52 | "@types/express-serve-static-core" "*" 53 | "@types/serve-static" "*" 54 | 55 | "@types/graphql-deduplicator@^2.0.0": 56 | version "2.0.0" 57 | resolved "https://registry.yarnpkg.com/@types/graphql-deduplicator/-/graphql-deduplicator-2.0.0.tgz#9e577b8f3feb3d067b0ca756f4a1fb356d533922" 58 | 59 | "@types/graphql@0.12.6": 60 | version "0.12.6" 61 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.12.6.tgz#3d619198585fcabe5f4e1adfb5cf5f3388c66c13" 62 | 63 | "@types/graphql@^0.13.0": 64 | version "0.13.1" 65 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.13.1.tgz#7d39750355c9ecb921816d6f76c080405b5f6bea" 66 | 67 | "@types/ioredis@^3.2.8": 68 | version "3.2.8" 69 | resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-3.2.8.tgz#ea2dda6ee379efa5f8dabd477f04dce4bed91815" 70 | dependencies: 71 | "@types/bluebird" "*" 72 | "@types/node" "*" 73 | 74 | "@types/mime@*": 75 | version "2.0.0" 76 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 77 | 78 | "@types/node@*": 79 | version "10.3.1" 80 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.1.tgz#51092fbacaed768a122a293814474fbf6e5e8b6d" 81 | 82 | "@types/node@^9.4.6": 83 | version "9.6.20" 84 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.20.tgz#b59a1bd357ae2df7d44d5ac98e9b64eb96ea1fef" 85 | 86 | "@types/range-parser@*": 87 | version "1.2.2" 88 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" 89 | 90 | "@types/serve-static@*": 91 | version "1.13.2" 92 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 93 | dependencies: 94 | "@types/express-serve-static-core" "*" 95 | "@types/mime" "*" 96 | 97 | "@types/zen-observable@^0.5.3": 98 | version "0.5.3" 99 | resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.5.3.tgz#91b728599544efbb7386d8b6633693a3c2e7ade5" 100 | 101 | accepts@~1.3.5: 102 | version "1.3.5" 103 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 104 | dependencies: 105 | mime-types "~2.1.18" 106 | negotiator "0.6.1" 107 | 108 | apollo-cache-control@^0.1.0: 109 | version "0.1.1" 110 | resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.1.1.tgz#173d14ceb3eb9e7cb53de7eb8b61bee6159d4171" 111 | dependencies: 112 | graphql-extensions "^0.0.x" 113 | 114 | apollo-link@1.2.1: 115 | version "1.2.1" 116 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.1.tgz#c120b16059f9bd93401b9f72b94d2f80f3f305d2" 117 | dependencies: 118 | "@types/node" "^9.4.6" 119 | apollo-utilities "^1.0.0" 120 | zen-observable-ts "^0.8.6" 121 | 122 | apollo-link@^1.2.1: 123 | version "1.2.2" 124 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.2.tgz#54c84199b18ac1af8d63553a68ca389c05217a03" 125 | dependencies: 126 | "@types/graphql" "0.12.6" 127 | apollo-utilities "^1.0.0" 128 | zen-observable-ts "^0.8.9" 129 | 130 | apollo-server-core@^1.3.6: 131 | version "1.3.6" 132 | resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.6.tgz#08636243c2de56fa8c267d68dd602cb1fbd323e3" 133 | dependencies: 134 | apollo-cache-control "^0.1.0" 135 | apollo-tracing "^0.1.0" 136 | graphql-extensions "^0.0.x" 137 | 138 | apollo-server-express@^1.3.6: 139 | version "1.3.6" 140 | resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-1.3.6.tgz#2120b05021a87def44fafd846e8a0e2a32852db7" 141 | dependencies: 142 | apollo-server-core "^1.3.6" 143 | apollo-server-module-graphiql "^1.3.4" 144 | 145 | apollo-server-lambda@1.3.6: 146 | version "1.3.6" 147 | resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-1.3.6.tgz#bdaac37f143c6798e40b8ae75580ba673cea260e" 148 | dependencies: 149 | apollo-server-core "^1.3.6" 150 | apollo-server-module-graphiql "^1.3.4" 151 | 152 | apollo-server-module-graphiql@^1.3.4: 153 | version "1.3.4" 154 | resolved "https://registry.yarnpkg.com/apollo-server-module-graphiql/-/apollo-server-module-graphiql-1.3.4.tgz#50399b7c51b7267d0c841529f5173e5fc7304de4" 155 | 156 | apollo-tracing@^0.1.0: 157 | version "0.1.4" 158 | resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.1.4.tgz#5b8ae1b01526b160ee6e552a7f131923a9aedcc7" 159 | dependencies: 160 | graphql-extensions "~0.0.9" 161 | 162 | apollo-upload-server@^5.0.0: 163 | version "5.0.0" 164 | resolved "https://registry.yarnpkg.com/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz#c953b523608313966e0c8444637f4ae8ef77d5bc" 165 | dependencies: 166 | "@babel/runtime" "^7.0.0-beta.40" 167 | busboy "^0.2.14" 168 | object-path "^0.11.4" 169 | 170 | apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: 171 | version "1.0.13" 172 | resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.13.tgz#793c858bb42243f7254d3c2961c64a7158e51022" 173 | 174 | argparse@^1.0.7: 175 | version "1.0.10" 176 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 177 | dependencies: 178 | sprintf-js "~1.0.2" 179 | 180 | array-flatten@1.1.1: 181 | version "1.1.1" 182 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 183 | 184 | arrify@^1.0.0: 185 | version "1.0.1" 186 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 187 | 188 | async-limiter@~1.0.0: 189 | version "1.0.0" 190 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 191 | 192 | aws-lambda@^0.1.2: 193 | version "0.1.2" 194 | resolved "https://registry.yarnpkg.com/aws-lambda/-/aws-lambda-0.1.2.tgz#19b1585075df31679597b976a5f1def61f12ccee" 195 | dependencies: 196 | aws-sdk "^*" 197 | commander "^2.5.0" 198 | dotenv "^0.4.0" 199 | 200 | aws-sdk@^*: 201 | version "2.252.1" 202 | resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.252.1.tgz#4ce45b16dc408883e20a564bd86270c67f25bb60" 203 | dependencies: 204 | buffer "4.9.1" 205 | events "1.1.1" 206 | ieee754 "1.1.8" 207 | jmespath "0.15.0" 208 | querystring "0.2.0" 209 | sax "1.2.1" 210 | url "0.10.3" 211 | uuid "3.1.0" 212 | xml2js "0.4.17" 213 | 214 | backo2@^1.0.2: 215 | version "1.0.2" 216 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 217 | 218 | balanced-match@^1.0.0: 219 | version "1.0.0" 220 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 221 | 222 | base64-js@^1.0.2: 223 | version "1.3.0" 224 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 225 | 226 | bluebird@^3.3.4: 227 | version "3.5.1" 228 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 229 | 230 | body-parser-graphql@1.1.0: 231 | version "1.1.0" 232 | resolved "https://registry.yarnpkg.com/body-parser-graphql/-/body-parser-graphql-1.1.0.tgz#80a80353c7cb623562fd375750dfe018d75f0f7c" 233 | dependencies: 234 | body-parser "^1.18.2" 235 | 236 | body-parser@1.18.2: 237 | version "1.18.2" 238 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 239 | dependencies: 240 | bytes "3.0.0" 241 | content-type "~1.0.4" 242 | debug "2.6.9" 243 | depd "~1.1.1" 244 | http-errors "~1.6.2" 245 | iconv-lite "0.4.19" 246 | on-finished "~2.3.0" 247 | qs "6.5.1" 248 | raw-body "2.3.2" 249 | type-is "~1.6.15" 250 | 251 | body-parser@^1.18.2: 252 | version "1.18.3" 253 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 254 | dependencies: 255 | bytes "3.0.0" 256 | content-type "~1.0.4" 257 | debug "2.6.9" 258 | depd "~1.1.2" 259 | http-errors "~1.6.3" 260 | iconv-lite "0.4.23" 261 | on-finished "~2.3.0" 262 | qs "6.5.2" 263 | raw-body "2.3.3" 264 | type-is "~1.6.16" 265 | 266 | brace-expansion@^1.1.7: 267 | version "1.1.11" 268 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 269 | dependencies: 270 | balanced-match "^1.0.0" 271 | concat-map "0.0.1" 272 | 273 | buffer-from@^1.0.0: 274 | version "1.1.0" 275 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 276 | 277 | buffer@4.9.1: 278 | version "4.9.1" 279 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 280 | dependencies: 281 | base64-js "^1.0.2" 282 | ieee754 "^1.1.4" 283 | isarray "^1.0.0" 284 | 285 | busboy@^0.2.14: 286 | version "0.2.14" 287 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" 288 | dependencies: 289 | dicer "0.2.5" 290 | readable-stream "1.1.x" 291 | 292 | bytes@3.0.0: 293 | version "3.0.0" 294 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 295 | 296 | cluster-key-slot@^1.0.6: 297 | version "1.0.12" 298 | resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.0.12.tgz#d5deff2a520717bc98313979b687309b2d368e29" 299 | 300 | commander@^2.5.0: 301 | version "2.15.1" 302 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 303 | 304 | concat-map@0.0.1: 305 | version "0.0.1" 306 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 307 | 308 | content-disposition@0.5.2: 309 | version "0.5.2" 310 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 311 | 312 | content-type@~1.0.4: 313 | version "1.0.4" 314 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 315 | 316 | cookie-signature@1.0.6: 317 | version "1.0.6" 318 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 319 | 320 | cookie@0.3.1: 321 | version "0.3.1" 322 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 323 | 324 | core-js@^2.5.3, core-js@^2.5.6: 325 | version "2.5.7" 326 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 327 | 328 | core-util-is@~1.0.0: 329 | version "1.0.2" 330 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 331 | 332 | cors@^2.8.4: 333 | version "2.8.4" 334 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" 335 | dependencies: 336 | object-assign "^4" 337 | vary "^1" 338 | 339 | cross-fetch@2.0.0: 340 | version "2.0.0" 341 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.0.0.tgz#a17475449561e0f325146cea636a8619efb9b382" 342 | dependencies: 343 | node-fetch "2.0.0" 344 | whatwg-fetch "2.0.3" 345 | 346 | debug@2.6.9, debug@^2.6.9: 347 | version "2.6.9" 348 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 349 | dependencies: 350 | ms "2.0.0" 351 | 352 | denque@^1.1.0: 353 | version "1.3.0" 354 | resolved "https://registry.yarnpkg.com/denque/-/denque-1.3.0.tgz#681092ef44a630246d3f6edb2a199230eae8e76b" 355 | 356 | depd@1.1.1: 357 | version "1.1.1" 358 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 359 | 360 | depd@~1.1.1, depd@~1.1.2: 361 | version "1.1.2" 362 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 363 | 364 | deprecated-decorator@^0.1.6: 365 | version "0.1.6" 366 | resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" 367 | 368 | destroy@~1.0.4: 369 | version "1.0.4" 370 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 371 | 372 | dicer@0.2.5: 373 | version "0.2.5" 374 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" 375 | dependencies: 376 | readable-stream "1.1.x" 377 | streamsearch "0.1.2" 378 | 379 | diff@^3.1.0: 380 | version "3.5.0" 381 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 382 | 383 | dotenv@^0.4.0: 384 | version "0.4.0" 385 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-0.4.0.tgz#f6fb351363c2d92207245c737802c9ab5ae1495a" 386 | 387 | ee-first@1.1.1: 388 | version "1.1.1" 389 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 390 | 391 | encodeurl@~1.0.2: 392 | version "1.0.2" 393 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 394 | 395 | escape-html@~1.0.3: 396 | version "1.0.3" 397 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 398 | 399 | esprima@^4.0.0: 400 | version "4.0.0" 401 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 402 | 403 | etag@~1.8.1: 404 | version "1.8.1" 405 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 406 | 407 | eventemitter3@^2.0.3: 408 | version "2.0.3" 409 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" 410 | 411 | events@1.1.1: 412 | version "1.1.1" 413 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 414 | 415 | express@^4.16.3: 416 | version "4.16.3" 417 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" 418 | dependencies: 419 | accepts "~1.3.5" 420 | array-flatten "1.1.1" 421 | body-parser "1.18.2" 422 | content-disposition "0.5.2" 423 | content-type "~1.0.4" 424 | cookie "0.3.1" 425 | cookie-signature "1.0.6" 426 | debug "2.6.9" 427 | depd "~1.1.2" 428 | encodeurl "~1.0.2" 429 | escape-html "~1.0.3" 430 | etag "~1.8.1" 431 | finalhandler "1.1.1" 432 | fresh "0.5.2" 433 | merge-descriptors "1.0.1" 434 | methods "~1.1.2" 435 | on-finished "~2.3.0" 436 | parseurl "~1.3.2" 437 | path-to-regexp "0.1.7" 438 | proxy-addr "~2.0.3" 439 | qs "6.5.1" 440 | range-parser "~1.2.0" 441 | safe-buffer "5.1.1" 442 | send "0.16.2" 443 | serve-static "1.13.2" 444 | setprototypeof "1.1.0" 445 | statuses "~1.4.0" 446 | type-is "~1.6.16" 447 | utils-merge "1.0.1" 448 | vary "~1.1.2" 449 | 450 | finalhandler@1.1.1: 451 | version "1.1.1" 452 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 453 | dependencies: 454 | debug "2.6.9" 455 | encodeurl "~1.0.2" 456 | escape-html "~1.0.3" 457 | on-finished "~2.3.0" 458 | parseurl "~1.3.2" 459 | statuses "~1.4.0" 460 | unpipe "~1.0.0" 461 | 462 | flexbuffer@0.0.6: 463 | version "0.0.6" 464 | resolved "https://registry.yarnpkg.com/flexbuffer/-/flexbuffer-0.0.6.tgz#039fdf23f8823e440c38f3277e6fef1174215b30" 465 | 466 | forwarded@~0.1.2: 467 | version "0.1.2" 468 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 469 | 470 | fresh@0.5.2: 471 | version "0.5.2" 472 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 473 | 474 | graphql-config@2.0.0: 475 | version "2.0.0" 476 | resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" 477 | dependencies: 478 | graphql-import "^0.4.0" 479 | graphql-request "^1.4.0" 480 | js-yaml "^3.10.0" 481 | lodash "^4.17.4" 482 | minimatch "^3.0.4" 483 | 484 | graphql-deduplicator@^2.0.1: 485 | version "2.0.1" 486 | resolved "https://registry.yarnpkg.com/graphql-deduplicator/-/graphql-deduplicator-2.0.1.tgz#20c6b39e3a6f096b46dfc8491432818739c0ee37" 487 | 488 | graphql-extensions@^0.0.x, graphql-extensions@~0.0.9: 489 | version "0.0.10" 490 | resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.0.10.tgz#34bdb2546d43f6a5bc89ab23c295ec0466c6843d" 491 | dependencies: 492 | core-js "^2.5.3" 493 | source-map-support "^0.5.1" 494 | 495 | graphql-import@^0.4.0: 496 | version "0.4.5" 497 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.5.tgz#e2f18c28d335733f46df8e0733d8deb1c6e2a645" 498 | dependencies: 499 | lodash "^4.17.4" 500 | 501 | graphql-import@^0.6.0: 502 | version "0.6.0" 503 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.6.0.tgz#c00cb8a269ceea263e062922c8c81a2272d1ffcb" 504 | dependencies: 505 | lodash "^4.17.4" 506 | 507 | graphql-middleware@1.2.5: 508 | version "1.2.5" 509 | resolved "https://registry.yarnpkg.com/graphql-middleware/-/graphql-middleware-1.2.5.tgz#f68c0c399cf573a6334d1d9e04cddfec038ffd4a" 510 | dependencies: 511 | graphql-tools "^3.0.2" 512 | 513 | graphql-playground-html@1.5.5: 514 | version "1.5.5" 515 | resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.5.5.tgz#e2aca543eb66b435ead495b45244b2604d6b2d48" 516 | dependencies: 517 | graphql-config "2.0.0" 518 | 519 | graphql-playground-middleware-express@1.6.3: 520 | version "1.6.3" 521 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.6.3.tgz#0f75b5b139edb2d1079208af59d158caba2309d1" 522 | dependencies: 523 | graphql-playground-html "1.5.5" 524 | 525 | graphql-playground-middleware-lambda@1.6.1: 526 | version "1.6.1" 527 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-lambda/-/graphql-playground-middleware-lambda-1.6.1.tgz#e0f1944558136dd3975570c92c702d6009cc779c" 528 | dependencies: 529 | graphql-playground-html "1.5.5" 530 | 531 | graphql-request@^1.4.0: 532 | version "1.6.0" 533 | resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.6.0.tgz#afe87cf2a336acabb0cc2a875900202eda89f412" 534 | dependencies: 535 | cross-fetch "2.0.0" 536 | 537 | graphql-subscriptions@^0.5.8: 538 | version "0.5.8" 539 | resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz#13a6143c546bce390404657dc73ca501def30aa7" 540 | dependencies: 541 | iterall "^1.2.1" 542 | 543 | graphql-tools@^2.23.1: 544 | version "2.24.0" 545 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-2.24.0.tgz#bbacaad03924012a0edb8735a5e65df5d5563675" 546 | dependencies: 547 | apollo-link "^1.2.1" 548 | apollo-utilities "^1.0.1" 549 | deprecated-decorator "^0.1.6" 550 | iterall "^1.1.3" 551 | uuid "^3.1.0" 552 | 553 | graphql-tools@^3.0.2: 554 | version "3.0.2" 555 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-3.0.2.tgz#fb79821c23b0f5d11d842c4d0c15000d856c6c8c" 556 | dependencies: 557 | apollo-link "1.2.1" 558 | apollo-utilities "^1.0.1" 559 | deprecated-decorator "^0.1.6" 560 | iterall "^1.1.3" 561 | uuid "^3.1.0" 562 | 563 | graphql-yoga@^1.14.7: 564 | version "1.14.7" 565 | resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-1.14.7.tgz#0ce1f59b131d196438711d7100d9b03c0fb3a1d7" 566 | dependencies: 567 | "@types/cors" "^2.8.4" 568 | "@types/express" "^4.11.1" 569 | "@types/graphql" "^0.13.0" 570 | "@types/graphql-deduplicator" "^2.0.0" 571 | "@types/zen-observable" "^0.5.3" 572 | apollo-server-express "^1.3.6" 573 | apollo-server-lambda "1.3.6" 574 | apollo-upload-server "^5.0.0" 575 | aws-lambda "^0.1.2" 576 | body-parser-graphql "1.1.0" 577 | cors "^2.8.4" 578 | express "^4.16.3" 579 | graphql "^0.11.0 || ^0.12.0 || ^0.13.0" 580 | graphql-deduplicator "^2.0.1" 581 | graphql-import "^0.6.0" 582 | graphql-middleware "1.2.5" 583 | graphql-playground-middleware-express "1.6.3" 584 | graphql-playground-middleware-lambda "1.6.1" 585 | graphql-subscriptions "^0.5.8" 586 | graphql-tools "^2.23.1" 587 | subscriptions-transport-ws "^0.9.8" 588 | 589 | "graphql@^0.11.0 || ^0.12.0 || ^0.13.0": 590 | version "0.13.2" 591 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" 592 | dependencies: 593 | iterall "^1.2.1" 594 | 595 | http-errors@1.6.2: 596 | version "1.6.2" 597 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 598 | dependencies: 599 | depd "1.1.1" 600 | inherits "2.0.3" 601 | setprototypeof "1.0.3" 602 | statuses ">= 1.3.1 < 2" 603 | 604 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 605 | version "1.6.3" 606 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 607 | dependencies: 608 | depd "~1.1.2" 609 | inherits "2.0.3" 610 | setprototypeof "1.1.0" 611 | statuses ">= 1.4.0 < 2" 612 | 613 | iconv-lite@0.4.19: 614 | version "0.4.19" 615 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 616 | 617 | iconv-lite@0.4.23: 618 | version "0.4.23" 619 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 620 | dependencies: 621 | safer-buffer ">= 2.1.2 < 3" 622 | 623 | ieee754@1.1.8: 624 | version "1.1.8" 625 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 626 | 627 | ieee754@^1.1.4: 628 | version "1.1.11" 629 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" 630 | 631 | inherits@2.0.3, inherits@~2.0.1: 632 | version "2.0.3" 633 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 634 | 635 | ioredis@^3.2.2: 636 | version "3.2.2" 637 | resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-3.2.2.tgz#b7d5ff3afd77bb9718bb2821329b894b9a44c00b" 638 | dependencies: 639 | bluebird "^3.3.4" 640 | cluster-key-slot "^1.0.6" 641 | debug "^2.6.9" 642 | denque "^1.1.0" 643 | flexbuffer "0.0.6" 644 | lodash.assign "^4.2.0" 645 | lodash.bind "^4.2.1" 646 | lodash.clone "^4.5.0" 647 | lodash.clonedeep "^4.5.0" 648 | lodash.defaults "^4.2.0" 649 | lodash.difference "^4.5.0" 650 | lodash.flatten "^4.4.0" 651 | lodash.foreach "^4.5.0" 652 | lodash.isempty "^4.4.0" 653 | lodash.keys "^4.2.0" 654 | lodash.noop "^3.0.1" 655 | lodash.partial "^4.2.1" 656 | lodash.pick "^4.4.0" 657 | lodash.sample "^4.2.1" 658 | lodash.shuffle "^4.2.0" 659 | lodash.values "^4.3.0" 660 | redis-commands "^1.2.0" 661 | redis-parser "^2.4.0" 662 | 663 | ipaddr.js@1.6.0: 664 | version "1.6.0" 665 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" 666 | 667 | isarray@0.0.1: 668 | version "0.0.1" 669 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 670 | 671 | isarray@^1.0.0: 672 | version "1.0.0" 673 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 674 | 675 | iterall@^1.1.3, iterall@^1.2.1: 676 | version "1.2.2" 677 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" 678 | 679 | jmespath@0.15.0: 680 | version "0.15.0" 681 | resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" 682 | 683 | js-yaml@^3.10.0: 684 | version "3.12.0" 685 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 686 | dependencies: 687 | argparse "^1.0.7" 688 | esprima "^4.0.0" 689 | 690 | lodash.assign@^4.2.0: 691 | version "4.2.0" 692 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 693 | 694 | lodash.bind@^4.2.1: 695 | version "4.2.1" 696 | resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" 697 | 698 | lodash.clone@^4.5.0: 699 | version "4.5.0" 700 | resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" 701 | 702 | lodash.clonedeep@^4.5.0: 703 | version "4.5.0" 704 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 705 | 706 | lodash.defaults@^4.2.0: 707 | version "4.2.0" 708 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 709 | 710 | lodash.difference@^4.5.0: 711 | version "4.5.0" 712 | resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" 713 | 714 | lodash.flatten@^4.4.0: 715 | version "4.4.0" 716 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 717 | 718 | lodash.foreach@^4.5.0: 719 | version "4.5.0" 720 | resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" 721 | 722 | lodash.isempty@^4.4.0: 723 | version "4.4.0" 724 | resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" 725 | 726 | lodash.isobject@^3.0.2: 727 | version "3.0.2" 728 | resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" 729 | 730 | lodash.isstring@^4.0.1: 731 | version "4.0.1" 732 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 733 | 734 | lodash.keys@^4.2.0: 735 | version "4.2.0" 736 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" 737 | 738 | lodash.noop@^3.0.1: 739 | version "3.0.1" 740 | resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" 741 | 742 | lodash.partial@^4.2.1: 743 | version "4.2.1" 744 | resolved "https://registry.yarnpkg.com/lodash.partial/-/lodash.partial-4.2.1.tgz#49f3d8cfdaa3bff8b3a91d127e923245418961d4" 745 | 746 | lodash.pick@^4.4.0: 747 | version "4.4.0" 748 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 749 | 750 | lodash.sample@^4.2.1: 751 | version "4.2.1" 752 | resolved "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz#5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d" 753 | 754 | lodash.shuffle@^4.2.0: 755 | version "4.2.0" 756 | resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b" 757 | 758 | lodash.values@^4.3.0: 759 | version "4.3.0" 760 | resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" 761 | 762 | lodash@^4.0.0, lodash@^4.17.4: 763 | version "4.17.10" 764 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 765 | 766 | make-error@^1.1.1: 767 | version "1.3.4" 768 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" 769 | 770 | media-typer@0.3.0: 771 | version "0.3.0" 772 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 773 | 774 | merge-descriptors@1.0.1: 775 | version "1.0.1" 776 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 777 | 778 | methods@~1.1.2: 779 | version "1.1.2" 780 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 781 | 782 | mime-db@~1.33.0: 783 | version "1.33.0" 784 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 785 | 786 | mime-types@~2.1.18: 787 | version "2.1.18" 788 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 789 | dependencies: 790 | mime-db "~1.33.0" 791 | 792 | mime@1.4.1: 793 | version "1.4.1" 794 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 795 | 796 | minimatch@^3.0.4: 797 | version "3.0.4" 798 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 799 | dependencies: 800 | brace-expansion "^1.1.7" 801 | 802 | minimist@0.0.8: 803 | version "0.0.8" 804 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 805 | 806 | minimist@^1.2.0: 807 | version "1.2.0" 808 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 809 | 810 | mkdirp@^0.5.1: 811 | version "0.5.1" 812 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 813 | dependencies: 814 | minimist "0.0.8" 815 | 816 | ms@2.0.0: 817 | version "2.0.0" 818 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 819 | 820 | negotiator@0.6.1: 821 | version "0.6.1" 822 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 823 | 824 | node-fetch@2.0.0: 825 | version "2.0.0" 826 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.0.0.tgz#982bba43ecd4f2922a29cc186a6bbb0bb73fcba6" 827 | 828 | object-assign@^4: 829 | version "4.1.1" 830 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 831 | 832 | object-path@^0.11.4: 833 | version "0.11.4" 834 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" 835 | 836 | on-finished@~2.3.0: 837 | version "2.3.0" 838 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 839 | dependencies: 840 | ee-first "1.1.1" 841 | 842 | parseurl@~1.3.2: 843 | version "1.3.2" 844 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 845 | 846 | path-to-regexp@0.1.7: 847 | version "0.1.7" 848 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 849 | 850 | proxy-addr@~2.0.3: 851 | version "2.0.3" 852 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" 853 | dependencies: 854 | forwarded "~0.1.2" 855 | ipaddr.js "1.6.0" 856 | 857 | punycode@1.3.2: 858 | version "1.3.2" 859 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 860 | 861 | qs@6.5.1: 862 | version "6.5.1" 863 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 864 | 865 | qs@6.5.2: 866 | version "6.5.2" 867 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 868 | 869 | querystring@0.2.0: 870 | version "0.2.0" 871 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 872 | 873 | range-parser@~1.2.0: 874 | version "1.2.0" 875 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 876 | 877 | raw-body@2.3.2: 878 | version "2.3.2" 879 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 880 | dependencies: 881 | bytes "3.0.0" 882 | http-errors "1.6.2" 883 | iconv-lite "0.4.19" 884 | unpipe "1.0.0" 885 | 886 | raw-body@2.3.3: 887 | version "2.3.3" 888 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 889 | dependencies: 890 | bytes "3.0.0" 891 | http-errors "1.6.3" 892 | iconv-lite "0.4.23" 893 | unpipe "1.0.0" 894 | 895 | readable-stream@1.1.x: 896 | version "1.1.14" 897 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 898 | dependencies: 899 | core-util-is "~1.0.0" 900 | inherits "~2.0.1" 901 | isarray "0.0.1" 902 | string_decoder "~0.10.x" 903 | 904 | redis-commands@^1.2.0: 905 | version "1.3.5" 906 | resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2" 907 | 908 | redis-parser@^2.4.0: 909 | version "2.6.0" 910 | resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" 911 | 912 | regenerator-runtime@^0.11.1: 913 | version "0.11.1" 914 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 915 | 916 | safe-buffer@5.1.1: 917 | version "5.1.1" 918 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 919 | 920 | safe-buffer@~5.1.0: 921 | version "5.1.2" 922 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 923 | 924 | "safer-buffer@>= 2.1.2 < 3": 925 | version "2.1.2" 926 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 927 | 928 | sax@1.2.1: 929 | version "1.2.1" 930 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" 931 | 932 | sax@>=0.6.0: 933 | version "1.2.4" 934 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 935 | 936 | send@0.16.2: 937 | version "0.16.2" 938 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 939 | dependencies: 940 | debug "2.6.9" 941 | depd "~1.1.2" 942 | destroy "~1.0.4" 943 | encodeurl "~1.0.2" 944 | escape-html "~1.0.3" 945 | etag "~1.8.1" 946 | fresh "0.5.2" 947 | http-errors "~1.6.2" 948 | mime "1.4.1" 949 | ms "2.0.0" 950 | on-finished "~2.3.0" 951 | range-parser "~1.2.0" 952 | statuses "~1.4.0" 953 | 954 | serve-static@1.13.2: 955 | version "1.13.2" 956 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 957 | dependencies: 958 | encodeurl "~1.0.2" 959 | escape-html "~1.0.3" 960 | parseurl "~1.3.2" 961 | send "0.16.2" 962 | 963 | setprototypeof@1.0.3: 964 | version "1.0.3" 965 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 966 | 967 | setprototypeof@1.1.0: 968 | version "1.1.0" 969 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 970 | 971 | source-map-support@^0.5.1, source-map-support@^0.5.6: 972 | version "0.5.6" 973 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 974 | dependencies: 975 | buffer-from "^1.0.0" 976 | source-map "^0.6.0" 977 | 978 | source-map@^0.6.0: 979 | version "0.6.1" 980 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 981 | 982 | sprintf-js@~1.0.2: 983 | version "1.0.3" 984 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 985 | 986 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": 987 | version "1.5.0" 988 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 989 | 990 | statuses@~1.4.0: 991 | version "1.4.0" 992 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 993 | 994 | streamsearch@0.1.2: 995 | version "0.1.2" 996 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 997 | 998 | string_decoder@~0.10.x: 999 | version "0.10.31" 1000 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1001 | 1002 | subscriptions-transport-ws@^0.9.8: 1003 | version "0.9.9" 1004 | resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.9.tgz#8a0bdc4c31df2e90e92901047fd8961deb138acc" 1005 | dependencies: 1006 | backo2 "^1.0.2" 1007 | eventemitter3 "^2.0.3" 1008 | iterall "^1.2.1" 1009 | lodash.assign "^4.2.0" 1010 | lodash.isobject "^3.0.2" 1011 | lodash.isstring "^4.0.1" 1012 | symbol-observable "^1.0.4" 1013 | ws "^3.0.0" 1014 | 1015 | symbol-observable@^1.0.4: 1016 | version "1.2.0" 1017 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 1018 | 1019 | ts-node@^6.1.0: 1020 | version "6.1.0" 1021 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.1.0.tgz#a2c37a11fdb58e60eca887a1269b025cf4d2f8b8" 1022 | dependencies: 1023 | arrify "^1.0.0" 1024 | diff "^3.1.0" 1025 | make-error "^1.1.1" 1026 | minimist "^1.2.0" 1027 | mkdirp "^0.5.1" 1028 | source-map-support "^0.5.6" 1029 | yn "^2.0.0" 1030 | 1031 | type-is@~1.6.15, type-is@~1.6.16: 1032 | version "1.6.16" 1033 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 1034 | dependencies: 1035 | media-typer "0.3.0" 1036 | mime-types "~2.1.18" 1037 | 1038 | typescript@^2.9.1: 1039 | version "2.9.1" 1040 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.1.tgz#fdb19d2c67a15d11995fd15640e373e09ab09961" 1041 | 1042 | ultron@~1.1.0: 1043 | version "1.1.1" 1044 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 1045 | 1046 | unpipe@1.0.0, unpipe@~1.0.0: 1047 | version "1.0.0" 1048 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1049 | 1050 | url@0.10.3: 1051 | version "0.10.3" 1052 | resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" 1053 | dependencies: 1054 | punycode "1.3.2" 1055 | querystring "0.2.0" 1056 | 1057 | utils-merge@1.0.1: 1058 | version "1.0.1" 1059 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1060 | 1061 | uuid@3.1.0: 1062 | version "3.1.0" 1063 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 1064 | 1065 | uuid@^3.1.0: 1066 | version "3.2.1" 1067 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 1068 | 1069 | vary@^1, vary@~1.1.2: 1070 | version "1.1.2" 1071 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1072 | 1073 | whatwg-fetch@2.0.3: 1074 | version "2.0.3" 1075 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 1076 | 1077 | ws@^3.0.0: 1078 | version "3.3.3" 1079 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 1080 | dependencies: 1081 | async-limiter "~1.0.0" 1082 | safe-buffer "~5.1.0" 1083 | ultron "~1.1.0" 1084 | 1085 | xml2js@0.4.17: 1086 | version "0.4.17" 1087 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" 1088 | dependencies: 1089 | sax ">=0.6.0" 1090 | xmlbuilder "^4.1.0" 1091 | 1092 | xmlbuilder@^4.1.0: 1093 | version "4.2.1" 1094 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" 1095 | dependencies: 1096 | lodash "^4.0.0" 1097 | 1098 | yn@^2.0.0: 1099 | version "2.0.0" 1100 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 1101 | 1102 | zen-observable-ts@^0.8.6, zen-observable-ts@^0.8.9: 1103 | version "0.8.9" 1104 | resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz#d3c97af08c0afdca37ebcadf7cc3ee96bda9bab1" 1105 | dependencies: 1106 | zen-observable "^0.8.0" 1107 | 1108 | zen-observable@^0.8.0: 1109 | version "0.8.8" 1110 | resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.8.tgz#1ea93995bf098754a58215a1e0a7309e5749ec42" 1111 | -------------------------------------------------------------------------------- /examples/logging/index.ts: -------------------------------------------------------------------------------- 1 | import { GraphQLServer } from "graphql-yoga"; 2 | import { IResolvers } from "graphql-yoga/dist/types"; 3 | import { MiddlewareResolver, chain } from "../../src/index"; 4 | 5 | const typeDefs = ` 6 | type Query { 7 | hello(name: String): String! 8 | } 9 | `; 10 | 11 | const loggingMiddleware: MiddlewareResolver = (next, _, args) => { 12 | console.log("args: ", args); 13 | return next(); 14 | }; 15 | 16 | const helloMiddleware = chain([loggingMiddleware]); 17 | 18 | const resolvers: IResolvers = { 19 | Query: { 20 | hello: helloMiddleware((_, { name }) => `Hello ${name || "World"}`) 21 | } 22 | }; 23 | 24 | const server = new GraphQLServer({ typeDefs, resolvers }); 25 | server.start(() => console.log("Server is running on localhost:4000")); 26 | -------------------------------------------------------------------------------- /examples/logging/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "validation", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "devDependencies": { 7 | "ts-node": "^6.1.0", 8 | "typescript": "^2.9.1" 9 | }, 10 | "dependencies": { 11 | "graphql-yoga": "^1.14.7" 12 | }, 13 | "scripts": { 14 | "start": "ts-node index.ts" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/logging/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.0.0-beta.40": 6 | version "7.0.0-beta.49" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.49.tgz#03b3bf07eb982072c8e851dd2ddd5110282e61bf" 8 | dependencies: 9 | core-js "^2.5.6" 10 | regenerator-runtime "^0.11.1" 11 | 12 | "@types/body-parser@*": 13 | version "1.17.0" 14 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 15 | dependencies: 16 | "@types/connect" "*" 17 | "@types/node" "*" 18 | 19 | "@types/connect@*": 20 | version "3.4.32" 21 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 22 | dependencies: 23 | "@types/node" "*" 24 | 25 | "@types/cors@^2.8.4": 26 | version "2.8.4" 27 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" 28 | dependencies: 29 | "@types/express" "*" 30 | 31 | "@types/events@*": 32 | version "1.2.0" 33 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 34 | 35 | "@types/express-serve-static-core@*": 36 | version "4.16.0" 37 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" 38 | dependencies: 39 | "@types/events" "*" 40 | "@types/node" "*" 41 | "@types/range-parser" "*" 42 | 43 | "@types/express@*", "@types/express@^4.11.1": 44 | version "4.16.0" 45 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" 46 | dependencies: 47 | "@types/body-parser" "*" 48 | "@types/express-serve-static-core" "*" 49 | "@types/serve-static" "*" 50 | 51 | "@types/graphql-deduplicator@^2.0.0": 52 | version "2.0.0" 53 | resolved "https://registry.yarnpkg.com/@types/graphql-deduplicator/-/graphql-deduplicator-2.0.0.tgz#9e577b8f3feb3d067b0ca756f4a1fb356d533922" 54 | 55 | "@types/graphql@0.12.6": 56 | version "0.12.6" 57 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.12.6.tgz#3d619198585fcabe5f4e1adfb5cf5f3388c66c13" 58 | 59 | "@types/graphql@^0.13.0": 60 | version "0.13.1" 61 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.13.1.tgz#7d39750355c9ecb921816d6f76c080405b5f6bea" 62 | 63 | "@types/mime@*": 64 | version "2.0.0" 65 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 66 | 67 | "@types/node@*": 68 | version "10.3.1" 69 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.1.tgz#51092fbacaed768a122a293814474fbf6e5e8b6d" 70 | 71 | "@types/node@^9.4.6": 72 | version "9.6.20" 73 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.20.tgz#b59a1bd357ae2df7d44d5ac98e9b64eb96ea1fef" 74 | 75 | "@types/range-parser@*": 76 | version "1.2.2" 77 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" 78 | 79 | "@types/serve-static@*": 80 | version "1.13.2" 81 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 82 | dependencies: 83 | "@types/express-serve-static-core" "*" 84 | "@types/mime" "*" 85 | 86 | "@types/zen-observable@^0.5.3": 87 | version "0.5.3" 88 | resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.5.3.tgz#91b728599544efbb7386d8b6633693a3c2e7ade5" 89 | 90 | accepts@~1.3.5: 91 | version "1.3.5" 92 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 93 | dependencies: 94 | mime-types "~2.1.18" 95 | negotiator "0.6.1" 96 | 97 | apollo-cache-control@^0.1.0: 98 | version "0.1.1" 99 | resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.1.1.tgz#173d14ceb3eb9e7cb53de7eb8b61bee6159d4171" 100 | dependencies: 101 | graphql-extensions "^0.0.x" 102 | 103 | apollo-link@1.2.1: 104 | version "1.2.1" 105 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.1.tgz#c120b16059f9bd93401b9f72b94d2f80f3f305d2" 106 | dependencies: 107 | "@types/node" "^9.4.6" 108 | apollo-utilities "^1.0.0" 109 | zen-observable-ts "^0.8.6" 110 | 111 | apollo-link@^1.2.1: 112 | version "1.2.2" 113 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.2.tgz#54c84199b18ac1af8d63553a68ca389c05217a03" 114 | dependencies: 115 | "@types/graphql" "0.12.6" 116 | apollo-utilities "^1.0.0" 117 | zen-observable-ts "^0.8.9" 118 | 119 | apollo-server-core@^1.3.6: 120 | version "1.3.6" 121 | resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.6.tgz#08636243c2de56fa8c267d68dd602cb1fbd323e3" 122 | dependencies: 123 | apollo-cache-control "^0.1.0" 124 | apollo-tracing "^0.1.0" 125 | graphql-extensions "^0.0.x" 126 | 127 | apollo-server-express@^1.3.6: 128 | version "1.3.6" 129 | resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-1.3.6.tgz#2120b05021a87def44fafd846e8a0e2a32852db7" 130 | dependencies: 131 | apollo-server-core "^1.3.6" 132 | apollo-server-module-graphiql "^1.3.4" 133 | 134 | apollo-server-lambda@1.3.6: 135 | version "1.3.6" 136 | resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-1.3.6.tgz#bdaac37f143c6798e40b8ae75580ba673cea260e" 137 | dependencies: 138 | apollo-server-core "^1.3.6" 139 | apollo-server-module-graphiql "^1.3.4" 140 | 141 | apollo-server-module-graphiql@^1.3.4: 142 | version "1.3.4" 143 | resolved "https://registry.yarnpkg.com/apollo-server-module-graphiql/-/apollo-server-module-graphiql-1.3.4.tgz#50399b7c51b7267d0c841529f5173e5fc7304de4" 144 | 145 | apollo-tracing@^0.1.0: 146 | version "0.1.4" 147 | resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.1.4.tgz#5b8ae1b01526b160ee6e552a7f131923a9aedcc7" 148 | dependencies: 149 | graphql-extensions "~0.0.9" 150 | 151 | apollo-upload-server@^5.0.0: 152 | version "5.0.0" 153 | resolved "https://registry.yarnpkg.com/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz#c953b523608313966e0c8444637f4ae8ef77d5bc" 154 | dependencies: 155 | "@babel/runtime" "^7.0.0-beta.40" 156 | busboy "^0.2.14" 157 | object-path "^0.11.4" 158 | 159 | apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: 160 | version "1.0.13" 161 | resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.13.tgz#793c858bb42243f7254d3c2961c64a7158e51022" 162 | 163 | argparse@^1.0.7: 164 | version "1.0.10" 165 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 166 | dependencies: 167 | sprintf-js "~1.0.2" 168 | 169 | array-flatten@1.1.1: 170 | version "1.1.1" 171 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 172 | 173 | arrify@^1.0.0: 174 | version "1.0.1" 175 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 176 | 177 | async-limiter@~1.0.0: 178 | version "1.0.0" 179 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 180 | 181 | aws-lambda@^0.1.2: 182 | version "0.1.2" 183 | resolved "https://registry.yarnpkg.com/aws-lambda/-/aws-lambda-0.1.2.tgz#19b1585075df31679597b976a5f1def61f12ccee" 184 | dependencies: 185 | aws-sdk "^*" 186 | commander "^2.5.0" 187 | dotenv "^0.4.0" 188 | 189 | aws-sdk@^*: 190 | version "2.252.1" 191 | resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.252.1.tgz#4ce45b16dc408883e20a564bd86270c67f25bb60" 192 | dependencies: 193 | buffer "4.9.1" 194 | events "1.1.1" 195 | ieee754 "1.1.8" 196 | jmespath "0.15.0" 197 | querystring "0.2.0" 198 | sax "1.2.1" 199 | url "0.10.3" 200 | uuid "3.1.0" 201 | xml2js "0.4.17" 202 | 203 | backo2@^1.0.2: 204 | version "1.0.2" 205 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 206 | 207 | balanced-match@^1.0.0: 208 | version "1.0.0" 209 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 210 | 211 | base64-js@^1.0.2: 212 | version "1.3.0" 213 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 214 | 215 | body-parser-graphql@1.1.0: 216 | version "1.1.0" 217 | resolved "https://registry.yarnpkg.com/body-parser-graphql/-/body-parser-graphql-1.1.0.tgz#80a80353c7cb623562fd375750dfe018d75f0f7c" 218 | dependencies: 219 | body-parser "^1.18.2" 220 | 221 | body-parser@1.18.2: 222 | version "1.18.2" 223 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 224 | dependencies: 225 | bytes "3.0.0" 226 | content-type "~1.0.4" 227 | debug "2.6.9" 228 | depd "~1.1.1" 229 | http-errors "~1.6.2" 230 | iconv-lite "0.4.19" 231 | on-finished "~2.3.0" 232 | qs "6.5.1" 233 | raw-body "2.3.2" 234 | type-is "~1.6.15" 235 | 236 | body-parser@^1.18.2: 237 | version "1.18.3" 238 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 239 | dependencies: 240 | bytes "3.0.0" 241 | content-type "~1.0.4" 242 | debug "2.6.9" 243 | depd "~1.1.2" 244 | http-errors "~1.6.3" 245 | iconv-lite "0.4.23" 246 | on-finished "~2.3.0" 247 | qs "6.5.2" 248 | raw-body "2.3.3" 249 | type-is "~1.6.16" 250 | 251 | brace-expansion@^1.1.7: 252 | version "1.1.11" 253 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 254 | dependencies: 255 | balanced-match "^1.0.0" 256 | concat-map "0.0.1" 257 | 258 | buffer-from@^1.0.0: 259 | version "1.1.0" 260 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 261 | 262 | buffer@4.9.1: 263 | version "4.9.1" 264 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 265 | dependencies: 266 | base64-js "^1.0.2" 267 | ieee754 "^1.1.4" 268 | isarray "^1.0.0" 269 | 270 | busboy@^0.2.14: 271 | version "0.2.14" 272 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" 273 | dependencies: 274 | dicer "0.2.5" 275 | readable-stream "1.1.x" 276 | 277 | bytes@3.0.0: 278 | version "3.0.0" 279 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 280 | 281 | commander@^2.5.0: 282 | version "2.15.1" 283 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 284 | 285 | concat-map@0.0.1: 286 | version "0.0.1" 287 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 288 | 289 | content-disposition@0.5.2: 290 | version "0.5.2" 291 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 292 | 293 | content-type@~1.0.4: 294 | version "1.0.4" 295 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 296 | 297 | cookie-signature@1.0.6: 298 | version "1.0.6" 299 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 300 | 301 | cookie@0.3.1: 302 | version "0.3.1" 303 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 304 | 305 | core-js@^2.5.3, core-js@^2.5.6: 306 | version "2.5.7" 307 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 308 | 309 | core-util-is@~1.0.0: 310 | version "1.0.2" 311 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 312 | 313 | cors@^2.8.4: 314 | version "2.8.4" 315 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" 316 | dependencies: 317 | object-assign "^4" 318 | vary "^1" 319 | 320 | cross-fetch@2.0.0: 321 | version "2.0.0" 322 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.0.0.tgz#a17475449561e0f325146cea636a8619efb9b382" 323 | dependencies: 324 | node-fetch "2.0.0" 325 | whatwg-fetch "2.0.3" 326 | 327 | debug@2.6.9: 328 | version "2.6.9" 329 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 330 | dependencies: 331 | ms "2.0.0" 332 | 333 | depd@1.1.1: 334 | version "1.1.1" 335 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 336 | 337 | depd@~1.1.1, depd@~1.1.2: 338 | version "1.1.2" 339 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 340 | 341 | deprecated-decorator@^0.1.6: 342 | version "0.1.6" 343 | resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" 344 | 345 | destroy@~1.0.4: 346 | version "1.0.4" 347 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 348 | 349 | dicer@0.2.5: 350 | version "0.2.5" 351 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" 352 | dependencies: 353 | readable-stream "1.1.x" 354 | streamsearch "0.1.2" 355 | 356 | diff@^3.1.0: 357 | version "3.5.0" 358 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 359 | 360 | dotenv@^0.4.0: 361 | version "0.4.0" 362 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-0.4.0.tgz#f6fb351363c2d92207245c737802c9ab5ae1495a" 363 | 364 | ee-first@1.1.1: 365 | version "1.1.1" 366 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 367 | 368 | encodeurl@~1.0.2: 369 | version "1.0.2" 370 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 371 | 372 | escape-html@~1.0.3: 373 | version "1.0.3" 374 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 375 | 376 | esprima@^4.0.0: 377 | version "4.0.0" 378 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 379 | 380 | etag@~1.8.1: 381 | version "1.8.1" 382 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 383 | 384 | eventemitter3@^2.0.3: 385 | version "2.0.3" 386 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" 387 | 388 | events@1.1.1: 389 | version "1.1.1" 390 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 391 | 392 | express@^4.16.3: 393 | version "4.16.3" 394 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" 395 | dependencies: 396 | accepts "~1.3.5" 397 | array-flatten "1.1.1" 398 | body-parser "1.18.2" 399 | content-disposition "0.5.2" 400 | content-type "~1.0.4" 401 | cookie "0.3.1" 402 | cookie-signature "1.0.6" 403 | debug "2.6.9" 404 | depd "~1.1.2" 405 | encodeurl "~1.0.2" 406 | escape-html "~1.0.3" 407 | etag "~1.8.1" 408 | finalhandler "1.1.1" 409 | fresh "0.5.2" 410 | merge-descriptors "1.0.1" 411 | methods "~1.1.2" 412 | on-finished "~2.3.0" 413 | parseurl "~1.3.2" 414 | path-to-regexp "0.1.7" 415 | proxy-addr "~2.0.3" 416 | qs "6.5.1" 417 | range-parser "~1.2.0" 418 | safe-buffer "5.1.1" 419 | send "0.16.2" 420 | serve-static "1.13.2" 421 | setprototypeof "1.1.0" 422 | statuses "~1.4.0" 423 | type-is "~1.6.16" 424 | utils-merge "1.0.1" 425 | vary "~1.1.2" 426 | 427 | finalhandler@1.1.1: 428 | version "1.1.1" 429 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 430 | dependencies: 431 | debug "2.6.9" 432 | encodeurl "~1.0.2" 433 | escape-html "~1.0.3" 434 | on-finished "~2.3.0" 435 | parseurl "~1.3.2" 436 | statuses "~1.4.0" 437 | unpipe "~1.0.0" 438 | 439 | forwarded@~0.1.2: 440 | version "0.1.2" 441 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 442 | 443 | fresh@0.5.2: 444 | version "0.5.2" 445 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 446 | 447 | graphql-config@2.0.0: 448 | version "2.0.0" 449 | resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" 450 | dependencies: 451 | graphql-import "^0.4.0" 452 | graphql-request "^1.4.0" 453 | js-yaml "^3.10.0" 454 | lodash "^4.17.4" 455 | minimatch "^3.0.4" 456 | 457 | graphql-deduplicator@^2.0.1: 458 | version "2.0.1" 459 | resolved "https://registry.yarnpkg.com/graphql-deduplicator/-/graphql-deduplicator-2.0.1.tgz#20c6b39e3a6f096b46dfc8491432818739c0ee37" 460 | 461 | graphql-extensions@^0.0.x, graphql-extensions@~0.0.9: 462 | version "0.0.10" 463 | resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.0.10.tgz#34bdb2546d43f6a5bc89ab23c295ec0466c6843d" 464 | dependencies: 465 | core-js "^2.5.3" 466 | source-map-support "^0.5.1" 467 | 468 | graphql-import@^0.4.0: 469 | version "0.4.5" 470 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.5.tgz#e2f18c28d335733f46df8e0733d8deb1c6e2a645" 471 | dependencies: 472 | lodash "^4.17.4" 473 | 474 | graphql-import@^0.6.0: 475 | version "0.6.0" 476 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.6.0.tgz#c00cb8a269ceea263e062922c8c81a2272d1ffcb" 477 | dependencies: 478 | lodash "^4.17.4" 479 | 480 | graphql-middleware@1.2.5: 481 | version "1.2.5" 482 | resolved "https://registry.yarnpkg.com/graphql-middleware/-/graphql-middleware-1.2.5.tgz#f68c0c399cf573a6334d1d9e04cddfec038ffd4a" 483 | dependencies: 484 | graphql-tools "^3.0.2" 485 | 486 | graphql-playground-html@1.5.5: 487 | version "1.5.5" 488 | resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.5.5.tgz#e2aca543eb66b435ead495b45244b2604d6b2d48" 489 | dependencies: 490 | graphql-config "2.0.0" 491 | 492 | graphql-playground-middleware-express@1.6.3: 493 | version "1.6.3" 494 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.6.3.tgz#0f75b5b139edb2d1079208af59d158caba2309d1" 495 | dependencies: 496 | graphql-playground-html "1.5.5" 497 | 498 | graphql-playground-middleware-lambda@1.6.1: 499 | version "1.6.1" 500 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-lambda/-/graphql-playground-middleware-lambda-1.6.1.tgz#e0f1944558136dd3975570c92c702d6009cc779c" 501 | dependencies: 502 | graphql-playground-html "1.5.5" 503 | 504 | graphql-request@^1.4.0: 505 | version "1.6.0" 506 | resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.6.0.tgz#afe87cf2a336acabb0cc2a875900202eda89f412" 507 | dependencies: 508 | cross-fetch "2.0.0" 509 | 510 | graphql-subscriptions@^0.5.8: 511 | version "0.5.8" 512 | resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz#13a6143c546bce390404657dc73ca501def30aa7" 513 | dependencies: 514 | iterall "^1.2.1" 515 | 516 | graphql-tools@^2.23.1: 517 | version "2.24.0" 518 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-2.24.0.tgz#bbacaad03924012a0edb8735a5e65df5d5563675" 519 | dependencies: 520 | apollo-link "^1.2.1" 521 | apollo-utilities "^1.0.1" 522 | deprecated-decorator "^0.1.6" 523 | iterall "^1.1.3" 524 | uuid "^3.1.0" 525 | 526 | graphql-tools@^3.0.2: 527 | version "3.0.2" 528 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-3.0.2.tgz#fb79821c23b0f5d11d842c4d0c15000d856c6c8c" 529 | dependencies: 530 | apollo-link "1.2.1" 531 | apollo-utilities "^1.0.1" 532 | deprecated-decorator "^0.1.6" 533 | iterall "^1.1.3" 534 | uuid "^3.1.0" 535 | 536 | graphql-yoga@^1.14.7: 537 | version "1.14.7" 538 | resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-1.14.7.tgz#0ce1f59b131d196438711d7100d9b03c0fb3a1d7" 539 | dependencies: 540 | "@types/cors" "^2.8.4" 541 | "@types/express" "^4.11.1" 542 | "@types/graphql" "^0.13.0" 543 | "@types/graphql-deduplicator" "^2.0.0" 544 | "@types/zen-observable" "^0.5.3" 545 | apollo-server-express "^1.3.6" 546 | apollo-server-lambda "1.3.6" 547 | apollo-upload-server "^5.0.0" 548 | aws-lambda "^0.1.2" 549 | body-parser-graphql "1.1.0" 550 | cors "^2.8.4" 551 | express "^4.16.3" 552 | graphql "^0.11.0 || ^0.12.0 || ^0.13.0" 553 | graphql-deduplicator "^2.0.1" 554 | graphql-import "^0.6.0" 555 | graphql-middleware "1.2.5" 556 | graphql-playground-middleware-express "1.6.3" 557 | graphql-playground-middleware-lambda "1.6.1" 558 | graphql-subscriptions "^0.5.8" 559 | graphql-tools "^2.23.1" 560 | subscriptions-transport-ws "^0.9.8" 561 | 562 | "graphql@^0.11.0 || ^0.12.0 || ^0.13.0": 563 | version "0.13.2" 564 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" 565 | dependencies: 566 | iterall "^1.2.1" 567 | 568 | http-errors@1.6.2: 569 | version "1.6.2" 570 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 571 | dependencies: 572 | depd "1.1.1" 573 | inherits "2.0.3" 574 | setprototypeof "1.0.3" 575 | statuses ">= 1.3.1 < 2" 576 | 577 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 578 | version "1.6.3" 579 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 580 | dependencies: 581 | depd "~1.1.2" 582 | inherits "2.0.3" 583 | setprototypeof "1.1.0" 584 | statuses ">= 1.4.0 < 2" 585 | 586 | iconv-lite@0.4.19: 587 | version "0.4.19" 588 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 589 | 590 | iconv-lite@0.4.23: 591 | version "0.4.23" 592 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 593 | dependencies: 594 | safer-buffer ">= 2.1.2 < 3" 595 | 596 | ieee754@1.1.8: 597 | version "1.1.8" 598 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 599 | 600 | ieee754@^1.1.4: 601 | version "1.1.11" 602 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" 603 | 604 | inherits@2.0.3, inherits@~2.0.1: 605 | version "2.0.3" 606 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 607 | 608 | ipaddr.js@1.6.0: 609 | version "1.6.0" 610 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" 611 | 612 | isarray@0.0.1: 613 | version "0.0.1" 614 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 615 | 616 | isarray@^1.0.0: 617 | version "1.0.0" 618 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 619 | 620 | iterall@^1.1.3, iterall@^1.2.1: 621 | version "1.2.2" 622 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" 623 | 624 | jmespath@0.15.0: 625 | version "0.15.0" 626 | resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" 627 | 628 | js-yaml@^3.10.0: 629 | version "3.12.0" 630 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 631 | dependencies: 632 | argparse "^1.0.7" 633 | esprima "^4.0.0" 634 | 635 | lodash.assign@^4.2.0: 636 | version "4.2.0" 637 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 638 | 639 | lodash.isobject@^3.0.2: 640 | version "3.0.2" 641 | resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" 642 | 643 | lodash.isstring@^4.0.1: 644 | version "4.0.1" 645 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 646 | 647 | lodash@^4.0.0, lodash@^4.17.4: 648 | version "4.17.10" 649 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 650 | 651 | make-error@^1.1.1: 652 | version "1.3.4" 653 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" 654 | 655 | media-typer@0.3.0: 656 | version "0.3.0" 657 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 658 | 659 | merge-descriptors@1.0.1: 660 | version "1.0.1" 661 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 662 | 663 | methods@~1.1.2: 664 | version "1.1.2" 665 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 666 | 667 | mime-db@~1.33.0: 668 | version "1.33.0" 669 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 670 | 671 | mime-types@~2.1.18: 672 | version "2.1.18" 673 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 674 | dependencies: 675 | mime-db "~1.33.0" 676 | 677 | mime@1.4.1: 678 | version "1.4.1" 679 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 680 | 681 | minimatch@^3.0.4: 682 | version "3.0.4" 683 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 684 | dependencies: 685 | brace-expansion "^1.1.7" 686 | 687 | minimist@0.0.8: 688 | version "0.0.8" 689 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 690 | 691 | minimist@^1.2.0: 692 | version "1.2.0" 693 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 694 | 695 | mkdirp@^0.5.1: 696 | version "0.5.1" 697 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 698 | dependencies: 699 | minimist "0.0.8" 700 | 701 | ms@2.0.0: 702 | version "2.0.0" 703 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 704 | 705 | negotiator@0.6.1: 706 | version "0.6.1" 707 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 708 | 709 | node-fetch@2.0.0: 710 | version "2.0.0" 711 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.0.0.tgz#982bba43ecd4f2922a29cc186a6bbb0bb73fcba6" 712 | 713 | object-assign@^4: 714 | version "4.1.1" 715 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 716 | 717 | object-path@^0.11.4: 718 | version "0.11.4" 719 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" 720 | 721 | on-finished@~2.3.0: 722 | version "2.3.0" 723 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 724 | dependencies: 725 | ee-first "1.1.1" 726 | 727 | parseurl@~1.3.2: 728 | version "1.3.2" 729 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 730 | 731 | path-to-regexp@0.1.7: 732 | version "0.1.7" 733 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 734 | 735 | proxy-addr@~2.0.3: 736 | version "2.0.3" 737 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" 738 | dependencies: 739 | forwarded "~0.1.2" 740 | ipaddr.js "1.6.0" 741 | 742 | punycode@1.3.2: 743 | version "1.3.2" 744 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 745 | 746 | qs@6.5.1: 747 | version "6.5.1" 748 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 749 | 750 | qs@6.5.2: 751 | version "6.5.2" 752 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 753 | 754 | querystring@0.2.0: 755 | version "0.2.0" 756 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 757 | 758 | range-parser@~1.2.0: 759 | version "1.2.0" 760 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 761 | 762 | raw-body@2.3.2: 763 | version "2.3.2" 764 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 765 | dependencies: 766 | bytes "3.0.0" 767 | http-errors "1.6.2" 768 | iconv-lite "0.4.19" 769 | unpipe "1.0.0" 770 | 771 | raw-body@2.3.3: 772 | version "2.3.3" 773 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 774 | dependencies: 775 | bytes "3.0.0" 776 | http-errors "1.6.3" 777 | iconv-lite "0.4.23" 778 | unpipe "1.0.0" 779 | 780 | readable-stream@1.1.x: 781 | version "1.1.14" 782 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 783 | dependencies: 784 | core-util-is "~1.0.0" 785 | inherits "~2.0.1" 786 | isarray "0.0.1" 787 | string_decoder "~0.10.x" 788 | 789 | regenerator-runtime@^0.11.1: 790 | version "0.11.1" 791 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 792 | 793 | safe-buffer@5.1.1: 794 | version "5.1.1" 795 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 796 | 797 | safe-buffer@~5.1.0: 798 | version "5.1.2" 799 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 800 | 801 | "safer-buffer@>= 2.1.2 < 3": 802 | version "2.1.2" 803 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 804 | 805 | sax@1.2.1: 806 | version "1.2.1" 807 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" 808 | 809 | sax@>=0.6.0: 810 | version "1.2.4" 811 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 812 | 813 | send@0.16.2: 814 | version "0.16.2" 815 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 816 | dependencies: 817 | debug "2.6.9" 818 | depd "~1.1.2" 819 | destroy "~1.0.4" 820 | encodeurl "~1.0.2" 821 | escape-html "~1.0.3" 822 | etag "~1.8.1" 823 | fresh "0.5.2" 824 | http-errors "~1.6.2" 825 | mime "1.4.1" 826 | ms "2.0.0" 827 | on-finished "~2.3.0" 828 | range-parser "~1.2.0" 829 | statuses "~1.4.0" 830 | 831 | serve-static@1.13.2: 832 | version "1.13.2" 833 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 834 | dependencies: 835 | encodeurl "~1.0.2" 836 | escape-html "~1.0.3" 837 | parseurl "~1.3.2" 838 | send "0.16.2" 839 | 840 | setprototypeof@1.0.3: 841 | version "1.0.3" 842 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 843 | 844 | setprototypeof@1.1.0: 845 | version "1.1.0" 846 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 847 | 848 | source-map-support@^0.5.1, source-map-support@^0.5.6: 849 | version "0.5.6" 850 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 851 | dependencies: 852 | buffer-from "^1.0.0" 853 | source-map "^0.6.0" 854 | 855 | source-map@^0.6.0: 856 | version "0.6.1" 857 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 858 | 859 | sprintf-js@~1.0.2: 860 | version "1.0.3" 861 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 862 | 863 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": 864 | version "1.5.0" 865 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 866 | 867 | statuses@~1.4.0: 868 | version "1.4.0" 869 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 870 | 871 | streamsearch@0.1.2: 872 | version "0.1.2" 873 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 874 | 875 | string_decoder@~0.10.x: 876 | version "0.10.31" 877 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 878 | 879 | subscriptions-transport-ws@^0.9.8: 880 | version "0.9.9" 881 | resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.9.tgz#8a0bdc4c31df2e90e92901047fd8961deb138acc" 882 | dependencies: 883 | backo2 "^1.0.2" 884 | eventemitter3 "^2.0.3" 885 | iterall "^1.2.1" 886 | lodash.assign "^4.2.0" 887 | lodash.isobject "^3.0.2" 888 | lodash.isstring "^4.0.1" 889 | symbol-observable "^1.0.4" 890 | ws "^3.0.0" 891 | 892 | symbol-observable@^1.0.4: 893 | version "1.2.0" 894 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 895 | 896 | ts-node@^6.1.0: 897 | version "6.1.0" 898 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.1.0.tgz#a2c37a11fdb58e60eca887a1269b025cf4d2f8b8" 899 | dependencies: 900 | arrify "^1.0.0" 901 | diff "^3.1.0" 902 | make-error "^1.1.1" 903 | minimist "^1.2.0" 904 | mkdirp "^0.5.1" 905 | source-map-support "^0.5.6" 906 | yn "^2.0.0" 907 | 908 | type-is@~1.6.15, type-is@~1.6.16: 909 | version "1.6.16" 910 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 911 | dependencies: 912 | media-typer "0.3.0" 913 | mime-types "~2.1.18" 914 | 915 | typescript@^2.9.1: 916 | version "2.9.1" 917 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.1.tgz#fdb19d2c67a15d11995fd15640e373e09ab09961" 918 | 919 | ultron@~1.1.0: 920 | version "1.1.1" 921 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 922 | 923 | unpipe@1.0.0, unpipe@~1.0.0: 924 | version "1.0.0" 925 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 926 | 927 | url@0.10.3: 928 | version "0.10.3" 929 | resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" 930 | dependencies: 931 | punycode "1.3.2" 932 | querystring "0.2.0" 933 | 934 | utils-merge@1.0.1: 935 | version "1.0.1" 936 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 937 | 938 | uuid@3.1.0: 939 | version "3.1.0" 940 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 941 | 942 | uuid@^3.1.0: 943 | version "3.2.1" 944 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 945 | 946 | vary@^1, vary@~1.1.2: 947 | version "1.1.2" 948 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 949 | 950 | whatwg-fetch@2.0.3: 951 | version "2.0.3" 952 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 953 | 954 | ws@^3.0.0: 955 | version "3.3.3" 956 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 957 | dependencies: 958 | async-limiter "~1.0.0" 959 | safe-buffer "~5.1.0" 960 | ultron "~1.1.0" 961 | 962 | xml2js@0.4.17: 963 | version "0.4.17" 964 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" 965 | dependencies: 966 | sax ">=0.6.0" 967 | xmlbuilder "^4.1.0" 968 | 969 | xmlbuilder@^4.1.0: 970 | version "4.2.1" 971 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" 972 | dependencies: 973 | lodash "^4.0.0" 974 | 975 | yn@^2.0.0: 976 | version "2.0.0" 977 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 978 | 979 | zen-observable-ts@^0.8.6, zen-observable-ts@^0.8.9: 980 | version "0.8.9" 981 | resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz#d3c97af08c0afdca37ebcadf7cc3ee96bda9bab1" 982 | dependencies: 983 | zen-observable "^0.8.0" 984 | 985 | zen-observable@^0.8.0: 986 | version "0.8.8" 987 | resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.8.tgz#1ea93995bf098754a58215a1e0a7309e5749ec42" 988 | -------------------------------------------------------------------------------- /examples/validation/index.ts: -------------------------------------------------------------------------------- 1 | import { GraphQLServer } from "graphql-yoga"; 2 | import { IResolvers } from "graphql-yoga/dist/types"; 3 | import { MiddlewareResolver, chain } from "../../src/index"; 4 | 5 | const typeDefs = ` 6 | type Query { 7 | hello(name: String): String! 8 | } 9 | `; 10 | 11 | const validationMiddleware: MiddlewareResolver = (next, _, args) => { 12 | if (args.name.length > 10) { 13 | throw new Error("too long"); 14 | } 15 | 16 | return next(); 17 | }; 18 | 19 | const helloMiddleware = chain([validationMiddleware]); 20 | 21 | const resolvers: IResolvers = { 22 | Query: { 23 | hello: helloMiddleware((_, { name }) => `Hello ${name || "World"}`) 24 | } 25 | }; 26 | 27 | const server = new GraphQLServer({ typeDefs, resolvers }); 28 | server.start(() => console.log("Server is running on localhost:4000")); 29 | -------------------------------------------------------------------------------- /examples/validation/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "validation", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "devDependencies": { 7 | "ts-node": "^6.1.0", 8 | "typescript": "^2.9.1" 9 | }, 10 | "dependencies": { 11 | "graphql-yoga": "^1.14.7" 12 | }, 13 | "scripts": { 14 | "start": "ts-node index.ts" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/validation/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.0.0-beta.40": 6 | version "7.0.0-beta.49" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.49.tgz#03b3bf07eb982072c8e851dd2ddd5110282e61bf" 8 | dependencies: 9 | core-js "^2.5.6" 10 | regenerator-runtime "^0.11.1" 11 | 12 | "@types/body-parser@*": 13 | version "1.17.0" 14 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 15 | dependencies: 16 | "@types/connect" "*" 17 | "@types/node" "*" 18 | 19 | "@types/connect@*": 20 | version "3.4.32" 21 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 22 | dependencies: 23 | "@types/node" "*" 24 | 25 | "@types/cors@^2.8.4": 26 | version "2.8.4" 27 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" 28 | dependencies: 29 | "@types/express" "*" 30 | 31 | "@types/events@*": 32 | version "1.2.0" 33 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 34 | 35 | "@types/express-serve-static-core@*": 36 | version "4.16.0" 37 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" 38 | dependencies: 39 | "@types/events" "*" 40 | "@types/node" "*" 41 | "@types/range-parser" "*" 42 | 43 | "@types/express@*", "@types/express@^4.11.1": 44 | version "4.16.0" 45 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" 46 | dependencies: 47 | "@types/body-parser" "*" 48 | "@types/express-serve-static-core" "*" 49 | "@types/serve-static" "*" 50 | 51 | "@types/graphql-deduplicator@^2.0.0": 52 | version "2.0.0" 53 | resolved "https://registry.yarnpkg.com/@types/graphql-deduplicator/-/graphql-deduplicator-2.0.0.tgz#9e577b8f3feb3d067b0ca756f4a1fb356d533922" 54 | 55 | "@types/graphql@0.12.6": 56 | version "0.12.6" 57 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.12.6.tgz#3d619198585fcabe5f4e1adfb5cf5f3388c66c13" 58 | 59 | "@types/graphql@^0.13.0": 60 | version "0.13.1" 61 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.13.1.tgz#7d39750355c9ecb921816d6f76c080405b5f6bea" 62 | 63 | "@types/mime@*": 64 | version "2.0.0" 65 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 66 | 67 | "@types/node@*": 68 | version "10.3.1" 69 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.1.tgz#51092fbacaed768a122a293814474fbf6e5e8b6d" 70 | 71 | "@types/node@^9.4.6": 72 | version "9.6.20" 73 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.20.tgz#b59a1bd357ae2df7d44d5ac98e9b64eb96ea1fef" 74 | 75 | "@types/range-parser@*": 76 | version "1.2.2" 77 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" 78 | 79 | "@types/serve-static@*": 80 | version "1.13.2" 81 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 82 | dependencies: 83 | "@types/express-serve-static-core" "*" 84 | "@types/mime" "*" 85 | 86 | "@types/zen-observable@^0.5.3": 87 | version "0.5.3" 88 | resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.5.3.tgz#91b728599544efbb7386d8b6633693a3c2e7ade5" 89 | 90 | accepts@~1.3.5: 91 | version "1.3.5" 92 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 93 | dependencies: 94 | mime-types "~2.1.18" 95 | negotiator "0.6.1" 96 | 97 | apollo-cache-control@^0.1.0: 98 | version "0.1.1" 99 | resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.1.1.tgz#173d14ceb3eb9e7cb53de7eb8b61bee6159d4171" 100 | dependencies: 101 | graphql-extensions "^0.0.x" 102 | 103 | apollo-link@1.2.1: 104 | version "1.2.1" 105 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.1.tgz#c120b16059f9bd93401b9f72b94d2f80f3f305d2" 106 | dependencies: 107 | "@types/node" "^9.4.6" 108 | apollo-utilities "^1.0.0" 109 | zen-observable-ts "^0.8.6" 110 | 111 | apollo-link@^1.2.1: 112 | version "1.2.2" 113 | resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.2.tgz#54c84199b18ac1af8d63553a68ca389c05217a03" 114 | dependencies: 115 | "@types/graphql" "0.12.6" 116 | apollo-utilities "^1.0.0" 117 | zen-observable-ts "^0.8.9" 118 | 119 | apollo-server-core@^1.3.6: 120 | version "1.3.6" 121 | resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.6.tgz#08636243c2de56fa8c267d68dd602cb1fbd323e3" 122 | dependencies: 123 | apollo-cache-control "^0.1.0" 124 | apollo-tracing "^0.1.0" 125 | graphql-extensions "^0.0.x" 126 | 127 | apollo-server-express@^1.3.6: 128 | version "1.3.6" 129 | resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-1.3.6.tgz#2120b05021a87def44fafd846e8a0e2a32852db7" 130 | dependencies: 131 | apollo-server-core "^1.3.6" 132 | apollo-server-module-graphiql "^1.3.4" 133 | 134 | apollo-server-lambda@1.3.6: 135 | version "1.3.6" 136 | resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-1.3.6.tgz#bdaac37f143c6798e40b8ae75580ba673cea260e" 137 | dependencies: 138 | apollo-server-core "^1.3.6" 139 | apollo-server-module-graphiql "^1.3.4" 140 | 141 | apollo-server-module-graphiql@^1.3.4: 142 | version "1.3.4" 143 | resolved "https://registry.yarnpkg.com/apollo-server-module-graphiql/-/apollo-server-module-graphiql-1.3.4.tgz#50399b7c51b7267d0c841529f5173e5fc7304de4" 144 | 145 | apollo-tracing@^0.1.0: 146 | version "0.1.4" 147 | resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.1.4.tgz#5b8ae1b01526b160ee6e552a7f131923a9aedcc7" 148 | dependencies: 149 | graphql-extensions "~0.0.9" 150 | 151 | apollo-upload-server@^5.0.0: 152 | version "5.0.0" 153 | resolved "https://registry.yarnpkg.com/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz#c953b523608313966e0c8444637f4ae8ef77d5bc" 154 | dependencies: 155 | "@babel/runtime" "^7.0.0-beta.40" 156 | busboy "^0.2.14" 157 | object-path "^0.11.4" 158 | 159 | apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: 160 | version "1.0.13" 161 | resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.13.tgz#793c858bb42243f7254d3c2961c64a7158e51022" 162 | 163 | argparse@^1.0.7: 164 | version "1.0.10" 165 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 166 | dependencies: 167 | sprintf-js "~1.0.2" 168 | 169 | array-flatten@1.1.1: 170 | version "1.1.1" 171 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 172 | 173 | arrify@^1.0.0: 174 | version "1.0.1" 175 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 176 | 177 | async-limiter@~1.0.0: 178 | version "1.0.0" 179 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 180 | 181 | aws-lambda@^0.1.2: 182 | version "0.1.2" 183 | resolved "https://registry.yarnpkg.com/aws-lambda/-/aws-lambda-0.1.2.tgz#19b1585075df31679597b976a5f1def61f12ccee" 184 | dependencies: 185 | aws-sdk "^*" 186 | commander "^2.5.0" 187 | dotenv "^0.4.0" 188 | 189 | aws-sdk@^*: 190 | version "2.252.1" 191 | resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.252.1.tgz#4ce45b16dc408883e20a564bd86270c67f25bb60" 192 | dependencies: 193 | buffer "4.9.1" 194 | events "1.1.1" 195 | ieee754 "1.1.8" 196 | jmespath "0.15.0" 197 | querystring "0.2.0" 198 | sax "1.2.1" 199 | url "0.10.3" 200 | uuid "3.1.0" 201 | xml2js "0.4.17" 202 | 203 | backo2@^1.0.2: 204 | version "1.0.2" 205 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 206 | 207 | balanced-match@^1.0.0: 208 | version "1.0.0" 209 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 210 | 211 | base64-js@^1.0.2: 212 | version "1.3.0" 213 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 214 | 215 | body-parser-graphql@1.1.0: 216 | version "1.1.0" 217 | resolved "https://registry.yarnpkg.com/body-parser-graphql/-/body-parser-graphql-1.1.0.tgz#80a80353c7cb623562fd375750dfe018d75f0f7c" 218 | dependencies: 219 | body-parser "^1.18.2" 220 | 221 | body-parser@1.18.2: 222 | version "1.18.2" 223 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 224 | dependencies: 225 | bytes "3.0.0" 226 | content-type "~1.0.4" 227 | debug "2.6.9" 228 | depd "~1.1.1" 229 | http-errors "~1.6.2" 230 | iconv-lite "0.4.19" 231 | on-finished "~2.3.0" 232 | qs "6.5.1" 233 | raw-body "2.3.2" 234 | type-is "~1.6.15" 235 | 236 | body-parser@^1.18.2: 237 | version "1.18.3" 238 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 239 | dependencies: 240 | bytes "3.0.0" 241 | content-type "~1.0.4" 242 | debug "2.6.9" 243 | depd "~1.1.2" 244 | http-errors "~1.6.3" 245 | iconv-lite "0.4.23" 246 | on-finished "~2.3.0" 247 | qs "6.5.2" 248 | raw-body "2.3.3" 249 | type-is "~1.6.16" 250 | 251 | brace-expansion@^1.1.7: 252 | version "1.1.11" 253 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 254 | dependencies: 255 | balanced-match "^1.0.0" 256 | concat-map "0.0.1" 257 | 258 | buffer-from@^1.0.0: 259 | version "1.1.0" 260 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 261 | 262 | buffer@4.9.1: 263 | version "4.9.1" 264 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 265 | dependencies: 266 | base64-js "^1.0.2" 267 | ieee754 "^1.1.4" 268 | isarray "^1.0.0" 269 | 270 | busboy@^0.2.14: 271 | version "0.2.14" 272 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" 273 | dependencies: 274 | dicer "0.2.5" 275 | readable-stream "1.1.x" 276 | 277 | bytes@3.0.0: 278 | version "3.0.0" 279 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 280 | 281 | commander@^2.5.0: 282 | version "2.15.1" 283 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 284 | 285 | concat-map@0.0.1: 286 | version "0.0.1" 287 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 288 | 289 | content-disposition@0.5.2: 290 | version "0.5.2" 291 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 292 | 293 | content-type@~1.0.4: 294 | version "1.0.4" 295 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 296 | 297 | cookie-signature@1.0.6: 298 | version "1.0.6" 299 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 300 | 301 | cookie@0.3.1: 302 | version "0.3.1" 303 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 304 | 305 | core-js@^2.5.3, core-js@^2.5.6: 306 | version "2.5.7" 307 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 308 | 309 | core-util-is@~1.0.0: 310 | version "1.0.2" 311 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 312 | 313 | cors@^2.8.4: 314 | version "2.8.4" 315 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" 316 | dependencies: 317 | object-assign "^4" 318 | vary "^1" 319 | 320 | cross-fetch@2.0.0: 321 | version "2.0.0" 322 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.0.0.tgz#a17475449561e0f325146cea636a8619efb9b382" 323 | dependencies: 324 | node-fetch "2.0.0" 325 | whatwg-fetch "2.0.3" 326 | 327 | debug@2.6.9: 328 | version "2.6.9" 329 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 330 | dependencies: 331 | ms "2.0.0" 332 | 333 | depd@1.1.1: 334 | version "1.1.1" 335 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 336 | 337 | depd@~1.1.1, depd@~1.1.2: 338 | version "1.1.2" 339 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 340 | 341 | deprecated-decorator@^0.1.6: 342 | version "0.1.6" 343 | resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" 344 | 345 | destroy@~1.0.4: 346 | version "1.0.4" 347 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 348 | 349 | dicer@0.2.5: 350 | version "0.2.5" 351 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" 352 | dependencies: 353 | readable-stream "1.1.x" 354 | streamsearch "0.1.2" 355 | 356 | diff@^3.1.0: 357 | version "3.5.0" 358 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 359 | 360 | dotenv@^0.4.0: 361 | version "0.4.0" 362 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-0.4.0.tgz#f6fb351363c2d92207245c737802c9ab5ae1495a" 363 | 364 | ee-first@1.1.1: 365 | version "1.1.1" 366 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 367 | 368 | encodeurl@~1.0.2: 369 | version "1.0.2" 370 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 371 | 372 | escape-html@~1.0.3: 373 | version "1.0.3" 374 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 375 | 376 | esprima@^4.0.0: 377 | version "4.0.0" 378 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 379 | 380 | etag@~1.8.1: 381 | version "1.8.1" 382 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 383 | 384 | eventemitter3@^2.0.3: 385 | version "2.0.3" 386 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" 387 | 388 | events@1.1.1: 389 | version "1.1.1" 390 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 391 | 392 | express@^4.16.3: 393 | version "4.16.3" 394 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" 395 | dependencies: 396 | accepts "~1.3.5" 397 | array-flatten "1.1.1" 398 | body-parser "1.18.2" 399 | content-disposition "0.5.2" 400 | content-type "~1.0.4" 401 | cookie "0.3.1" 402 | cookie-signature "1.0.6" 403 | debug "2.6.9" 404 | depd "~1.1.2" 405 | encodeurl "~1.0.2" 406 | escape-html "~1.0.3" 407 | etag "~1.8.1" 408 | finalhandler "1.1.1" 409 | fresh "0.5.2" 410 | merge-descriptors "1.0.1" 411 | methods "~1.1.2" 412 | on-finished "~2.3.0" 413 | parseurl "~1.3.2" 414 | path-to-regexp "0.1.7" 415 | proxy-addr "~2.0.3" 416 | qs "6.5.1" 417 | range-parser "~1.2.0" 418 | safe-buffer "5.1.1" 419 | send "0.16.2" 420 | serve-static "1.13.2" 421 | setprototypeof "1.1.0" 422 | statuses "~1.4.0" 423 | type-is "~1.6.16" 424 | utils-merge "1.0.1" 425 | vary "~1.1.2" 426 | 427 | finalhandler@1.1.1: 428 | version "1.1.1" 429 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 430 | dependencies: 431 | debug "2.6.9" 432 | encodeurl "~1.0.2" 433 | escape-html "~1.0.3" 434 | on-finished "~2.3.0" 435 | parseurl "~1.3.2" 436 | statuses "~1.4.0" 437 | unpipe "~1.0.0" 438 | 439 | forwarded@~0.1.2: 440 | version "0.1.2" 441 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 442 | 443 | fresh@0.5.2: 444 | version "0.5.2" 445 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 446 | 447 | graphql-config@2.0.0: 448 | version "2.0.0" 449 | resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" 450 | dependencies: 451 | graphql-import "^0.4.0" 452 | graphql-request "^1.4.0" 453 | js-yaml "^3.10.0" 454 | lodash "^4.17.4" 455 | minimatch "^3.0.4" 456 | 457 | graphql-deduplicator@^2.0.1: 458 | version "2.0.1" 459 | resolved "https://registry.yarnpkg.com/graphql-deduplicator/-/graphql-deduplicator-2.0.1.tgz#20c6b39e3a6f096b46dfc8491432818739c0ee37" 460 | 461 | graphql-extensions@^0.0.x, graphql-extensions@~0.0.9: 462 | version "0.0.10" 463 | resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.0.10.tgz#34bdb2546d43f6a5bc89ab23c295ec0466c6843d" 464 | dependencies: 465 | core-js "^2.5.3" 466 | source-map-support "^0.5.1" 467 | 468 | graphql-import@^0.4.0: 469 | version "0.4.5" 470 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.5.tgz#e2f18c28d335733f46df8e0733d8deb1c6e2a645" 471 | dependencies: 472 | lodash "^4.17.4" 473 | 474 | graphql-import@^0.6.0: 475 | version "0.6.0" 476 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.6.0.tgz#c00cb8a269ceea263e062922c8c81a2272d1ffcb" 477 | dependencies: 478 | lodash "^4.17.4" 479 | 480 | graphql-middleware@1.2.5: 481 | version "1.2.5" 482 | resolved "https://registry.yarnpkg.com/graphql-middleware/-/graphql-middleware-1.2.5.tgz#f68c0c399cf573a6334d1d9e04cddfec038ffd4a" 483 | dependencies: 484 | graphql-tools "^3.0.2" 485 | 486 | graphql-playground-html@1.5.5: 487 | version "1.5.5" 488 | resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.5.5.tgz#e2aca543eb66b435ead495b45244b2604d6b2d48" 489 | dependencies: 490 | graphql-config "2.0.0" 491 | 492 | graphql-playground-middleware-express@1.6.3: 493 | version "1.6.3" 494 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.6.3.tgz#0f75b5b139edb2d1079208af59d158caba2309d1" 495 | dependencies: 496 | graphql-playground-html "1.5.5" 497 | 498 | graphql-playground-middleware-lambda@1.6.1: 499 | version "1.6.1" 500 | resolved "https://registry.yarnpkg.com/graphql-playground-middleware-lambda/-/graphql-playground-middleware-lambda-1.6.1.tgz#e0f1944558136dd3975570c92c702d6009cc779c" 501 | dependencies: 502 | graphql-playground-html "1.5.5" 503 | 504 | graphql-request@^1.4.0: 505 | version "1.6.0" 506 | resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.6.0.tgz#afe87cf2a336acabb0cc2a875900202eda89f412" 507 | dependencies: 508 | cross-fetch "2.0.0" 509 | 510 | graphql-subscriptions@^0.5.8: 511 | version "0.5.8" 512 | resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz#13a6143c546bce390404657dc73ca501def30aa7" 513 | dependencies: 514 | iterall "^1.2.1" 515 | 516 | graphql-tools@^2.23.1: 517 | version "2.24.0" 518 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-2.24.0.tgz#bbacaad03924012a0edb8735a5e65df5d5563675" 519 | dependencies: 520 | apollo-link "^1.2.1" 521 | apollo-utilities "^1.0.1" 522 | deprecated-decorator "^0.1.6" 523 | iterall "^1.1.3" 524 | uuid "^3.1.0" 525 | 526 | graphql-tools@^3.0.2: 527 | version "3.0.2" 528 | resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-3.0.2.tgz#fb79821c23b0f5d11d842c4d0c15000d856c6c8c" 529 | dependencies: 530 | apollo-link "1.2.1" 531 | apollo-utilities "^1.0.1" 532 | deprecated-decorator "^0.1.6" 533 | iterall "^1.1.3" 534 | uuid "^3.1.0" 535 | 536 | graphql-yoga@^1.14.7: 537 | version "1.14.7" 538 | resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-1.14.7.tgz#0ce1f59b131d196438711d7100d9b03c0fb3a1d7" 539 | dependencies: 540 | "@types/cors" "^2.8.4" 541 | "@types/express" "^4.11.1" 542 | "@types/graphql" "^0.13.0" 543 | "@types/graphql-deduplicator" "^2.0.0" 544 | "@types/zen-observable" "^0.5.3" 545 | apollo-server-express "^1.3.6" 546 | apollo-server-lambda "1.3.6" 547 | apollo-upload-server "^5.0.0" 548 | aws-lambda "^0.1.2" 549 | body-parser-graphql "1.1.0" 550 | cors "^2.8.4" 551 | express "^4.16.3" 552 | graphql "^0.11.0 || ^0.12.0 || ^0.13.0" 553 | graphql-deduplicator "^2.0.1" 554 | graphql-import "^0.6.0" 555 | graphql-middleware "1.2.5" 556 | graphql-playground-middleware-express "1.6.3" 557 | graphql-playground-middleware-lambda "1.6.1" 558 | graphql-subscriptions "^0.5.8" 559 | graphql-tools "^2.23.1" 560 | subscriptions-transport-ws "^0.9.8" 561 | 562 | "graphql@^0.11.0 || ^0.12.0 || ^0.13.0": 563 | version "0.13.2" 564 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" 565 | dependencies: 566 | iterall "^1.2.1" 567 | 568 | http-errors@1.6.2: 569 | version "1.6.2" 570 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 571 | dependencies: 572 | depd "1.1.1" 573 | inherits "2.0.3" 574 | setprototypeof "1.0.3" 575 | statuses ">= 1.3.1 < 2" 576 | 577 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 578 | version "1.6.3" 579 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 580 | dependencies: 581 | depd "~1.1.2" 582 | inherits "2.0.3" 583 | setprototypeof "1.1.0" 584 | statuses ">= 1.4.0 < 2" 585 | 586 | iconv-lite@0.4.19: 587 | version "0.4.19" 588 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 589 | 590 | iconv-lite@0.4.23: 591 | version "0.4.23" 592 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 593 | dependencies: 594 | safer-buffer ">= 2.1.2 < 3" 595 | 596 | ieee754@1.1.8: 597 | version "1.1.8" 598 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 599 | 600 | ieee754@^1.1.4: 601 | version "1.1.11" 602 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" 603 | 604 | inherits@2.0.3, inherits@~2.0.1: 605 | version "2.0.3" 606 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 607 | 608 | ipaddr.js@1.6.0: 609 | version "1.6.0" 610 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" 611 | 612 | isarray@0.0.1: 613 | version "0.0.1" 614 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 615 | 616 | isarray@^1.0.0: 617 | version "1.0.0" 618 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 619 | 620 | iterall@^1.1.3, iterall@^1.2.1: 621 | version "1.2.2" 622 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" 623 | 624 | jmespath@0.15.0: 625 | version "0.15.0" 626 | resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" 627 | 628 | js-yaml@^3.10.0: 629 | version "3.12.0" 630 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 631 | dependencies: 632 | argparse "^1.0.7" 633 | esprima "^4.0.0" 634 | 635 | lodash.assign@^4.2.0: 636 | version "4.2.0" 637 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 638 | 639 | lodash.isobject@^3.0.2: 640 | version "3.0.2" 641 | resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" 642 | 643 | lodash.isstring@^4.0.1: 644 | version "4.0.1" 645 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 646 | 647 | lodash@^4.0.0, lodash@^4.17.4: 648 | version "4.17.10" 649 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 650 | 651 | make-error@^1.1.1: 652 | version "1.3.4" 653 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" 654 | 655 | media-typer@0.3.0: 656 | version "0.3.0" 657 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 658 | 659 | merge-descriptors@1.0.1: 660 | version "1.0.1" 661 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 662 | 663 | methods@~1.1.2: 664 | version "1.1.2" 665 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 666 | 667 | mime-db@~1.33.0: 668 | version "1.33.0" 669 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 670 | 671 | mime-types@~2.1.18: 672 | version "2.1.18" 673 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 674 | dependencies: 675 | mime-db "~1.33.0" 676 | 677 | mime@1.4.1: 678 | version "1.4.1" 679 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 680 | 681 | minimatch@^3.0.4: 682 | version "3.0.4" 683 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 684 | dependencies: 685 | brace-expansion "^1.1.7" 686 | 687 | minimist@0.0.8: 688 | version "0.0.8" 689 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 690 | 691 | minimist@^1.2.0: 692 | version "1.2.0" 693 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 694 | 695 | mkdirp@^0.5.1: 696 | version "0.5.1" 697 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 698 | dependencies: 699 | minimist "0.0.8" 700 | 701 | ms@2.0.0: 702 | version "2.0.0" 703 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 704 | 705 | negotiator@0.6.1: 706 | version "0.6.1" 707 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 708 | 709 | node-fetch@2.0.0: 710 | version "2.0.0" 711 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.0.0.tgz#982bba43ecd4f2922a29cc186a6bbb0bb73fcba6" 712 | 713 | object-assign@^4: 714 | version "4.1.1" 715 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 716 | 717 | object-path@^0.11.4: 718 | version "0.11.4" 719 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" 720 | 721 | on-finished@~2.3.0: 722 | version "2.3.0" 723 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 724 | dependencies: 725 | ee-first "1.1.1" 726 | 727 | parseurl@~1.3.2: 728 | version "1.3.2" 729 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 730 | 731 | path-to-regexp@0.1.7: 732 | version "0.1.7" 733 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 734 | 735 | proxy-addr@~2.0.3: 736 | version "2.0.3" 737 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" 738 | dependencies: 739 | forwarded "~0.1.2" 740 | ipaddr.js "1.6.0" 741 | 742 | punycode@1.3.2: 743 | version "1.3.2" 744 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 745 | 746 | qs@6.5.1: 747 | version "6.5.1" 748 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 749 | 750 | qs@6.5.2: 751 | version "6.5.2" 752 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 753 | 754 | querystring@0.2.0: 755 | version "0.2.0" 756 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 757 | 758 | range-parser@~1.2.0: 759 | version "1.2.0" 760 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 761 | 762 | raw-body@2.3.2: 763 | version "2.3.2" 764 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 765 | dependencies: 766 | bytes "3.0.0" 767 | http-errors "1.6.2" 768 | iconv-lite "0.4.19" 769 | unpipe "1.0.0" 770 | 771 | raw-body@2.3.3: 772 | version "2.3.3" 773 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 774 | dependencies: 775 | bytes "3.0.0" 776 | http-errors "1.6.3" 777 | iconv-lite "0.4.23" 778 | unpipe "1.0.0" 779 | 780 | readable-stream@1.1.x: 781 | version "1.1.14" 782 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 783 | dependencies: 784 | core-util-is "~1.0.0" 785 | inherits "~2.0.1" 786 | isarray "0.0.1" 787 | string_decoder "~0.10.x" 788 | 789 | regenerator-runtime@^0.11.1: 790 | version "0.11.1" 791 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 792 | 793 | safe-buffer@5.1.1: 794 | version "5.1.1" 795 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 796 | 797 | safe-buffer@~5.1.0: 798 | version "5.1.2" 799 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 800 | 801 | "safer-buffer@>= 2.1.2 < 3": 802 | version "2.1.2" 803 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 804 | 805 | sax@1.2.1: 806 | version "1.2.1" 807 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" 808 | 809 | sax@>=0.6.0: 810 | version "1.2.4" 811 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 812 | 813 | send@0.16.2: 814 | version "0.16.2" 815 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 816 | dependencies: 817 | debug "2.6.9" 818 | depd "~1.1.2" 819 | destroy "~1.0.4" 820 | encodeurl "~1.0.2" 821 | escape-html "~1.0.3" 822 | etag "~1.8.1" 823 | fresh "0.5.2" 824 | http-errors "~1.6.2" 825 | mime "1.4.1" 826 | ms "2.0.0" 827 | on-finished "~2.3.0" 828 | range-parser "~1.2.0" 829 | statuses "~1.4.0" 830 | 831 | serve-static@1.13.2: 832 | version "1.13.2" 833 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 834 | dependencies: 835 | encodeurl "~1.0.2" 836 | escape-html "~1.0.3" 837 | parseurl "~1.3.2" 838 | send "0.16.2" 839 | 840 | setprototypeof@1.0.3: 841 | version "1.0.3" 842 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 843 | 844 | setprototypeof@1.1.0: 845 | version "1.1.0" 846 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 847 | 848 | source-map-support@^0.5.1, source-map-support@^0.5.6: 849 | version "0.5.6" 850 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 851 | dependencies: 852 | buffer-from "^1.0.0" 853 | source-map "^0.6.0" 854 | 855 | source-map@^0.6.0: 856 | version "0.6.1" 857 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 858 | 859 | sprintf-js@~1.0.2: 860 | version "1.0.3" 861 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 862 | 863 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": 864 | version "1.5.0" 865 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 866 | 867 | statuses@~1.4.0: 868 | version "1.4.0" 869 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 870 | 871 | streamsearch@0.1.2: 872 | version "0.1.2" 873 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" 874 | 875 | string_decoder@~0.10.x: 876 | version "0.10.31" 877 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 878 | 879 | subscriptions-transport-ws@^0.9.8: 880 | version "0.9.9" 881 | resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.9.tgz#8a0bdc4c31df2e90e92901047fd8961deb138acc" 882 | dependencies: 883 | backo2 "^1.0.2" 884 | eventemitter3 "^2.0.3" 885 | iterall "^1.2.1" 886 | lodash.assign "^4.2.0" 887 | lodash.isobject "^3.0.2" 888 | lodash.isstring "^4.0.1" 889 | symbol-observable "^1.0.4" 890 | ws "^3.0.0" 891 | 892 | symbol-observable@^1.0.4: 893 | version "1.2.0" 894 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 895 | 896 | ts-node@^6.1.0: 897 | version "6.1.0" 898 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.1.0.tgz#a2c37a11fdb58e60eca887a1269b025cf4d2f8b8" 899 | dependencies: 900 | arrify "^1.0.0" 901 | diff "^3.1.0" 902 | make-error "^1.1.1" 903 | minimist "^1.2.0" 904 | mkdirp "^0.5.1" 905 | source-map-support "^0.5.6" 906 | yn "^2.0.0" 907 | 908 | type-is@~1.6.15, type-is@~1.6.16: 909 | version "1.6.16" 910 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 911 | dependencies: 912 | media-typer "0.3.0" 913 | mime-types "~2.1.18" 914 | 915 | typescript@^2.9.1: 916 | version "2.9.1" 917 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.1.tgz#fdb19d2c67a15d11995fd15640e373e09ab09961" 918 | 919 | ultron@~1.1.0: 920 | version "1.1.1" 921 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 922 | 923 | unpipe@1.0.0, unpipe@~1.0.0: 924 | version "1.0.0" 925 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 926 | 927 | url@0.10.3: 928 | version "0.10.3" 929 | resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" 930 | dependencies: 931 | punycode "1.3.2" 932 | querystring "0.2.0" 933 | 934 | utils-merge@1.0.1: 935 | version "1.0.1" 936 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 937 | 938 | uuid@3.1.0: 939 | version "3.1.0" 940 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 941 | 942 | uuid@^3.1.0: 943 | version "3.2.1" 944 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 945 | 946 | vary@^1, vary@~1.1.2: 947 | version "1.1.2" 948 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 949 | 950 | whatwg-fetch@2.0.3: 951 | version "2.0.3" 952 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 953 | 954 | ws@^3.0.0: 955 | version "3.3.3" 956 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 957 | dependencies: 958 | async-limiter "~1.0.0" 959 | safe-buffer "~5.1.0" 960 | ultron "~1.1.0" 961 | 962 | xml2js@0.4.17: 963 | version "0.4.17" 964 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" 965 | dependencies: 966 | sax ">=0.6.0" 967 | xmlbuilder "^4.1.0" 968 | 969 | xmlbuilder@^4.1.0: 970 | version "4.2.1" 971 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" 972 | dependencies: 973 | lodash "^4.0.0" 974 | 975 | yn@^2.0.0: 976 | version "2.0.0" 977 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 978 | 979 | zen-observable-ts@^0.8.6, zen-observable-ts@^0.8.9: 980 | version "0.8.9" 981 | resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz#d3c97af08c0afdca37ebcadf7cc3ee96bda9bab1" 982 | dependencies: 983 | zen-observable "^0.8.0" 984 | 985 | zen-observable@^0.8.0: 986 | version "0.8.8" 987 | resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.8.tgz#1ea93995bf098754a58215a1e0a7309e5749ec42" 988 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "graphql-chain", 3 | "main": "lib/index.js", 4 | "typings": "lib/index.d.ts", 5 | "typescript": { 6 | "definition": "lib/index.d.ts" 7 | }, 8 | "version": "0.0.0-development", 9 | "license": "MIT", 10 | "devDependencies": { 11 | "@types/jest": "^23.0.0", 12 | "jest": "^23.1.0", 13 | "semantic-release": "^15.5.1", 14 | "travis-deploy-once": "^5.0.0", 15 | "ts-jest": "^22.4.6", 16 | "ts-node": "^6.1.0", 17 | "tslint": "^5.10.0", 18 | "tslint-config-prettier": "^1.13.0", 19 | "typescript": "^2.9.1" 20 | }, 21 | "scripts": { 22 | "prepublish": "npm run test", 23 | "test": "npm run build && jest", 24 | "build": "rm -rf lib && tsc", 25 | "semantic-release": "semantic-release", 26 | "travis-deploy-once": "travis-deploy-once" 27 | }, 28 | "repository": { 29 | "type": "git", 30 | "url": "https://github.com/benawad/graphql-chain.git" 31 | }, 32 | "jest": { 33 | "transform": { 34 | "^.+\\.tsx?$": "ts-jest" 35 | }, 36 | "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", 37 | "moduleFileExtensions": [ 38 | "ts", 39 | "tsx", 40 | "js", 41 | "jsx", 42 | "json", 43 | "node" 44 | ] 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export type Next = () => any; 2 | 3 | export type MiddlewareResolver = ( 4 | next: Next, 5 | parent: any, 6 | args: any, 7 | context: any, 8 | info: any 9 | ) => any; 10 | 11 | export const chain = (middlewares: MiddlewareResolver[]) => < 12 | Parent = any, 13 | Args = any, 14 | Context = any, 15 | Info = any 16 | >( 17 | resolver: (parent: Parent, args: Args, context: Context, info: Info) => any 18 | ) => (parent: any, args: any, context: any, info: any) => { 19 | const newMiddlewares = [...middlewares]; 20 | const next: Next = () => { 21 | const middleware = newMiddlewares.shift(); 22 | if (middleware) { 23 | return middleware(next, parent, args, context, info); 24 | } 25 | 26 | return resolver(parent, args, context, info); 27 | }; 28 | 29 | return next(); 30 | }; 31 | -------------------------------------------------------------------------------- /test.ts: -------------------------------------------------------------------------------- 1 | import { chain } from "./lib"; 2 | 3 | describe("test chain", () => { 4 | it("modifying argument persists", () => { 5 | chain([ 6 | (next, parent) => { 7 | parent.name = "hey"; 8 | return next(); 9 | }, 10 | (next, parent) => { 11 | expect(parent.name).toBe("hey"); 12 | return next(); 13 | } 14 | ])(() => 5)({}, {}, {}, {}); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "rootDir": "./src", 7 | "outDir": "./lib", 8 | "sourceMap": true, 9 | "lib": ["dom", "es2017", "esnext.asynciterable"], 10 | "declaration": true, 11 | "removeComments": true, 12 | 13 | "strict": true, 14 | "noImplicitAny": true, 15 | "strictNullChecks": true, 16 | "strictFunctionTypes": true, 17 | "noImplicitThis": true, 18 | "alwaysStrict": true, 19 | 20 | "noUnusedLocals": true, 21 | "noUnusedParameters": true, 22 | "noImplicitReturns": true, 23 | "noFallthroughCasesInSwitch": true 24 | }, 25 | "exclude": ["node_modules", "examples", "test.ts"] 26 | } 27 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": ["tslint:latest", "tslint-config-prettier"], 4 | "jsRules": {}, 5 | "rules": { 6 | "member-access": false, 7 | "object-literal-sort-keys": false, 8 | "ordered-imports": false, 9 | "interface-name": false, 10 | "no-submodule-imports": false, 11 | "no-implicit-dependencies": [true, "dev"], 12 | "no-console": false 13 | }, 14 | "rulesDirectory": [] 15 | } 16 | --------------------------------------------------------------------------------