├── .babelrc ├── Dockerfile ├── README.md ├── docker-compose.yml ├── graphql ├── index.js ├── mutations │ ├── index.js │ └── listing │ │ ├── add.js │ │ ├── index.js │ │ ├── remove-all.js │ │ └── remove.js ├── queries │ ├── index.js │ └── listing │ │ ├── index.js │ │ ├── multiple.js │ │ └── single.js └── types │ ├── listing-input.js │ └── listing.js ├── models └── listing.js ├── package-lock.json ├── package.json └── src ├── app.js └── index.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"] 3 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:10.5.0-slim 2 | MAINTAINER Andy 3 | 4 | # Expose the default port 5 | EXPOSE 8080 6 | 7 | # Create the app working directory and switch to it 8 | RUN mkdir /app 9 | WORKDIR /app 10 | 11 | # Copy the package.json to the new working directory 12 | COPY package.json /app/package.json 13 | RUN npm install 14 | 15 | # Copy the app 16 | COPY . /app 17 | 18 | # Start the app 19 | CMD npm start -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # backend-airbnb-clone-app 2 | This is the backend for the Airbnb react native mobile app clone which you can find [here](https://github.com/imandyie/react-native-airbnb-clone) 3 | 4 | ## Docker commands 5 | - `docker images` - Lists all Docker images 6 | - `docker container ls` - Lists all Docker containers 7 | - `docker rmi ` - Removes a Docker image 8 | - `docker container stop ` - Stops a Docker container 9 | - `docker exec -it mongo` - Starts a mongodb shell in docker container if container is already running 10 | - `docker run -it -p 28000:27017 --name mongo:latest mongo` - Starts a mongodb shell in a docker container if container is not already running 11 | - `docker-compose up` - Runs the docker-compose.yml file and starts all containers 12 | - `docker build .` - Builds a Docker image 13 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | web: 4 | build: 5 | context: . 6 | links: 7 | - mongo 8 | ports: 9 | - '8080:8080' 10 | command: npm run start 11 | mongo: 12 | image: mongo -------------------------------------------------------------------------------- /graphql/index.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLObjectType, 3 | GraphQLSchema 4 | } from 'graphql'; 5 | 6 | import mutations from './mutations'; 7 | import queries from './queries'; 8 | 9 | export default new GraphQLSchema({ 10 | query: new GraphQLObjectType({ 11 | name: 'Query', 12 | fields: queries 13 | }), 14 | mutation: new GraphQLObjectType({ 15 | name: 'Mutation', 16 | fields: mutations 17 | }) 18 | }); 19 | -------------------------------------------------------------------------------- /graphql/mutations/index.js: -------------------------------------------------------------------------------- 1 | import listing from './listing'; 2 | 3 | export default { 4 | ...listing 5 | }; 6 | -------------------------------------------------------------------------------- /graphql/mutations/listing/add.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLNonNull, 3 | GraphQLBoolean 4 | } from 'graphql'; 5 | 6 | import listingInputType from '../../types/listing-input'; 7 | import listingType from '../../types/listing'; 8 | import ListingModel from '../../../models/listing'; 9 | 10 | export default { 11 | type: listingType, 12 | args: { 13 | data: { 14 | name: 'data', 15 | type: new GraphQLNonNull(listingInputType) 16 | } 17 | }, 18 | async resolve (root, params) { 19 | const listingModel = new ListingModel(params.data); 20 | const newListing = await listingModel.save(); 21 | 22 | if (!newListing) { 23 | throw new Error('Error adding new listing'); 24 | } 25 | return newListing; 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /graphql/mutations/listing/index.js: -------------------------------------------------------------------------------- 1 | import addListing from './add'; 2 | import removeAllListings from './remove-all'; 3 | import removeListing from './remove'; 4 | 5 | export default { 6 | addListing, 7 | removeAllListings, 8 | removeListing 9 | }; 10 | -------------------------------------------------------------------------------- /graphql/mutations/listing/remove-all.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLBoolean 3 | } from 'graphql'; 4 | 5 | import ListingModel from '../../../models/listing'; 6 | 7 | export default { 8 | type: GraphQLBoolean, 9 | resolve (root, params, options) { 10 | return ListingModel 11 | .remove({}) 12 | .exec(); 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /graphql/mutations/listing/remove.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLNonNull, 3 | GraphQLID 4 | } from 'graphql'; 5 | 6 | import listingType from '../../types/listing'; 7 | import ListingModel from '../../../models/listing'; 8 | 9 | export default { 10 | type: listingType, 11 | args: { 12 | _id: { 13 | name: '_id', 14 | type: new GraphQLNonNull(GraphQLID) 15 | } 16 | }, 17 | async resolve (root, params, options) { 18 | const removedListing = await ListingModel 19 | .findByIdAndRemove(params._id) 20 | .exec(); 21 | 22 | if (!removedListing) { 23 | throw new Error('Error removing listing'); 24 | } 25 | 26 | return removedListing; 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /graphql/queries/index.js: -------------------------------------------------------------------------------- 1 | import listing from './listing'; 2 | 3 | export default { 4 | ...listing 5 | }; 6 | -------------------------------------------------------------------------------- /graphql/queries/listing/index.js: -------------------------------------------------------------------------------- 1 | import singleListing from './single'; 2 | import multipleListings from './multiple'; 3 | 4 | export default { 5 | singleListing, 6 | multipleListings 7 | }; 8 | -------------------------------------------------------------------------------- /graphql/queries/listing/multiple.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLList 3 | } from 'graphql'; 4 | 5 | import listingType from '../../types/listing'; 6 | import ListingModel from '../../../models/listing'; 7 | 8 | export default { 9 | type: new GraphQLList(listingType), 10 | args: {}, 11 | resolve (root, params, options) { 12 | return ListingModel 13 | .find() 14 | .exec(); 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /graphql/queries/listing/single.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLList, 3 | GraphQLID, 4 | GraphQLNonNull 5 | } from 'graphql'; 6 | import {Types} from 'mongoose'; 7 | 8 | import listingType from '../../types/listing'; 9 | import ListingModel from '../../../models/listing'; 10 | 11 | export default { 12 | type: listingType, 13 | args: { 14 | id: { 15 | name: 'id', 16 | type: new GraphQLNonNull(GraphQLID) 17 | } 18 | }, 19 | resolve (root, params, options) { 20 | return ListingModel 21 | .findById(params.id) 22 | .exec(); 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /graphql/types/listing-input.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLInputObjectType, 3 | GraphQLString, 4 | GraphQLID 5 | } from 'graphql'; 6 | 7 | export default new GraphQLInputObjectType({ 8 | name: 'ListingInput', 9 | fields: () => ({ 10 | _id: {type: GraphQLID}, 11 | title: {type: GraphQLString}, 12 | description: {type: GraphQLString} 13 | }) 14 | }); 15 | -------------------------------------------------------------------------------- /graphql/types/listing.js: -------------------------------------------------------------------------------- 1 | import { 2 | GraphQLObjectType, 3 | GraphQLNonNull, 4 | GraphQLString, 5 | GraphQLID 6 | } from 'graphql'; 7 | 8 | export default new GraphQLObjectType({ 9 | name: 'Listing', 10 | fields: () => ({ 11 | _id: { 12 | type: new GraphQLNonNull(GraphQLID) 13 | }, 14 | title: { 15 | type: GraphQLString 16 | }, 17 | description: { 18 | type: GraphQLString 19 | } 20 | }) 21 | }); 22 | -------------------------------------------------------------------------------- /models/listing.js: -------------------------------------------------------------------------------- 1 | import mongoose from 'mongoose'; 2 | 3 | var listingSchema = new mongoose.Schema({ 4 | title: { 5 | type: String, 6 | required: true 7 | }, 8 | description: { 9 | type: String 10 | } 11 | }); 12 | 13 | export default mongoose.model('Listing', listingSchema); 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "airbnbCloneBackend", 3 | "version": "0.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.0.0-rc.1", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-rc.1.tgz", 10 | "integrity": "sha512-qhQo3GqwqMUv03SxxjcEkWtlkEDvFYrBKbJUn4Dtd9amC2cLkJ3me4iYUVSBbVXWbfbVRalEeVBHzX4aQYKnBg==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "7.0.0-rc.1" 14 | } 15 | }, 16 | "@babel/core": { 17 | "version": "7.0.0-rc.1", 18 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-rc.1.tgz", 19 | "integrity": "sha512-CvuSsq+LFs9N4SJG8MnNPI0hnl913HK1OqG3NEfejOKo+JqtVuxpmAFyXIDogX2x668xqFKAW6EQiCIcUHklMg==", 20 | "dev": true, 21 | "requires": { 22 | "@babel/code-frame": "7.0.0-rc.1", 23 | "@babel/generator": "7.0.0-rc.1", 24 | "@babel/helpers": "7.0.0-rc.1", 25 | "@babel/parser": "7.0.0-rc.1", 26 | "@babel/template": "7.0.0-rc.1", 27 | "@babel/traverse": "7.0.0-rc.1", 28 | "@babel/types": "7.0.0-rc.1", 29 | "convert-source-map": "^1.1.0", 30 | "debug": "^3.1.0", 31 | "json5": "^0.5.0", 32 | "lodash": "^4.17.10", 33 | "resolve": "^1.3.2", 34 | "semver": "^5.4.1", 35 | "source-map": "^0.5.0" 36 | }, 37 | "dependencies": { 38 | "debug": { 39 | "version": "3.1.0", 40 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 41 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 42 | "dev": true, 43 | "requires": { 44 | "ms": "2.0.0" 45 | } 46 | } 47 | } 48 | }, 49 | "@babel/generator": { 50 | "version": "7.0.0-rc.1", 51 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-rc.1.tgz", 52 | "integrity": "sha512-Ak4n780/coo+L9GZUS7V/IGJilP11t4UoWl0J9cG3jso4KkDGQcqdx4Y6gJAiXng+sDfvzUmvWfM1hZwH82J0A==", 53 | "dev": true, 54 | "requires": { 55 | "@babel/types": "7.0.0-rc.1", 56 | "jsesc": "^2.5.1", 57 | "lodash": "^4.17.10", 58 | "source-map": "^0.5.0", 59 | "trim-right": "^1.0.1" 60 | } 61 | }, 62 | "@babel/helper-annotate-as-pure": { 63 | "version": "7.0.0-rc.1", 64 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-rc.1.tgz", 65 | "integrity": "sha512-GOV2UExs9gAvSrZF4rcgocXXeLJplq2kL2AsCrn6DmGwMUEfo/KB7FhedN3X6cVh0gOqqKkVKXrz3Li1wQ84xQ==", 66 | "dev": true, 67 | "requires": { 68 | "@babel/types": "7.0.0-rc.1" 69 | } 70 | }, 71 | "@babel/helper-builder-binary-assignment-operator-visitor": { 72 | "version": "7.0.0-rc.1", 73 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-rc.1.tgz", 74 | "integrity": "sha512-O6/szesBinGoExLl01Qg2vb5FaOfifSilgL5GnCZLz5z3Pg9jRolN6rGzQAOa/K9Y01TAmDf1dC06AKQUv3x8g==", 75 | "dev": true, 76 | "requires": { 77 | "@babel/helper-explode-assignable-expression": "7.0.0-rc.1", 78 | "@babel/types": "7.0.0-rc.1" 79 | } 80 | }, 81 | "@babel/helper-call-delegate": { 82 | "version": "7.0.0-rc.1", 83 | "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-rc.1.tgz", 84 | "integrity": "sha512-3Z+shHGJTQnc61RCFVrQ3OJRmyL8uk4dWCsP8kT7G4inxv/bs6/zLOipK21VMePGpjUA4tnKxJCevMtp9ko4pw==", 85 | "dev": true, 86 | "requires": { 87 | "@babel/helper-hoist-variables": "7.0.0-rc.1", 88 | "@babel/traverse": "7.0.0-rc.1", 89 | "@babel/types": "7.0.0-rc.1" 90 | } 91 | }, 92 | "@babel/helper-define-map": { 93 | "version": "7.0.0-rc.1", 94 | "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-rc.1.tgz", 95 | "integrity": "sha512-yTn+nj29QrZLCINtgqFLgbrbvz6yM029ox/MpQfSS/JmrQovnEc+o5vrsW/R74QPheOHmF9ruJo58atwuk04Fw==", 96 | "dev": true, 97 | "requires": { 98 | "@babel/helper-function-name": "7.0.0-rc.1", 99 | "@babel/types": "7.0.0-rc.1", 100 | "lodash": "^4.17.10" 101 | } 102 | }, 103 | "@babel/helper-explode-assignable-expression": { 104 | "version": "7.0.0-rc.1", 105 | "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-rc.1.tgz", 106 | "integrity": "sha512-hSa+oxKn9bfbc3Ob1U7QJsO++do2Xe8Ft640alRJpEQ3VWy7tL8ZB+2xqo0pgHKo7rITuSxERz72uZji8dTiWg==", 107 | "dev": true, 108 | "requires": { 109 | "@babel/traverse": "7.0.0-rc.1", 110 | "@babel/types": "7.0.0-rc.1" 111 | } 112 | }, 113 | "@babel/helper-function-name": { 114 | "version": "7.0.0-rc.1", 115 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-rc.1.tgz", 116 | "integrity": "sha512-fDbWxdYYbFNzcI5jn3qsPxHI1UCXwvFk0kGytGce/FEBYEPXBqycKknC8Oqiub8DzGtmTcvnqcm/cl/qxzeuiQ==", 117 | "dev": true, 118 | "requires": { 119 | "@babel/helper-get-function-arity": "7.0.0-rc.1", 120 | "@babel/template": "7.0.0-rc.1", 121 | "@babel/types": "7.0.0-rc.1" 122 | } 123 | }, 124 | "@babel/helper-get-function-arity": { 125 | "version": "7.0.0-rc.1", 126 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-rc.1.tgz", 127 | "integrity": "sha512-5+ydaIRxT42FSDqvoXIDksCGlW1903xC73HQnQCFF1YuV7VcIf+9M4+tRZulLlYlshw7ILA+4SiYsKoDlC0Irg==", 128 | "dev": true, 129 | "requires": { 130 | "@babel/types": "7.0.0-rc.1" 131 | } 132 | }, 133 | "@babel/helper-hoist-variables": { 134 | "version": "7.0.0-rc.1", 135 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-rc.1.tgz", 136 | "integrity": "sha512-ttcilOh9SM9eqVlzwz2Lv7B5Dwyaa8TIhi1DDEPnC3CarpNPXFdeCOoxoV5qjHRD1klAT86gczeU4lJnSDKmgA==", 137 | "dev": true, 138 | "requires": { 139 | "@babel/types": "7.0.0-rc.1" 140 | } 141 | }, 142 | "@babel/helper-member-expression-to-functions": { 143 | "version": "7.0.0-rc.1", 144 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-rc.1.tgz", 145 | "integrity": "sha512-o263plHxPo1TxDDUx7gHuQ96Y8QyLs2n4968KZvo2l/9rkwn2L9kcIsRVjlhpPPKTz4tWe/7ZV50zkeDorrK9g==", 146 | "dev": true, 147 | "requires": { 148 | "@babel/types": "7.0.0-rc.1" 149 | } 150 | }, 151 | "@babel/helper-module-imports": { 152 | "version": "7.0.0-rc.1", 153 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-rc.1.tgz", 154 | "integrity": "sha512-eA8RzanjsZw4X2Cqh3WgVG7zwf1wdSUfXvZOH8Azx1rpwE0hzJ276jDZ3gSOJShsxPVvopHa4h+c2WfEUjW4+Q==", 155 | "dev": true, 156 | "requires": { 157 | "@babel/types": "7.0.0-rc.1", 158 | "lodash": "^4.17.10" 159 | } 160 | }, 161 | "@babel/helper-module-transforms": { 162 | "version": "7.0.0-rc.1", 163 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-rc.1.tgz", 164 | "integrity": "sha512-nz7FTFXlQ9UYp/dBjad4ZOu3Q4/1n86ysw9z9pjunqeKFNm+JHq7j5BeocFKIQAwul7QbIkSXiYm5EiteCHjiQ==", 165 | "dev": true, 166 | "requires": { 167 | "@babel/helper-module-imports": "7.0.0-rc.1", 168 | "@babel/helper-simple-access": "7.0.0-rc.1", 169 | "@babel/helper-split-export-declaration": "7.0.0-rc.1", 170 | "@babel/template": "7.0.0-rc.1", 171 | "@babel/types": "7.0.0-rc.1", 172 | "lodash": "^4.17.10" 173 | } 174 | }, 175 | "@babel/helper-optimise-call-expression": { 176 | "version": "7.0.0-rc.1", 177 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-rc.1.tgz", 178 | "integrity": "sha512-XOKPnL/AJz8ZyY553FsMAVt9g/mE1+RQfg5/m3X0K4+RqYviPGZlxwe5mGSd8s2kPSB6D6nZRUfvZFtmFIXEvA==", 179 | "dev": true, 180 | "requires": { 181 | "@babel/types": "7.0.0-rc.1" 182 | } 183 | }, 184 | "@babel/helper-plugin-utils": { 185 | "version": "7.0.0-rc.1", 186 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-rc.1.tgz", 187 | "integrity": "sha512-8ZNzqHXDhT/JjnBvrLKu8AL7NhONVIsnrfyQNm3PJNmufIER5kcIa3OxPMGWgNqox2R8WeQ6YYzYTLNXqq4kgQ==", 188 | "dev": true 189 | }, 190 | "@babel/helper-regex": { 191 | "version": "7.0.0-rc.1", 192 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-rc.1.tgz", 193 | "integrity": "sha512-QXnTXVefioGuXlRMn+MnKKUHwhmdXGKnMvFI1tdHioMnBQEbEHGnmp+aYcddLwJ3KAH/hveaSR95BuWwprW+TA==", 194 | "dev": true, 195 | "requires": { 196 | "lodash": "^4.17.10" 197 | } 198 | }, 199 | "@babel/helper-remap-async-to-generator": { 200 | "version": "7.0.0-rc.1", 201 | "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-rc.1.tgz", 202 | "integrity": "sha512-skROQSC2fPwmrzAEPT/M7CObnWjJGpdbNLoICZDYHwDiUDe3dk5cQsU9j3tNlBhX14FaC9SjSpCJnSRpXDOWOw==", 203 | "dev": true, 204 | "requires": { 205 | "@babel/helper-annotate-as-pure": "7.0.0-rc.1", 206 | "@babel/helper-wrap-function": "7.0.0-rc.1", 207 | "@babel/template": "7.0.0-rc.1", 208 | "@babel/traverse": "7.0.0-rc.1", 209 | "@babel/types": "7.0.0-rc.1" 210 | } 211 | }, 212 | "@babel/helper-replace-supers": { 213 | "version": "7.0.0-rc.1", 214 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-rc.1.tgz", 215 | "integrity": "sha512-mcv+NKCazZfdEw7yBe/xROekR3qlFcy18d//mJTKnZb7xx2qFPjZAafkeIlpvzNHwd/WMTHShC4+3WjOL8FD5g==", 216 | "dev": true, 217 | "requires": { 218 | "@babel/helper-member-expression-to-functions": "7.0.0-rc.1", 219 | "@babel/helper-optimise-call-expression": "7.0.0-rc.1", 220 | "@babel/traverse": "7.0.0-rc.1", 221 | "@babel/types": "7.0.0-rc.1" 222 | } 223 | }, 224 | "@babel/helper-simple-access": { 225 | "version": "7.0.0-rc.1", 226 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-rc.1.tgz", 227 | "integrity": "sha512-mfrHVSG0Dw51ajyL3Ltz+gEYrWAy4+Kl8lb1V/QWR31H7ovha6vNZ4guev/lR4KFu+4hMHogpjh4HB4AShqeMQ==", 228 | "dev": true, 229 | "requires": { 230 | "@babel/template": "7.0.0-rc.1", 231 | "@babel/types": "7.0.0-rc.1", 232 | "lodash": "^4.17.10" 233 | } 234 | }, 235 | "@babel/helper-split-export-declaration": { 236 | "version": "7.0.0-rc.1", 237 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-rc.1.tgz", 238 | "integrity": "sha512-hz6QmlnaBFYt4ra8DfRLCMgrI7yfwQ13kJtufSO5dVCasxmAng2LeeQiT6H4iN5TpFONcayp5f/2mXqHH/zn/g==", 239 | "dev": true, 240 | "requires": { 241 | "@babel/types": "7.0.0-rc.1" 242 | } 243 | }, 244 | "@babel/helper-wrap-function": { 245 | "version": "7.0.0-rc.1", 246 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-rc.1.tgz", 247 | "integrity": "sha512-LrqRD4+jEkQGVQsCRi7bPkSmYFAUd3pv9tYAC8nsr9Y0Qfus8oycqxDj60QW4dmigRKBRRbVVLr/0kMI2pk0MA==", 248 | "dev": true, 249 | "requires": { 250 | "@babel/helper-function-name": "7.0.0-rc.1", 251 | "@babel/template": "7.0.0-rc.1", 252 | "@babel/traverse": "7.0.0-rc.1", 253 | "@babel/types": "7.0.0-rc.1" 254 | } 255 | }, 256 | "@babel/helpers": { 257 | "version": "7.0.0-rc.1", 258 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-rc.1.tgz", 259 | "integrity": "sha512-4+AkDbZ0Usr7mNH4wGX8fVx4WJzHdrcjRkJy52EIWyBAQEoKqb5HXca1VjejWtnVwaGwW7zk/h6oQ9FQPywQfA==", 260 | "dev": true, 261 | "requires": { 262 | "@babel/template": "7.0.0-rc.1", 263 | "@babel/traverse": "7.0.0-rc.1", 264 | "@babel/types": "7.0.0-rc.1" 265 | } 266 | }, 267 | "@babel/highlight": { 268 | "version": "7.0.0-rc.1", 269 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-rc.1.tgz", 270 | "integrity": "sha512-5PgPDV6F5s69XNznTcP0za3qH7qgBkr9DVQTXfZtpF+3iEyuIZB1Mjxu52F5CFxgzQUQJoBYHVxtH4Itdb5MgA==", 271 | "dev": true, 272 | "requires": { 273 | "chalk": "^2.0.0", 274 | "esutils": "^2.0.2", 275 | "js-tokens": "^3.0.0" 276 | } 277 | }, 278 | "@babel/parser": { 279 | "version": "7.0.0-rc.1", 280 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-rc.1.tgz", 281 | "integrity": "sha512-rC+bIz2eZnJlacERmJO25UAbXVZttcSxh0Px0gRGinOTzug5tL7+L9urfIdSWlv1ZzP03+f2xkOFLOxZqSsVmQ==", 282 | "dev": true 283 | }, 284 | "@babel/plugin-proposal-async-generator-functions": { 285 | "version": "7.0.0-rc.1", 286 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-rc.1.tgz", 287 | "integrity": "sha512-ewJnWv10AFUh+Yi6axMVQKW8L1pZCm86a44m2biYtXNSyt6FyWgdRloBbR7iCviPkeurfTCVdPS61G/t5cXVkQ==", 288 | "dev": true, 289 | "requires": { 290 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 291 | "@babel/helper-remap-async-to-generator": "7.0.0-rc.1", 292 | "@babel/plugin-syntax-async-generators": "7.0.0-rc.1" 293 | } 294 | }, 295 | "@babel/plugin-proposal-object-rest-spread": { 296 | "version": "7.0.0-rc.1", 297 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-rc.1.tgz", 298 | "integrity": "sha512-J9qLEkxuZrYh/mel9RA5wDrMGE7jQMOMa1XPZMysih4C0mveeQUExbAPyrVSrFQo5BXLcLIc6ccM24G9xPCCXA==", 299 | "dev": true, 300 | "requires": { 301 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 302 | "@babel/plugin-syntax-object-rest-spread": "7.0.0-rc.1" 303 | } 304 | }, 305 | "@babel/plugin-proposal-optional-catch-binding": { 306 | "version": "7.0.0-rc.1", 307 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-rc.1.tgz", 308 | "integrity": "sha512-mNJULpCOErHPVvnqj2i464uVuWuTTrnJFoT8dYyODCSjHBypdVvEGZx4Rk67etdDMv+iytZTdKDHUXq5JtWCdg==", 309 | "dev": true, 310 | "requires": { 311 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 312 | "@babel/plugin-syntax-optional-catch-binding": "7.0.0-rc.1" 313 | } 314 | }, 315 | "@babel/plugin-proposal-unicode-property-regex": { 316 | "version": "7.0.0-rc.1", 317 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-rc.1.tgz", 318 | "integrity": "sha512-NrUBXqwxnvrhJDzeJ4yOiPDDpPbjVQsydRELHVqzjy+WAOh/cAT4JOmMrQegU/vOjj62LM8S1Kp8wHpDgskTLQ==", 319 | "dev": true, 320 | "requires": { 321 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 322 | "@babel/helper-regex": "7.0.0-rc.1", 323 | "regexpu-core": "^4.2.0" 324 | } 325 | }, 326 | "@babel/plugin-syntax-async-generators": { 327 | "version": "7.0.0-rc.1", 328 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-rc.1.tgz", 329 | "integrity": "sha512-2F5FYc89TCrqE/8+qFlr5jVMTHfkhEOg9JUx+GXI3inW2OfcY+J6bN8EDc8PLz84PHaR8W630YOuh2PveJu3WA==", 330 | "dev": true, 331 | "requires": { 332 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 333 | } 334 | }, 335 | "@babel/plugin-syntax-object-rest-spread": { 336 | "version": "7.0.0-rc.1", 337 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-rc.1.tgz", 338 | "integrity": "sha512-stOESgG+lc68DSFvXrqoH5dW91ZtedDoR40g9wJ1ruLahCdr9X5hVLv/ddf/g/1zzjevq59A1Q+xdUREhEnrvQ==", 339 | "dev": true, 340 | "requires": { 341 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 342 | } 343 | }, 344 | "@babel/plugin-syntax-optional-catch-binding": { 345 | "version": "7.0.0-rc.1", 346 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-rc.1.tgz", 347 | "integrity": "sha512-e4dGUnZGhg1LWTvyQ6/m8nKZ9bUrtPwl9M487CEVhTA5lVUvYxASHBCEtkVWPwT16NzcWlFR/PghsHeLFGIw7A==", 348 | "dev": true, 349 | "requires": { 350 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 351 | } 352 | }, 353 | "@babel/plugin-transform-arrow-functions": { 354 | "version": "7.0.0-rc.1", 355 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-rc.1.tgz", 356 | "integrity": "sha512-9JnWkl+iKmjNgMFrLjfGJQm3f66SJxwaYjdsm49Vpvo9x7ADHMGMZYa5Yto9WNQBlIdtf+fhypwBcz6IPxdyvg==", 357 | "dev": true, 358 | "requires": { 359 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 360 | } 361 | }, 362 | "@babel/plugin-transform-async-to-generator": { 363 | "version": "7.0.0-rc.1", 364 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-rc.1.tgz", 365 | "integrity": "sha512-8oE9Frx07ILINop9hOejXgcDVhmt4FuB3ZjXnIMcSMkAuiT3xLrxFMDo1Qo0kf5mty2jLlnOO6tbbH0kiIWxWA==", 366 | "dev": true, 367 | "requires": { 368 | "@babel/helper-module-imports": "7.0.0-rc.1", 369 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 370 | "@babel/helper-remap-async-to-generator": "7.0.0-rc.1" 371 | } 372 | }, 373 | "@babel/plugin-transform-block-scoped-functions": { 374 | "version": "7.0.0-rc.1", 375 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-rc.1.tgz", 376 | "integrity": "sha512-dFEgZqmyWXaVYrFU11IgLX8M1+gK7GSU+CVRv42D7P1FFMNndg1u36jXIa7URExEuTeTUykLM/IWgk5pHWxo6A==", 377 | "dev": true, 378 | "requires": { 379 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 380 | } 381 | }, 382 | "@babel/plugin-transform-block-scoping": { 383 | "version": "7.0.0-rc.1", 384 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-rc.1.tgz", 385 | "integrity": "sha512-9uGwvSqJcmcKPEkLHA7ffrG0lKXTXprupwGjEKDw27OoRWXHdWUmA4VwpuzMrUsYyV+q+P6mgj6TPzoGJA3fAw==", 386 | "dev": true, 387 | "requires": { 388 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 389 | "lodash": "^4.17.10" 390 | } 391 | }, 392 | "@babel/plugin-transform-classes": { 393 | "version": "7.0.0-rc.1", 394 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-rc.1.tgz", 395 | "integrity": "sha512-mPXMbQR8zNHMXvaJ71wQ7iPcQLHPv12XjWwvYkDjtsEvknDQ2HWA+UYZGVpZ0bv3jLQIZuwc1kZ6f5vSsavvog==", 396 | "dev": true, 397 | "requires": { 398 | "@babel/helper-annotate-as-pure": "7.0.0-rc.1", 399 | "@babel/helper-define-map": "7.0.0-rc.1", 400 | "@babel/helper-function-name": "7.0.0-rc.1", 401 | "@babel/helper-optimise-call-expression": "7.0.0-rc.1", 402 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 403 | "@babel/helper-replace-supers": "7.0.0-rc.1", 404 | "@babel/helper-split-export-declaration": "7.0.0-rc.1", 405 | "globals": "^11.1.0" 406 | } 407 | }, 408 | "@babel/plugin-transform-computed-properties": { 409 | "version": "7.0.0-rc.1", 410 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-rc.1.tgz", 411 | "integrity": "sha512-dfJNqbyF6S8nvFzGc6NthqCqopn1PoY3q2E1KcgrFSgxwYAMOLuhu5eA5iFeXwggp6tIo6OVVXC55/Twsolmow==", 412 | "dev": true, 413 | "requires": { 414 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 415 | } 416 | }, 417 | "@babel/plugin-transform-destructuring": { 418 | "version": "7.0.0-rc.1", 419 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-rc.1.tgz", 420 | "integrity": "sha512-YpuGA3cj5+gRD053nWtogo+3wxc10mNAAyf5syXXCVS/cOWpRjc3qPidzHtPodz+v8TgAwwaXwIz/ghLOojRQw==", 421 | "dev": true, 422 | "requires": { 423 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 424 | } 425 | }, 426 | "@babel/plugin-transform-dotall-regex": { 427 | "version": "7.0.0-rc.1", 428 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-rc.1.tgz", 429 | "integrity": "sha512-6G62wnwVWCjhvmWmWatXHO4wfvWhUL1bJX0MABYIf1bpD5ROFly/HxgWkuMVcTSeIuLzsfsYKSF1CMUI0bykXw==", 430 | "dev": true, 431 | "requires": { 432 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 433 | "@babel/helper-regex": "7.0.0-rc.1", 434 | "regexpu-core": "^4.1.3" 435 | } 436 | }, 437 | "@babel/plugin-transform-duplicate-keys": { 438 | "version": "7.0.0-rc.1", 439 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-rc.1.tgz", 440 | "integrity": "sha512-cWyoUi1izJk5JbWFG07GZrZyZgG+DW4axPKI0MA+lSAxjP8VZwFUhJyjT7R4bGN81KTVv1aprKclQnKxN2R0Lw==", 441 | "dev": true, 442 | "requires": { 443 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 444 | } 445 | }, 446 | "@babel/plugin-transform-exponentiation-operator": { 447 | "version": "7.0.0-rc.1", 448 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-rc.1.tgz", 449 | "integrity": "sha512-5lc0nlX8TPdkHSIX3/3jMtqvvJfzcARcev4qqsaVkXWQ6XNrNnD8ExyTEVgoGhr5Ppz1wA0ymAK8W33uGeKSOg==", 450 | "dev": true, 451 | "requires": { 452 | "@babel/helper-builder-binary-assignment-operator-visitor": "7.0.0-rc.1", 453 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 454 | } 455 | }, 456 | "@babel/plugin-transform-for-of": { 457 | "version": "7.0.0-rc.1", 458 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-rc.1.tgz", 459 | "integrity": "sha512-v09o2ywKHu+b/vkLknjKPV9QXCxuU2cVFxkWhBqcKwl3ERe3clhiab7a/8T9Sc332o4Im6n/LLugKMtpfxqRsQ==", 460 | "dev": true, 461 | "requires": { 462 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 463 | } 464 | }, 465 | "@babel/plugin-transform-function-name": { 466 | "version": "7.0.0-rc.1", 467 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-rc.1.tgz", 468 | "integrity": "sha512-MiUORPQo3kvSCYBn/T6kKIfdDKqFAnEsaiRnTz36Y6M/p6NX7br5MgqPumVNgDboYKQ9kzaFNM8YJvWLcjL6SQ==", 469 | "dev": true, 470 | "requires": { 471 | "@babel/helper-function-name": "7.0.0-rc.1", 472 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 473 | } 474 | }, 475 | "@babel/plugin-transform-literals": { 476 | "version": "7.0.0-rc.1", 477 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-rc.1.tgz", 478 | "integrity": "sha512-iI468X7shsmB/oIPi8+UfMcOpcQPEsMAz5hDc0H8dKBGUWbPcAlyQpC8CaNDZ7y1/7lK65wtvXs5OGTQd3OsJg==", 479 | "dev": true, 480 | "requires": { 481 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 482 | } 483 | }, 484 | "@babel/plugin-transform-modules-amd": { 485 | "version": "7.0.0-rc.1", 486 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-rc.1.tgz", 487 | "integrity": "sha512-xKIF2ZAFOZRgIhEeW6zuyieyqfjft59NaHvb2C7+N9omdFDVkrx5ZeHVLb8y163a3mUb2MqJg1PLfZXdwvz1EA==", 488 | "dev": true, 489 | "requires": { 490 | "@babel/helper-module-transforms": "7.0.0-rc.1", 491 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 492 | } 493 | }, 494 | "@babel/plugin-transform-modules-commonjs": { 495 | "version": "7.0.0-rc.1", 496 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-rc.1.tgz", 497 | "integrity": "sha512-G2Y2HwdUVSR+6V1g5q7D6hLm6HQ5f0HJ4TeYzPDIwKj3Ij3djyJ1lrFRtMRxanclcRy/N01sVe0z31m8Dslmzw==", 498 | "dev": true, 499 | "requires": { 500 | "@babel/helper-module-transforms": "7.0.0-rc.1", 501 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 502 | "@babel/helper-simple-access": "7.0.0-rc.1" 503 | } 504 | }, 505 | "@babel/plugin-transform-modules-systemjs": { 506 | "version": "7.0.0-rc.1", 507 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-rc.1.tgz", 508 | "integrity": "sha512-denli1X4utH2boaedaCv3uDmrmBH0CMioIswTxViNY4M8nti3DV1m7wfKE4kDYq8UrIILLYwxxOsAvGxOS9/Ug==", 509 | "dev": true, 510 | "requires": { 511 | "@babel/helper-hoist-variables": "7.0.0-rc.1", 512 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 513 | } 514 | }, 515 | "@babel/plugin-transform-modules-umd": { 516 | "version": "7.0.0-rc.1", 517 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-rc.1.tgz", 518 | "integrity": "sha512-wvhxd77dRxyQGSEqfSRfe6dEBDy7Q13MaC1RKLX2H4+SQKZPvGuNr0BS0CEJ3Fm3uSEZ7potTBfRO4YNAygjXg==", 519 | "dev": true, 520 | "requires": { 521 | "@babel/helper-module-transforms": "7.0.0-rc.1", 522 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 523 | } 524 | }, 525 | "@babel/plugin-transform-new-target": { 526 | "version": "7.0.0-rc.1", 527 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-rc.1.tgz", 528 | "integrity": "sha512-mI10u9cgVpTjJllgISn6SmM2H/3X1osvmgT/4sjQjYARGgEfG9khrxtI74IBRhRhtBF9VBgwhah6sYAym+aghw==", 529 | "dev": true, 530 | "requires": { 531 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 532 | } 533 | }, 534 | "@babel/plugin-transform-object-super": { 535 | "version": "7.0.0-rc.1", 536 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-rc.1.tgz", 537 | "integrity": "sha512-mwoid0Rx+L55NupRE9xs1JAgFRz0JIYS/JR0aqBlLOQwBY1KrbrAtQfNwHQobwZrP9O24VBRfViMsiYLh/UV4A==", 538 | "dev": true, 539 | "requires": { 540 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 541 | "@babel/helper-replace-supers": "7.0.0-rc.1" 542 | } 543 | }, 544 | "@babel/plugin-transform-parameters": { 545 | "version": "7.0.0-rc.1", 546 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-rc.1.tgz", 547 | "integrity": "sha512-PKjm+xf23XvdP0WRj/fIiP3xa5DYOg6qd0150Mpu4JvCIci6vrWvkc+kU9RtwkXLycWRfzdSnnyuSZABxPAP8A==", 548 | "dev": true, 549 | "requires": { 550 | "@babel/helper-call-delegate": "7.0.0-rc.1", 551 | "@babel/helper-get-function-arity": "7.0.0-rc.1", 552 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 553 | } 554 | }, 555 | "@babel/plugin-transform-regenerator": { 556 | "version": "7.0.0-rc.1", 557 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-rc.1.tgz", 558 | "integrity": "sha512-a73XZOJGt0Ft8/YbRAUl0Vs1GuPpjB6QVQNYPxWUNXblSiywhkkZxLssHZnao2xTD26kLRfMoXfOtj9FMz5fcw==", 559 | "dev": true, 560 | "requires": { 561 | "regenerator-transform": "^0.13.3" 562 | } 563 | }, 564 | "@babel/plugin-transform-shorthand-properties": { 565 | "version": "7.0.0-rc.1", 566 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-rc.1.tgz", 567 | "integrity": "sha512-NkUsTSKL8txvPt9vtdkcbJEyiUtcSOAr6ZnAE+Vg4mB0hYI0sWEJCAzl26KDDFgdVSKJSAaenjX5UR3BAF3KaA==", 568 | "dev": true, 569 | "requires": { 570 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 571 | } 572 | }, 573 | "@babel/plugin-transform-spread": { 574 | "version": "7.0.0-rc.1", 575 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-rc.1.tgz", 576 | "integrity": "sha512-/3EkUVVi55i/JCbL2CxXTaoCXCopj3qQMTZ0lvgtpepx1yAMpoHYFBNWLIuQmjG7JhDauOwEdBg8TRsneYRmmw==", 577 | "dev": true, 578 | "requires": { 579 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 580 | } 581 | }, 582 | "@babel/plugin-transform-sticky-regex": { 583 | "version": "7.0.0-rc.1", 584 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-rc.1.tgz", 585 | "integrity": "sha512-sXPFGI3GTtSMxVTDwrRmgwmUcq+l0ovzUZFfAd4YK1zJQ7YQCaCjcmLskuiGM20SoteYserDADg0SrLw+8B8hA==", 586 | "dev": true, 587 | "requires": { 588 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 589 | "@babel/helper-regex": "7.0.0-rc.1" 590 | } 591 | }, 592 | "@babel/plugin-transform-template-literals": { 593 | "version": "7.0.0-rc.1", 594 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-rc.1.tgz", 595 | "integrity": "sha512-xq9eSNA65VXbMmVEjKUXB0czP8y/CRs88S8HcwZbJ7XGo4FARUJV3aGQfIPvGUmbkQegsxZx5rlTPlw3NPl+Aw==", 596 | "dev": true, 597 | "requires": { 598 | "@babel/helper-annotate-as-pure": "7.0.0-rc.1", 599 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 600 | } 601 | }, 602 | "@babel/plugin-transform-typeof-symbol": { 603 | "version": "7.0.0-rc.1", 604 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-rc.1.tgz", 605 | "integrity": "sha512-wUKNscuv3WOOFy3tGOBeayeOLyZjixjOSvb0QNXrCDRuENhfPaFQjZt/T0UDAZN0mXvAQ7Ksx2pOtXBsyIBxUA==", 606 | "dev": true, 607 | "requires": { 608 | "@babel/helper-plugin-utils": "7.0.0-rc.1" 609 | } 610 | }, 611 | "@babel/plugin-transform-unicode-regex": { 612 | "version": "7.0.0-rc.1", 613 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-rc.1.tgz", 614 | "integrity": "sha512-3yz7ehk0VFLqoKVV1GbTdH2sfMtYznhllkBDtnybveM6MeFA5WYCf6iWf+I/vF/8QIMDd1b4359GGWKCI+KuIQ==", 615 | "dev": true, 616 | "requires": { 617 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 618 | "@babel/helper-regex": "7.0.0-rc.1", 619 | "regexpu-core": "^4.1.3" 620 | } 621 | }, 622 | "@babel/preset-env": { 623 | "version": "7.0.0-rc.1", 624 | "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.0.0-rc.1.tgz", 625 | "integrity": "sha512-c1mn7dKMBnkcS9Se9cuB5K2PAN48I0/mFXIA/ARyu7dHnLxiteSL0wyQukVp4NenKqFlAtPFx5ZtgWEMjaYmbg==", 626 | "dev": true, 627 | "requires": { 628 | "@babel/helper-module-imports": "7.0.0-rc.1", 629 | "@babel/helper-plugin-utils": "7.0.0-rc.1", 630 | "@babel/plugin-proposal-async-generator-functions": "7.0.0-rc.1", 631 | "@babel/plugin-proposal-object-rest-spread": "7.0.0-rc.1", 632 | "@babel/plugin-proposal-optional-catch-binding": "7.0.0-rc.1", 633 | "@babel/plugin-proposal-unicode-property-regex": "7.0.0-rc.1", 634 | "@babel/plugin-syntax-async-generators": "7.0.0-rc.1", 635 | "@babel/plugin-syntax-object-rest-spread": "7.0.0-rc.1", 636 | "@babel/plugin-syntax-optional-catch-binding": "7.0.0-rc.1", 637 | "@babel/plugin-transform-arrow-functions": "7.0.0-rc.1", 638 | "@babel/plugin-transform-async-to-generator": "7.0.0-rc.1", 639 | "@babel/plugin-transform-block-scoped-functions": "7.0.0-rc.1", 640 | "@babel/plugin-transform-block-scoping": "7.0.0-rc.1", 641 | "@babel/plugin-transform-classes": "7.0.0-rc.1", 642 | "@babel/plugin-transform-computed-properties": "7.0.0-rc.1", 643 | "@babel/plugin-transform-destructuring": "7.0.0-rc.1", 644 | "@babel/plugin-transform-dotall-regex": "7.0.0-rc.1", 645 | "@babel/plugin-transform-duplicate-keys": "7.0.0-rc.1", 646 | "@babel/plugin-transform-exponentiation-operator": "7.0.0-rc.1", 647 | "@babel/plugin-transform-for-of": "7.0.0-rc.1", 648 | "@babel/plugin-transform-function-name": "7.0.0-rc.1", 649 | "@babel/plugin-transform-literals": "7.0.0-rc.1", 650 | "@babel/plugin-transform-modules-amd": "7.0.0-rc.1", 651 | "@babel/plugin-transform-modules-commonjs": "7.0.0-rc.1", 652 | "@babel/plugin-transform-modules-systemjs": "7.0.0-rc.1", 653 | "@babel/plugin-transform-modules-umd": "7.0.0-rc.1", 654 | "@babel/plugin-transform-new-target": "7.0.0-rc.1", 655 | "@babel/plugin-transform-object-super": "7.0.0-rc.1", 656 | "@babel/plugin-transform-parameters": "7.0.0-rc.1", 657 | "@babel/plugin-transform-regenerator": "7.0.0-rc.1", 658 | "@babel/plugin-transform-shorthand-properties": "7.0.0-rc.1", 659 | "@babel/plugin-transform-spread": "7.0.0-rc.1", 660 | "@babel/plugin-transform-sticky-regex": "7.0.0-rc.1", 661 | "@babel/plugin-transform-template-literals": "7.0.0-rc.1", 662 | "@babel/plugin-transform-typeof-symbol": "7.0.0-rc.1", 663 | "@babel/plugin-transform-unicode-regex": "7.0.0-rc.1", 664 | "browserslist": "^3.0.0", 665 | "invariant": "^2.2.2", 666 | "js-levenshtein": "^1.1.3", 667 | "semver": "^5.3.0" 668 | } 669 | }, 670 | "@babel/register": { 671 | "version": "7.0.0-rc.1", 672 | "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.0.0-rc.1.tgz", 673 | "integrity": "sha512-Q6WtPB7kzWjNppoy2K47Hs9Kw/TvY7QtMw+E3PuTJvybWSPbqIOvNLrAHzWj+CSx3Ueuf+/gSU83RN57+7tDiQ==", 674 | "dev": true, 675 | "requires": { 676 | "core-js": "^2.5.7", 677 | "find-cache-dir": "^1.0.0", 678 | "home-or-tmp": "^3.0.0", 679 | "lodash": "^4.17.10", 680 | "mkdirp": "^0.5.1", 681 | "pirates": "^4.0.0", 682 | "source-map-support": "^0.4.2" 683 | } 684 | }, 685 | "@babel/template": { 686 | "version": "7.0.0-rc.1", 687 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-rc.1.tgz", 688 | "integrity": "sha512-gPLng2iedNlkaGD0UdwaUByQXK8k4bnaoq2RH5JgR2mqHvh2RyjkDdaMbZFlSss1Iu8+PrXwbIRworTl8iRqbA==", 689 | "dev": true, 690 | "requires": { 691 | "@babel/code-frame": "7.0.0-rc.1", 692 | "@babel/parser": "7.0.0-rc.1", 693 | "@babel/types": "7.0.0-rc.1", 694 | "lodash": "^4.17.10" 695 | } 696 | }, 697 | "@babel/traverse": { 698 | "version": "7.0.0-rc.1", 699 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-rc.1.tgz", 700 | "integrity": "sha512-lNOpJ5xzakg+fCobQQHdeDRYeN54b+bAZpeTYMeeYPAvN+hTldg9/FSNKYEMRs5EWoQ0Yt74gwq98InSORdSDQ==", 701 | "dev": true, 702 | "requires": { 703 | "@babel/code-frame": "7.0.0-rc.1", 704 | "@babel/generator": "7.0.0-rc.1", 705 | "@babel/helper-function-name": "7.0.0-rc.1", 706 | "@babel/helper-split-export-declaration": "7.0.0-rc.1", 707 | "@babel/parser": "7.0.0-rc.1", 708 | "@babel/types": "7.0.0-rc.1", 709 | "debug": "^3.1.0", 710 | "globals": "^11.1.0", 711 | "lodash": "^4.17.10" 712 | }, 713 | "dependencies": { 714 | "debug": { 715 | "version": "3.1.0", 716 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 717 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 718 | "dev": true, 719 | "requires": { 720 | "ms": "2.0.0" 721 | } 722 | } 723 | } 724 | }, 725 | "@babel/types": { 726 | "version": "7.0.0-rc.1", 727 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-rc.1.tgz", 728 | "integrity": "sha512-MBwO1JQKin9BwKTGydrYe4VDJbStCUy35IhJzeZt3FByOdx/q3CYaqMRrH70qVD2RA7+Xk8e3RN0mzKZkYBYuQ==", 729 | "dev": true, 730 | "requires": { 731 | "esutils": "^2.0.2", 732 | "lodash": "^4.17.10", 733 | "to-fast-properties": "^2.0.0" 734 | } 735 | }, 736 | "accepts": { 737 | "version": "1.3.5", 738 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", 739 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", 740 | "requires": { 741 | "mime-types": "~2.1.18", 742 | "negotiator": "0.6.1" 743 | } 744 | }, 745 | "ansi-styles": { 746 | "version": "3.2.1", 747 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 748 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 749 | "dev": true, 750 | "requires": { 751 | "color-convert": "^1.9.0" 752 | } 753 | }, 754 | "array-flatten": { 755 | "version": "1.1.1", 756 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 757 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 758 | }, 759 | "async": { 760 | "version": "2.6.1", 761 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", 762 | "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", 763 | "requires": { 764 | "lodash": "^4.17.10" 765 | } 766 | }, 767 | "babel-polyfill": { 768 | "version": "6.26.0", 769 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", 770 | "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", 771 | "dev": true, 772 | "requires": { 773 | "babel-runtime": "^6.26.0", 774 | "core-js": "^2.5.0", 775 | "regenerator-runtime": "^0.10.5" 776 | } 777 | }, 778 | "babel-runtime": { 779 | "version": "6.26.0", 780 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 781 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 782 | "dev": true, 783 | "requires": { 784 | "core-js": "^2.4.0", 785 | "regenerator-runtime": "^0.11.0" 786 | }, 787 | "dependencies": { 788 | "regenerator-runtime": { 789 | "version": "0.11.1", 790 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 791 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 792 | "dev": true 793 | } 794 | } 795 | }, 796 | "bluebird": { 797 | "version": "3.5.1", 798 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 799 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 800 | }, 801 | "body-parser": { 802 | "version": "1.18.2", 803 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", 804 | "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", 805 | "requires": { 806 | "bytes": "3.0.0", 807 | "content-type": "~1.0.4", 808 | "debug": "2.6.9", 809 | "depd": "~1.1.1", 810 | "http-errors": "~1.6.2", 811 | "iconv-lite": "0.4.19", 812 | "on-finished": "~2.3.0", 813 | "qs": "6.5.1", 814 | "raw-body": "2.3.2", 815 | "type-is": "~1.6.15" 816 | } 817 | }, 818 | "browserslist": { 819 | "version": "3.2.8", 820 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", 821 | "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", 822 | "dev": true, 823 | "requires": { 824 | "caniuse-lite": "^1.0.30000844", 825 | "electron-to-chromium": "^1.3.47" 826 | } 827 | }, 828 | "bson": { 829 | "version": "1.0.9", 830 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", 831 | "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==" 832 | }, 833 | "bytes": { 834 | "version": "3.0.0", 835 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 836 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 837 | }, 838 | "caniuse-lite": { 839 | "version": "1.0.30000877", 840 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz", 841 | "integrity": "sha512-h04kV/lcuhItU1CZTJOxUEk/9R+1XeJqgc67E+XC8J9TjPM8kzVgOn27ZtRdDUo8O5F8U4QRCzDWJrVym3w3Cg==", 842 | "dev": true 843 | }, 844 | "chalk": { 845 | "version": "2.4.1", 846 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 847 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 848 | "dev": true, 849 | "requires": { 850 | "ansi-styles": "^3.2.1", 851 | "escape-string-regexp": "^1.0.5", 852 | "supports-color": "^5.3.0" 853 | } 854 | }, 855 | "color-convert": { 856 | "version": "1.9.2", 857 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", 858 | "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", 859 | "dev": true, 860 | "requires": { 861 | "color-name": "1.1.1" 862 | } 863 | }, 864 | "color-name": { 865 | "version": "1.1.1", 866 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", 867 | "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", 868 | "dev": true 869 | }, 870 | "commondir": { 871 | "version": "1.0.1", 872 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 873 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 874 | "dev": true 875 | }, 876 | "content-disposition": { 877 | "version": "0.5.2", 878 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 879 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 880 | }, 881 | "content-type": { 882 | "version": "1.0.4", 883 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 884 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 885 | }, 886 | "convert-source-map": { 887 | "version": "1.5.1", 888 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", 889 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", 890 | "dev": true 891 | }, 892 | "cookie": { 893 | "version": "0.3.1", 894 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 895 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 896 | }, 897 | "cookie-signature": { 898 | "version": "1.0.6", 899 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 900 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 901 | }, 902 | "core-js": { 903 | "version": "2.5.7", 904 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", 905 | "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", 906 | "dev": true 907 | }, 908 | "debug": { 909 | "version": "2.6.9", 910 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 911 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 912 | "requires": { 913 | "ms": "2.0.0" 914 | } 915 | }, 916 | "depd": { 917 | "version": "1.1.2", 918 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 919 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 920 | }, 921 | "destroy": { 922 | "version": "1.0.4", 923 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 924 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 925 | }, 926 | "ee-first": { 927 | "version": "1.1.1", 928 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 929 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 930 | }, 931 | "electron-to-chromium": { 932 | "version": "1.3.58", 933 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz", 934 | "integrity": "sha512-AGJxlBEn2wOohxqWZkISVsOjZueKTQljfEODTDSEiMqSpH0S+xzV+/5oEM9AGaqhu7DzrpKOgU7ocQRjj0nJmg==", 935 | "dev": true 936 | }, 937 | "encodeurl": { 938 | "version": "1.0.2", 939 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 940 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 941 | }, 942 | "escape-html": { 943 | "version": "1.0.3", 944 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 945 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 946 | }, 947 | "escape-string-regexp": { 948 | "version": "1.0.5", 949 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 950 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 951 | "dev": true 952 | }, 953 | "esutils": { 954 | "version": "2.0.2", 955 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 956 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 957 | "dev": true 958 | }, 959 | "etag": { 960 | "version": "1.8.1", 961 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 962 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 963 | }, 964 | "express": { 965 | "version": "4.16.3", 966 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", 967 | "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", 968 | "requires": { 969 | "accepts": "~1.3.5", 970 | "array-flatten": "1.1.1", 971 | "body-parser": "1.18.2", 972 | "content-disposition": "0.5.2", 973 | "content-type": "~1.0.4", 974 | "cookie": "0.3.1", 975 | "cookie-signature": "1.0.6", 976 | "debug": "2.6.9", 977 | "depd": "~1.1.2", 978 | "encodeurl": "~1.0.2", 979 | "escape-html": "~1.0.3", 980 | "etag": "~1.8.1", 981 | "finalhandler": "1.1.1", 982 | "fresh": "0.5.2", 983 | "merge-descriptors": "1.0.1", 984 | "methods": "~1.1.2", 985 | "on-finished": "~2.3.0", 986 | "parseurl": "~1.3.2", 987 | "path-to-regexp": "0.1.7", 988 | "proxy-addr": "~2.0.3", 989 | "qs": "6.5.1", 990 | "range-parser": "~1.2.0", 991 | "safe-buffer": "5.1.1", 992 | "send": "0.16.2", 993 | "serve-static": "1.13.2", 994 | "setprototypeof": "1.1.0", 995 | "statuses": "~1.4.0", 996 | "type-is": "~1.6.16", 997 | "utils-merge": "1.0.1", 998 | "vary": "~1.1.2" 999 | } 1000 | }, 1001 | "express-graphql": { 1002 | "version": "0.6.12", 1003 | "resolved": "https://registry.npmjs.org/express-graphql/-/express-graphql-0.6.12.tgz", 1004 | "integrity": "sha512-ouLWV0hRw4hnaLtXzzwhdC79ewxKbY2PRvm05mPc/zOH5W5WVCHDQ1SmNxEPBQdUeeSNh29aIqW9zEQkA3kMuA==", 1005 | "requires": { 1006 | "accepts": "^1.3.0", 1007 | "content-type": "^1.0.4", 1008 | "http-errors": "^1.3.0", 1009 | "raw-body": "^2.3.2" 1010 | } 1011 | }, 1012 | "finalhandler": { 1013 | "version": "1.1.1", 1014 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", 1015 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", 1016 | "requires": { 1017 | "debug": "2.6.9", 1018 | "encodeurl": "~1.0.2", 1019 | "escape-html": "~1.0.3", 1020 | "on-finished": "~2.3.0", 1021 | "parseurl": "~1.3.2", 1022 | "statuses": "~1.4.0", 1023 | "unpipe": "~1.0.0" 1024 | } 1025 | }, 1026 | "find-cache-dir": { 1027 | "version": "1.0.0", 1028 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", 1029 | "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", 1030 | "dev": true, 1031 | "requires": { 1032 | "commondir": "^1.0.1", 1033 | "make-dir": "^1.0.0", 1034 | "pkg-dir": "^2.0.0" 1035 | } 1036 | }, 1037 | "find-up": { 1038 | "version": "2.1.0", 1039 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1040 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1041 | "dev": true, 1042 | "requires": { 1043 | "locate-path": "^2.0.0" 1044 | } 1045 | }, 1046 | "forwarded": { 1047 | "version": "0.1.2", 1048 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 1049 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 1050 | }, 1051 | "fresh": { 1052 | "version": "0.5.2", 1053 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1054 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1055 | }, 1056 | "globals": { 1057 | "version": "11.7.0", 1058 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", 1059 | "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", 1060 | "dev": true 1061 | }, 1062 | "graphql": { 1063 | "version": "0.13.2", 1064 | "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz", 1065 | "integrity": "sha512-QZ5BL8ZO/B20VA8APauGBg3GyEgZ19eduvpLWoq5x7gMmWnHoy8rlQWPLmWgFvo1yNgjSEFMesmS4R6pPr7xog==", 1066 | "requires": { 1067 | "iterall": "^1.2.1" 1068 | } 1069 | }, 1070 | "has-flag": { 1071 | "version": "3.0.0", 1072 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1073 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1074 | "dev": true 1075 | }, 1076 | "home-or-tmp": { 1077 | "version": "3.0.0", 1078 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-3.0.0.tgz", 1079 | "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=", 1080 | "dev": true 1081 | }, 1082 | "http-errors": { 1083 | "version": "1.6.3", 1084 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", 1085 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", 1086 | "requires": { 1087 | "depd": "~1.1.2", 1088 | "inherits": "2.0.3", 1089 | "setprototypeof": "1.1.0", 1090 | "statuses": ">= 1.4.0 < 2" 1091 | } 1092 | }, 1093 | "iconv-lite": { 1094 | "version": "0.4.19", 1095 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 1096 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" 1097 | }, 1098 | "inherits": { 1099 | "version": "2.0.3", 1100 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1101 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1102 | }, 1103 | "invariant": { 1104 | "version": "2.2.4", 1105 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 1106 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 1107 | "dev": true, 1108 | "requires": { 1109 | "loose-envify": "^1.0.0" 1110 | } 1111 | }, 1112 | "ipaddr.js": { 1113 | "version": "1.8.0", 1114 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", 1115 | "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" 1116 | }, 1117 | "iterall": { 1118 | "version": "1.2.2", 1119 | "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.2.2.tgz", 1120 | "integrity": "sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==" 1121 | }, 1122 | "js-levenshtein": { 1123 | "version": "1.1.3", 1124 | "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.3.tgz", 1125 | "integrity": "sha512-/812MXr9RBtMObviZ8gQBhHO8MOrGj8HlEE+4ccMTElNA/6I3u39u+bhny55Lk921yn44nSZFy9naNLElL5wgQ==", 1126 | "dev": true 1127 | }, 1128 | "js-tokens": { 1129 | "version": "3.0.2", 1130 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1131 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1132 | "dev": true 1133 | }, 1134 | "jsesc": { 1135 | "version": "2.5.1", 1136 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", 1137 | "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", 1138 | "dev": true 1139 | }, 1140 | "json5": { 1141 | "version": "0.5.1", 1142 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 1143 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 1144 | "dev": true 1145 | }, 1146 | "kareem": { 1147 | "version": "2.2.1", 1148 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.2.1.tgz", 1149 | "integrity": "sha512-xpDFy8OxkFM+vK6pXy6JmH92ibeEFUuDWzas5M9L7MzVmHW3jzwAHxodCPV/BYkf4A31bVDLyonrMfp9RXb/oA==" 1150 | }, 1151 | "locate-path": { 1152 | "version": "2.0.0", 1153 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1154 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1155 | "dev": true, 1156 | "requires": { 1157 | "p-locate": "^2.0.0", 1158 | "path-exists": "^3.0.0" 1159 | } 1160 | }, 1161 | "lodash": { 1162 | "version": "4.17.10", 1163 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", 1164 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" 1165 | }, 1166 | "lodash.get": { 1167 | "version": "4.4.2", 1168 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 1169 | "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" 1170 | }, 1171 | "loose-envify": { 1172 | "version": "1.4.0", 1173 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1174 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1175 | "dev": true, 1176 | "requires": { 1177 | "js-tokens": "^3.0.0 || ^4.0.0" 1178 | } 1179 | }, 1180 | "make-dir": { 1181 | "version": "1.3.0", 1182 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 1183 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 1184 | "dev": true, 1185 | "requires": { 1186 | "pify": "^3.0.0" 1187 | } 1188 | }, 1189 | "media-typer": { 1190 | "version": "0.3.0", 1191 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1192 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1193 | }, 1194 | "merge-descriptors": { 1195 | "version": "1.0.1", 1196 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1197 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1198 | }, 1199 | "methods": { 1200 | "version": "1.1.2", 1201 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1202 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1203 | }, 1204 | "mime": { 1205 | "version": "1.4.1", 1206 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", 1207 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" 1208 | }, 1209 | "mime-db": { 1210 | "version": "1.35.0", 1211 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", 1212 | "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" 1213 | }, 1214 | "mime-types": { 1215 | "version": "2.1.19", 1216 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", 1217 | "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", 1218 | "requires": { 1219 | "mime-db": "~1.35.0" 1220 | } 1221 | }, 1222 | "minimist": { 1223 | "version": "0.0.8", 1224 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1225 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1226 | "dev": true 1227 | }, 1228 | "mkdirp": { 1229 | "version": "0.5.1", 1230 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1231 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1232 | "dev": true, 1233 | "requires": { 1234 | "minimist": "0.0.8" 1235 | } 1236 | }, 1237 | "mongodb": { 1238 | "version": "3.1.1", 1239 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.1.tgz", 1240 | "integrity": "sha512-GU9oWK4pi8PC7NyGiwjFMwZyMqwGWoMEMvM0LZh7UKW/FFAqgmZKjjriD+5MEOCDUJE2dtHX93/K5UtDxO0otg==", 1241 | "requires": { 1242 | "mongodb-core": "3.1.0" 1243 | } 1244 | }, 1245 | "mongodb-core": { 1246 | "version": "3.1.0", 1247 | "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.0.tgz", 1248 | "integrity": "sha512-qRjG62Fu//CZhkgn0jA/k8jh5MhACIq8cOJUryH6sck87pgt+C222MSD02tsCq5zNo/B6ZFHtNodZ2qpf8E86g==", 1249 | "requires": { 1250 | "bson": "~1.0.4", 1251 | "require_optional": "^1.0.1", 1252 | "saslprep": "^1.0.0" 1253 | } 1254 | }, 1255 | "mongoose": { 1256 | "version": "5.2.8", 1257 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.2.8.tgz", 1258 | "integrity": "sha512-D4AyNZB4TgwBBkFYMDhKBRdR3YdLJvYxEAS25dCh4ZqRU6QgYPiH7ikGVkLz+ItL5yQDzqb2sME87gMNvr1ICQ==", 1259 | "requires": { 1260 | "async": "2.6.1", 1261 | "bson": "~1.0.5", 1262 | "kareem": "2.2.1", 1263 | "lodash.get": "4.4.2", 1264 | "mongodb": "3.1.1", 1265 | "mongodb-core": "3.1.0", 1266 | "mongoose-legacy-pluralize": "1.0.2", 1267 | "mpath": "0.4.1", 1268 | "mquery": "3.1.2", 1269 | "ms": "2.0.0", 1270 | "regexp-clone": "0.0.1", 1271 | "safe-buffer": "5.1.2", 1272 | "sliced": "1.0.1" 1273 | }, 1274 | "dependencies": { 1275 | "safe-buffer": { 1276 | "version": "5.1.2", 1277 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1278 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1279 | } 1280 | } 1281 | }, 1282 | "mongoose-legacy-pluralize": { 1283 | "version": "1.0.2", 1284 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 1285 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" 1286 | }, 1287 | "mpath": { 1288 | "version": "0.4.1", 1289 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz", 1290 | "integrity": "sha512-NNY/MpBkALb9jJmjpBlIi6GRoLveLUM0pJzgbp9vY9F7IQEb/HREC/nxrixechcQwd1NevOhJnWWV8QQQRE+OA==" 1291 | }, 1292 | "mquery": { 1293 | "version": "3.1.2", 1294 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.1.2.tgz", 1295 | "integrity": "sha512-rBo2+eShI/Ko/GFzXMvJvYjzeLRW3P7E4NllAGRyNO90Xw5awo5RI3zCqzuJWe1NSvdL7cGu3RPLuGjZ1TmnmA==", 1296 | "requires": { 1297 | "bluebird": "3.5.1", 1298 | "debug": "3.1.0", 1299 | "regexp-clone": "0.0.1", 1300 | "sliced": "1.0.1" 1301 | }, 1302 | "dependencies": { 1303 | "debug": { 1304 | "version": "3.1.0", 1305 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1306 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1307 | "requires": { 1308 | "ms": "2.0.0" 1309 | } 1310 | } 1311 | } 1312 | }, 1313 | "ms": { 1314 | "version": "2.0.0", 1315 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1316 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1317 | }, 1318 | "negotiator": { 1319 | "version": "0.6.1", 1320 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 1321 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 1322 | }, 1323 | "node-modules-regexp": { 1324 | "version": "1.0.0", 1325 | "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", 1326 | "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", 1327 | "dev": true 1328 | }, 1329 | "on-finished": { 1330 | "version": "2.3.0", 1331 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1332 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1333 | "requires": { 1334 | "ee-first": "1.1.1" 1335 | } 1336 | }, 1337 | "p-limit": { 1338 | "version": "1.3.0", 1339 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 1340 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 1341 | "dev": true, 1342 | "requires": { 1343 | "p-try": "^1.0.0" 1344 | } 1345 | }, 1346 | "p-locate": { 1347 | "version": "2.0.0", 1348 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 1349 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 1350 | "dev": true, 1351 | "requires": { 1352 | "p-limit": "^1.1.0" 1353 | } 1354 | }, 1355 | "p-try": { 1356 | "version": "1.0.0", 1357 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 1358 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 1359 | "dev": true 1360 | }, 1361 | "parseurl": { 1362 | "version": "1.3.2", 1363 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 1364 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" 1365 | }, 1366 | "path-exists": { 1367 | "version": "3.0.0", 1368 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1369 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1370 | "dev": true 1371 | }, 1372 | "path-parse": { 1373 | "version": "1.0.6", 1374 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1375 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1376 | "dev": true 1377 | }, 1378 | "path-to-regexp": { 1379 | "version": "0.1.7", 1380 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1381 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1382 | }, 1383 | "pify": { 1384 | "version": "3.0.0", 1385 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1386 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 1387 | "dev": true 1388 | }, 1389 | "pirates": { 1390 | "version": "4.0.0", 1391 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz", 1392 | "integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==", 1393 | "dev": true, 1394 | "requires": { 1395 | "node-modules-regexp": "^1.0.0" 1396 | } 1397 | }, 1398 | "pkg-dir": { 1399 | "version": "2.0.0", 1400 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 1401 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 1402 | "dev": true, 1403 | "requires": { 1404 | "find-up": "^2.1.0" 1405 | } 1406 | }, 1407 | "private": { 1408 | "version": "0.1.8", 1409 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 1410 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 1411 | "dev": true 1412 | }, 1413 | "proxy-addr": { 1414 | "version": "2.0.4", 1415 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", 1416 | "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", 1417 | "requires": { 1418 | "forwarded": "~0.1.2", 1419 | "ipaddr.js": "1.8.0" 1420 | } 1421 | }, 1422 | "qs": { 1423 | "version": "6.5.1", 1424 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 1425 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" 1426 | }, 1427 | "range-parser": { 1428 | "version": "1.2.0", 1429 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 1430 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 1431 | }, 1432 | "raw-body": { 1433 | "version": "2.3.2", 1434 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", 1435 | "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", 1436 | "requires": { 1437 | "bytes": "3.0.0", 1438 | "http-errors": "1.6.2", 1439 | "iconv-lite": "0.4.19", 1440 | "unpipe": "1.0.0" 1441 | }, 1442 | "dependencies": { 1443 | "depd": { 1444 | "version": "1.1.1", 1445 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", 1446 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" 1447 | }, 1448 | "http-errors": { 1449 | "version": "1.6.2", 1450 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", 1451 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", 1452 | "requires": { 1453 | "depd": "1.1.1", 1454 | "inherits": "2.0.3", 1455 | "setprototypeof": "1.0.3", 1456 | "statuses": ">= 1.3.1 < 2" 1457 | } 1458 | }, 1459 | "setprototypeof": { 1460 | "version": "1.0.3", 1461 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 1462 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 1463 | } 1464 | } 1465 | }, 1466 | "regenerate": { 1467 | "version": "1.4.0", 1468 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", 1469 | "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", 1470 | "dev": true 1471 | }, 1472 | "regenerate-unicode-properties": { 1473 | "version": "7.0.0", 1474 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", 1475 | "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", 1476 | "dev": true, 1477 | "requires": { 1478 | "regenerate": "^1.4.0" 1479 | } 1480 | }, 1481 | "regenerator-runtime": { 1482 | "version": "0.10.5", 1483 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", 1484 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", 1485 | "dev": true 1486 | }, 1487 | "regenerator-transform": { 1488 | "version": "0.13.3", 1489 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", 1490 | "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", 1491 | "dev": true, 1492 | "requires": { 1493 | "private": "^0.1.6" 1494 | } 1495 | }, 1496 | "regexp-clone": { 1497 | "version": "0.0.1", 1498 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", 1499 | "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" 1500 | }, 1501 | "regexpu-core": { 1502 | "version": "4.2.0", 1503 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", 1504 | "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", 1505 | "dev": true, 1506 | "requires": { 1507 | "regenerate": "^1.4.0", 1508 | "regenerate-unicode-properties": "^7.0.0", 1509 | "regjsgen": "^0.4.0", 1510 | "regjsparser": "^0.3.0", 1511 | "unicode-match-property-ecmascript": "^1.0.4", 1512 | "unicode-match-property-value-ecmascript": "^1.0.2" 1513 | } 1514 | }, 1515 | "regjsgen": { 1516 | "version": "0.4.0", 1517 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", 1518 | "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", 1519 | "dev": true 1520 | }, 1521 | "regjsparser": { 1522 | "version": "0.3.0", 1523 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", 1524 | "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", 1525 | "dev": true, 1526 | "requires": { 1527 | "jsesc": "~0.5.0" 1528 | }, 1529 | "dependencies": { 1530 | "jsesc": { 1531 | "version": "0.5.0", 1532 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 1533 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 1534 | "dev": true 1535 | } 1536 | } 1537 | }, 1538 | "require_optional": { 1539 | "version": "1.0.1", 1540 | "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", 1541 | "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", 1542 | "requires": { 1543 | "resolve-from": "^2.0.0", 1544 | "semver": "^5.1.0" 1545 | } 1546 | }, 1547 | "resolve": { 1548 | "version": "1.8.1", 1549 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", 1550 | "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", 1551 | "dev": true, 1552 | "requires": { 1553 | "path-parse": "^1.0.5" 1554 | } 1555 | }, 1556 | "resolve-from": { 1557 | "version": "2.0.0", 1558 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", 1559 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" 1560 | }, 1561 | "safe-buffer": { 1562 | "version": "5.1.1", 1563 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 1564 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 1565 | }, 1566 | "saslprep": { 1567 | "version": "1.0.1", 1568 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.1.tgz", 1569 | "integrity": "sha512-ntN6SbE3hRqd45PKKadRPgA+xHPWg5lPSj2JWJdJvjTwXDDfkPVtXWvP8jJojvnm+rAsZ2b299C5NwZqq818EA==", 1570 | "optional": true 1571 | }, 1572 | "semver": { 1573 | "version": "5.5.0", 1574 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 1575 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" 1576 | }, 1577 | "send": { 1578 | "version": "0.16.2", 1579 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", 1580 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", 1581 | "requires": { 1582 | "debug": "2.6.9", 1583 | "depd": "~1.1.2", 1584 | "destroy": "~1.0.4", 1585 | "encodeurl": "~1.0.2", 1586 | "escape-html": "~1.0.3", 1587 | "etag": "~1.8.1", 1588 | "fresh": "0.5.2", 1589 | "http-errors": "~1.6.2", 1590 | "mime": "1.4.1", 1591 | "ms": "2.0.0", 1592 | "on-finished": "~2.3.0", 1593 | "range-parser": "~1.2.0", 1594 | "statuses": "~1.4.0" 1595 | } 1596 | }, 1597 | "serve-static": { 1598 | "version": "1.13.2", 1599 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", 1600 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", 1601 | "requires": { 1602 | "encodeurl": "~1.0.2", 1603 | "escape-html": "~1.0.3", 1604 | "parseurl": "~1.3.2", 1605 | "send": "0.16.2" 1606 | } 1607 | }, 1608 | "setprototypeof": { 1609 | "version": "1.1.0", 1610 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", 1611 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" 1612 | }, 1613 | "sliced": { 1614 | "version": "1.0.1", 1615 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 1616 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 1617 | }, 1618 | "source-map": { 1619 | "version": "0.5.7", 1620 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1621 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1622 | "dev": true 1623 | }, 1624 | "source-map-support": { 1625 | "version": "0.4.18", 1626 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 1627 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 1628 | "dev": true, 1629 | "requires": { 1630 | "source-map": "^0.5.6" 1631 | } 1632 | }, 1633 | "statuses": { 1634 | "version": "1.4.0", 1635 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 1636 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 1637 | }, 1638 | "supports-color": { 1639 | "version": "5.4.0", 1640 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 1641 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 1642 | "dev": true, 1643 | "requires": { 1644 | "has-flag": "^3.0.0" 1645 | } 1646 | }, 1647 | "to-fast-properties": { 1648 | "version": "2.0.0", 1649 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 1650 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 1651 | "dev": true 1652 | }, 1653 | "trim-right": { 1654 | "version": "1.0.1", 1655 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 1656 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 1657 | "dev": true 1658 | }, 1659 | "type-is": { 1660 | "version": "1.6.16", 1661 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", 1662 | "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", 1663 | "requires": { 1664 | "media-typer": "0.3.0", 1665 | "mime-types": "~2.1.18" 1666 | } 1667 | }, 1668 | "unicode-canonical-property-names-ecmascript": { 1669 | "version": "1.0.4", 1670 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", 1671 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", 1672 | "dev": true 1673 | }, 1674 | "unicode-match-property-ecmascript": { 1675 | "version": "1.0.4", 1676 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", 1677 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", 1678 | "dev": true, 1679 | "requires": { 1680 | "unicode-canonical-property-names-ecmascript": "^1.0.4", 1681 | "unicode-property-aliases-ecmascript": "^1.0.4" 1682 | } 1683 | }, 1684 | "unicode-match-property-value-ecmascript": { 1685 | "version": "1.0.2", 1686 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", 1687 | "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", 1688 | "dev": true 1689 | }, 1690 | "unicode-property-aliases-ecmascript": { 1691 | "version": "1.0.4", 1692 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", 1693 | "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", 1694 | "dev": true 1695 | }, 1696 | "unpipe": { 1697 | "version": "1.0.0", 1698 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1699 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1700 | }, 1701 | "utils-merge": { 1702 | "version": "1.0.1", 1703 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1704 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1705 | }, 1706 | "vary": { 1707 | "version": "1.1.2", 1708 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1709 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1710 | } 1711 | } 1712 | } 1713 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "airbnbCloneBackend", 3 | "version": "0.0.1", 4 | "description": "This is the backend for Airbnb React Native clone app", 5 | "scripts": { 6 | "start": "node ./src/index.js" 7 | }, 8 | "dependencies": { 9 | "express": "^4.16.3", 10 | "express-graphql": "^0.6.12", 11 | "graphql": "^0.13.2", 12 | "mongoose": "^5.2.8" 13 | }, 14 | "devDependencies": { 15 | "@babel/core": "^7.0.0-rc.1", 16 | "@babel/preset-env": "^7.0.0-rc.1", 17 | "@babel/register": "^7.0.0-rc.1", 18 | "babel-polyfill": "^6.26.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/app.js: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import mongoose from 'mongoose'; 3 | import graphqlHTTP from 'express-graphql'; 4 | import schema from '../graphql'; 5 | 6 | const app = express(); 7 | 8 | // GraphqQL server route 9 | app.use('/graphql', graphqlHTTP(req => ({ 10 | schema, 11 | pretty: true, 12 | graphiql: true 13 | }))); 14 | 15 | mongoose.connect('mongodb://mongo:27017/graphql'); 16 | 17 | const server = app.listen(8080, () => { 18 | console.log('Listening at port', server.address().port); 19 | }); 20 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | require('@babel/register'); 2 | require('babel-polyfill'); 3 | require('./app'); --------------------------------------------------------------------------------