├── .github
└── FUNDING.yml
├── .gitignore
├── LICENSE
├── README.md
├── client
├── README.md
├── dist
│ └── main.js
├── index.html
├── package-lock.json
├── package.json
└── src
│ └── index.js
└── server
├── README.md
├── from-rest
└── index.js
├── package-lock.json
├── package.json
├── resolvers.js
├── schema.js
├── server.js
└── users.json
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: time-to-hack
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # Yarn Integrity file
55 | .yarn-integrity
56 |
57 | # dotenv environment variables file
58 | .env
59 |
60 | .DS_Store
61 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Time to Hack
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # graphql-demo
2 |
3 | [](http://hits.dwyl.io/time2hack/graphql-demo)
4 |
5 | GraphQL is an API query language. It provides a runtime to describe and query the data, no matter what the storage engine is.
6 |
7 | GraphQL's benefits include
8 |
9 | Typed data
10 | Get what you asked for
11 | Multiple data requests in one call
12 | One endpoint, changes in API are now bit easier
13 | Subscriptions
14 | etc.
15 | For example, consider a system similar to a social network where we have users and they have other users as friends. Following entity will completely encapsulate the data model; how it is going to be dealt in Back End and Front End, we will see after that.
16 | ```graphql
17 | type User {
18 | id: String!
19 | fullName: String
20 | name: Name
21 | email: String!
22 | friends: [User]
23 | }
24 | type Name {
25 | first: String
26 | last: String
27 | }
28 | ```
29 | For this data description, the front end will sent the request to data as follows:
30 | ```graphql
31 | {
32 | user(id: "5a826fdf9856ad6503d728d5") {
33 | id
34 | name {
35 | first
36 | last
37 | }
38 | email
39 | friends {
40 | id
41 | email
42 | }
43 | }
44 | }
45 | ```
46 | And will receive the response as follows:
47 | ```json
48 | {
49 | "data": {
50 | "user": {
51 | "id": "5a826fdf9856ad6503d728d5",
52 | "name": {
53 | "first": "Stanton",
54 | "last": "Hansen"
55 | },
56 | "email": "stanton.hansen@example.com",
57 | "friends": [
58 | {
59 | "id": "5a826fdf0d054a6fab7bb067",
60 | "email": "barr.wolf@example.com"
61 | },
62 | ...
63 | {
64 | "id": "5a826fdf0d054a6fab7bb067",
65 | "email": "barr.wolf@example.com"
66 | }
67 | ]
68 | }
69 | }
70 | }
71 | ```
72 | And the good part is that the data can be from any interface, be it the RDBMS, NoSQL DB, a File or even in-memory operation.
73 |
74 | [Read how to use Server](./server/README.md)
75 |
76 | [Read how to use Client](./client/README.md)
77 |
78 | Read full post at https://time2hack.com/2018/02/introduction-quick-guide-to-graphql-for-backend-frontend/
79 |
--------------------------------------------------------------------------------
/client/README.md:
--------------------------------------------------------------------------------
1 | # graphql-demo: Front End Client
2 |
3 | ### dependencies
4 |
5 | ```
6 | npm i -D webpack@next webpack-cli
7 |
8 | npm i -S graphql graphql-tag apollo-cache-inmemory apollo-client apollo-link-http
9 | ```
10 |
11 | ### Compiling
12 |
13 | ```
14 | npm run build
15 | ```
16 | or
17 | ```
18 | npm run start
19 | ```
20 |
21 | Use [`http-server`](https://www.npmjs.com/package/http-server) to serve files
22 |
23 | -----
24 |
25 | Read full post at https://time2hack.com/2018/02/introduction-quick-guide-to-graphql-for-backend-frontend/
26 |
--------------------------------------------------------------------------------
/client/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | GraphQL Demo: Time to Hack
7 |
8 |
9 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/client/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@graphql-demo/client",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "build": "webpack --mode=production",
8 | "start": "webpack --mode=development --watch"
9 | },
10 | "keywords": [],
11 | "author": "Pankaj Patel",
12 | "license": "ISC",
13 | "devDependencies": {
14 | "webpack": "^5.75.0",
15 | "webpack-cli": "^5.0.1",
16 | "webpack-dev-server": "^4.11.1"
17 | },
18 | "dependencies": {
19 | "apollo-cache-inmemory": "^1.1.7",
20 | "apollo-client": "^2.2.3",
21 | "apollo-link-http": "^1.3.3",
22 | "graphql": "^0.13.0",
23 | "graphql-tag": "^2.7.3"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/client/src/index.js:
--------------------------------------------------------------------------------
1 | import { ApolloClient } from 'apollo-client';
2 | import { HttpLink } from 'apollo-link-http';
3 | import { InMemoryCache } from 'apollo-cache-inmemory';
4 | import gql from 'graphql-tag';
5 |
6 | const client = new ApolloClient({
7 | link: new HttpLink({ uri: 'http://localhost:3000/graphql' }),
8 | cache: new InMemoryCache()
9 | });
10 |
11 | client.query({
12 | query: gql`
13 | query users {
14 | users {
15 | id
16 | fullName
17 | email
18 | }
19 | }
20 | `,
21 | })
22 | .then(({data}) => appendData(data))
23 | .catch(error => console.error(error));
24 |
25 | const appendData = (data) => {
26 | console.log(data);
27 | const app = document.querySelector('#app');
28 | app.innerHTML = '';
29 | data.users.map(user => {
30 | const d = document.createElement('div');
31 | d.innerHTML = `
32 |
${user.fullName}
33 |
${user.email}
34 |
`;
35 | app.appendChild(d.firstElementChild);
36 | })
37 | }
38 |
--------------------------------------------------------------------------------
/server/README.md:
--------------------------------------------------------------------------------
1 | # graphql-demo: Server
2 |
3 | ### dependencies
4 |
5 | ```
6 | npm i -S apollo-server-express body-parser cors express graphql graphql-tools node-fetch uuid
7 | ```
8 |
9 | ### Compiling
10 |
11 | ```
12 | npm run start
13 | ```
14 |
15 | For the REST wraper
16 | ```
17 | npm run start:rest
18 | ```
19 |
20 | Go to http://localhost:3000/graphiql to see GraphiQL
21 |
22 | -----
23 |
24 | Read full post at https://time2hack.com/2018/02/introduction-quick-guide-to-graphql-for-backend-frontend/
25 |
--------------------------------------------------------------------------------
/server/from-rest/index.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const bodyParser = require('body-parser');
3 | const { graphqlExpress, graphiqlExpress } = require('apollo-server-express');
4 | const { makeExecutableSchema } = require('graphql-tools');
5 | const fetch = require('node-fetch');
6 |
7 | const typeDefs = `
8 | type Post {
9 | id: Int!
10 | userId: Int
11 | title: String
12 | body: String
13 | }
14 | type Query {
15 | posts: [Post]
16 | }
17 | `;
18 | const resolvers = {
19 | Query: {
20 | posts: async () => fetch('https://jsonplaceholder.typicode.com/posts')
21 | .then(response => response.json())
22 | }
23 | }
24 |
25 | // Put together a schema
26 | const schema = makeExecutableSchema({
27 | typeDefs,
28 | resolvers,
29 | });
30 |
31 | // Initialize the app
32 | const app = express();
33 |
34 | // The GraphQL endpoint
35 | app.use('/graphql', bodyParser.json(), graphqlExpress({ schema }));
36 |
37 | // GraphiQL, a visual editor for queries
38 | app.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql' }));
39 |
40 | // Start the server
41 | app.listen(3000, () => {
42 | console.log('Go to http://localhost:3000/graphiql to run queries!');
43 | });
44 |
--------------------------------------------------------------------------------
/server/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@graphql-demo/server",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@apollo/protobufjs": {
8 | "version": "1.0.4",
9 | "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.4.tgz",
10 | "integrity": "sha512-EE3zx+/D/wur/JiLp6VCiw1iYdyy1lCJMf8CGPkLeDt5QJrN4N8tKFx33Ah4V30AUQzMk7Uz4IXKZ1LOj124gA==",
11 | "requires": {
12 | "@protobufjs/aspromise": "^1.1.2",
13 | "@protobufjs/base64": "^1.1.2",
14 | "@protobufjs/codegen": "^2.0.4",
15 | "@protobufjs/eventemitter": "^1.1.0",
16 | "@protobufjs/fetch": "^1.1.0",
17 | "@protobufjs/float": "^1.0.2",
18 | "@protobufjs/inquire": "^1.1.0",
19 | "@protobufjs/path": "^1.1.2",
20 | "@protobufjs/pool": "^1.1.0",
21 | "@protobufjs/utf8": "^1.1.0",
22 | "@types/long": "^4.0.0",
23 | "@types/node": "^10.1.0",
24 | "long": "^4.0.0"
25 | },
26 | "dependencies": {
27 | "@types/node": {
28 | "version": "10.17.28",
29 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz",
30 | "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ=="
31 | }
32 | }
33 | },
34 | "@apollographql/apollo-tools": {
35 | "version": "0.4.8",
36 | "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz",
37 | "integrity": "sha512-W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA==",
38 | "requires": {
39 | "apollo-env": "^0.6.5"
40 | }
41 | },
42 | "@apollographql/graphql-playground-html": {
43 | "version": "1.6.24",
44 | "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz",
45 | "integrity": "sha512-8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ=="
46 | },
47 | "@protobufjs/aspromise": {
48 | "version": "1.1.2",
49 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
50 | "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
51 | },
52 | "@protobufjs/base64": {
53 | "version": "1.1.2",
54 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
55 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
56 | },
57 | "@protobufjs/codegen": {
58 | "version": "2.0.4",
59 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
60 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
61 | },
62 | "@protobufjs/eventemitter": {
63 | "version": "1.1.0",
64 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
65 | "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
66 | },
67 | "@protobufjs/fetch": {
68 | "version": "1.1.0",
69 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
70 | "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
71 | "requires": {
72 | "@protobufjs/aspromise": "^1.1.1",
73 | "@protobufjs/inquire": "^1.1.0"
74 | }
75 | },
76 | "@protobufjs/float": {
77 | "version": "1.0.2",
78 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
79 | "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
80 | },
81 | "@protobufjs/inquire": {
82 | "version": "1.1.0",
83 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
84 | "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
85 | },
86 | "@protobufjs/path": {
87 | "version": "1.1.2",
88 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
89 | "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
90 | },
91 | "@protobufjs/pool": {
92 | "version": "1.1.0",
93 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
94 | "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
95 | },
96 | "@protobufjs/utf8": {
97 | "version": "1.1.0",
98 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
99 | "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
100 | },
101 | "@types/accepts": {
102 | "version": "1.3.5",
103 | "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
104 | "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==",
105 | "requires": {
106 | "@types/node": "*"
107 | }
108 | },
109 | "@types/body-parser": {
110 | "version": "1.19.0",
111 | "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
112 | "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
113 | "requires": {
114 | "@types/connect": "*",
115 | "@types/node": "*"
116 | }
117 | },
118 | "@types/connect": {
119 | "version": "3.4.33",
120 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz",
121 | "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==",
122 | "requires": {
123 | "@types/node": "*"
124 | }
125 | },
126 | "@types/content-disposition": {
127 | "version": "0.5.3",
128 | "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz",
129 | "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg=="
130 | },
131 | "@types/cookies": {
132 | "version": "0.7.4",
133 | "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz",
134 | "integrity": "sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw==",
135 | "requires": {
136 | "@types/connect": "*",
137 | "@types/express": "*",
138 | "@types/keygrip": "*",
139 | "@types/node": "*"
140 | }
141 | },
142 | "@types/cors": {
143 | "version": "2.8.7",
144 | "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.7.tgz",
145 | "integrity": "sha512-sOdDRU3oRS7LBNTIqwDkPJyq0lpHYcbMTt0TrjzsXbk/e37hcLTH6eZX7CdbDeN0yJJvzw9hFBZkbtCSbk/jAQ==",
146 | "requires": {
147 | "@types/express": "*"
148 | }
149 | },
150 | "@types/express": {
151 | "version": "4.17.4",
152 | "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.4.tgz",
153 | "integrity": "sha512-DO1L53rGqIDUEvOjJKmbMEQ5Z+BM2cIEPy/eV3En+s166Gz+FeuzRerxcab757u/U4v4XF4RYrZPmqKa+aY/2w==",
154 | "requires": {
155 | "@types/body-parser": "*",
156 | "@types/express-serve-static-core": "*",
157 | "@types/qs": "*",
158 | "@types/serve-static": "*"
159 | }
160 | },
161 | "@types/express-serve-static-core": {
162 | "version": "4.17.9",
163 | "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz",
164 | "integrity": "sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==",
165 | "requires": {
166 | "@types/node": "*",
167 | "@types/qs": "*",
168 | "@types/range-parser": "*"
169 | }
170 | },
171 | "@types/fs-capacitor": {
172 | "version": "2.0.0",
173 | "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz",
174 | "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==",
175 | "requires": {
176 | "@types/node": "*"
177 | }
178 | },
179 | "@types/graphql-upload": {
180 | "version": "8.0.3",
181 | "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.3.tgz",
182 | "integrity": "sha512-hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA==",
183 | "requires": {
184 | "@types/express": "*",
185 | "@types/fs-capacitor": "*",
186 | "@types/koa": "*",
187 | "graphql": "^14.5.3"
188 | },
189 | "dependencies": {
190 | "graphql": {
191 | "version": "14.7.0",
192 | "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz",
193 | "integrity": "sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==",
194 | "requires": {
195 | "iterall": "^1.2.2"
196 | }
197 | },
198 | "iterall": {
199 | "version": "1.3.0",
200 | "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
201 | "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
202 | }
203 | }
204 | },
205 | "@types/http-assert": {
206 | "version": "1.5.1",
207 | "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz",
208 | "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ=="
209 | },
210 | "@types/keygrip": {
211 | "version": "1.0.2",
212 | "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz",
213 | "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw=="
214 | },
215 | "@types/koa": {
216 | "version": "2.11.3",
217 | "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.3.tgz",
218 | "integrity": "sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q==",
219 | "requires": {
220 | "@types/accepts": "*",
221 | "@types/content-disposition": "*",
222 | "@types/cookies": "*",
223 | "@types/http-assert": "*",
224 | "@types/keygrip": "*",
225 | "@types/koa-compose": "*",
226 | "@types/node": "*"
227 | }
228 | },
229 | "@types/koa-compose": {
230 | "version": "3.2.5",
231 | "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
232 | "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==",
233 | "requires": {
234 | "@types/koa": "*"
235 | }
236 | },
237 | "@types/long": {
238 | "version": "4.0.1",
239 | "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
240 | "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
241 | },
242 | "@types/mime": {
243 | "version": "2.0.3",
244 | "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz",
245 | "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
246 | },
247 | "@types/node": {
248 | "version": "14.0.27",
249 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz",
250 | "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g=="
251 | },
252 | "@types/node-fetch": {
253 | "version": "2.5.7",
254 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz",
255 | "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==",
256 | "requires": {
257 | "@types/node": "*",
258 | "form-data": "^3.0.0"
259 | }
260 | },
261 | "@types/qs": {
262 | "version": "6.9.4",
263 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz",
264 | "integrity": "sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ=="
265 | },
266 | "@types/range-parser": {
267 | "version": "1.2.3",
268 | "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
269 | "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
270 | },
271 | "@types/serve-static": {
272 | "version": "1.13.5",
273 | "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz",
274 | "integrity": "sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==",
275 | "requires": {
276 | "@types/express-serve-static-core": "*",
277 | "@types/mime": "*"
278 | }
279 | },
280 | "@types/ws": {
281 | "version": "7.2.6",
282 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz",
283 | "integrity": "sha512-Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ==",
284 | "requires": {
285 | "@types/node": "*"
286 | }
287 | },
288 | "@types/zen-observable": {
289 | "version": "0.5.3",
290 | "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.5.3.tgz",
291 | "integrity": "sha512-aDvGDAHcVfUqNmd8q4//cHAP+HGxsbChbBbuk3+kMVk5TTxfWLpQWvVN3+UPjohLnwMYN7jr6BWNn2cYNqdm7g=="
292 | },
293 | "@wry/equality": {
294 | "version": "0.1.11",
295 | "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
296 | "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
297 | "requires": {
298 | "tslib": "^1.9.3"
299 | }
300 | },
301 | "accepts": {
302 | "version": "1.3.8",
303 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
304 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
305 | "requires": {
306 | "mime-types": "~2.1.34",
307 | "negotiator": "0.6.3"
308 | },
309 | "dependencies": {
310 | "mime-db": {
311 | "version": "1.52.0",
312 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
313 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
314 | },
315 | "mime-types": {
316 | "version": "2.1.35",
317 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
318 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
319 | "requires": {
320 | "mime-db": "1.52.0"
321 | }
322 | }
323 | }
324 | },
325 | "apollo-cache-control": {
326 | "version": "0.11.1",
327 | "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz",
328 | "integrity": "sha512-6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ==",
329 | "requires": {
330 | "apollo-server-env": "^2.4.5",
331 | "apollo-server-plugin-base": "^0.9.1"
332 | }
333 | },
334 | "apollo-datasource": {
335 | "version": "0.7.2",
336 | "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz",
337 | "integrity": "sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==",
338 | "requires": {
339 | "apollo-server-caching": "^0.5.2",
340 | "apollo-server-env": "^2.4.5"
341 | }
342 | },
343 | "apollo-engine-reporting": {
344 | "version": "2.3.0",
345 | "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.3.0.tgz",
346 | "integrity": "sha512-SbcPLFuUZcRqDEZ6mSs8uHM9Ftr8yyt2IEu0JA8c3LNBmYXSLM7MHqFe80SVcosYSTBgtMz8mLJO8orhYoSYZw==",
347 | "requires": {
348 | "apollo-engine-reporting-protobuf": "^0.5.2",
349 | "apollo-graphql": "^0.5.0",
350 | "apollo-server-caching": "^0.5.2",
351 | "apollo-server-env": "^2.4.5",
352 | "apollo-server-errors": "^2.4.2",
353 | "apollo-server-plugin-base": "^0.9.1",
354 | "apollo-server-types": "^0.5.1",
355 | "async-retry": "^1.2.1",
356 | "uuid": "^8.0.0"
357 | },
358 | "dependencies": {
359 | "uuid": {
360 | "version": "8.3.0",
361 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz",
362 | "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ=="
363 | }
364 | }
365 | },
366 | "apollo-engine-reporting-protobuf": {
367 | "version": "0.5.2",
368 | "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.2.tgz",
369 | "integrity": "sha512-4wm9FR3B7UvJxcK/69rOiS5CAJPEYKufeRWb257ZLfX7NGFTMqvbc1hu4q8Ch7swB26rTpkzfsftLED9DqH9qg==",
370 | "requires": {
371 | "@apollo/protobufjs": "^1.0.3"
372 | }
373 | },
374 | "apollo-env": {
375 | "version": "0.6.5",
376 | "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz",
377 | "integrity": "sha512-jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg==",
378 | "requires": {
379 | "@types/node-fetch": "2.5.7",
380 | "core-js": "^3.0.1",
381 | "node-fetch": "^2.2.0",
382 | "sha.js": "^2.4.11"
383 | },
384 | "dependencies": {
385 | "node-fetch": {
386 | "version": "2.6.0",
387 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
388 | "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
389 | }
390 | }
391 | },
392 | "apollo-graphql": {
393 | "version": "0.5.0",
394 | "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz",
395 | "integrity": "sha512-YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig==",
396 | "requires": {
397 | "apollo-env": "^0.6.5",
398 | "lodash.sortby": "^4.7.0"
399 | }
400 | },
401 | "apollo-link": {
402 | "version": "1.1.0",
403 | "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.1.0.tgz",
404 | "integrity": "sha512-8SP3GtYSMpLa6KJaGfgr3NO/wWmB7xLWASQt3Agf08SljGNx3SOt99Yv5VtM8FPs62BoQmESX73IRmtrD1exdA==",
405 | "requires": {
406 | "@types/zen-observable": "0.5.3",
407 | "apollo-utilities": "1.0.6",
408 | "zen-observable": "0.7.1"
409 | }
410 | },
411 | "apollo-server-caching": {
412 | "version": "0.5.2",
413 | "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz",
414 | "integrity": "sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==",
415 | "requires": {
416 | "lru-cache": "^5.0.0"
417 | }
418 | },
419 | "apollo-server-core": {
420 | "version": "2.16.1",
421 | "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.16.1.tgz",
422 | "integrity": "sha512-nuwn5ZBbmzPwDetb3FgiFFJlNK7ZBFg8kis/raymrjd3eBGdNcOyMTJDl6J9673X9Xqp+dXQmFYDW/G3G8S1YA==",
423 | "requires": {
424 | "@apollographql/apollo-tools": "^0.4.3",
425 | "@apollographql/graphql-playground-html": "1.6.26",
426 | "@types/graphql-upload": "^8.0.0",
427 | "@types/ws": "^7.0.0",
428 | "apollo-cache-control": "^0.11.1",
429 | "apollo-datasource": "^0.7.2",
430 | "apollo-engine-reporting": "^2.3.0",
431 | "apollo-server-caching": "^0.5.2",
432 | "apollo-server-env": "^2.4.5",
433 | "apollo-server-errors": "^2.4.2",
434 | "apollo-server-plugin-base": "^0.9.1",
435 | "apollo-server-types": "^0.5.1",
436 | "apollo-tracing": "^0.11.1",
437 | "fast-json-stable-stringify": "^2.0.0",
438 | "graphql-extensions": "^0.12.4",
439 | "graphql-tag": "^2.9.2",
440 | "graphql-tools": "^4.0.0",
441 | "graphql-upload": "^8.0.2",
442 | "loglevel": "^1.6.7",
443 | "sha.js": "^2.4.11",
444 | "subscriptions-transport-ws": "^0.9.11",
445 | "ws": "^6.0.0"
446 | },
447 | "dependencies": {
448 | "@apollographql/graphql-playground-html": {
449 | "version": "1.6.26",
450 | "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz",
451 | "integrity": "sha512-XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ==",
452 | "requires": {
453 | "xss": "^1.0.6"
454 | }
455 | },
456 | "apollo-link": {
457 | "version": "1.2.14",
458 | "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
459 | "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
460 | "requires": {
461 | "apollo-utilities": "^1.3.0",
462 | "ts-invariant": "^0.4.0",
463 | "tslib": "^1.9.3",
464 | "zen-observable-ts": "^0.8.21"
465 | },
466 | "dependencies": {
467 | "apollo-utilities": {
468 | "version": "1.3.4",
469 | "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
470 | "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
471 | "requires": {
472 | "@wry/equality": "^0.1.2",
473 | "fast-json-stable-stringify": "^2.0.0",
474 | "ts-invariant": "^0.4.0",
475 | "tslib": "^1.10.0"
476 | }
477 | }
478 | }
479 | },
480 | "graphql-tools": {
481 | "version": "4.0.8",
482 | "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz",
483 | "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==",
484 | "requires": {
485 | "apollo-link": "^1.2.14",
486 | "apollo-utilities": "^1.0.1",
487 | "deprecated-decorator": "^0.1.6",
488 | "iterall": "^1.1.3",
489 | "uuid": "^3.1.0"
490 | }
491 | }
492 | }
493 | },
494 | "apollo-server-env": {
495 | "version": "2.4.5",
496 | "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz",
497 | "integrity": "sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==",
498 | "requires": {
499 | "node-fetch": "^2.1.2",
500 | "util.promisify": "^1.0.0"
501 | },
502 | "dependencies": {
503 | "node-fetch": {
504 | "version": "2.6.0",
505 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
506 | "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
507 | }
508 | }
509 | },
510 | "apollo-server-errors": {
511 | "version": "2.4.2",
512 | "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz",
513 | "integrity": "sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ=="
514 | },
515 | "apollo-server-express": {
516 | "version": "2.14.2",
517 | "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.14.2.tgz",
518 | "integrity": "sha512-iYyZm0kQqkM561i9l0WC9HbJsGZJbHP9bhnWaa1Itd+yNBS2AJFp6mRR3hQacsWXUw7ewaKAracMIggvfSH5Aw==",
519 | "requires": {
520 | "@apollographql/graphql-playground-html": "1.6.24",
521 | "@types/accepts": "^1.3.5",
522 | "@types/body-parser": "1.19.0",
523 | "@types/cors": "^2.8.4",
524 | "@types/express": "4.17.4",
525 | "accepts": "^1.3.5",
526 | "apollo-server-core": "^2.14.2",
527 | "apollo-server-types": "^0.5.0",
528 | "body-parser": "^1.18.3",
529 | "cors": "^2.8.4",
530 | "express": "^4.17.1",
531 | "graphql-subscriptions": "^1.0.0",
532 | "graphql-tools": "^4.0.0",
533 | "parseurl": "^1.3.2",
534 | "subscriptions-transport-ws": "^0.9.16",
535 | "type-is": "^1.6.16"
536 | },
537 | "dependencies": {
538 | "accepts": {
539 | "version": "1.3.7",
540 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
541 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
542 | "requires": {
543 | "mime-types": "~2.1.24",
544 | "negotiator": "0.6.2"
545 | }
546 | },
547 | "apollo-link": {
548 | "version": "1.2.14",
549 | "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
550 | "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
551 | "requires": {
552 | "apollo-utilities": "^1.3.0",
553 | "ts-invariant": "^0.4.0",
554 | "tslib": "^1.9.3",
555 | "zen-observable-ts": "^0.8.21"
556 | },
557 | "dependencies": {
558 | "apollo-utilities": {
559 | "version": "1.3.4",
560 | "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
561 | "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
562 | "requires": {
563 | "@wry/equality": "^0.1.2",
564 | "fast-json-stable-stringify": "^2.0.0",
565 | "ts-invariant": "^0.4.0",
566 | "tslib": "^1.10.0"
567 | }
568 | }
569 | }
570 | },
571 | "body-parser": {
572 | "version": "1.19.0",
573 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
574 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
575 | "requires": {
576 | "bytes": "3.1.0",
577 | "content-type": "~1.0.4",
578 | "debug": "2.6.9",
579 | "depd": "~1.1.2",
580 | "http-errors": "1.7.2",
581 | "iconv-lite": "0.4.24",
582 | "on-finished": "~2.3.0",
583 | "qs": "6.7.0",
584 | "raw-body": "2.4.0",
585 | "type-is": "~1.6.17"
586 | }
587 | },
588 | "bytes": {
589 | "version": "3.1.0",
590 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
591 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
592 | },
593 | "content-disposition": {
594 | "version": "0.5.3",
595 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
596 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
597 | "requires": {
598 | "safe-buffer": "5.1.2"
599 | }
600 | },
601 | "cookie": {
602 | "version": "0.4.0",
603 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
604 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
605 | },
606 | "express": {
607 | "version": "4.17.1",
608 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
609 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
610 | "requires": {
611 | "accepts": "~1.3.7",
612 | "array-flatten": "1.1.1",
613 | "body-parser": "1.19.0",
614 | "content-disposition": "0.5.3",
615 | "content-type": "~1.0.4",
616 | "cookie": "0.4.0",
617 | "cookie-signature": "1.0.6",
618 | "debug": "2.6.9",
619 | "depd": "~1.1.2",
620 | "encodeurl": "~1.0.2",
621 | "escape-html": "~1.0.3",
622 | "etag": "~1.8.1",
623 | "finalhandler": "~1.1.2",
624 | "fresh": "0.5.2",
625 | "merge-descriptors": "1.0.1",
626 | "methods": "~1.1.2",
627 | "on-finished": "~2.3.0",
628 | "parseurl": "~1.3.3",
629 | "path-to-regexp": "0.1.7",
630 | "proxy-addr": "~2.0.5",
631 | "qs": "6.7.0",
632 | "range-parser": "~1.2.1",
633 | "safe-buffer": "5.1.2",
634 | "send": "0.17.1",
635 | "serve-static": "1.14.1",
636 | "setprototypeof": "1.1.1",
637 | "statuses": "~1.5.0",
638 | "type-is": "~1.6.18",
639 | "utils-merge": "1.0.1",
640 | "vary": "~1.1.2"
641 | },
642 | "dependencies": {
643 | "parseurl": {
644 | "version": "1.3.3",
645 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
646 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
647 | }
648 | }
649 | },
650 | "finalhandler": {
651 | "version": "1.1.2",
652 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
653 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
654 | "requires": {
655 | "debug": "2.6.9",
656 | "encodeurl": "~1.0.2",
657 | "escape-html": "~1.0.3",
658 | "on-finished": "~2.3.0",
659 | "parseurl": "~1.3.3",
660 | "statuses": "~1.5.0",
661 | "unpipe": "~1.0.0"
662 | },
663 | "dependencies": {
664 | "parseurl": {
665 | "version": "1.3.3",
666 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
667 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
668 | }
669 | }
670 | },
671 | "graphql-tools": {
672 | "version": "4.0.8",
673 | "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz",
674 | "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==",
675 | "requires": {
676 | "apollo-link": "^1.2.14",
677 | "apollo-utilities": "^1.0.1",
678 | "deprecated-decorator": "^0.1.6",
679 | "iterall": "^1.1.3",
680 | "uuid": "^3.1.0"
681 | }
682 | },
683 | "http-errors": {
684 | "version": "1.7.2",
685 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
686 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
687 | "requires": {
688 | "depd": "~1.1.2",
689 | "inherits": "2.0.3",
690 | "setprototypeof": "1.1.1",
691 | "statuses": ">= 1.5.0 < 2",
692 | "toidentifier": "1.0.0"
693 | }
694 | },
695 | "iconv-lite": {
696 | "version": "0.4.24",
697 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
698 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
699 | "requires": {
700 | "safer-buffer": ">= 2.1.2 < 3"
701 | }
702 | },
703 | "ipaddr.js": {
704 | "version": "1.9.1",
705 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
706 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
707 | },
708 | "mime": {
709 | "version": "1.6.0",
710 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
711 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
712 | },
713 | "mime-db": {
714 | "version": "1.44.0",
715 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
716 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
717 | },
718 | "mime-types": {
719 | "version": "2.1.27",
720 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
721 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
722 | "requires": {
723 | "mime-db": "1.44.0"
724 | }
725 | },
726 | "ms": {
727 | "version": "2.1.1",
728 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
729 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
730 | },
731 | "negotiator": {
732 | "version": "0.6.2",
733 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
734 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
735 | },
736 | "proxy-addr": {
737 | "version": "2.0.6",
738 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
739 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
740 | "requires": {
741 | "forwarded": "~0.1.2",
742 | "ipaddr.js": "1.9.1"
743 | }
744 | },
745 | "qs": {
746 | "version": "6.7.0",
747 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
748 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
749 | },
750 | "range-parser": {
751 | "version": "1.2.1",
752 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
753 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
754 | },
755 | "raw-body": {
756 | "version": "2.4.0",
757 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
758 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
759 | "requires": {
760 | "bytes": "3.1.0",
761 | "http-errors": "1.7.2",
762 | "iconv-lite": "0.4.24",
763 | "unpipe": "1.0.0"
764 | }
765 | },
766 | "safe-buffer": {
767 | "version": "5.1.2",
768 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
769 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
770 | },
771 | "send": {
772 | "version": "0.17.1",
773 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
774 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
775 | "requires": {
776 | "debug": "2.6.9",
777 | "depd": "~1.1.2",
778 | "destroy": "~1.0.4",
779 | "encodeurl": "~1.0.2",
780 | "escape-html": "~1.0.3",
781 | "etag": "~1.8.1",
782 | "fresh": "0.5.2",
783 | "http-errors": "~1.7.2",
784 | "mime": "1.6.0",
785 | "ms": "2.1.1",
786 | "on-finished": "~2.3.0",
787 | "range-parser": "~1.2.1",
788 | "statuses": "~1.5.0"
789 | }
790 | },
791 | "serve-static": {
792 | "version": "1.14.1",
793 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
794 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
795 | "requires": {
796 | "encodeurl": "~1.0.2",
797 | "escape-html": "~1.0.3",
798 | "parseurl": "~1.3.3",
799 | "send": "0.17.1"
800 | },
801 | "dependencies": {
802 | "parseurl": {
803 | "version": "1.3.3",
804 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
805 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
806 | }
807 | }
808 | },
809 | "setprototypeof": {
810 | "version": "1.1.1",
811 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
812 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
813 | },
814 | "statuses": {
815 | "version": "1.5.0",
816 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
817 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
818 | },
819 | "type-is": {
820 | "version": "1.6.18",
821 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
822 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
823 | "requires": {
824 | "media-typer": "0.3.0",
825 | "mime-types": "~2.1.24"
826 | }
827 | }
828 | }
829 | },
830 | "apollo-server-plugin-base": {
831 | "version": "0.9.1",
832 | "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.1.tgz",
833 | "integrity": "sha512-kvrX4Z3FdpjrZdHkyl5iY2A1Wvp4b6KQp00DeZqss7GyyKNUBKr80/7RQgBLEw7EWM7WB19j459xM/TjvW0FKQ==",
834 | "requires": {
835 | "apollo-server-types": "^0.5.1"
836 | }
837 | },
838 | "apollo-server-types": {
839 | "version": "0.5.1",
840 | "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.1.tgz",
841 | "integrity": "sha512-my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA==",
842 | "requires": {
843 | "apollo-engine-reporting-protobuf": "^0.5.2",
844 | "apollo-server-caching": "^0.5.2",
845 | "apollo-server-env": "^2.4.5"
846 | }
847 | },
848 | "apollo-tracing": {
849 | "version": "0.11.1",
850 | "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.1.tgz",
851 | "integrity": "sha512-l7g+uILw7v32GA46IRXIx5XXbZhFI96BhSqrGK9yyvfq+NMcvVZrj3kIhRImPGhAjMdV+5biA/jztabElAbDjg==",
852 | "requires": {
853 | "apollo-server-env": "^2.4.5",
854 | "apollo-server-plugin-base": "^0.9.1"
855 | }
856 | },
857 | "apollo-utilities": {
858 | "version": "1.0.6",
859 | "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.6.tgz",
860 | "integrity": "sha512-3EUdGs19ZU5hN0zPF0h27blkd4aFqFxF0Qkec8o7iPFzxFeEf0UJGPg/b1St417K7Rta6/EDq2cYBQEzvOVq1g=="
861 | },
862 | "array-flatten": {
863 | "version": "1.1.1",
864 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
865 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
866 | },
867 | "async-limiter": {
868 | "version": "1.0.1",
869 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
870 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
871 | },
872 | "async-retry": {
873 | "version": "1.3.1",
874 | "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
875 | "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
876 | "requires": {
877 | "retry": "0.12.0"
878 | }
879 | },
880 | "asynckit": {
881 | "version": "0.4.0",
882 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
883 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
884 | },
885 | "backo2": {
886 | "version": "1.0.2",
887 | "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
888 | "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
889 | },
890 | "body-parser": {
891 | "version": "1.18.2",
892 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
893 | "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
894 | "requires": {
895 | "bytes": "3.0.0",
896 | "content-type": "1.0.4",
897 | "debug": "2.6.9",
898 | "depd": "1.1.2",
899 | "http-errors": "1.6.2",
900 | "iconv-lite": "0.4.19",
901 | "on-finished": "2.3.0",
902 | "qs": "6.5.1",
903 | "raw-body": "2.3.2",
904 | "type-is": "1.6.15"
905 | }
906 | },
907 | "busboy": {
908 | "version": "0.3.1",
909 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
910 | "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
911 | "requires": {
912 | "dicer": "0.3.0"
913 | }
914 | },
915 | "bytes": {
916 | "version": "3.0.0",
917 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
918 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
919 | },
920 | "call-bind": {
921 | "version": "1.0.2",
922 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
923 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
924 | "requires": {
925 | "function-bind": "^1.1.1",
926 | "get-intrinsic": "^1.0.2"
927 | }
928 | },
929 | "combined-stream": {
930 | "version": "1.0.8",
931 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
932 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
933 | "requires": {
934 | "delayed-stream": "~1.0.0"
935 | }
936 | },
937 | "commander": {
938 | "version": "2.20.3",
939 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
940 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
941 | },
942 | "content-disposition": {
943 | "version": "0.5.4",
944 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
945 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
946 | "requires": {
947 | "safe-buffer": "5.2.1"
948 | },
949 | "dependencies": {
950 | "safe-buffer": {
951 | "version": "5.2.1",
952 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
953 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
954 | }
955 | }
956 | },
957 | "content-type": {
958 | "version": "1.0.4",
959 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
960 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
961 | },
962 | "cookie": {
963 | "version": "0.5.0",
964 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
965 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
966 | },
967 | "cookie-signature": {
968 | "version": "1.0.6",
969 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
970 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
971 | },
972 | "core-js": {
973 | "version": "3.6.5",
974 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
975 | "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
976 | },
977 | "cors": {
978 | "version": "2.8.4",
979 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz",
980 | "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=",
981 | "requires": {
982 | "object-assign": "4.1.1",
983 | "vary": "1.1.2"
984 | }
985 | },
986 | "cssfilter": {
987 | "version": "0.0.10",
988 | "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
989 | "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4="
990 | },
991 | "debug": {
992 | "version": "2.6.9",
993 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
994 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
995 | "requires": {
996 | "ms": "2.0.0"
997 | }
998 | },
999 | "define-properties": {
1000 | "version": "1.1.3",
1001 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
1002 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
1003 | "requires": {
1004 | "object-keys": "^1.0.12"
1005 | }
1006 | },
1007 | "delayed-stream": {
1008 | "version": "1.0.0",
1009 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1010 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
1011 | },
1012 | "depd": {
1013 | "version": "1.1.2",
1014 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1015 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
1016 | },
1017 | "deprecated-decorator": {
1018 | "version": "0.1.6",
1019 | "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz",
1020 | "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc="
1021 | },
1022 | "destroy": {
1023 | "version": "1.0.4",
1024 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
1025 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
1026 | },
1027 | "dicer": {
1028 | "version": "0.3.0",
1029 | "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
1030 | "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
1031 | "requires": {
1032 | "streamsearch": "0.1.2"
1033 | }
1034 | },
1035 | "ee-first": {
1036 | "version": "1.1.1",
1037 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
1038 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
1039 | },
1040 | "encodeurl": {
1041 | "version": "1.0.2",
1042 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1043 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
1044 | },
1045 | "es-abstract": {
1046 | "version": "1.17.6",
1047 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
1048 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
1049 | "requires": {
1050 | "es-to-primitive": "^1.2.1",
1051 | "function-bind": "^1.1.1",
1052 | "has": "^1.0.3",
1053 | "has-symbols": "^1.0.1",
1054 | "is-callable": "^1.2.0",
1055 | "is-regex": "^1.1.0",
1056 | "object-inspect": "^1.7.0",
1057 | "object-keys": "^1.1.1",
1058 | "object.assign": "^4.1.0",
1059 | "string.prototype.trimend": "^1.0.1",
1060 | "string.prototype.trimstart": "^1.0.1"
1061 | }
1062 | },
1063 | "es-to-primitive": {
1064 | "version": "1.2.1",
1065 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
1066 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
1067 | "requires": {
1068 | "is-callable": "^1.1.4",
1069 | "is-date-object": "^1.0.1",
1070 | "is-symbol": "^1.0.2"
1071 | }
1072 | },
1073 | "escape-html": {
1074 | "version": "1.0.3",
1075 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1076 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
1077 | },
1078 | "etag": {
1079 | "version": "1.8.1",
1080 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1081 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
1082 | },
1083 | "eventemitter3": {
1084 | "version": "3.1.2",
1085 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
1086 | "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
1087 | },
1088 | "express": {
1089 | "version": "4.18.0",
1090 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.0.tgz",
1091 | "integrity": "sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg==",
1092 | "requires": {
1093 | "accepts": "~1.3.8",
1094 | "array-flatten": "1.1.1",
1095 | "body-parser": "1.20.0",
1096 | "content-disposition": "0.5.4",
1097 | "content-type": "~1.0.4",
1098 | "cookie": "0.5.0",
1099 | "cookie-signature": "1.0.6",
1100 | "debug": "2.6.9",
1101 | "depd": "2.0.0",
1102 | "encodeurl": "~1.0.2",
1103 | "escape-html": "~1.0.3",
1104 | "etag": "~1.8.1",
1105 | "finalhandler": "1.2.0",
1106 | "fresh": "0.5.2",
1107 | "http-errors": "2.0.0",
1108 | "merge-descriptors": "1.0.1",
1109 | "methods": "~1.1.2",
1110 | "on-finished": "2.4.1",
1111 | "parseurl": "~1.3.3",
1112 | "path-to-regexp": "0.1.7",
1113 | "proxy-addr": "~2.0.7",
1114 | "qs": "6.10.3",
1115 | "range-parser": "~1.2.1",
1116 | "safe-buffer": "5.2.1",
1117 | "send": "0.18.0",
1118 | "serve-static": "1.15.0",
1119 | "setprototypeof": "1.2.0",
1120 | "statuses": "2.0.1",
1121 | "type-is": "~1.6.18",
1122 | "utils-merge": "1.0.1",
1123 | "vary": "~1.1.2"
1124 | },
1125 | "dependencies": {
1126 | "body-parser": {
1127 | "version": "1.20.0",
1128 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
1129 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
1130 | "requires": {
1131 | "bytes": "3.1.2",
1132 | "content-type": "~1.0.4",
1133 | "debug": "2.6.9",
1134 | "depd": "2.0.0",
1135 | "destroy": "1.2.0",
1136 | "http-errors": "2.0.0",
1137 | "iconv-lite": "0.4.24",
1138 | "on-finished": "2.4.1",
1139 | "qs": "6.10.3",
1140 | "raw-body": "2.5.1",
1141 | "type-is": "~1.6.18",
1142 | "unpipe": "1.0.0"
1143 | }
1144 | },
1145 | "bytes": {
1146 | "version": "3.1.2",
1147 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
1148 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
1149 | },
1150 | "depd": {
1151 | "version": "2.0.0",
1152 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1153 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1154 | },
1155 | "destroy": {
1156 | "version": "1.2.0",
1157 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
1158 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
1159 | },
1160 | "http-errors": {
1161 | "version": "2.0.0",
1162 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1163 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1164 | "requires": {
1165 | "depd": "2.0.0",
1166 | "inherits": "2.0.4",
1167 | "setprototypeof": "1.2.0",
1168 | "statuses": "2.0.1",
1169 | "toidentifier": "1.0.1"
1170 | }
1171 | },
1172 | "iconv-lite": {
1173 | "version": "0.4.24",
1174 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1175 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1176 | "requires": {
1177 | "safer-buffer": ">= 2.1.2 < 3"
1178 | }
1179 | },
1180 | "inherits": {
1181 | "version": "2.0.4",
1182 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1183 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1184 | },
1185 | "mime-db": {
1186 | "version": "1.52.0",
1187 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1188 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
1189 | },
1190 | "mime-types": {
1191 | "version": "2.1.35",
1192 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1193 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1194 | "requires": {
1195 | "mime-db": "1.52.0"
1196 | }
1197 | },
1198 | "on-finished": {
1199 | "version": "2.4.1",
1200 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1201 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1202 | "requires": {
1203 | "ee-first": "1.1.1"
1204 | }
1205 | },
1206 | "parseurl": {
1207 | "version": "1.3.3",
1208 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1209 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1210 | },
1211 | "qs": {
1212 | "version": "6.10.3",
1213 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
1214 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
1215 | "requires": {
1216 | "side-channel": "^1.0.4"
1217 | }
1218 | },
1219 | "raw-body": {
1220 | "version": "2.5.1",
1221 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
1222 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
1223 | "requires": {
1224 | "bytes": "3.1.2",
1225 | "http-errors": "2.0.0",
1226 | "iconv-lite": "0.4.24",
1227 | "unpipe": "1.0.0"
1228 | }
1229 | },
1230 | "safe-buffer": {
1231 | "version": "5.2.1",
1232 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1233 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1234 | },
1235 | "setprototypeof": {
1236 | "version": "1.2.0",
1237 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1238 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1239 | },
1240 | "statuses": {
1241 | "version": "2.0.1",
1242 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1243 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
1244 | },
1245 | "toidentifier": {
1246 | "version": "1.0.1",
1247 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1248 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
1249 | },
1250 | "type-is": {
1251 | "version": "1.6.18",
1252 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1253 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1254 | "requires": {
1255 | "media-typer": "0.3.0",
1256 | "mime-types": "~2.1.24"
1257 | }
1258 | }
1259 | }
1260 | },
1261 | "fast-json-stable-stringify": {
1262 | "version": "2.1.0",
1263 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1264 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
1265 | },
1266 | "finalhandler": {
1267 | "version": "1.2.0",
1268 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
1269 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
1270 | "requires": {
1271 | "debug": "2.6.9",
1272 | "encodeurl": "~1.0.2",
1273 | "escape-html": "~1.0.3",
1274 | "on-finished": "2.4.1",
1275 | "parseurl": "~1.3.3",
1276 | "statuses": "2.0.1",
1277 | "unpipe": "~1.0.0"
1278 | },
1279 | "dependencies": {
1280 | "on-finished": {
1281 | "version": "2.4.1",
1282 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1283 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1284 | "requires": {
1285 | "ee-first": "1.1.1"
1286 | }
1287 | },
1288 | "parseurl": {
1289 | "version": "1.3.3",
1290 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1291 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1292 | },
1293 | "statuses": {
1294 | "version": "2.0.1",
1295 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1296 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
1297 | }
1298 | }
1299 | },
1300 | "form-data": {
1301 | "version": "3.0.0",
1302 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
1303 | "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
1304 | "requires": {
1305 | "asynckit": "^0.4.0",
1306 | "combined-stream": "^1.0.8",
1307 | "mime-types": "^2.1.12"
1308 | }
1309 | },
1310 | "forwarded": {
1311 | "version": "0.1.2",
1312 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
1313 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
1314 | },
1315 | "fresh": {
1316 | "version": "0.5.2",
1317 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1318 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
1319 | },
1320 | "fs-capacitor": {
1321 | "version": "2.0.4",
1322 | "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz",
1323 | "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA=="
1324 | },
1325 | "function-bind": {
1326 | "version": "1.1.1",
1327 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1328 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1329 | },
1330 | "get-intrinsic": {
1331 | "version": "1.1.3",
1332 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
1333 | "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
1334 | "requires": {
1335 | "function-bind": "^1.1.1",
1336 | "has": "^1.0.3",
1337 | "has-symbols": "^1.0.3"
1338 | },
1339 | "dependencies": {
1340 | "has-symbols": {
1341 | "version": "1.0.3",
1342 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1343 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
1344 | }
1345 | }
1346 | },
1347 | "graphql": {
1348 | "version": "0.13.0",
1349 | "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.13.0.tgz",
1350 | "integrity": "sha512-WlO+ZJT9aY3YrBT+H5Kk+eVb3OVVehB9iRD/xqeHdmrrn4AFl5FIcOpfHz/vnBr6Y6JthGMlnFqU8XRnDjSR7A==",
1351 | "requires": {
1352 | "iterall": "1.1.4"
1353 | }
1354 | },
1355 | "graphql-extensions": {
1356 | "version": "0.12.4",
1357 | "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.4.tgz",
1358 | "integrity": "sha512-GnR4LiWk3s2bGOqIh6V1JgnSXw2RCH4NOgbCFEWvB6JqWHXTlXnLZ8bRSkCiD4pltv7RHUPWqN/sGh8R6Ae/ag==",
1359 | "requires": {
1360 | "@apollographql/apollo-tools": "^0.4.3",
1361 | "apollo-server-env": "^2.4.5",
1362 | "apollo-server-types": "^0.5.1"
1363 | }
1364 | },
1365 | "graphql-subscriptions": {
1366 | "version": "1.1.0",
1367 | "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz",
1368 | "integrity": "sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA==",
1369 | "requires": {
1370 | "iterall": "^1.2.1"
1371 | },
1372 | "dependencies": {
1373 | "iterall": {
1374 | "version": "1.3.0",
1375 | "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
1376 | "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
1377 | }
1378 | }
1379 | },
1380 | "graphql-tag": {
1381 | "version": "2.11.0",
1382 | "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz",
1383 | "integrity": "sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA=="
1384 | },
1385 | "graphql-tools": {
1386 | "version": "2.21.0",
1387 | "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-2.21.0.tgz",
1388 | "integrity": "sha512-AmG4WGdpL1OHwnA20ouP7BVB3KnvUOvsc7+4ULWRzEunyRFUYqxrgnEf20iZnYAha8JCb7AP4WPMwWKmGT91rg==",
1389 | "requires": {
1390 | "apollo-link": "1.1.0",
1391 | "apollo-utilities": "1.0.6",
1392 | "deprecated-decorator": "0.1.6",
1393 | "iterall": "1.1.4",
1394 | "uuid": "3.2.1"
1395 | }
1396 | },
1397 | "graphql-upload": {
1398 | "version": "8.1.0",
1399 | "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz",
1400 | "integrity": "sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==",
1401 | "requires": {
1402 | "busboy": "^0.3.1",
1403 | "fs-capacitor": "^2.0.4",
1404 | "http-errors": "^1.7.3",
1405 | "object-path": "^0.11.4"
1406 | },
1407 | "dependencies": {
1408 | "http-errors": {
1409 | "version": "1.8.0",
1410 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
1411 | "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==",
1412 | "requires": {
1413 | "depd": "~1.1.2",
1414 | "inherits": "2.0.4",
1415 | "setprototypeof": "1.2.0",
1416 | "statuses": ">= 1.5.0 < 2",
1417 | "toidentifier": "1.0.0"
1418 | }
1419 | },
1420 | "inherits": {
1421 | "version": "2.0.4",
1422 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1423 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1424 | },
1425 | "setprototypeof": {
1426 | "version": "1.2.0",
1427 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1428 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1429 | },
1430 | "statuses": {
1431 | "version": "1.5.0",
1432 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1433 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1434 | }
1435 | }
1436 | },
1437 | "has": {
1438 | "version": "1.0.3",
1439 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1440 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1441 | "requires": {
1442 | "function-bind": "^1.1.1"
1443 | }
1444 | },
1445 | "has-symbols": {
1446 | "version": "1.0.1",
1447 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
1448 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
1449 | },
1450 | "http-errors": {
1451 | "version": "1.6.2",
1452 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
1453 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
1454 | "requires": {
1455 | "depd": "1.1.1",
1456 | "inherits": "2.0.3",
1457 | "setprototypeof": "1.0.3",
1458 | "statuses": "1.4.0"
1459 | },
1460 | "dependencies": {
1461 | "depd": {
1462 | "version": "1.1.1",
1463 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
1464 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
1465 | }
1466 | }
1467 | },
1468 | "iconv-lite": {
1469 | "version": "0.4.19",
1470 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
1471 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
1472 | },
1473 | "inherits": {
1474 | "version": "2.0.3",
1475 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1476 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
1477 | },
1478 | "ipaddr.js": {
1479 | "version": "1.9.1",
1480 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1481 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1482 | },
1483 | "is-callable": {
1484 | "version": "1.2.0",
1485 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
1486 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw=="
1487 | },
1488 | "is-date-object": {
1489 | "version": "1.0.2",
1490 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
1491 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
1492 | },
1493 | "is-regex": {
1494 | "version": "1.1.1",
1495 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
1496 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
1497 | "requires": {
1498 | "has-symbols": "^1.0.1"
1499 | }
1500 | },
1501 | "is-symbol": {
1502 | "version": "1.0.3",
1503 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
1504 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
1505 | "requires": {
1506 | "has-symbols": "^1.0.1"
1507 | }
1508 | },
1509 | "iterall": {
1510 | "version": "1.1.4",
1511 | "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.4.tgz",
1512 | "integrity": "sha512-eaDsM/PY8D/X5mYQhecVc5/9xvSHED7yPON+ffQroBeTuqUVm7dfphMkK8NksXuImqZlVRoKtrNfMIVCYIqaUQ=="
1513 | },
1514 | "lodash.sortby": {
1515 | "version": "4.7.0",
1516 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
1517 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
1518 | },
1519 | "loglevel": {
1520 | "version": "1.6.8",
1521 | "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz",
1522 | "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA=="
1523 | },
1524 | "long": {
1525 | "version": "4.0.0",
1526 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
1527 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
1528 | },
1529 | "lru-cache": {
1530 | "version": "5.1.1",
1531 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
1532 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
1533 | "requires": {
1534 | "yallist": "^3.0.2"
1535 | }
1536 | },
1537 | "media-typer": {
1538 | "version": "0.3.0",
1539 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1540 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1541 | },
1542 | "merge-descriptors": {
1543 | "version": "1.0.1",
1544 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1545 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1546 | },
1547 | "methods": {
1548 | "version": "1.1.2",
1549 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1550 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1551 | },
1552 | "mime": {
1553 | "version": "1.6.0",
1554 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1555 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1556 | },
1557 | "mime-db": {
1558 | "version": "1.30.0",
1559 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
1560 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
1561 | },
1562 | "mime-types": {
1563 | "version": "2.1.17",
1564 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
1565 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
1566 | "requires": {
1567 | "mime-db": "1.30.0"
1568 | }
1569 | },
1570 | "ms": {
1571 | "version": "2.0.0",
1572 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1573 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1574 | },
1575 | "negotiator": {
1576 | "version": "0.6.3",
1577 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1578 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
1579 | },
1580 | "node-fetch": {
1581 | "version": "2.6.7",
1582 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
1583 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
1584 | "requires": {
1585 | "whatwg-url": "^5.0.0"
1586 | }
1587 | },
1588 | "object-assign": {
1589 | "version": "4.1.1",
1590 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1591 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1592 | },
1593 | "object-inspect": {
1594 | "version": "1.8.0",
1595 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
1596 | "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="
1597 | },
1598 | "object-keys": {
1599 | "version": "1.1.1",
1600 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1601 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
1602 | },
1603 | "object-path": {
1604 | "version": "0.11.8",
1605 | "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz",
1606 | "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA=="
1607 | },
1608 | "object.assign": {
1609 | "version": "4.1.0",
1610 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
1611 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
1612 | "requires": {
1613 | "define-properties": "^1.1.2",
1614 | "function-bind": "^1.1.1",
1615 | "has-symbols": "^1.0.0",
1616 | "object-keys": "^1.0.11"
1617 | }
1618 | },
1619 | "object.getownpropertydescriptors": {
1620 | "version": "2.1.0",
1621 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
1622 | "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
1623 | "requires": {
1624 | "define-properties": "^1.1.3",
1625 | "es-abstract": "^1.17.0-next.1"
1626 | }
1627 | },
1628 | "on-finished": {
1629 | "version": "2.3.0",
1630 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1631 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1632 | "requires": {
1633 | "ee-first": "1.1.1"
1634 | }
1635 | },
1636 | "parseurl": {
1637 | "version": "1.3.2",
1638 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
1639 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
1640 | },
1641 | "path-to-regexp": {
1642 | "version": "0.1.7",
1643 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1644 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1645 | },
1646 | "proxy-addr": {
1647 | "version": "2.0.7",
1648 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1649 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1650 | "requires": {
1651 | "forwarded": "0.2.0",
1652 | "ipaddr.js": "1.9.1"
1653 | },
1654 | "dependencies": {
1655 | "forwarded": {
1656 | "version": "0.2.0",
1657 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
1658 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
1659 | }
1660 | }
1661 | },
1662 | "qs": {
1663 | "version": "6.5.1",
1664 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
1665 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
1666 | },
1667 | "range-parser": {
1668 | "version": "1.2.1",
1669 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1670 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1671 | },
1672 | "raw-body": {
1673 | "version": "2.3.2",
1674 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
1675 | "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
1676 | "requires": {
1677 | "bytes": "3.0.0",
1678 | "http-errors": "1.6.2",
1679 | "iconv-lite": "0.4.19",
1680 | "unpipe": "1.0.0"
1681 | }
1682 | },
1683 | "retry": {
1684 | "version": "0.12.0",
1685 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
1686 | "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs="
1687 | },
1688 | "safe-buffer": {
1689 | "version": "5.1.1",
1690 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
1691 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
1692 | },
1693 | "safer-buffer": {
1694 | "version": "2.1.2",
1695 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1696 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1697 | },
1698 | "send": {
1699 | "version": "0.18.0",
1700 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1701 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1702 | "requires": {
1703 | "debug": "2.6.9",
1704 | "depd": "2.0.0",
1705 | "destroy": "1.2.0",
1706 | "encodeurl": "~1.0.2",
1707 | "escape-html": "~1.0.3",
1708 | "etag": "~1.8.1",
1709 | "fresh": "0.5.2",
1710 | "http-errors": "2.0.0",
1711 | "mime": "1.6.0",
1712 | "ms": "2.1.3",
1713 | "on-finished": "2.4.1",
1714 | "range-parser": "~1.2.1",
1715 | "statuses": "2.0.1"
1716 | },
1717 | "dependencies": {
1718 | "depd": {
1719 | "version": "2.0.0",
1720 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1721 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1722 | },
1723 | "destroy": {
1724 | "version": "1.2.0",
1725 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
1726 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
1727 | },
1728 | "http-errors": {
1729 | "version": "2.0.0",
1730 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1731 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1732 | "requires": {
1733 | "depd": "2.0.0",
1734 | "inherits": "2.0.4",
1735 | "setprototypeof": "1.2.0",
1736 | "statuses": "2.0.1",
1737 | "toidentifier": "1.0.1"
1738 | }
1739 | },
1740 | "inherits": {
1741 | "version": "2.0.4",
1742 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1743 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1744 | },
1745 | "ms": {
1746 | "version": "2.1.3",
1747 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1748 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1749 | },
1750 | "on-finished": {
1751 | "version": "2.4.1",
1752 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1753 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1754 | "requires": {
1755 | "ee-first": "1.1.1"
1756 | }
1757 | },
1758 | "setprototypeof": {
1759 | "version": "1.2.0",
1760 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1761 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1762 | },
1763 | "statuses": {
1764 | "version": "2.0.1",
1765 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1766 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
1767 | },
1768 | "toidentifier": {
1769 | "version": "1.0.1",
1770 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1771 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
1772 | }
1773 | }
1774 | },
1775 | "serve-static": {
1776 | "version": "1.15.0",
1777 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1778 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1779 | "requires": {
1780 | "encodeurl": "~1.0.2",
1781 | "escape-html": "~1.0.3",
1782 | "parseurl": "~1.3.3",
1783 | "send": "0.18.0"
1784 | },
1785 | "dependencies": {
1786 | "parseurl": {
1787 | "version": "1.3.3",
1788 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1789 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1790 | }
1791 | }
1792 | },
1793 | "setprototypeof": {
1794 | "version": "1.0.3",
1795 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
1796 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
1797 | },
1798 | "sha.js": {
1799 | "version": "2.4.11",
1800 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
1801 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
1802 | "requires": {
1803 | "inherits": "^2.0.1",
1804 | "safe-buffer": "^5.0.1"
1805 | }
1806 | },
1807 | "side-channel": {
1808 | "version": "1.0.4",
1809 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1810 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1811 | "requires": {
1812 | "call-bind": "^1.0.0",
1813 | "get-intrinsic": "^1.0.2",
1814 | "object-inspect": "^1.9.0"
1815 | },
1816 | "dependencies": {
1817 | "object-inspect": {
1818 | "version": "1.12.2",
1819 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
1820 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
1821 | }
1822 | }
1823 | },
1824 | "statuses": {
1825 | "version": "1.4.0",
1826 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
1827 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
1828 | },
1829 | "streamsearch": {
1830 | "version": "0.1.2",
1831 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
1832 | "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
1833 | },
1834 | "string.prototype.trimend": {
1835 | "version": "1.0.1",
1836 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
1837 | "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
1838 | "requires": {
1839 | "define-properties": "^1.1.3",
1840 | "es-abstract": "^1.17.5"
1841 | }
1842 | },
1843 | "string.prototype.trimstart": {
1844 | "version": "1.0.1",
1845 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
1846 | "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
1847 | "requires": {
1848 | "define-properties": "^1.1.3",
1849 | "es-abstract": "^1.17.5"
1850 | }
1851 | },
1852 | "subscriptions-transport-ws": {
1853 | "version": "0.9.17",
1854 | "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.17.tgz",
1855 | "integrity": "sha512-hNHi2N80PBz4T0V0QhnnsMGvG3XDFDS9mS6BhZ3R12T6EBywC8d/uJscsga0cVO4DKtXCkCRrWm2sOYrbOdhEA==",
1856 | "requires": {
1857 | "backo2": "^1.0.2",
1858 | "eventemitter3": "^3.1.0",
1859 | "iterall": "^1.2.1",
1860 | "symbol-observable": "^1.0.4",
1861 | "ws": "^5.2.0"
1862 | },
1863 | "dependencies": {
1864 | "iterall": {
1865 | "version": "1.3.0",
1866 | "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
1867 | "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
1868 | },
1869 | "ws": {
1870 | "version": "5.2.3",
1871 | "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz",
1872 | "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==",
1873 | "requires": {
1874 | "async-limiter": "~1.0.0"
1875 | }
1876 | }
1877 | }
1878 | },
1879 | "symbol-observable": {
1880 | "version": "1.2.0",
1881 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
1882 | "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
1883 | },
1884 | "toidentifier": {
1885 | "version": "1.0.0",
1886 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1887 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1888 | },
1889 | "tr46": {
1890 | "version": "0.0.3",
1891 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
1892 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
1893 | },
1894 | "ts-invariant": {
1895 | "version": "0.4.4",
1896 | "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
1897 | "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
1898 | "requires": {
1899 | "tslib": "^1.9.3"
1900 | }
1901 | },
1902 | "tslib": {
1903 | "version": "1.13.0",
1904 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
1905 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
1906 | },
1907 | "type-is": {
1908 | "version": "1.6.15",
1909 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
1910 | "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
1911 | "requires": {
1912 | "media-typer": "0.3.0",
1913 | "mime-types": "2.1.17"
1914 | }
1915 | },
1916 | "unpipe": {
1917 | "version": "1.0.0",
1918 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1919 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1920 | },
1921 | "util.promisify": {
1922 | "version": "1.0.1",
1923 | "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
1924 | "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
1925 | "requires": {
1926 | "define-properties": "^1.1.3",
1927 | "es-abstract": "^1.17.2",
1928 | "has-symbols": "^1.0.1",
1929 | "object.getownpropertydescriptors": "^2.1.0"
1930 | }
1931 | },
1932 | "utils-merge": {
1933 | "version": "1.0.1",
1934 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1935 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1936 | },
1937 | "uuid": {
1938 | "version": "3.2.1",
1939 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
1940 | "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
1941 | },
1942 | "vary": {
1943 | "version": "1.1.2",
1944 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1945 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1946 | },
1947 | "webidl-conversions": {
1948 | "version": "3.0.1",
1949 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
1950 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
1951 | },
1952 | "whatwg-url": {
1953 | "version": "5.0.0",
1954 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
1955 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
1956 | "requires": {
1957 | "tr46": "~0.0.3",
1958 | "webidl-conversions": "^3.0.0"
1959 | }
1960 | },
1961 | "ws": {
1962 | "version": "6.2.2",
1963 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
1964 | "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
1965 | "requires": {
1966 | "async-limiter": "~1.0.0"
1967 | }
1968 | },
1969 | "xss": {
1970 | "version": "1.0.8",
1971 | "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz",
1972 | "integrity": "sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==",
1973 | "requires": {
1974 | "commander": "^2.20.3",
1975 | "cssfilter": "0.0.10"
1976 | }
1977 | },
1978 | "yallist": {
1979 | "version": "3.1.1",
1980 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
1981 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
1982 | },
1983 | "zen-observable": {
1984 | "version": "0.7.1",
1985 | "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.7.1.tgz",
1986 | "integrity": "sha512-OI6VMSe0yeqaouIXtedC+F55Sr6r9ppS7+wTbSexkYdHbdt4ctTuPNXP/rwm7GTVI63YBc+EBT0b0tl7YnJLRg=="
1987 | },
1988 | "zen-observable-ts": {
1989 | "version": "0.8.21",
1990 | "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
1991 | "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
1992 | "requires": {
1993 | "tslib": "^1.9.3",
1994 | "zen-observable": "^0.8.0"
1995 | },
1996 | "dependencies": {
1997 | "zen-observable": {
1998 | "version": "0.8.15",
1999 | "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
2000 | "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
2001 | }
2002 | }
2003 | }
2004 | }
2005 | }
2006 |
--------------------------------------------------------------------------------
/server/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@graphql-demo/server",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "./server.js",
6 | "scripts": {
7 | "start": "node ./server.js",
8 | "start:rest": "node ./server.js"
9 | },
10 | "keywords": [],
11 | "author": "Pankaj Patel",
12 | "license": "ISC",
13 | "dependencies": {
14 | "apollo-server-express": "^2.14.2",
15 | "body-parser": "^1.18.2",
16 | "cors": "^2.8.4",
17 | "express": "^4.18.0",
18 | "graphql": "^0.13.0",
19 | "graphql-tools": "^2.21.0",
20 | "node-fetch": "^2.6.7",
21 | "uuid": "^3.2.1"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/server/resolvers.js:
--------------------------------------------------------------------------------
1 | const uuid = require('uuid/v4');
2 |
3 | // Some fake data
4 | const users = require('./users');
5 |
6 | const friendsMapper = id => (Object.assign(
7 | {},
8 | users[id],
9 | { friends: users[id].friends.map(i => users[i]) }
10 | ));
11 |
12 | // The resolvers
13 | module.exports = {
14 | Query: {
15 | users: () => Object.values(users).map(u => friendsMapper(u.id)),
16 | user: (_, {id}) => friendsMapper(id),
17 | },
18 | Mutation: {
19 | addUser: (_, data) => {
20 | const uid = uuid();
21 | users[uid] = Object.assign({}, data, {id: uid})
22 | return friendsMapper(uid);
23 | }
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/server/schema.js:
--------------------------------------------------------------------------------
1 | module.exports = `
2 | type Mutation {
3 | addUser(first: String, last: String, email: String, picture: String, friends: [String]): User
4 | }
5 | type Query {
6 | users: [User]
7 | user(id: String!): User
8 | }
9 | type User {
10 | id: String!
11 | fullName: String
12 | name: Name
13 | email: String!
14 | friends: [User]
15 | }
16 | type Name {
17 | first: String
18 | last: String
19 | }
20 | `;
21 |
--------------------------------------------------------------------------------
/server/server.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const bodyParser = require('body-parser');
3 | const { graphqlExpress, graphiqlExpress } = require('apollo-server-express');
4 | const { makeExecutableSchema } = require('graphql-tools');
5 | const cors = require('cors')
6 |
7 |
8 | // The GraphQL schema in string form
9 | const typeDefs = require('./schema');
10 |
11 | // The resolvers
12 | const resolvers = require('./resolvers');
13 |
14 | // Put together a schema
15 | const schema = makeExecutableSchema({
16 | typeDefs,
17 | resolvers,
18 | });
19 |
20 | // Initialize the app
21 | const app = express();
22 |
23 | // enable CORS
24 | app.use(cors());
25 |
26 | // The GraphQL endpoint
27 | app.use('/graphql', bodyParser.json(), graphqlExpress({ schema }));
28 |
29 | // GraphiQL, a visual editor for queries
30 | app.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql' }));
31 |
32 | // Start the server
33 | app.listen(3000, () => {
34 | console.log('Go to http://localhost:3000/graphiql to run queries!');
35 | });
36 |
--------------------------------------------------------------------------------
/server/users.json:
--------------------------------------------------------------------------------
1 | {
2 | "5a826fdf27256fa9ba444cd4": {
3 | "id": "5a826fdf27256fa9ba444cd4",
4 | "email": "nancy.palmer@example.com",
5 | "fullName": "Nancy Palmer",
6 | "name": {
7 | "last": "Palmer",
8 | "first": "Nancy"
9 | },
10 | "picture": "http://placehold.it/32x32",
11 | "friends": [
12 | "5a826fdf50f698c2d9c492ca",
13 | "5a826fdf40b7d805ca2d6e75",
14 | "5a826fdf066dca8b5f7d127a",
15 | "5a826fdf27256fa9ba444cd4",
16 | "5a826fdf6f0122089221a930",
17 | "5a826fdf50f698c2d9c492ca",
18 | "5a826fdf6f0122089221a930",
19 | "5a826fdf40b7d805ca2d6e75"
20 | ]
21 | },
22 | "5a826fdfc3cdf1690c71e00f": {
23 | "id": "5a826fdfc3cdf1690c71e00f",
24 | "email": "rebekah.hernandez@example.com",
25 | "fullName": "Rebekah Hernandez",
26 | "name": {
27 | "last": "Hernandez",
28 | "first": "Rebekah"
29 | },
30 | "picture": "http://placehold.it/32x32",
31 | "friends": [
32 | "5a826fdf40b7d805ca2d6e75",
33 | "5a826fdf40b7d805ca2d6e75",
34 | "5a826fdf27256fa9ba444cd4",
35 | "5a826fdf6f0122089221a930",
36 | "5a826fdf2edf272683abe3ca",
37 | "5a826fdf50f698c2d9c492ca",
38 | "5a826fdf6f0122089221a930",
39 | "5a826fdf6f0122089221a930",
40 | "5a826fdf066dca8b5f7d127a"
41 | ]
42 | },
43 | "5a826fdf9856ad6503d728d5": {
44 | "id": "5a826fdf9856ad6503d728d5",
45 | "email": "stanton.hansen@example.com",
46 | "fullName": "Stanton Hansen",
47 | "name": {
48 | "last": "Hansen",
49 | "first": "Stanton"
50 | },
51 | "picture": "http://placehold.it/32x32",
52 | "friends": [
53 | "5a826fdf0d054a6fab7bb067",
54 | "5a826fdf50f698c2d9c492ca",
55 | "5a826fdf0d054a6fab7bb067"
56 | ]
57 | },
58 | "5a826fdf0d054a6fab7bb067": {
59 | "id": "5a826fdf0d054a6fab7bb067",
60 | "email": "barr.wolf@example.com",
61 | "fullName": "Barr Wolf",
62 | "name": {
63 | "last": "Wolf",
64 | "first": "Barr"
65 | },
66 | "picture": "http://placehold.it/32x32",
67 | "friends": [
68 | "5a826fdf40b7d805ca2d6e75",
69 | "5a826fdf40b7d805ca2d6e75"
70 | ]
71 | },
72 | "5a826fdf50f698c2d9c492ca": {
73 | "id": "5a826fdf50f698c2d9c492ca",
74 | "email": "hayden.smith@example.com",
75 | "fullName": "Hayden Smith",
76 | "name": {
77 | "last": "Smith",
78 | "first": "Hayden"
79 | },
80 | "picture": "http://placehold.it/32x32",
81 | "friends": [
82 | "5a826fdf50f698c2d9c492ca",
83 | "5a826fdfc3cdf1690c71e00f",
84 | "5a826fdf2edf272683abe3ca",
85 | "5a826fdf066dca8b5f7d127a",
86 | "5a826fdf6f0122089221a930"
87 | ]
88 | },
89 | "5a826fdf066dca8b5f7d127a": {
90 | "id": "5a826fdf066dca8b5f7d127a",
91 | "email": "russell.sims@example.com",
92 | "fullName": "Russell Sims",
93 | "name": {
94 | "last": "Sims",
95 | "first": "Russell"
96 | },
97 | "picture": "http://placehold.it/32x32",
98 | "friends": [
99 | "5a826fdf9856ad6503d728d5",
100 | "5a826fdf2edf272683abe3ca",
101 | "5a826fdf066dca8b5f7d127a",
102 | "5a826fdf066dca8b5f7d127a",
103 | "5a826fdfc3cdf1690c71e00f",
104 | "5a826fdf50f698c2d9c492ca"
105 | ]
106 | },
107 | "5a826fdfa4c1ca0d27881218": {
108 | "id": "5a826fdfa4c1ca0d27881218",
109 | "email": "hazel.rodriguez@example.com",
110 | "fullName": "Hazel Rodriguez",
111 | "name": {
112 | "last": "Rodriguez",
113 | "first": "Hazel"
114 | },
115 | "picture": "http://placehold.it/32x32",
116 | "friends": [
117 | "5a826fdf27256fa9ba444cd4",
118 | "5a826fdf066dca8b5f7d127a",
119 | "5a826fdf9856ad6503d728d5",
120 | "5a826fdfa4c1ca0d27881218",
121 | "5a826fdfc3cdf1690c71e00f",
122 | "5a826fdf27256fa9ba444cd4",
123 | "5a826fdf0d054a6fab7bb067",
124 | "5a826fdf50f698c2d9c492ca"
125 | ]
126 | },
127 | "5a826fdf40b7d805ca2d6e75": {
128 | "id": "5a826fdf40b7d805ca2d6e75",
129 | "email": "kent.clemons@example.com",
130 | "fullName": "Kent Clemons",
131 | "name": {
132 | "last": "Clemons",
133 | "first": "Kent"
134 | },
135 | "picture": "http://placehold.it/32x32",
136 | "friends": [
137 | "5a826fdfc3cdf1690c71e00f",
138 | "5a826fdf27256fa9ba444cd4",
139 | "5a826fdf6f0122089221a930",
140 | "5a826fdf0d054a6fab7bb067",
141 | "5a826fdf066dca8b5f7d127a"
142 | ]
143 | },
144 | "5a826fdf2edf272683abe3ca": {
145 | "id": "5a826fdf2edf272683abe3ca",
146 | "email": "hughes.mcguire@example.com",
147 | "fullName": "Hughes Mcguire",
148 | "name": {
149 | "last": "Mcguire",
150 | "first": "Hughes"
151 | },
152 | "picture": "http://placehold.it/32x32",
153 | "friends": [
154 | "5a826fdfc3cdf1690c71e00f"
155 | ]
156 | },
157 | "5a826fdf6f0122089221a930": {
158 | "id": "5a826fdf6f0122089221a930",
159 | "email": "maxine.bird@example.com",
160 | "fullName": "Maxine Bird",
161 | "name": {
162 | "last": "Bird",
163 | "first": "Maxine"
164 | },
165 | "picture": "http://placehold.it/32x32",
166 | "friends": [
167 | "5a826fdf27256fa9ba444cd4",
168 | "5a826fdf2edf272683abe3ca"
169 | ]
170 | }
171 | }
172 |
--------------------------------------------------------------------------------