From f9a5910b2976d882e1bff2a50933bf7e52e8be86 Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Tue, 23 Jan 2018 16:50:05 -0800 Subject: [PATCH 01/21] file tree setup, small changes made to backend server.js --- lab-andrew/backend/.eslintignore | 5 + lab-andrew/backend/.eslintrc.json | 27 + lab-andrew/backend/.gitignore | 107 + lab-andrew/backend/.travis.yml | 18 + lab-andrew/backend/LICENSE | 21 + lab-andrew/backend/README.md | 135 + lab-andrew/backend/__test__/assets/bad1.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad2.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad3.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad4.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad5.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad6.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad7.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad8.wav | Bin 0 -> 35800 bytes lab-andrew/backend/__test__/assets/bad9.wav | Bin 0 -> 35800 bytes .../backend/__test__/assets/testclip.wav | Bin 0 -> 47196 bytes lab-andrew/backend/__test__/lib/setup.js | 40 + .../lib/transforms/bitcrusher.test.js | 31 + .../__test__/lib/transforms/delay.test.js | 49 + .../__test__/lib/transforms/noise-add.test.js | 31 + .../__test__/lib/transforms/reverse.test.js | 31 + .../transforms/sample-rate-transform.test.js | 18 + .../lib/transforms/wave-parser.test.js | 104 + .../backend/__test__/lib/user-mock-factory.js | 32 + .../backend/__test__/lib/wave-mock-factory.js | 31 + .../backend/__test__/user-router.test.js | 103 + .../backend/__test__/wave-router.test.js | 201 + lab-andrew/backend/assets/2-3-4-bit.png | Bin 0 -> 71388 bytes lab-andrew/backend/assets/2-3-4-bit.svg | 910 ++ lab-andrew/backend/assets/AudacityWAV.png | Bin 0 -> 11538 bytes lab-andrew/backend/assets/bitcrush.svg | 92 + lab-andrew/backend/assets/bitcrusher.png | Bin 0 -> 63092 bytes lab-andrew/backend/assets/delay.png | Bin 0 -> 36787 bytes lab-andrew/backend/assets/delay2.png | Bin 0 -> 42012 bytes lab-andrew/backend/assets/downpitcher.png | Bin 0 -> 24315 bytes lab-andrew/backend/assets/noise.png | Bin 0 -> 27000 bytes lab-andrew/backend/assets/reverse.png | Bin 0 -> 25977 bytes lab-andrew/backend/cli.js | 114 + lab-andrew/backend/help.js | 49 + lab-andrew/backend/index.js | 9 + lab-andrew/backend/lib/logger.js | 15 + .../backend/lib/middleware/basic-auth.js | 32 + .../backend/lib/middleware/bearer-auth.js | 37 + .../lib/middleware/error-middleware.js | 46 + .../lib/middleware/logger-middleware.js | 11 + lab-andrew/backend/lib/middleware/s3.js | 34 + lab-andrew/backend/lib/server.js | 68 + .../backend/lib/transforms/bitcrusher.js | 23 + lab-andrew/backend/lib/transforms/delay.js | 42 + .../backend/lib/transforms/noise-add.js | 55 + lab-andrew/backend/lib/transforms/reverse.js | 22 + .../lib/transforms/sample-rate-transform.js | 12 + .../backend/lib/transforms/wave-parser.js | 71 + lab-andrew/backend/model/user.js | 73 + lab-andrew/backend/model/wave.js | 20 + lab-andrew/backend/package-lock.json | 6175 ++++++++ lab-andrew/backend/package.json | 42 + lab-andrew/backend/route/user-router.js | 30 + lab-andrew/backend/route/wave-router.js | 135 + lab-andrew/frontend/.babelrc | 9 + lab-andrew/frontend/.eslintignore | 5 + lab-andrew/frontend/.eslintrc.json | 39 + lab-andrew/frontend/.gitignore | 108 + lab-andrew/frontend/README.md | 14 + lab-andrew/frontend/package-lock.json | 11891 ++++++++++++++++ lab-andrew/frontend/package.json | 59 + lab-andrew/frontend/src/main.js | 0 lab-andrew/frontend/src/style/_base.scss | 0 lab-andrew/frontend/src/style/_layout.scss | 0 lab-andrew/frontend/src/style/_reset.scss | 0 lab-andrew/frontend/src/style/_vars.scss | 0 lab-andrew/frontend/src/style/main.scss | 0 lab-andrew/frontend/webpack.config.js | 69 + 73 files changed, 21295 insertions(+) create mode 100644 lab-andrew/backend/.eslintignore create mode 100644 lab-andrew/backend/.eslintrc.json create mode 100644 lab-andrew/backend/.gitignore create mode 100644 lab-andrew/backend/.travis.yml create mode 100644 lab-andrew/backend/LICENSE create mode 100644 lab-andrew/backend/README.md create mode 100644 lab-andrew/backend/__test__/assets/bad1.wav create mode 100755 lab-andrew/backend/__test__/assets/bad2.wav create mode 100755 lab-andrew/backend/__test__/assets/bad3.wav create mode 100755 lab-andrew/backend/__test__/assets/bad4.wav create mode 100755 lab-andrew/backend/__test__/assets/bad5.wav create mode 100755 lab-andrew/backend/__test__/assets/bad6.wav create mode 100755 lab-andrew/backend/__test__/assets/bad7.wav create mode 100755 lab-andrew/backend/__test__/assets/bad8.wav create mode 100755 lab-andrew/backend/__test__/assets/bad9.wav create mode 100644 lab-andrew/backend/__test__/assets/testclip.wav create mode 100644 lab-andrew/backend/__test__/lib/setup.js create mode 100644 lab-andrew/backend/__test__/lib/transforms/bitcrusher.test.js create mode 100644 lab-andrew/backend/__test__/lib/transforms/delay.test.js create mode 100644 lab-andrew/backend/__test__/lib/transforms/noise-add.test.js create mode 100644 lab-andrew/backend/__test__/lib/transforms/reverse.test.js create mode 100644 lab-andrew/backend/__test__/lib/transforms/sample-rate-transform.test.js create mode 100644 lab-andrew/backend/__test__/lib/transforms/wave-parser.test.js create mode 100644 lab-andrew/backend/__test__/lib/user-mock-factory.js create mode 100644 lab-andrew/backend/__test__/lib/wave-mock-factory.js create mode 100644 lab-andrew/backend/__test__/user-router.test.js create mode 100644 lab-andrew/backend/__test__/wave-router.test.js create mode 100644 lab-andrew/backend/assets/2-3-4-bit.png create mode 100644 lab-andrew/backend/assets/2-3-4-bit.svg create mode 100644 lab-andrew/backend/assets/AudacityWAV.png create mode 100644 lab-andrew/backend/assets/bitcrush.svg create mode 100644 lab-andrew/backend/assets/bitcrusher.png create mode 100644 lab-andrew/backend/assets/delay.png create mode 100644 lab-andrew/backend/assets/delay2.png create mode 100644 lab-andrew/backend/assets/downpitcher.png create mode 100644 lab-andrew/backend/assets/noise.png create mode 100644 lab-andrew/backend/assets/reverse.png create mode 100755 lab-andrew/backend/cli.js create mode 100644 lab-andrew/backend/help.js create mode 100644 lab-andrew/backend/index.js create mode 100644 lab-andrew/backend/lib/logger.js create mode 100644 lab-andrew/backend/lib/middleware/basic-auth.js create mode 100644 lab-andrew/backend/lib/middleware/bearer-auth.js create mode 100644 lab-andrew/backend/lib/middleware/error-middleware.js create mode 100644 lab-andrew/backend/lib/middleware/logger-middleware.js create mode 100644 lab-andrew/backend/lib/middleware/s3.js create mode 100644 lab-andrew/backend/lib/server.js create mode 100644 lab-andrew/backend/lib/transforms/bitcrusher.js create mode 100644 lab-andrew/backend/lib/transforms/delay.js create mode 100644 lab-andrew/backend/lib/transforms/noise-add.js create mode 100644 lab-andrew/backend/lib/transforms/reverse.js create mode 100644 lab-andrew/backend/lib/transforms/sample-rate-transform.js create mode 100644 lab-andrew/backend/lib/transforms/wave-parser.js create mode 100644 lab-andrew/backend/model/user.js create mode 100644 lab-andrew/backend/model/wave.js create mode 100644 lab-andrew/backend/package-lock.json create mode 100644 lab-andrew/backend/package.json create mode 100644 lab-andrew/backend/route/user-router.js create mode 100644 lab-andrew/backend/route/wave-router.js create mode 100644 lab-andrew/frontend/.babelrc create mode 100644 lab-andrew/frontend/.eslintignore create mode 100644 lab-andrew/frontend/.eslintrc.json create mode 100644 lab-andrew/frontend/.gitignore create mode 100644 lab-andrew/frontend/README.md create mode 100644 lab-andrew/frontend/package-lock.json create mode 100644 lab-andrew/frontend/package.json create mode 100644 lab-andrew/frontend/src/main.js create mode 100644 lab-andrew/frontend/src/style/_base.scss create mode 100644 lab-andrew/frontend/src/style/_layout.scss create mode 100644 lab-andrew/frontend/src/style/_reset.scss create mode 100644 lab-andrew/frontend/src/style/_vars.scss create mode 100644 lab-andrew/frontend/src/style/main.scss create mode 100644 lab-andrew/frontend/webpack.config.js diff --git a/lab-andrew/backend/.eslintignore b/lab-andrew/backend/.eslintignore new file mode 100644 index 00000000..05b1cf34 --- /dev/null +++ b/lab-andrew/backend/.eslintignore @@ -0,0 +1,5 @@ +**/node_modules/* +**/vendor/* +**/*.min.js +**/coverage/* +**/build/* diff --git a/lab-andrew/backend/.eslintrc.json b/lab-andrew/backend/.eslintrc.json new file mode 100644 index 00000000..9fa48fd4 --- /dev/null +++ b/lab-andrew/backend/.eslintrc.json @@ -0,0 +1,27 @@ +{ + "env": { + "browser": true, + "node": true, + "commonjs": true, + "jest": true, + "es6": true + }, + "globals": { + "err": true, + "req": true, + "res": true, + "next": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "sourceType": "module" + }, + "rules": { + "no-console": "off", + "indent": [ "error", 2, { "SwitchCase": 1 } ], + "quotes": ["error", "single", { "allowTemplateLiterals": true }], + "space-infix-ops": ["error", {"int32Hint": false}], + "comma-dangle": ["error", "always-multiline"], + "semi": [ "error", "always" ] + } +} diff --git a/lab-andrew/backend/.gitignore b/lab-andrew/backend/.gitignore new file mode 100644 index 00000000..a910b157 --- /dev/null +++ b/lab-andrew/backend/.gitignore @@ -0,0 +1,107 @@ +# Created by https://www.gitignore.io/api/node,macos + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride +*/.DS_Store + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent +temp + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Node ### +# Logs +logs +log.json +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +### VisualStudioCode ### +.vscode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +*/.env + + +# mongo db +db + +# End of https://www.gitignore.io/api/node,macos diff --git a/lab-andrew/backend/.travis.yml b/lab-andrew/backend/.travis.yml new file mode 100644 index 00000000..85bcaa80 --- /dev/null +++ b/lab-andrew/backend/.travis.yml @@ -0,0 +1,18 @@ +language: node_js +node_js: + - '8.9.3' +services: + - mongodb +addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-4.8 + - g++-4.8 +env: + - CXX=g++-4.8 +sudo: required +before_script: npm i +script: + - npm test diff --git a/lab-andrew/backend/LICENSE b/lab-andrew/backend/LICENSE new file mode 100644 index 00000000..75b85208 --- /dev/null +++ b/lab-andrew/backend/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 ScrambleVox + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/lab-andrew/backend/README.md b/lab-andrew/backend/README.md new file mode 100644 index 00000000..c3243962 --- /dev/null +++ b/lab-andrew/backend/README.md @@ -0,0 +1,135 @@ +# SCRAMBLE VOX +[![Build Status](https://travis-ci.org/ScrambleVox/server.svg?branch=readme)](https://travis-ci.org/ScrambleVox/server) +![Heroku](http://heroku-badge.herokuapp.com/?app=angularjs-crypto&style=flat&svg=1) + +_scramble your voice by the method of your choice_ + + +![picture of WAV file](/assets/AudacityWAV.png) +## Overview +This API is designed to take an audio file and return a transformed version of that file. HTTP requests can be made to the server, which is built on RESTful principles. Users can send an 8 bit or 16 bit uncompressed WAV audio file, and depending on the request, one of a number of provided transforms will be performed (see 'Transforms'). A command line tool is provided for proof of concept, and as a handy way to easily perform the various transforms by making requests to the deployed server on Heroku. +*** + +## Getting Started +Familiarity with node, git and the command line are expected. To set up ScrambleVox on your own machine, take the following steps: +1. Fork or clone the repository onto your machine +2. Run 'npm i -g' from the cloned repo +3. To use the command line tools, type 'scramblevox ``'. To see how to interact with the server using the CLI, simply type 'scramblevox', or 'scamblevox help' and the help file will be shown. Requests will be made to the deployed Heroku app. + +## To Record a WAV format audio sample for use with this app +[Audacity](https://www.audacityteam.org/) : free, open source, cross-platform audio software for multi-track recording and editing. +*** +## Models +### User +The user schema defines a userame, passwordHash, passwordSalt and email. The username and email must be unique. When a user signs up, a passwordSalt is randomly generated, and a hash is created using this along with their password. The password is never stored anywhere. A token seed is then randomly generated and encrypted with the application's secret salt, and the resulting token is returned to the user. When the user logs back in, their password is hashed along with their passwordSalt, and if this matches the stored hash, a new tokenSeed is generated, stored, encrypted and the resulting token is sent back to the user. When certain requests are made, the user sends their token, which is decrypted by the secret salt, and if it matches their tokenseed, they are authorized to finish making the request. +### Wave +The wave schema defines a user, a wavename and a url. When a wave is posted, the token sent with the request is decrypted and matched to a user. If a valid user is found, the wave's user property is set to reference that user's mongodb _id. The wave file will be transformed and posted to AWS, and the link to the AWS-hosted resource is returned and set to the wave's url property. The wavename is set to the value passed in the relevant field, however this is not a required parameter. +*** +## Transforms +*Bitcrusher*: Reduces the resolution of the audio from 8 or 16 bits to 3 bits without affecting the actual bit depth of the audio file. + +![picture of sound wave](/assets/bitcrusher.png) + +*Down Pitcher*: Reduces the sample rate of the audio file by half, reducing the maximum possible frequency of the recording which results in a lower pitch. + +![picture of sound wave](/assets/downpitcher.png) + +*Delay*: Adds a portion of the sound wave from a prior sample in the audio buffer to the current position via a fixed interval; simulating an echo. + +![picture of sound wave](/assets/delay.png) +![picture of sound wave](/assets/delay2.png) + +*Noise Addition*: Adds or subtracts a small random number to each sample which has the effect of adding noise to the sound wave. + +![picture of sound wave](/assets/noise.png) + +*Reverse*: Reverses the order of the bytes in the audio buffer of the sound wave. + +![picture of sound wave](/assets/reverse.png) +*** +## Routes +### Account setup +1. **POST** __api_url__/signup : Creates a new account and responds with a token. You must include a username (String), email (String), and password (String). +2. **GET** __api_url__/login : Accesses an account and returns a new token. You must send the account's username and password in the auth header of the request. If no basic authentication is included a 400 error will occur. + +### Transforming files +1. **POST** __api_url__/waves/:transform : Transforms an audio file with the given transform function and returns a url to the modified file. You must send the token for your account in the authorization header of the request. If no bearer authorization is included a 401 error will occur. If a file already exists in the database, it will be removed from both AWS and the database first before uploading the new file. +2. **GET** __api_url__/waves : Returns the wave that is stored in the database which belongs to the user with whom the sent token is associated. A 401 will occur if the bearer authorization fails. +2 **DELETE** __api_url__/waves : Removes the wave which belongs to the user with whom the sent token is associated. The file will be removed from both AWS and the database. A 401 will occur if bearer authorization fails. + +*** +## Tests +ScrambleVox implements continuous integration (CI) via Travis CI and is deployed on Heroku. Tests are performed with Jest. Pushes to master will be tested by Travis, and if all tests pass, an updated build will be automatically deployed on Heroku. + +Tests examine both proper behavior for each route as well as behavior when errors occur. The following tests can be executed by running 'npm run test' after installing Jest with 'npm i jest'. Note: in order to successfully run the tests, the mongodb server must be on, and the server must be off. + +1. User Router Tests + * POST + * Tests success case in which the username, email, and password are included and a new account and token are successfully created. + * Tests failure cases in which: + * The request is missing information (username, email, and password are all required) + * The username and/or email provided are already being used on an existing account + + * GET + * Tests success case in which the account username and password are verified and a token can successfully be returned. + * Tests failure cases in which: + * No bearer authorization is provided in the HTTP authorization header. + * No user can be found with the specified username and password. + +2. Wave Router Tests + * Tests success case in which a user successfully makes an account, the file provided is modified, and the url to the modified file is returned. + * Tests failure cases in which: + * The user is verified using bearer authorization but the request is bad. + * No authorization header or a bad token is sent with the request. + +3. Wave Parser Tests + * Tests success case in which file meets all requirements and a new Constructed Wave File is created. + * Tests failure cases in which: + * The file is the incorrect format (not RIFF or not WAV) + * The file size is too large + * The file has additional pieces of data that are unexpected (subchunk id 1 or subchunk id 2 do not match the expected values of 'fmt' and 'data' respectively) + * The file is not linear PCM encoded (i.e. the file is compressed) + * The file has more than two channels (it is not mono or stereo) + * The sample rate is too high (above 48k) + * The file has a bit depth other than 8 or 16 bits + +4. Transform Tests + * Tests success cases for 8 bit and 16 bit files, i.e. that the expected results from the transform in question are properly returned. +*** +## Technologies Used +### Production +* ES6 +* node +* aws-sdk +* bcrypt +* dotenv +* express +* fs-extra +* http-errors +* jsonwebtoken +* mongodb +* mongoose +* multer +* winston + +### Development +* aws-sdk-mock +* eslint +* faker +* jest +* superagent +*** +## To Contribute +If you would like to help improve this API you can do so by opening an issue under the 'Issues' tab on the repo. We welcome any helpful feedback! Be sure to include a label to help us better understand the issue (i.e. 'bug' to report a problem). +*** +## License +MIT (see License file) +*** +## Authors +- Andrew Bloom | [GitHub](https://github.com/ALB37) +- Shannon Dillon | [GitHub](https://github.com/sedillon93) +- Jeff Kusowski | [GitHub](https://github.com/jjkusowski) +- David A. Lindahl | [GitHub](https://github.com/austriker27) +*** +## Special Thanks +Thank you to Vinicio Vladimir Sanchez Trejo, Steve Geluso, Izzy Baer, Joshua Evans, and Ron Dunphy for help problem solving and identifying useful tools to examine WAV files. diff --git a/lab-andrew/backend/__test__/assets/bad1.wav b/lab-andrew/backend/__test__/assets/bad1.wav new file mode 100644 index 0000000000000000000000000000000000000000..2e6b19f24cb00162749bf94c5528b7d4ec8c3df4 GIT binary patch literal 35800 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 literal 0 HcmV?d00001 diff --git a/lab-andrew/backend/__test__/assets/bad3.wav b/lab-andrew/backend/__test__/assets/bad3.wav new file mode 100755 index 0000000000000000000000000000000000000000..e2e2ca6b6c705bd25a3258c3951adb1dfe275ed0 GIT binary patch literal 35800 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 literal 0 HcmV?d00001 diff --git a/lab-andrew/backend/__test__/assets/bad5.wav b/lab-andrew/backend/__test__/assets/bad5.wav new file mode 100755 index 0000000000000000000000000000000000000000..67e159a0f2e8f2e583d27353560ceb93a17057da GIT binary patch literal 35800 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 literal 0 HcmV?d00001 diff --git a/lab-andrew/backend/__test__/assets/bad8.wav b/lab-andrew/backend/__test__/assets/bad8.wav new file mode 100755 index 0000000000000000000000000000000000000000..91953f41bf102adb3197649f97d3f129bea3ab8d GIT binary patch literal 35800 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 { + if (!params.Key || !params.Bucket || !params.Body || !params.ACL){ + return callback(new Error('__ERROR__', 'key, bucket, body and ACL are required')); + } + + if (params.ACL !== 'public-read'){ + return callback(new Error('__ERROR__', 'ACL should be public-read')); + } + + if (params.Bucket !== process.env.AWS_BUCKET){ + return callback(new Error('__ERROR__', 'bucket is incorrect')); + } + + callback(null, {Location: faker.internet.url()}); +}); + +awsSDKMock.mock('S3', 'deleteObject', (params, callback) => { + if (!params.Key || !params.Bucket){ + return callback(new Error('__ERROR__', 'key, and bucket are required')); + } + + if (params.Bucket !== process.env.AWS_BUCKET) { + return callback(new Error('__ERROR__', 'bucket is incorrect')); + } + + callback(null, {}); +}); + diff --git a/lab-andrew/backend/__test__/lib/transforms/bitcrusher.test.js b/lab-andrew/backend/__test__/lib/transforms/bitcrusher.test.js new file mode 100644 index 00000000..5b9f74a4 --- /dev/null +++ b/lab-andrew/backend/__test__/lib/transforms/bitcrusher.test.js @@ -0,0 +1,31 @@ +'use strict'; + +const bitcrusher = require('../../../lib/transforms/bitcrusher'); + +describe('testing bitcrusher transform module', () => { + test('expect that bitcrusher changes values for 8 bit file', () => { + const file = {}; + file.bitsPerSample = 8; + file.data = Buffer.from([248, 129, 70, 4]); + bitcrusher(file); + expect(file.data[0]).toEqual(224); + expect(file.data[1]).toEqual(128); + expect(file.data[2]).toEqual(64); + expect(file.data[3]).toEqual(0); + }); + + test('expect that bitcrusher changes values for 16 bit file', () => { + const bigFile = {}; + bigFile.bitsPerSample = 16; + bigFile.data = Buffer.from(new Uint16Array(8)); + bigFile.data.writeUInt16LE(50000, 0); + bigFile.data.writeUInt16LE(33000, 2); + bigFile.data.writeUInt16LE(20000, 4); + bigFile.data.writeUInt16LE(100, 6); + bitcrusher(bigFile); + expect(bigFile.data.readUInt16LE(0)).toEqual(49152); + expect(bigFile.data.readUInt16LE(2)).toEqual(32768); + expect(bigFile.data.readUInt16LE(4)).toEqual(16384); + expect(bigFile.data.readUInt16LE(6)).toEqual(0); + }); +}); diff --git a/lab-andrew/backend/__test__/lib/transforms/delay.test.js b/lab-andrew/backend/__test__/lib/transforms/delay.test.js new file mode 100644 index 00000000..561aba89 --- /dev/null +++ b/lab-andrew/backend/__test__/lib/transforms/delay.test.js @@ -0,0 +1,49 @@ +'use strict'; + +const delay = require('../../../lib/transforms/delay'); + +describe('testing delay transform module', () => { + test('expect that delay changes values for 8 bit file', () => { + const file = {}; + file.bitsPerSample = 8; + file.sampleRate = 10; + file.data = Buffer.from([255, 0, 127, 137]); + delay(file); + expect(file.data[0]).toEqual(255); + expect(file.data[1]).toEqual(0); + expect(file.data[2]).toEqual(191); + expect(file.data[3]).toEqual(68); + }); + + test('expect that delay changes values for 16 bit file', () => { + const bigFile = {}; + bigFile.bitsPerSample = 16; + bigFile.sampleRate = 10; + bigFile.data = Buffer.from(new Uint16Array(8)); + bigFile.data.writeUInt16LE(65535, 0); + bigFile.data.writeUInt16LE(0, 2); + bigFile.data.writeUInt16LE(32767, 4); + bigFile.data.writeUInt16LE(33767, 6); + delay(bigFile); + expect(bigFile.data.readUInt16LE(0)).toEqual(65535); + expect(bigFile.data.readUInt16LE(2)).toEqual(65535); + expect(bigFile.data.readUInt16LE(4)).toEqual(16382); + expect(bigFile.data.readUInt16LE(6)).toEqual(57842); + }); + + test('expect that delay still works correctly for 16 bit file when odd sample amount given', () => { + const bigFile = {}; + bigFile.bitsPerSample = 16; + bigFile.sampleRate = 5; + bigFile.data = Buffer.from(new Uint16Array(8)); + bigFile.data.writeUInt16LE(65535, 0); + bigFile.data.writeUInt16LE(0, 2); + bigFile.data.writeUInt16LE(32767, 4); + bigFile.data.writeUInt16LE(33767, 6); + delay(bigFile); + expect(bigFile.data.readUInt16LE(0)).toEqual(65535); + expect(bigFile.data.readUInt16LE(2)).toEqual(65535); + expect(bigFile.data.readUInt16LE(4)).toEqual(16382); + expect(bigFile.data.readUInt16LE(6)).toEqual(57842); + }); +}); \ No newline at end of file diff --git a/lab-andrew/backend/__test__/lib/transforms/noise-add.test.js b/lab-andrew/backend/__test__/lib/transforms/noise-add.test.js new file mode 100644 index 00000000..7be529f3 --- /dev/null +++ b/lab-andrew/backend/__test__/lib/transforms/noise-add.test.js @@ -0,0 +1,31 @@ +'use strict'; + +const noiseAdd = require('../../../lib/transforms/noise-add'); + +describe('testing noiseAdd transform module', () => { + test('expect that noiseAdd changes values for 8 bit file', () => { + const file = {}; + file.bitsPerSample = 8; + file.data = Buffer.from([245, 10, 127, 137]); + noiseAdd(file); + expect(file.data[0]).not.toEqual(245); + expect(file.data[1]).not.toEqual(10); + expect(file.data[2]).not.toEqual(127); + expect(file.data[3]).not.toEqual(137); + }); + + test('expect that noiseAdd changes values for 16 bit file', () => { + const bigFile = {}; + bigFile.bitsPerSample = 16; + bigFile.data = Buffer.from(new Uint16Array(8)); + bigFile.data.writeUInt16LE(64535, 0); + bigFile.data.writeUInt16LE(10, 2); + bigFile.data.writeUInt16LE(32767, 4); + bigFile.data.writeUInt16LE(33767, 6); + noiseAdd(bigFile); + expect(bigFile.data.readUInt16LE(0)).not.toEqual(64535); + expect(bigFile.data.readUInt16LE(2)).not.toEqual(10); + expect(bigFile.data.readUInt16LE(4)).not.toEqual(32767); + expect(bigFile.data.readUInt16LE(6)).not.toEqual(33767); + }); +}); \ No newline at end of file diff --git a/lab-andrew/backend/__test__/lib/transforms/reverse.test.js b/lab-andrew/backend/__test__/lib/transforms/reverse.test.js new file mode 100644 index 00000000..a9a5d35a --- /dev/null +++ b/lab-andrew/backend/__test__/lib/transforms/reverse.test.js @@ -0,0 +1,31 @@ +'use strict'; + +const reverse = require('../../../lib/transforms/reverse'); + +describe(`reverse transform`, () => { + test('expect that reverse transform changes values for 8 bit file', () => { + const file = {}; + file.bitsPerSample = 8; + file.data = Buffer.from([248, 129, 70, 4]); + reverse(file); + expect(file.data[0]).toEqual(4); + expect(file.data[1]).toEqual(70); + expect(file.data[2]).toEqual(129); + expect(file.data[3]).toEqual(248); + }); + + test('expect that reverse transform changes values for 16 bit file', () => { + const bigFile = {}; + bigFile.bitsPerSample = 16; + bigFile.data = Buffer.from(new Uint16Array(8)); + bigFile.data.writeUInt16LE(50000, 0); + bigFile.data.writeUInt16LE(33000, 2); + bigFile.data.writeUInt16LE(20000, 4); + bigFile.data.writeUInt16LE(100, 6); + reverse(bigFile); + expect(bigFile.data.readUInt16LE(0)).toEqual(100); + expect(bigFile.data.readUInt16LE(2)).toEqual(20000); + expect(bigFile.data.readUInt16LE(4)).toEqual(33000); + expect(bigFile.data.readUInt16LE(6)).toEqual(50000); + }); +}); diff --git a/lab-andrew/backend/__test__/lib/transforms/sample-rate-transform.test.js b/lab-andrew/backend/__test__/lib/transforms/sample-rate-transform.test.js new file mode 100644 index 00000000..1e5379fd --- /dev/null +++ b/lab-andrew/backend/__test__/lib/transforms/sample-rate-transform.test.js @@ -0,0 +1,18 @@ +'use strict'; + +const sampleRateTransform = require('../../../lib/transforms/sample-rate-transform'); + +const SAMPLE_RATE_OFFSET = 24; + +describe('sample-rate transform', () => { + test('the file should output with a sample rate that is half the input sample', () => { + const bigFile = {}; + bigFile.buffer = Buffer.from(new Uint16Array(30)); + bigFile.buffer.writeUInt32LE(8000, SAMPLE_RATE_OFFSET); + bigFile.sampleRate = 8000; + + sampleRateTransform(bigFile); + + expect(bigFile.buffer.readUInt32LE(SAMPLE_RATE_OFFSET)).toBe(4000); + }); +}); diff --git a/lab-andrew/backend/__test__/lib/transforms/wave-parser.test.js b/lab-andrew/backend/__test__/lib/transforms/wave-parser.test.js new file mode 100644 index 00000000..af323d36 --- /dev/null +++ b/lab-andrew/backend/__test__/lib/transforms/wave-parser.test.js @@ -0,0 +1,104 @@ +'use strict'; + +const fsx = require('fs-extra'); +const waveParser = require('../../../lib/transforms/wave-parser'); + +describe('wave-parser', () => { + test('should return constructedWaveFile which contains buffer and other data attached', () => { + const inputFilePath = `${__dirname}/../../assets/testclip.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + const parsedFile = waveParser(data); + expect(parsedFile.buffer).toBeTruthy(); + expect(parsedFile.numberOfChannels).toEqual(2); + expect(parsedFile.sampleRate).toEqual(8000); + expect(parsedFile.bitsPerSample).toEqual(8); + expect(parsedFile.subChunk2Size).toEqual(46986); + expect(parsedFile.data).toBeTruthy(); + }); + + }); + + test('should return error if file is not a RIFF', () => { + const inputFilePath = `${__dirname}/../../assets/bad1.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('incorrect file type, must be RIFF format'); + }); + }); + + test('should return error if file is too big', () => { + const inputFilePath = `${__dirname}/../../assets/bad2.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('file too large, please limit file size to less than 1MB'); + }); + }); + + test('should return error if file is not a WAVE', () => { + const inputFilePath = `${__dirname}/../../assets/bad3.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('file must be a WAVE'); + }); + }); + + test('should return error subChunk1 is not fmt', () => { + const inputFilePath = `${__dirname}/../../assets/bad4.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('the first subchunk must be fmt'); + }); + }); + + test('should return error if audio is not linear PCM encoded', () => { + const inputFilePath = `${__dirname}/../../assets/bad5.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('wave file must be uncompressed linear PCM'); + }); + }); + + test('should return error if file has more than 2 channels', () => { + const inputFilePath = `${__dirname}/../../assets/bad6.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('wave file must have 2 or less channels'); + }); + }); + + test('should return error if file has a sample rate higher than 48kHz', () => { + const inputFilePath = `${__dirname}/../../assets/bad7.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('wave file must have sample rate of less than 48k'); + }); + }); + + test('should return error if file does not have an even bitDepth (8 or 16 bits)', () => { + const inputFilePath = `${__dirname}/../../assets/bad8.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow(`file's bit depth must be 8 or 16`); + }); + }); + + test('should return error if subChunk2 is not data', () => { + const inputFilePath = `${__dirname}/../../assets/bad9.wav`; + + return fsx.readFile(inputFilePath) + .then(data => { + expect(() => waveParser(data)).toThrow('subchunk 2 must be data'); + }); + }); + +}); diff --git a/lab-andrew/backend/__test__/lib/user-mock-factory.js b/lab-andrew/backend/__test__/lib/user-mock-factory.js new file mode 100644 index 00000000..fe4e37bd --- /dev/null +++ b/lab-andrew/backend/__test__/lib/user-mock-factory.js @@ -0,0 +1,32 @@ +'use strict'; + +const User = require(`../../model/user`); +const faker = require(`faker`); + +const userMockFactory = module.exports = {}; + +userMockFactory.create = () => { + let mock = {}; + mock.request = { + username: faker.internet.userName(), + email: faker.internet.email(), + password: faker.internet.password(), + }; + + return User.create(mock.request.username, mock.request.email, mock.request.password) + .then(user => { + mock.user = user; + return user.createToken(); + }) + .then(token => { + mock.token = token; + return User.findById(mock.user._id); + }) + .then(user => { + mock.user = user; + return mock; + }) + .catch(err => console.error('user-mock-factory: user.create error: ', err)); +}; + +userMockFactory.remove = () => User.remove({}); diff --git a/lab-andrew/backend/__test__/lib/wave-mock-factory.js b/lab-andrew/backend/__test__/lib/wave-mock-factory.js new file mode 100644 index 00000000..8af47f9e --- /dev/null +++ b/lab-andrew/backend/__test__/lib/wave-mock-factory.js @@ -0,0 +1,31 @@ +'use strict'; + +const Wave = require(`../../model/wave`); +const userMockFactory = require('./user-mock-factory'); +const faker = require(`faker`); + +const waveMockFactory = module.exports = {}; + +waveMockFactory.create = () => { + const mock = {}; + return userMockFactory.create() + .then(userMock => { + mock.userMock = userMock; + return new Wave({ + user: userMock.user._id, + wavename: faker.lorem.words(1), + url: faker.internet.url(), + }).save(); + }) + .then(wave => { + mock.wave = wave; + return mock; + }); +}; + +waveMockFactory.remove = () => { + return Promise.all([ + userMockFactory.remove(), + Wave.remove({}), + ]); +}; \ No newline at end of file diff --git a/lab-andrew/backend/__test__/user-router.test.js b/lab-andrew/backend/__test__/user-router.test.js new file mode 100644 index 00000000..05acc26f --- /dev/null +++ b/lab-andrew/backend/__test__/user-router.test.js @@ -0,0 +1,103 @@ +'use strict'; + +require('./lib/setup'); +const faker = require('faker'); +const superagent = require('superagent'); +const server = require('../lib/server'); +const userMock = require('./lib/user-mock-factory'); + +const __API_URL__ = `http://localhost:${process.env.PORT}`; + +describe('User Router', () => { + beforeAll(server.start); + afterAll(server.stop); + afterEach(userMock.remove); + + describe('POST /signup', () => { + + test('POST creating an account should respond with 200 and a token if there are no errors', () => { + return superagent.post(`${__API_URL__}/signup`) + .send({ + username: faker.internet.userName(), + email: faker.internet.email(), + password: faker.internet.password(), + }) + .then(response => { + expect(response.status).toEqual(200); + expect(response.body.token).toBeTruthy(); + }); + }); + + test('POST /signup - an incomplete request should return a 400', () => { + return superagent.post(`${__API_URL__}/signup`) + .send({ + username: faker.internet.userName(), + email: faker.internet.email(), + }) + .then(Promise.reject) + .catch(response => { + expect(response.status).toEqual(400); + }); + }); + + test('POST /signup - a duplicate request should return a 409', () => { + return superagent.post(`${__API_URL__}/signup`) + .send({ + username: 'double', + email: 'double@redundant.com', + password: 'redundantRedundancy', + }) + .then(() => { + return superagent.post(`${__API_URL__}/signup`) + .send({ + username: 'double', + email: 'double@redundant.com', + password: 'redundantRedundancy', + }) + .then(Promise.reject) + .catch(response => { + expect(response.status).toEqual(409); + }); + + }); + }); + }); + + describe('GET /login', () => { + test('GET /login should get a 200 status code and a token if there are no errors', () => { + return userMock.create() + .then(mock => { + return superagent.get(`${__API_URL__}/login`) + .auth(mock.request.username, mock.request.password); + }) + .then(response => { + expect(response.status).toEqual(200); + expect(response.body.token).toBeTruthy(); + }); + }); + + test('GET /login should get a 400 status if authentication is not sent', () => { + return userMock.create() + .then(() => { + return superagent.get(`${__API_URL__}/login`); + }) + .then(Promise.reject) + .catch(response => { + expect(response.status).toEqual(400); + }); + }); + + test('GET /login should get a 404 status if user does not exist', () => { + return userMock.create() + .then(() => { + return superagent.get(`${__API_URL__}/login`) + .auth(faker.internet.userName(), faker.internet.password()); + }) + .then(Promise.reject) + .catch(response => { + expect(response.status).toEqual(404); + }); + }); + }); + +}); diff --git a/lab-andrew/backend/__test__/wave-router.test.js b/lab-andrew/backend/__test__/wave-router.test.js new file mode 100644 index 00000000..aacc1814 --- /dev/null +++ b/lab-andrew/backend/__test__/wave-router.test.js @@ -0,0 +1,201 @@ +'use strict'; + +require('./lib/setup'); + +const superagent = require('superagent'); +const server = require('../lib/server'); +const userMock = require('./lib/user-mock-factory'); +const waveMock = require('./lib/wave-mock-factory'); + +const __API_URL__ = `http://localhost:${process.env.PORT}`; + +describe('Wave router', () => { + beforeAll(server.start); + afterAll(server.stop); + afterEach(waveMock.remove); + + describe('POST /waves/bitcrusher', () => { + test('POST /waves/bitcrusher should return a 200 status and a url if there are no errors', () => { + let tempUserMock = null; + return userMock.create() + .then(userMock => { + tempUserMock = userMock; + + return superagent.post(`${__API_URL__}/waves/bitcrusher`) + .set('Authorization', `Bearer ${tempUserMock.token}`) + .field('wavename', 'cornsilk') + .attach('wave', `${__dirname}/assets/testclip.wav`) + .then(response => { + expect(response.status).toEqual(200); + expect(response.body.wavename).toEqual('cornsilk'); + expect(response.body._id).toBeTruthy(); + expect(response.body.url).toBeTruthy(); + }); + }); + }); + + test('POST /waves/bitcrusher should only return the last posted file if user has existing file in database', () => { + let tempWaveMock = null; + return waveMock.create() + .then(mock => { + tempWaveMock = mock; + return superagent.post(`${__API_URL__}/waves/bitcrusher`) + .set('Authorization', `Bearer ${tempWaveMock.userMock.token}`) + .field('wavename', 'cornsilk') + .attach('wave', `${__dirname}/assets/testclip.wav`) + .then(response => { + expect(response.status).toEqual(200); + expect(response.body.wavename).toEqual('cornsilk'); + expect(response.body._id).toBeTruthy(); + expect(response.body.url).toBeTruthy(); + }); + }); + }); + + test('POST /waves/bitcrusher should return a 400 status if there is a bad request', () => { + let tempUserMock = null; + return userMock.create() + .then(userMock => { + tempUserMock = userMock; + + return superagent.post(`${__API_URL__}/waves/bitcrusher`) + .set('Authorization', `Bearer ${tempUserMock.token}`) + .field('WRONG', 'cornsilk') + .attach('wave', `${__dirname}/assets/testclip.wav`) + .then(Promise.reject) + .catch(response => { + expect(response.status).toEqual(400); + }); + }); + }); + + test('POST /waves/bitcrusher should return a 401 status if the POST is unauthorized', () => { + return userMock.create() + .then(() => superagent.post(`${__API_URL__}/waves/bitcrusher`) + .set('Authorization', 'Bearer ofBadTokens') + .field('wavename', 'cornsilk') + .attach('wave', `${__dirname}/assets/testclip.wav`) + .then(Promise.reject) + .catch(response => { + expect(response.status).toEqual(401); + })); + }); + }); + + describe('POST /waves/downpitcher', () => { + test('POST /waves/downpitcher should return a 200 status and a url if there are no errors', () => { + let tempUserMock = null; + return userMock.create() + .then(userMock => { + tempUserMock = userMock; + + return superagent.post(`${__API_URL__}/waves/downpitcher`) + .set('Authorization', `Bearer ${tempUserMock.token}`) + .field('wavename', 'cornsilk') + .attach('wave', `${__dirname}/assets/testclip.wav`) + .then(response => { + expect(response.status).toEqual(200); + expect(response.body.wavename).toEqual('cornsilk'); + expect(response.body._id).toBeTruthy(); + expect(response.body.url).toBeTruthy(); + }); + }); + }); + }); + + describe('POST /waves/delay', () => { + test('POST /waves/delay should return a 200 status and a url if there are no errors', () => { + let tempUserMock = null; + return userMock.create() + .then(userMock => { + tempUserMock = userMock; + + return superagent.post(`${__API_URL__}/waves/delay`) + .set('Authorization', `Bearer ${tempUserMock.token}`) + .field('wavename', 'cornsilk') + .attach('wave', `${__dirname}/assets/testclip.wav`) + .then(response => { + expect(response.status).toEqual(200); + expect(response.body.wavename).toEqual('cornsilk'); + expect(response.body._id).toBeTruthy(); + expect(response.body.url).toBeTruthy(); + }); + }); + }); + }); + + describe('GET /waves', () => { + + test('GET /waves should expect a 200 status code and return a wave', () => { + let tempWaveMock = null; + return waveMock.create() + .then(mock => { + tempWaveMock = mock; + return superagent.get(`${__API_URL__}/waves`) + .set('Authorization', `Bearer ${tempWaveMock.userMock.token}`); + }) + .then(response => { + expect(response.status).toEqual(200); + expect(response.body.user).toEqual(tempWaveMock.userMock.user._id.toString()); + expect(response.body.wavename).toEqual(tempWaveMock.wave.wavename); + expect(response.body.url).toEqual(tempWaveMock.wave.url); + }); + }); + + test('GET /waves should expect a 401 status code if token is bad', () => { + return superagent.get(`${__API_URL__}/waves`) + .set('Authorization', `Bearer superIllegalToken`) + .then(Promise.reject) + .catch(response => expect(response.status).toEqual(401)); + }); + + test('GET /waves should expect a 404 status code if no file is found', () => { + let tempUserMock = null; + return userMock.create() + .then(mock => { + tempUserMock = mock; + return superagent.get(`${__API_URL__}/waves`) + .set('Authorization', `Bearer ${tempUserMock.token}`); + }) + .then(Promise.reject) + .catch(response => expect(response.status).toEqual(404)); + }); + }); + + describe('DELETE /waves', () => { + + test('DELETE /waves should expect a status code of 204 if there are no errors deleting', () => { + let tempWaveMock = null; + return waveMock.create() + .then(mock => { + tempWaveMock = mock; + return superagent.delete(`${__API_URL__}/waves`) + .set('Authorization', `Bearer ${tempWaveMock.userMock.token}`); + }) + .then(response => { + expect(response.status).toEqual(204); + }); + }); + + test('DELETE /waves should expect a status code of 401 if token is bad', () => { + return superagent.delete(`${__API_URL__}/waves`) + .set('Authorization', `Bearer superIllegalToken`) + .then(Promise.reject) + .catch(response => expect(response.status).toEqual(401)); + }); + + + test('DELETE /waves should expect a status code of 404 if the user has no saved wave', () => { + let tempUserMock = null; + return userMock.create() + .then(mock => { + tempUserMock = mock; + return superagent.delete(`${__API_URL__}/waves`) + .set('Authorization', `Bearer ${tempUserMock.token}`); + }) + .then(Promise.reject) + .catch(response => expect(response.status).toEqual(404)); + }); + + }); +}); diff --git a/lab-andrew/backend/assets/2-3-4-bit.png b/lab-andrew/backend/assets/2-3-4-bit.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee114346ac388e9605e40ae573ba96d3d027f8a GIT binary patch literal 71388 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 z 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 bit + 3 bit + 4 bit + + + + + diff --git a/lab-andrew/backend/assets/AudacityWAV.png b/lab-andrew/backend/assets/AudacityWAV.png new file mode 100644 index 0000000000000000000000000000000000000000..96b34861c2a545669447826e6ec6e3f2eb02e273 GIT binary patch literal 11538 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 Ef~Rz5yZ`_I literal 0 HcmV?d00001 diff --git a/lab-andrew/backend/assets/bitcrush.svg b/lab-andrew/backend/assets/bitcrush.svg new file mode 100644 index 00000000..191a2a6c --- /dev/null +++ b/lab-andrew/backend/assets/bitcrush.svg @@ -0,0 +1,92 @@ + + + + signals + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lab-andrew/backend/assets/bitcrusher.png b/lab-andrew/backend/assets/bitcrusher.png new file mode 100644 index 0000000000000000000000000000000000000000..7b223a543a3cce4c898a231839208742dddae900 GIT binary patch literal 63092 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%0D~3- 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%0AvV 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 literal 0 HcmV?d00001 diff --git a/lab-andrew/backend/assets/delay.png b/lab-andrew/backend/assets/delay.png new file mode 100644 index 0000000000000000000000000000000000000000..4c05b1bc415c973e39e280f1e616ed142d5a1315 GIT binary patch literal 36787 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�=@Z`M^E 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

31*{ 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 LNkvXXu0mjfE-9?7 literal 0 HcmV?d00001 diff --git a/lab-andrew/backend/assets/reverse.png b/lab-andrew/backend/assets/reverse.png new file mode 100644 index 0000000000000000000000000000000000000000..ea7b8168c3626457f53fe61c05bc1e2cdbd5e770 GIT binary patch literal 25977 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 literal 0 HcmV?d00001 diff --git a/lab-andrew/backend/cli.js b/lab-andrew/backend/cli.js new file mode 100755 index 00000000..4d1a28b7 --- /dev/null +++ b/lab-andrew/backend/cli.js @@ -0,0 +1,114 @@ +#!/usr/bin/env node +'use strict'; + +const superagent = require('superagent'); +const fsx = require('fs-extra'); +const help = require('./help'); + +const __API_URL__ = 'https://scramblevox.herokuapp.com'; +const TOKEN_STORAGE = `${process.env.HOME}/.scramblevox-token.json`; +let token = null; +const transforms = ['bitcrusher', 'delay', 'noise', 'reverse', 'downpitcher']; + +fsx.ensureFile(TOKEN_STORAGE) + .then(() => { + return fsx.readJson(TOKEN_STORAGE, {throws: false}) + .then(obj => { + if (obj){ + token = obj.token; + } + }) + .catch(err => console.log(err)); + }) + .catch(err => console.log(err)); + +if (process.argv[2] === 'help'){ + help(); +} + +else if (process.argv[2] === 'signup'){ + const username = process.argv[3]; + const password = process.argv[4]; + const email = process.argv[5]; + superagent.post(`${__API_URL__}/signup`) + .send({username, email, password}) + .then(response => { + fsx.writeJSON(TOKEN_STORAGE, {token: response.body.token}) + .then(() => console.log('Signup successful')) + .catch(err => console.log(err)); + }) + .catch(err => console.log(err.status, err.response.text)); +} + +else if (process.argv[2] === 'login'){ + const username = process.argv[3]; + const password = process.argv[4]; + superagent.get(`${__API_URL__}/login`) + .auth(username, password) + .then(response => { + fsx.writeJSON(TOKEN_STORAGE, {token: response.body.token}) + .then(() => console.log('Login successful')) + .catch(err => console.log(err)); + }) + .catch(err => console.log(err.status, err.response.text)); +} + +else if (process.argv[2] === 'logout'){ + fsx.writeJSON(TOKEN_STORAGE, {}) + .then(() => console.log('Logout successful. Goodbye!')) + .catch(err => console.log(err)); +} + +else if (transforms.includes(process.argv[2])){ + const filePath = process.argv[3]; + const filePathArray = filePath.split('/'); + const fileName = filePathArray[filePathArray.length - 1]; + fsx.readJson(TOKEN_STORAGE, { throws: false }) + .then(obj => { + if (obj) { + token = obj.token; + } + return superagent.post(`${__API_URL__}/waves/${process.argv[2]}`) + .set('Authorization', `Bearer ${token}`) + .field('wavename', fileName) + .attach('wave', `${__dirname}/${filePath}`) + .then(response => { + console.log(`Follow this link to download your transformed file:\n${response.body.url}\nNote that new transforms will remove existing links`); + }) + .catch(err => console.log(err.status, err.response.text)); + }); +} + +else if (process.argv[2] === 'get'){ + fsx.readJson(TOKEN_STORAGE, { throws: false }) + .then(obj => { + if (obj) { + token = obj.token; + } + return superagent.get(`${__API_URL__}/waves`) + .set('Authorization', `Bearer ${token}`) + .then(response => { + console.log(`Follow this link to download your transformed file:\n${response.body.url}`); + }) + .catch(err => console.log(err.status, err.response.text)); + }); +} + +else if (process.argv[2] === 'delete'){ + fsx.readJson(TOKEN_STORAGE, { throws: false }) + .then(obj => { + if (obj) { + token = obj.token; + } + return superagent.delete(`${__API_URL__}/waves`) + .set('Authorization', `Bearer ${token}`) + .then(() => { + console.log('Delete successful'); + }) + .catch(err => console.log(err.status, err.response.text)); + }); +} + +else { + console.log(`invalid command, type 'scramblevox help' for a list of valid commands and their descriptions`); +} \ No newline at end of file diff --git a/lab-andrew/backend/help.js b/lab-andrew/backend/help.js new file mode 100644 index 00000000..acfd7820 --- /dev/null +++ b/lab-andrew/backend/help.js @@ -0,0 +1,49 @@ +'use strict'; + +module.exports = () => { + console.log(` +Welcome to the scramblevox CLI! + +Getting started: + +The command structure for the scramblevox CLI takes the form of: +$ 'scramblevox <...parameters>' + +To pull up this reference guide, type: +$ 'scramblevox help' +at any time. + +The transforms work by making a post to the server running the scramblevox app. + +Basic authentication is performed when signing up or logging in, and a authorization token is returned. In order to make a post/get/delete, you must be signed in. + +To sign up, type: +$ 'scramblevox signup ' + +To log in, type: +$ 'scramblevox login ' + +The token returned is written to a file in your home directory. We recommend logging out when you are done in order to clear this file. + +To log out, type: +$ 'scramblevox logout' + +To perform a transform, type: +$ 'scramblevox ' + +Note that the filepath is relative to the directory where this project was installed. +The available transforms are currently 'bitcrusher', 'delay', 'noise', 'reverse' and 'downpitcher'. +The file will be transformed and a link will be returned to the transformed file, which is hosted on AWS. + +To learn more about each function, check out the readme for this project on Github at: +https://github.com/ScrambleVox/server + +Only one file persists for a given user at any one time. If another transform is performed, the existing file will be overwritten. + +To get the current file associated with your account, type: +$ 'scramblevox get' + +To delete the current file assosiated with your account, type: +$ 'scramblevox get' + `); +}; diff --git a/lab-andrew/backend/index.js b/lab-andrew/backend/index.js new file mode 100644 index 00000000..5e775e2a --- /dev/null +++ b/lab-andrew/backend/index.js @@ -0,0 +1,9 @@ +'use strict'; + +require('dotenv').config(); + +let server = require('./lib/server'); + +server.start(); + +console.log(`Server is running on port ${process.env.PORT}`); \ No newline at end of file diff --git a/lab-andrew/backend/lib/logger.js b/lab-andrew/backend/lib/logger.js new file mode 100644 index 00000000..36015f80 --- /dev/null +++ b/lab-andrew/backend/lib/logger.js @@ -0,0 +1,15 @@ +'use strict'; + +const winston = require('winston'); + +const logger = new (winston.Logger)({ + levels: {error: 0, warn: 1, info: 2, verbose: 3, debug: 4}, + transports : [ + new (winston.transports.File)({ + filename : 'log.json', + level : 'verbose', + }), + ], +}); + +module.exports = logger; diff --git a/lab-andrew/backend/lib/middleware/basic-auth.js b/lab-andrew/backend/lib/middleware/basic-auth.js new file mode 100644 index 00000000..74f71ba5 --- /dev/null +++ b/lab-andrew/backend/lib/middleware/basic-auth.js @@ -0,0 +1,32 @@ +'use strict'; + +const httpErrors = require('http-errors'); +const User = require('../../model/user'); + +module.exports = (request, response, next) => { + if(!request.headers.authorization) + return next(new httpErrors(400, `__ERROR__ authorization header required`)); + + let base64AuthHeader = request.headers.authorization.split('Basic ')[1]; + + if(!base64AuthHeader) + return next(new httpErrors(400, `__ERROR__ basic authorization required`)); + + let stringAuthHeader = Buffer.from(base64AuthHeader, 'base64').toString(); + let [username, password] = stringAuthHeader.split(':'); + + if(!username || !password) + return next(new httpErrors(400, `__ERROR__ username and password are required`)); + + return User.findOne({username}) + .then(user => { + if(!user) + throw new httpErrors(404, `__ERROR__ username and password not required`); + return user.verifyPassword(password); + }) + .then(user => { + request.user = user; + return next(); + }) + .catch(next); +}; \ No newline at end of file diff --git a/lab-andrew/backend/lib/middleware/bearer-auth.js b/lab-andrew/backend/lib/middleware/bearer-auth.js new file mode 100644 index 00000000..7077c12e --- /dev/null +++ b/lab-andrew/backend/lib/middleware/bearer-auth.js @@ -0,0 +1,37 @@ +'use strict'; + +const httpErrors = require('http-errors'); +const User = require('../../model/user'); +const jsonWebToken = require('jsonwebtoken'); + +const promisify = (fn) => (...args) => { + return new Promise((resolve, reject) => { + fn(...args, (error, data) => { + if(error) + return reject(error); + return resolve(data); + }); + }); +}; + +module.exports = (request, response, next) => { + if(!request.headers.authorization) + return next(new httpErrors(400, `__ERROR__ authorization header required`)); + + const token = request.headers.authorization.split('Bearer ')[1]; + + if(!token) + return next(new httpErrors(400, `__ERROR__ token required`)); + + return promisify(jsonWebToken.verify)(token, process.env.SECRET_SALT) + .then(decryptedData => { + return User.findOne({tokenSeed: decryptedData.tokenSeed}); + }) + .then(user => { + if(!user) + throw new httpErrors(404, `__ERROR__ not found`); + request.user = user; + return next(); + }) + .catch(next); +}; diff --git a/lab-andrew/backend/lib/middleware/error-middleware.js b/lab-andrew/backend/lib/middleware/error-middleware.js new file mode 100644 index 00000000..944e478c --- /dev/null +++ b/lab-andrew/backend/lib/middleware/error-middleware.js @@ -0,0 +1,46 @@ +'use strict'; + +const logger = require('../logger'); + +module.exports = (error, request, response, next) => { //eslint-disable-line + + logger.log('info', '__ERROR_MIDDLEWARE__'); + logger.log('info',error); + + if(error.status){ + logger.log('info', `Responding with a ${error.status} status and message: ${error.message}`); + return response.sendStatus(error.status); + } + + let message = error.message.toLowerCase(); + + + if(message.includes('validation failed')){ + logger.log('info', 'Responding with a 400 status code'); + return response.sendStatus(400); + } + + if(message.includes('objectid failed')){ + logger.log('info', 'Responding with a 404 status code'); + return response.sendStatus(404); + } + + if(message.includes('duplicate key error collection')){ + logger.log('info', 'Responding with a 409 status code'); + return response.sendStatus(409); + } + + if(message.includes('unauthorized')){ + logger.log('info', 'Responding with a 401 status code'); + return response.sendStatus(401); + } + + if(message.includes('jwt malformed')){ + logger.log('info', 'Responding with a 401 status code'); + return response.sendStatus(401); + } + + logger.log('info', 'Responding with a 500 status code'); + logger.log('info',error); + return response.sendStatus(500); +}; diff --git a/lab-andrew/backend/lib/middleware/logger-middleware.js b/lab-andrew/backend/lib/middleware/logger-middleware.js new file mode 100644 index 00000000..cae23a54 --- /dev/null +++ b/lab-andrew/backend/lib/middleware/logger-middleware.js @@ -0,0 +1,11 @@ +'use strict'; + +const logger = require('../logger'); + +module.exports = (request, response, next) => { + + logger.log('info', `Processing : ${request.method} on : ${request.url}`); + console.log(`Processing : ${request.method} on : ${request.url}`); + + return next(); +}; diff --git a/lab-andrew/backend/lib/middleware/s3.js b/lab-andrew/backend/lib/middleware/s3.js new file mode 100644 index 00000000..e40ab90b --- /dev/null +++ b/lab-andrew/backend/lib/middleware/s3.js @@ -0,0 +1,34 @@ +'use strict'; + +const fsx = require('fs-extra'); +const aws = require('aws-sdk'); +const amazonS3 = new aws.S3(); + +const s3 = module.exports = {}; + +s3.upload = (path, key) => { + let uploadOptions = { + Bucket: process.env.AWS_BUCKET, + Key: key, + ACL: 'public-read', + Body: fsx.createReadStream(path), + }; + return amazonS3.upload(uploadOptions) + .promise() + .then(response => { + return fsx.remove(path) + .then(() => response.Location); + }) + .catch(error => { + return fsx.remove(path) + .then(() => Promise.reject(error)); + }); +}; + +s3.remove = key => { + let removeOptions = { + Key: key, + Bucket: process.env.AWS_BUCKET, + }; + return amazonS3.deleteObject(removeOptions).promise(); +}; \ No newline at end of file diff --git a/lab-andrew/backend/lib/server.js b/lab-andrew/backend/lib/server.js new file mode 100644 index 00000000..fcc65021 --- /dev/null +++ b/lab-andrew/backend/lib/server.js @@ -0,0 +1,68 @@ +'use strict'; + +const express = require('express'); +const logger = require('./logger'); +const mongoose = require('mongoose'); +const cors = require('cors'); + +const PORT = process.env.PORT; + +let isServerOn = false; +let httpServer = null; + +mongoose.Promise = Promise; + +const app = express(); + +app.use(cors({origin: 'http://localhost:8080'})); +app.use(require('./middleware/logger-middleware')); +app.use(require('../route/user-router')); +app.use(require('../route/wave-router')); + +app.all('*', (request, response) => { + logger.log('info','Returning a 404 from the catch-all route'); + return response.sendStatus(404); +}); + +app.use(require('./middleware/error-middleware')); + +const server = module.exports = {}; +server.start = () => { + return new Promise((resolve, reject) => { + if (isServerOn){ + logger.log('error', '__SERVER_ERROR__ server is already running'); + return reject(new Error('__SERVER_ERROR__ server is already running')); + } + if (!PORT){ + logger.log('error', '__SERVER_ERROR__ PORT variable is not configured'); + return reject(new Error('__SERVER_ERROR__ PORT variable is not configured')); + } + httpServer = app.listen(PORT, () => { + isServerOn = true; + logger.log('info',`Server is listening on port ${PORT}`); + return resolve(); + }); + }) + .then(() => mongoose.connect(process.env.MONGODB_URI)); +}; + +server.stop = () => { + return new Promise((resolve, reject) => { + if (!isServerOn){ + logger.log('error', '__SERVER_ERROR__ server is already off'); + return reject(new Error('__SERVER_ERROR__ server is already off')); + } + if (!httpServer){ + logger.log('error', '__SERVER_ERROR__ server can\'t be shut down, server does not exist'); + return reject(new Error('__SERVER_ERROR__ there is no server to close')); + + } + httpServer.close(() => { + isServerOn = false; + httpServer = null; + logger.log('info', 'Server is off'); + return resolve(); + }); + }) + .then(() => mongoose.disconnect()); +}; diff --git a/lab-andrew/backend/lib/transforms/bitcrusher.js b/lab-andrew/backend/lib/transforms/bitcrusher.js new file mode 100644 index 00000000..80369e53 --- /dev/null +++ b/lab-andrew/backend/lib/transforms/bitcrusher.js @@ -0,0 +1,23 @@ +'use strict'; + +const eightEightBitSteps = 32; +const eightSixteenBitSteps = 8192; + +module.exports = waveFile => { + let bitsPerSample = waveFile.bitsPerSample; + if(bitsPerSample === 8){ + for (let i = 0; i < waveFile.data.length; i++){ + let sample = waveFile.data[i]; + let alteredSample = Math.floor(sample / eightEightBitSteps) * eightEightBitSteps; + waveFile.data.writeUInt8(alteredSample, i); + } + } + if(bitsPerSample === 16){ + for (let i = 0; i < waveFile.data.length; i += 2) { + let sample = waveFile.data.readUInt16LE(i); + let alteredSample = Math.floor(sample / eightSixteenBitSteps) * eightSixteenBitSteps; + waveFile.data.writeUInt16LE(alteredSample, i); + } + } + return waveFile.buffer; +}; diff --git a/lab-andrew/backend/lib/transforms/delay.js b/lab-andrew/backend/lib/transforms/delay.js new file mode 100644 index 00000000..6c4d2b70 --- /dev/null +++ b/lab-andrew/backend/lib/transforms/delay.js @@ -0,0 +1,42 @@ +'use strict'; + +module.exports = (waveFile, delayTime = 0.2) => { + const eightBitZero = 127; + const sixteenBitLargest = 32767; + + const bitsPerSample = waveFile.bitsPerSample; + const sampleRate = waveFile.sampleRate; + let delaySamples = Math.round(sampleRate * delayTime); + + if (bitsPerSample === 8) { + for (let i = delaySamples; i < waveFile.data.length; i++) { + let alteredSample = Math.floor(0.5 * (waveFile.data[i - delaySamples] - eightBitZero)) + Math.floor(0.5 * (waveFile.data[i] - eightBitZero)) + eightBitZero; + if (alteredSample > 255){ + alteredSample = 255; + } + if (alteredSample < 0){ + alteredSample = 0; + } + waveFile.data.writeUInt8(alteredSample, i); + } + } + + if (bitsPerSample === 16){ + if (delaySamples % 2 !== 0){ + delaySamples += 1; + } + for (let i = delaySamples; i < waveFile.data.length; i += 2) { + let pastSample = waveFile.data.readInt16LE(i - delaySamples); + let currentSample = waveFile.data.readInt16LE(i); + let alteredSample = Math.floor(0.5 * (pastSample)) + Math.floor(0.5 * (currentSample)); + if (alteredSample > sixteenBitLargest) { + alteredSample = sixteenBitLargest; + } + if (alteredSample < -sixteenBitLargest) { + alteredSample = -sixteenBitLargest; + } + waveFile.data.writeInt16LE(alteredSample, i); + } + } + return waveFile.buffer; +}; diff --git a/lab-andrew/backend/lib/transforms/noise-add.js b/lab-andrew/backend/lib/transforms/noise-add.js new file mode 100644 index 00000000..8405f318 --- /dev/null +++ b/lab-andrew/backend/lib/transforms/noise-add.js @@ -0,0 +1,55 @@ +'use strict'; + +const EightBitFivePercent = 256 * 0.05; +const SixteenBitFivePercent = 65535 * 0.05; + +module.exports = waveFile => { + let bitsPerSample = waveFile.bitsPerSample; + + if (bitsPerSample === 8) { + + for (let i = 0; i < waveFile.data.length; i++) { + let howMuch = Math.ceil(Math.random() * EightBitFivePercent); + let addOrSubtract = Math.round(Math.random()); + + let sample = waveFile.data[i]; + let alteredSample = null; + if (addOrSubtract === 0) { + alteredSample = sample - howMuch; + if (alteredSample < 0){ + alteredSample = 0; + } + } else { + alteredSample = sample + howMuch; + if (alteredSample > 255) { + alteredSample = 255; + } + } + waveFile.data.writeUInt8(alteredSample, i); + } + } + if (bitsPerSample === 16) { + + for (let i = 0; i < waveFile.data.length; i += 2) { + let howMuch = Math.ceil(Math.random() * SixteenBitFivePercent); + let addOrSubtract = Math.round(Math.random()); + + let sample = waveFile.data.readUInt16LE(i); + let alteredSample = null; + if (addOrSubtract === 0) { + alteredSample = sample - howMuch; + if (alteredSample < 0) { + alteredSample = 0; + } + } else { + alteredSample = sample + howMuch; + if (alteredSample > 65535) { + alteredSample = 65535; + } + } + waveFile.data.writeUInt16LE(alteredSample, i); + } + } + return waveFile.buffer; +}; + diff --git a/lab-andrew/backend/lib/transforms/reverse.js b/lab-andrew/backend/lib/transforms/reverse.js new file mode 100644 index 00000000..6a4d5344 --- /dev/null +++ b/lab-andrew/backend/lib/transforms/reverse.js @@ -0,0 +1,22 @@ +'use strict'; + +module.exports = waveFile => { + let bitsPerSample = waveFile.bitsPerSample; + if(bitsPerSample === 8){ + for(let i = 0; i < (waveFile.data.length) / 2; i++){ + let beginningSample = waveFile.data[i]; + let endSample = waveFile.data[waveFile.data.length - (i + 1)]; + waveFile.data.writeUInt8(endSample, i); + waveFile.data.writeUInt8(beginningSample, waveFile.data.length - (i + 1)); + } + } + if(bitsPerSample === 16){ + for(let i = 0; i < (waveFile.data.length) / 2; i += 2){ + let beginningSample = waveFile.data.readUInt16LE(i); + let endSample = waveFile.data.readUInt16LE(waveFile.data.length - (i + 2)); + waveFile.data.writeUInt16LE(endSample, i); + waveFile.data.writeUInt16LE(beginningSample, waveFile.data.length - (i + 2)); + } + } + return waveFile.buffer; +}; diff --git a/lab-andrew/backend/lib/transforms/sample-rate-transform.js b/lab-andrew/backend/lib/transforms/sample-rate-transform.js new file mode 100644 index 00000000..93e7f092 --- /dev/null +++ b/lab-andrew/backend/lib/transforms/sample-rate-transform.js @@ -0,0 +1,12 @@ +'use strict'; + +const SAMPLE_RATE_OFFSET = 24; + +module.exports = waveFile => { + + let newSampleRate = waveFile.sampleRate / 2; + + waveFile.buffer.writeUInt16LE(newSampleRate, SAMPLE_RATE_OFFSET); + + return waveFile.buffer; +}; \ No newline at end of file diff --git a/lab-andrew/backend/lib/transforms/wave-parser.js b/lab-andrew/backend/lib/transforms/wave-parser.js new file mode 100644 index 00000000..a1b24d45 --- /dev/null +++ b/lab-andrew/backend/lib/transforms/wave-parser.js @@ -0,0 +1,71 @@ +'use strict'; + +module.exports = data => { + + const RIFF_HEADER_OFFSET = 0; + const FILE_SIZE_OFFSET = 4; + const RIFF_FORMAT_OFFSET = 8; + const SUBCHUNK1_ID_OFFSET = 12; + const AUDIO_FORMAT_OFFSET = 20; + const NUMBER_OF_CHANNELS_OFFSET = 22; + const SAMPLE_RATE_OFFSET = 24; + const BITS_PER_SAMPLE_OFFSET = 34; + const SUBCHUNK2_ID_OFFSET = 36; + const SUBCHUNK2_SIZE_OFFSET = 40; + const DATA_OFFSET = 44; + + function ParsedWave(buffer) { + this.buffer = buffer; + this.riff = buffer.slice(RIFF_HEADER_OFFSET, RIFF_HEADER_OFFSET + 4).toString('utf8'); + this.fileSize = buffer.readUInt32LE(FILE_SIZE_OFFSET); + this.riffType = buffer.slice(RIFF_FORMAT_OFFSET, RIFF_FORMAT_OFFSET + 4).toString('utf8'); + this.subChunk1Id = buffer.slice(SUBCHUNK1_ID_OFFSET, SUBCHUNK1_ID_OFFSET + 4).toString('utf8'); + this.audioFormat = buffer.readUInt16LE(AUDIO_FORMAT_OFFSET); + this.numberOfChannels = buffer.readUInt16LE(NUMBER_OF_CHANNELS_OFFSET); + this.sampleRate = buffer.readUInt32LE(SAMPLE_RATE_OFFSET); + this.bitsPerSample = buffer.readUInt16LE(BITS_PER_SAMPLE_OFFSET); + this.subChunk2Id = buffer.slice(SUBCHUNK2_ID_OFFSET, SUBCHUNK2_ID_OFFSET + 4).toString('utf8'); + this.subChunk2Size = buffer.readUInt32LE(SUBCHUNK2_SIZE_OFFSET); + this.data = buffer.slice(DATA_OFFSET, this.subChunk2Size + DATA_OFFSET); + } + + const parsedWaveFile = new ParsedWave(data); + + if (parsedWaveFile.riff !== 'RIFF'){ + throw new TypeError('incorrect file type, must be RIFF format'); + } + + if (parsedWaveFile.fileSize > 1000000) { + throw new TypeError('file too large, please limit file size to less than 1MB'); + } + + if (parsedWaveFile.riffType !== 'WAVE') { + throw new TypeError('file must be a WAVE'); + } + + if (parsedWaveFile.subChunk1Id !== 'fmt ') { + throw new TypeError('the first subchunk must be fmt'); + } + + if (parsedWaveFile.audioFormat !== 1) { + throw new TypeError('wave file must be uncompressed linear PCM'); + } + + if (parsedWaveFile.numberOfChannels > 2){ + throw new TypeError('wave file must have 2 or less channels'); + } + + if (parsedWaveFile.sampleRate > 48000){ + throw new TypeError('wave file must have sample rate of less than 48k'); + } + + if (parsedWaveFile.bitsPerSample !== 8 && parsedWaveFile.bitsPerSample !== 16){ + throw new TypeError(`file's bit depth must be 8 or 16`); + } + + if (parsedWaveFile.subChunk2Id !== 'data') { + throw new TypeError('subchunk 2 must be data'); + } + + return parsedWaveFile; +}; \ No newline at end of file diff --git a/lab-andrew/backend/model/user.js b/lab-andrew/backend/model/user.js new file mode 100644 index 00000000..52fe83ba --- /dev/null +++ b/lab-andrew/backend/model/user.js @@ -0,0 +1,73 @@ +'use strict'; + +const mongoose = require('mongoose'); + +const crypto = require('crypto'); +const bcrypt = require('bcrypt'); +const httpErrors = require('http-errors'); +const jsonWebToken = require('jsonwebtoken'); + +const userSchema = mongoose.Schema({ + username: { + type: String, + required: true, + unique: true, + }, + passwordHash: { + type: String, + required: true, + }, + email: { + type: String, + required: true, + unique: true, + }, + tokenSeed: { + type: String, + required: true, + unique: true, + }, + passwordSalt: { + type: String, + required: true, + }, +}); + +userSchema.methods.verifyPassword = function (password) { + return bcrypt.compare(`${password}${this.passwordSalt}`, this.passwordHash) + .then(response => { + if (!response) { + throw new httpErrors(401, '__AUTH__ incorrect username or password'); + } + return this; + }); +}; + +userSchema.methods.createToken = function () { + this.tokenSeed = crypto.randomBytes(64).toString('hex'); + + return this.save() + .then(user => { + return jsonWebToken.sign({ + tokenSeed: user.tokenSeed, + }, process.env.SECRET_SALT); + }); +}; + +const User = module.exports = mongoose.model('user', userSchema); + +User.create = (username, email, password) => { + const HASH_SALT_ROUNDS = 8; + const passwordSalt = crypto.randomBytes(64).toString('hex'); + return bcrypt.hash(`${password}${passwordSalt}`, HASH_SALT_ROUNDS) + .then(passwordHash => { + const tokenSeed = crypto.randomBytes(64).toString('hex'); + return new User({ + username, + email, + passwordHash, + tokenSeed, + passwordSalt, + }).save(); + }); +}; \ No newline at end of file diff --git a/lab-andrew/backend/model/wave.js b/lab-andrew/backend/model/wave.js new file mode 100644 index 00000000..860a3940 --- /dev/null +++ b/lab-andrew/backend/model/wave.js @@ -0,0 +1,20 @@ +'use strict'; + +const mongoose = require('mongoose'); + +const waveSchema = mongoose.Schema({ + user : { + type : mongoose.Schema.Types.ObjectId, + required : true, + }, + wavename : { + type : String, + }, + url : { + type : String, + required : true, + }, + +}); + +module.exports = mongoose.model('wave', waveSchema); \ No newline at end of file diff --git a/lab-andrew/backend/package-lock.json b/lab-andrew/backend/package-lock.json new file mode 100644 index 00000000..3ec547b8 --- /dev/null +++ b/lab-andrew/backend/package-lock.json @@ -0,0 +1,6175 @@ +{ + "name": "scramble-vox", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.36.tgz", + "integrity": "sha512-sW77BFwJ48YvQp3Gzz5xtAUiXuYOL2aMJKDwiaY3OcvdqBFurtYfOpSa4QrNyDxmOGRFSYzUpabU2m9QrlWE7w==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "@types/node": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.5.2.tgz", + "integrity": "sha512-KA4GKOpgXnrqEH2eCVhiv2CsxgXGQJgV1X0vsGlh+WCnxbeAE1GT44ZsTU1IN5dEeV/gDupKa7gWo08V5IxWVQ==", + "dev": true + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", + "dev": true + }, + "acorn-globals": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", + "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", + "dev": true, + "requires": { + "acorn": "5.3.0" + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "append-field": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-0.1.0.tgz", + "integrity": "sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo=" + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sdk": { + "version": "2.176.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.176.0.tgz", + "integrity": "sha1-JyPBThxiOsRcW4kKP8c27ugIX2c=", + "requires": { + "buffer": "4.9.1", + "crypto-browserify": "1.0.9", + "events": "1.1.1", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.1.0", + "xml2js": "0.4.17", + "xmlbuilder": "4.2.1" + }, + "dependencies": { + "sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + } + } + }, + "aws-sdk-mock": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws-sdk-mock/-/aws-sdk-mock-1.7.0.tgz", + "integrity": "sha1-dpizuoL0k/cf8GCuISPNCAathnY=", + "dev": true, + "requires": { + "aws-sdk": "2.176.0", + "sinon": "1.17.7", + "traverse": "0.6.6" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-jest": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.0.4.tgz", + "integrity": "sha512-/Yt61fUpdFjetYlnpj280BPKEsPnK4mqzxDdo8DybPvrPNrLurbAF/WBjn2nnoi1Hc2Ippsf12/aOp8ys/Vl1A==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "4.1.5", + "babel-preset-jest": "22.0.3" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "istanbul-lib-instrument": "1.9.1", + "test-exclude": "4.1.1" + } + }, + "babel-plugin-jest-hoist": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.0.3.tgz", + "integrity": "sha512-Z0pOZFs0xDctwF0bPEKrnAzvbbgDi2vDFbQ0EdofnLI2bOa3P1H66gNLb2vMJJaa00VDjfiGhIocsHvBkqtyEQ==", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-preset-jest": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.0.3.tgz", + "integrity": "sha512-FbMMniSMXFvkKldCf+e4Tuol/v3XMaIpIp8xiT1WFlEW3ZapTKDW9YgVt3hqcpZXsIGFf6eUF3Owxom7yFlI8w==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "22.0.3", + "babel-plugin-syntax-object-rest-spread": "6.13.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "base64url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", + "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" + }, + "bcrypt": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-1.0.3.tgz", + "integrity": "sha512-pRyDdo73C8Nim3jwFJ7DWe3TZCgwDfWZ6nHS5LSdU77kWbj1frruvdndP02AOavtD4y8v6Fp2dolbHgp4SDrfg==", + "requires": { + "nan": "2.6.2", + "node-pre-gyp": "0.6.36" + }, + "dependencies": { + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", + "dev": true, + "optional": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "browser-process-hrtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", + "dev": true + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "requires": { + "resolve": "1.1.7" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true, + "requires": { + "node-int64": "0.4.0" + } + }, + "bson": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", + "integrity": "sha1-k8ENOeqltYQVy8QFLz5T5WKwtyw=" + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "ci-info": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "dev": true + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", + "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", + "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", + "requires": { + "object-assign": "4.1.1", + "vary": "1.1.2" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "crypto-browserify": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", + "integrity": "sha1-zFRJaF37hesRyYKKzHy4erW7/MA=" + }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.2" + } + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.14", + "streamsearch": "0.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "dev": true + }, + "doctrine": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz", + "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.0.tgz", + "integrity": "sha512-WpwuBlZ2lQRFa4H/4w49deb9rJLot9KmqrKKjMc9qBl7CID+DdC2swoa34ccRl+anL2B6bLp6TjFdIdnzekMBQ==", + "dev": true + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", + "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", + "requires": { + "base64url": "2.0.0", + "safe-buffer": "5.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "eslint": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.14.0.tgz", + "integrity": "sha512-Ul6CSGRjKscEyg0X/EeNs7o2XdnbTEOD1OM8cTjmx85RPcBJQrEhZLevhuJZNAE/vS2iVl5Uhgiqf3h5uLMCJQ==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.3.0", + "concat-stream": "1.6.0", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.0.2", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.2", + "esquery": "1.0.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.1.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.0.1", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.4.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", + "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", + "dev": true, + "requires": { + "acorn": "5.3.0", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "exec-sh": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", + "dev": true, + "requires": { + "merge": "1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "expect": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-22.0.3.tgz", + "integrity": "sha512-QapzeQkcA3jCx4pDnD07I4SPPxScKbey8TD/WwrnzmpHmL5q0dUtXfUt5OIFOjVBCg+C4zn4Y1zK9Rb9SIDL1g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "jest-diff": "22.0.3", + "jest-get-type": "22.0.3", + "jest-matcher-utils": "22.0.3", + "jest-message-util": "22.0.3", + "jest-regex-util": "22.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + } + } + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, + "faker": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz", + "integrity": "sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "formatio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", + "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", + "dev": true, + "requires": { + "samsam": "1.1.2" + } + }, + "formidable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", + "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=", + "dev": true + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "aproba": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz", + "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "1.0.3" + } + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + } + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-ci": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "dev": true, + "requires": { + "ci-info": "1.1.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } + }, + "is-resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz", + "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-api": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", + "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", + "dev": true, + "requires": { + "async": "2.6.0", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "js-yaml": "3.10.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "jest": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-22.0.4.tgz", + "integrity": "sha512-S0tmgK5psULvt/11QzgAZWGpY5y5TkMRzd3T21Q13JzTx37Vx6F0Nw022c9Kc/IbEy+AHkKkGFVO5QafE8MrDg==", + "dev": true, + "requires": { + "jest-cli": "22.0.4" + }, + "dependencies": { + "jest-cli": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-22.0.4.tgz", + "integrity": "sha512-f1lZRM13IwIINzjE3RebXQKtQLiKncpSrbJZ/aTZJXmzEWGdgSayW4ESyhU+xK3uGiJEUSzbHjwPY6nGJ8VbUA==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "is-ci": "1.0.10", + "istanbul-api": "1.2.1", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-source-maps": "1.2.2", + "jest-changed-files": "22.0.3", + "jest-config": "22.0.4", + "jest-environment-jsdom": "22.0.4", + "jest-get-type": "22.0.3", + "jest-haste-map": "22.0.3", + "jest-message-util": "22.0.3", + "jest-regex-util": "22.0.3", + "jest-resolve-dependencies": "22.0.3", + "jest-runner": "22.0.4", + "jest-runtime": "22.0.4", + "jest-snapshot": "22.0.3", + "jest-util": "22.0.4", + "jest-worker": "22.0.3", + "micromatch": "2.3.11", + "node-notifier": "5.1.2", + "realpath-native": "1.0.0", + "rimraf": "2.6.2", + "slash": "1.0.0", + "string-length": "2.0.0", + "strip-ansi": "4.0.0", + "which": "1.3.0", + "yargs": "10.0.3" + } + } + } + }, + "jest-changed-files": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.0.3.tgz", + "integrity": "sha512-CG7eNJNO9x1O/3J4Uhe2QXra1MnC9+KS1f2NeOg+7iQ+8dDCgxCtpusmKfu44TnEyKwkIDhDr6htPfPaI+Fwbw==", + "dev": true, + "requires": { + "throat": "4.1.0" + } + }, + "jest-config": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.0.4.tgz", + "integrity": "sha512-NcBeixqHjHDZO9+pUj+365LQV2s65d2f0/IrwlUyv0xaJovRNc6eDvoJ/r2UUlHnqjP3Go+R0ECUsXPXjk4SHw==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "glob": "7.1.2", + "jest-environment-jsdom": "22.0.4", + "jest-environment-node": "22.0.4", + "jest-get-type": "22.0.3", + "jest-jasmine2": "22.0.4", + "jest-regex-util": "22.0.3", + "jest-resolve": "22.0.4", + "jest-util": "22.0.4", + "jest-validate": "22.0.3", + "pretty-format": "22.0.3" + } + }, + "jest-diff": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.0.3.tgz", + "integrity": "sha512-Y7xN9Lc/NgFvR14lvjrJXB6x2x1LLe5NnMyzLvilBSSOyjy9uAVnR2Bt1YgzdfRrfaxsx7xFUVcqXLUnPkrJcA==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "diff": "3.4.0", + "jest-get-type": "22.0.3", + "pretty-format": "22.0.3" + } + }, + "jest-docblock": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.0.3.tgz", + "integrity": "sha512-LhviP2rqIg2IzS6m97W7T032oMrT699Tr6Njjhhl4FCLj+75BUy9CsSmGgfoVEql1uc+myBkssvcbn7T9xDR+A==", + "dev": true, + "requires": { + "detect-newline": "2.1.0" + } + }, + "jest-environment-jsdom": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.0.4.tgz", + "integrity": "sha512-vnjefLZlsNsmnjKcaXkx2IxTBNG40vfRVOdMfcfkPkq85JxFB7wzNtjLx+RIfiNpIZd04C1PXbF0aJIenY85Ng==", + "dev": true, + "requires": { + "jest-mock": "22.0.3", + "jest-util": "22.0.4", + "jsdom": "11.5.1" + } + }, + "jest-environment-node": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.0.4.tgz", + "integrity": "sha512-9vjNKb86UivvKCZCudMNixQgdMnOG7ql6iVYnaiK0CmvZ0WQD+mlM10NvgiWpRv4HstcnRL1pY/GSIHXAD6qXw==", + "dev": true, + "requires": { + "jest-mock": "22.0.3", + "jest-util": "22.0.4" + } + }, + "jest-get-type": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.0.3.tgz", + "integrity": "sha512-TaJnc/lnJQ3jwry+NUWkqaJmKrM/Ut3XdK89HfiqdI3DMRLd6Zb4wyKjwuNP37MEQqlNg0YWH4sbBR8D4exjCA==", + "dev": true + }, + "jest-haste-map": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.0.3.tgz", + "integrity": "sha512-VosIMOFQFu1rTF+MvOWVuv2KVmZ9eTkRgfwW2yUAs6/AhwmIfXRl/tih+fIOYcHzU4Auu1G8Fvl2kkF5g0k6/A==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "22.0.3", + "jest-worker": "22.0.3", + "micromatch": "2.3.11", + "sane": "2.2.0" + } + }, + "jest-jasmine2": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.0.4.tgz", + "integrity": "sha512-pn1XPHUkffHK6oNY1Dfl/+Rg0UuTdlg3aGDnjyK6dZzGEBeiH1uKuSgZEjy3Lj461l3atpzsQyw7ilXPyjFnUw==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.0", + "expect": "22.0.3", + "graceful-fs": "4.1.11", + "jest-diff": "22.0.3", + "jest-matcher-utils": "22.0.3", + "jest-message-util": "22.0.3", + "jest-snapshot": "22.0.3", + "source-map-support": "0.5.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "jest-leak-detector": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.0.3.tgz", + "integrity": "sha512-xyVdAmcG8M3jWtVeadDUU6MAHLBrjkP4clz2UtTZ1gpe5bRLk27VjQOpzTwK20MkV/6iZQhSuRVuzHS5kD0HpA==", + "dev": true, + "requires": { + "pretty-format": "22.0.3", + "weak": "1.0.1" + } + }, + "jest-matcher-utils": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.0.3.tgz", + "integrity": "sha512-FJbKpCR3K7YYE/Pnvy5OrLFgPEswpYWIfVtdwT2NC6pBARbYGX39KF3bTxS9yg2mv0YL2zHe3UbwzFsi9nFpVA==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "22.0.3", + "pretty-format": "22.0.3" + } + }, + "jest-message-util": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.0.3.tgz", + "integrity": "sha512-AVBdCx7Oj5wBpMOH089lx7Zgwpdz9HbReA82HuVAlIT4kEQRvCy6Sl9yVWDGJwHTgB/OYQGkgmbv/P/K8TkWNw==", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.36", + "chalk": "2.3.0", + "micromatch": "2.3.11", + "slash": "1.0.0", + "stack-utils": "1.0.1" + } + }, + "jest-mock": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.0.3.tgz", + "integrity": "sha512-donODXcDG03EAEavc9xfJ7fBF/LNVjoZYkmj9DLrQ1B9YcT6wh8Xx7IYg25b8V/8F/eXPMAE0KK5q6Fqe6yAeg==", + "dev": true + }, + "jest-regex-util": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.0.3.tgz", + "integrity": "sha512-mplC9chiAotES3ClzNhy0SJcfHB2DivooKJZW+2hDdvP8LLB+OUI+D6bJd7sncbKUsyFcmblEvpm/zz/hef7HA==", + "dev": true + }, + "jest-resolve": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.0.4.tgz", + "integrity": "sha512-yoxHsX4MTT2Ra/dFia9VCunzsA/4jMBENMmLjREIUkCIP1edk/PZUOGVVf680Gw04CtmT5stETylcbmbL7hJBw==", + "dev": true, + "requires": { + "browser-resolve": "1.11.2", + "chalk": "2.3.0" + } + }, + "jest-resolve-dependencies": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.0.3.tgz", + "integrity": "sha512-u9MUNJIa9GJ0YFhvM0+Scr4tyX84nC42d3w18Cly1doY7pTT+9momm+TncpuDlFyB2aNmS8SfdEbiLr1e6tBwg==", + "dev": true, + "requires": { + "jest-regex-util": "22.0.3" + } + }, + "jest-runner": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-22.0.4.tgz", + "integrity": "sha512-srBkbqmiSB+jzSaG652fmi3kS6rV6wS/4fOG8dxxBg3dCqNQcM2/L3TI3ZK0SwIAcdGJh5Gybs8aDboT8K9Cdw==", + "dev": true, + "requires": { + "jest-config": "22.0.4", + "jest-docblock": "22.0.3", + "jest-haste-map": "22.0.3", + "jest-jasmine2": "22.0.4", + "jest-leak-detector": "22.0.3", + "jest-message-util": "22.0.3", + "jest-runtime": "22.0.4", + "jest-util": "22.0.4", + "jest-worker": "22.0.3", + "throat": "4.1.0" + } + }, + "jest-runtime": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.0.4.tgz", + "integrity": "sha512-+7uEwf/4f8k1E/eViyGK6/M5yA4O3f6TdWViuqF9MV7vXwG2OVJu8YEZa5239nEnHJiwinXp4eZXX+HB4pQRPg==", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-jest": "22.0.4", + "babel-plugin-istanbul": "4.1.5", + "chalk": "2.3.0", + "convert-source-map": "1.5.1", + "graceful-fs": "4.1.11", + "jest-config": "22.0.4", + "jest-haste-map": "22.0.3", + "jest-regex-util": "22.0.3", + "jest-resolve": "22.0.4", + "jest-util": "22.0.4", + "json-stable-stringify": "1.0.1", + "micromatch": "2.3.11", + "realpath-native": "1.0.0", + "slash": "1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "2.3.0", + "yargs": "10.0.3" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.0.3.tgz", + "integrity": "sha512-e/a/EvMsY5XROWy4QWX6PvYziuJ8ttD6+QcnbogODWtx2LGhvVQOb7pmqGTo0tL/p0vzFetZA9GlZSh/EfMepg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-diff": "22.0.3", + "jest-matcher-utils": "22.0.3", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "pretty-format": "22.0.3" + } + }, + "jest-util": { + "version": "22.0.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.0.4.tgz", + "integrity": "sha512-gNNPtcCFkVh7daKIl3/06eoQ90QXGXCyDOfyZ3IEyTWmHBdX3GvklcOtyGcdOvrYEubaZTfMcMKmEeo/6sRTog==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.0", + "graceful-fs": "4.1.11", + "is-ci": "1.0.10", + "jest-message-util": "22.0.3", + "jest-validate": "22.0.3", + "mkdirp": "0.5.1" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "jest-validate": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.0.3.tgz", + "integrity": "sha512-GmlLmPCtrSQ3iB4A1uxcfjawaaQnwESCDcUg5tMxJKeBbmPdcWPAb6EWzvANxULPUV7hfPKLwg4xIPpi7cx1/g==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "22.0.3", + "leven": "2.1.0", + "pretty-format": "22.0.3" + } + }, + "jest-worker": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.0.3.tgz", + "integrity": "sha512-fPdCTnogFQiR0CP6whEsIly2RfcHxvalqyLjhui6qa1SnOmHiX7L8k4Umo8CBIp5ndWY0+ej1o7OTE5MlzPabg==", + "dev": true, + "requires": { + "merge-stream": "1.0.1" + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsdom": { + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.5.1.tgz", + "integrity": "sha512-89ztIZ03aYK9f1uUrLXLsZndRge/JnZjzjpaN+lrse3coqz+8PR/dX4WLHpbF5fIKTXhDjFODOJw2328lPJ90g==", + "dev": true, + "requires": { + "abab": "1.0.4", + "acorn": "5.3.0", + "acorn-globals": "4.1.0", + "array-equal": "1.0.0", + "browser-process-hrtime": "0.1.2", + "content-type-parser": "1.0.2", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "domexception": "1.0.0", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.2", + "left-pad": "1.2.0", + "nwmatcher": "1.4.3", + "parse5": "3.0.3", + "pn": "1.0.0", + "request": "2.83.0", + "request-promise-native": "1.0.5", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.3", + "whatwg-url": "6.4.0", + "xml-name-validator": "2.0.1" + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonwebtoken": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.1.0.tgz", + "integrity": "sha1-xjl80uX9WD1lwAeoPce7eOaYK4M=", + "requires": { + "jws": "3.1.4", + "lodash.includes": "4.3.0", + "lodash.isboolean": "3.0.3", + "lodash.isinteger": "4.0.4", + "lodash.isnumber": "3.0.3", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.once": "4.1.1", + "ms": "2.0.0", + "xtend": "4.0.1" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", + "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", + "requires": { + "base64url": "2.0.0", + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.9", + "safe-buffer": "5.1.1" + } + }, + "jws": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", + "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", + "requires": { + "base64url": "2.0.0", + "jwa": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "kareem": { + "version": "2.0.0-rc5", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.0.0-rc5.tgz", + "integrity": "sha512-r1k8pO2ebXZvEMI0blJWLT5hvxReDdSKTUoxdaDj4ntSCFuTj9tNs9yQlmFXQeb5vbm0bJgn/AZ0yUHaQ9EywA==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "left-pad": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", + "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=", + "dev": true + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lolex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.4" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mongodb": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.1.tgz", + "integrity": "sha1-J47oAGJX7CJ5hZSmJZVGgl1t4bI=", + "requires": { + "mongodb-core": "3.0.1" + } + }, + "mongodb-core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.1.tgz", + "integrity": "sha1-/23Dbulv9ZaVPYCmhA1nMbyS7+0=", + "requires": { + "bson": "1.0.4", + "require_optional": "1.0.1" + } + }, + "mongoose": { + "version": "5.0.0-rc0", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.0.0-rc0.tgz", + "integrity": "sha512-nAYq4EKAPuL2XP5kS3TriCGH4Kd27gsfBQReALKdjfy2dBtMdRILM7I9woN589XdgMxSBRTIRXUebIeAJJCtZg==", + "requires": { + "async": "2.1.4", + "bson": "1.0.4", + "kareem": "2.0.0-rc5", + "lodash.get": "4.4.2", + "mongodb": "3.0.1", + "mongoose-legacy-pluralize": "1.0.1", + "mpath": "0.3.0", + "mquery": "3.0.0-rc0", + "ms": "2.0.0", + "regexp-clone": "0.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", + "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", + "requires": { + "lodash": "4.17.4" + } + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.1.tgz", + "integrity": "sha512-X5/N3sNj1p+y7Bg1vouQdST1vkInEzNAwqVjfDpNrhnugih2p2rV7jLrrb71sbQUPMJPm0Hhe6rH5fQV1Ve4XQ==" + }, + "mpath": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.3.0.tgz", + "integrity": "sha1-elj3iem1/TyUUgY0FXlg8mvV70Q=" + }, + "mquery": { + "version": "3.0.0-rc0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.0.0-rc0.tgz", + "integrity": "sha512-tEAVSvlmd22irKJ8Q/tyI0LKRv8cV3aEkQ/EHW391ktGRWDDlfcpZyq6GYqu8yXGoz2JkC4aMJdNGca19wU1NQ==", + "requires": { + "bluebird": "3.5.0", + "debug": "2.6.9", + "regexp-clone": "0.0.1", + "sliced": "0.0.5" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "sliced": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.3.0.tgz", + "integrity": "sha1-CSsmcPaEb6SRSWXvyM+Uwg/sbNI=", + "requires": { + "append-field": "0.1.0", + "busboy": "0.2.14", + "concat-stream": "1.6.0", + "mkdirp": "0.5.1", + "object-assign": "3.0.0", + "on-finished": "2.3.0", + "type-is": "1.6.15", + "xtend": "4.0.1" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "dev": true, + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-notifier": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", + "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", + "dev": true, + "requires": { + "growly": "1.3.0", + "semver": "5.4.1", + "shellwords": "0.1.1", + "which": "1.3.0" + } + }, + "node-pre-gyp": { + "version": "0.6.36", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", + "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", + "requires": { + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.2", + "rc": "1.2.2", + "request": "2.83.0", + "rimraf": "2.6.2", + "semver": "5.4.1", + "tar": "2.2.1", + "tar-pack": "3.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "8.5.2" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "pn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.0.0.tgz", + "integrity": "sha1-HPWjCw2AbNGPiPxBprXUrWFbO6k=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-format": { + "version": "22.0.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.0.3.tgz", + "integrity": "sha512-qXbDFJ2/Kk3HFIaLdOblbsCKQ09kZu4MKbXB+m/EaqD7PZ/wXe2XcRREmQleMh4wmerxlma6eJTh3nxCXYUmmA==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "realpath-native": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz", + "integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==", + "dev": true, + "requires": { + "util.promisify": "1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regexp-clone": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "dev": true, + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "2.0.0", + "semver": "5.4.1" + }, + "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + } + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "samsam": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", + "dev": true + }, + "sane": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.2.0.tgz", + "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "exec-sh": "0.2.1", + "fb-watchman": "2.0.0", + "fsevents": "1.1.3", + "minimatch": "3.0.4", + "minimist": "1.2.0", + "walker": "1.0.7", + "watch": "0.18.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + } + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "sinon": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", + "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", + "dev": true, + "requires": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "util": "0.10.3" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + } + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", + "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", + "dev": true + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dev": true, + "requires": { + "astral-regex": "1.0.0", + "strip-ansi": "4.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "superagent": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "cookiejar": "2.1.1", + "debug": "3.1.0", + "extend": "3.0.1", + "form-data": "2.3.1", + "formidable": "1.1.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.1", + "readable-stream": "2.3.3" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.0", + "lodash": "4.17.4", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", + "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", + "requires": { + "debug": "2.6.9", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.3.3", + "rimraf": "2.6.2", + "tar": "2.2.1", + "uid-number": "0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + } + } + }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "object.getownpropertydescriptors": "2.0.3" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.11" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "0.2.1", + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "weak": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/weak/-/weak-1.0.1.tgz", + "integrity": "sha1-q5mqswcGlZqgIAy4z1RbucszuZ4=", + "dev": true, + "optional": true, + "requires": { + "bindings": "1.3.0", + "nan": "2.8.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "requires": { + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" + }, + "dependencies": { + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + } + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "xml2js": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "requires": { + "sax": "1.2.4", + "xmlbuilder": "4.2.1" + } + }, + "xmlbuilder": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "requires": { + "lodash": "4.17.4" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } +} diff --git a/lab-andrew/backend/package.json b/lab-andrew/backend/package.json new file mode 100644 index 00000000..802c965e --- /dev/null +++ b/lab-andrew/backend/package.json @@ -0,0 +1,42 @@ +{ + "name": "scramble-vox", + "version": "1.0.0", + "description": "audio file transformer", + "main": "index.js", + "engine": { + "node": "8.9.3" + }, + "scripts": { + "test": "jest -i --coverage", + "lint": "eslint ./", + "start": "node index.js", + "dbon": "mkdir -p ./db && mongod --dbpath ./db", + "dboff": "killall mongod" + }, + "author": "Andrew Bloom, David Lindahl, Jeff Kusowski, Shannon Dillon", + "license": "MIT", + "bin": { + "scramblevox": "./cli.js" + }, + "preferGlobal": true, + "devDependencies": { + "aws-sdk-mock": "^1.7.0", + "eslint": "^4.14.0", + "faker": "^4.1.0", + "jest": "^22.0.4", + "superagent": "^3.8.2" + }, + "dependencies": { + "aws-sdk": "^2.176.0", + "bcrypt": "^1.0.3", + "cors": "^2.8.4", + "dotenv": "^4.0.0", + "express": "^4.16.2", + "fs-extra": "^5.0.0", + "http-errors": "^1.6.2", + "jsonwebtoken": "^8.1.0", + "mongoose": "^5.0.0-rc0", + "multer": "^1.3.0", + "winston": "^2.4.0" + } +} diff --git a/lab-andrew/backend/route/user-router.js b/lab-andrew/backend/route/user-router.js new file mode 100644 index 00000000..f92cd2c2 --- /dev/null +++ b/lab-andrew/backend/route/user-router.js @@ -0,0 +1,30 @@ +'use strict'; + +const {Router} = require(`express`); +const jsonParser = require(`body-parser`).json(); +const User = require(`../model/user`); +const httpErrors = require(`http-errors`); + +const basicAuthMiddleware = require(`../lib/middleware/basic-auth`); + +const userRouter = module.exports = new Router(); + +userRouter.post(`/signup`, jsonParser, (request, response, next) => { + if(!request.body.username || !request.body.password || !request.body.email){ + return next(new httpErrors(400, `__ERROR__ username, password, and email are required`)); + } + + return User.create(request.body.username, request.body.email, request.body.password) + .then(user => user.createToken()) + .then(token => response.json({token})) + .catch(next); +}); + +userRouter.get(`/login`, basicAuthMiddleware, (request, response, next) => { + if(!request.user){ + return next(new httpErrors(404, `__ERROR__ Not Found`)); + } + return request.user.createToken() + .then(token => response.json({token})) + .catch(next); +}); diff --git a/lab-andrew/backend/route/wave-router.js b/lab-andrew/backend/route/wave-router.js new file mode 100644 index 00000000..6c5092cc --- /dev/null +++ b/lab-andrew/backend/route/wave-router.js @@ -0,0 +1,135 @@ +'use strict'; + +const {Router} = require('express'); +const httpErrors = require('http-errors'); +const fsx = require('fs-extra'); +const bearerAuth = require('../lib/middleware/bearer-auth'); +const waveParser = require('../lib/transforms/wave-parser'); +const bitCrusher = require('../lib/transforms/bitcrusher'); +const downPitcher = require('../lib/transforms/sample-rate-transform'); +const delay = require('../lib/transforms/delay'); +const noiseAdd = require('../lib/transforms/noise-add'); +const reverse = require('../lib/transforms/reverse'); + +const Wave = require('../model/wave'); +const s3 = require('../lib/middleware/s3'); + +const multer = require('multer'); +const upload = multer({dest: `${__dirname}/../temp`}); +const S3 = require('../lib/middleware/s3'); + +const waveRouter = module.exports = new Router(); + +waveRouter.post('/waves/:transform', bearerAuth, upload.any(), (request, response, next) => { + + if(!request.body.wavename || request.files.length > 1 || request.files[0].fieldname !== 'wave' || !request.params.transform){ + return next(new httpErrors(400, '__ERROR__ invalid request')); + } + + const file = request.files[0]; + const key = `${file.filename}.${file.originalname}`; + const tempFilePath = `${__dirname}/../temp/transform-temp.wav`; + let transformedFile = null; + let transformFunc = null; + + if (request.params.transform === 'bitcrusher'){ + transformFunc = bitCrusher; + } + if (request.params.transform === 'downpitcher'){ + transformFunc = downPitcher; + } + if (request.params.transform === 'delay'){ + transformFunc = delay; + } + if (request.params.transform === 'noise'){ + transformFunc = noiseAdd; + } + if (request.params.transform === 'reverse'){ + transformFunc = reverse; + } + + return Wave.findOne({user: request.user._id}) + .then(wave => { + if(wave){ + + const urlArray = wave.url.split('/'); + const oldKey = urlArray[urlArray.length - 1]; + + return s3.remove(oldKey) + .then(() => { + return Wave.findOneAndRemove({user: request.user._id}) + .then(() => { + return fsx.readFile(file.path) + .then(data => { + const parsedFile = waveParser(data); + transformedFile = transformFunc(parsedFile); + return fsx.writeFile(tempFilePath, transformedFile) + .then(() => { + return S3.upload(tempFilePath, key) + .then(url => { + return new Wave({ + wavename: request.body.wavename, + user: request.user._id, + url, + }).save(); + }) + .then(newWave => response.json(newWave)) + .catch(next); + }); + }); + }); + }) + .catch(next); + } else { + return fsx.readFile(file.path) + .then(data => { + const parsedFile = waveParser(data); + transformedFile = transformFunc(parsedFile); + return fsx.writeFile(tempFilePath, transformedFile) + .then(() => { + return S3.upload(tempFilePath, key) + .then(url => { + return new Wave({ + wavename: request.body.wavename, + user: request.user._id, + url, + }).save(); + }) + .then(wave => response.json(wave)) + .catch(next); + }); + }); + } + }); + +}); + +waveRouter.get('/waves', bearerAuth, (request, response, next) => { + + return Wave.findOne({ user: request.user._id }) + .then(wave => { + if (!wave){ + throw new httpErrors(404, '__ERROR__ wave not found'); + } + return response.json(wave); + }) + .catch(next); +}); + +waveRouter.delete('/waves', bearerAuth, (request, response, next) => { + return Wave.findOneAndRemove({user: request.user._id}) + .then(wave => { + if(!wave){ + throw new httpErrors(404, '__ERROR__ wave not found'); + } + let urlArray = wave.url.split('/'); + let key = urlArray[urlArray.length - 1]; + + return s3.remove(key) + .then(() => { + return response.sendStatus(204); + }) + .catch(next); + }) + .catch(next); +}); \ No newline at end of file diff --git a/lab-andrew/frontend/.babelrc b/lab-andrew/frontend/.babelrc new file mode 100644 index 00000000..6d036580 --- /dev/null +++ b/lab-andrew/frontend/.babelrc @@ -0,0 +1,9 @@ +{ + "presets": [ + "env", + "react" + ], + "plugins": [ + "transform-object-rest-spread" + ] +} \ No newline at end of file diff --git a/lab-andrew/frontend/.eslintignore b/lab-andrew/frontend/.eslintignore new file mode 100644 index 00000000..05b1cf34 --- /dev/null +++ b/lab-andrew/frontend/.eslintignore @@ -0,0 +1,5 @@ +**/node_modules/* +**/vendor/* +**/*.min.js +**/coverage/* +**/build/* diff --git a/lab-andrew/frontend/.eslintrc.json b/lab-andrew/frontend/.eslintrc.json new file mode 100644 index 00000000..4e552b29 --- /dev/null +++ b/lab-andrew/frontend/.eslintrc.json @@ -0,0 +1,39 @@ +{ + "env": { + "browser": true, + "node": true, + "commonjs": true, + "jest": true, + "es6": true + }, + "globals": { + "err": true, + "req": true, + "res": true, + "next": true, + "__API_URI__": false, + "__TITLE__": false, + "__DEBUG__": false + }, + "extends": ["eslint:recommended", "plugin:react/recommended"], + "parserOptions": { + "sourceType": "module", + "ecmaVersion": 6, + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "module": true, + "jsx": true + } + }, + "rules": { + "no-console": "off", + "no-unused-vars": "off", + "indent": [ "error", 2, { "SwitchCase": 1 } ], + "react/prop-types": [0], + "quotes": ["error", "single", { "allowTemplateLiterals": true }], + "space-infix-ops": ["error", {"int32Hint": false}], + "comma-dangle": ["error", "always-multiline"], + "semi": [ "error", "always" ] + }, + "plugins": ["react"] +} \ No newline at end of file diff --git a/lab-andrew/frontend/.gitignore b/lab-andrew/frontend/.gitignore new file mode 100644 index 00000000..214117ad --- /dev/null +++ b/lab-andrew/frontend/.gitignore @@ -0,0 +1,108 @@ +# Created by https://www.gitignore.io/api/node,macos + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride +*/.DS_Store + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent +temp + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +build + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +### VisualStudioCode ### +.vscode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +*/.env + + +# mongo db +db + +# End of https://www.gitignore.io/api/node,macos diff --git a/lab-andrew/frontend/README.md b/lab-andrew/frontend/README.md new file mode 100644 index 00000000..ac588ca0 --- /dev/null +++ b/lab-andrew/frontend/README.md @@ -0,0 +1,14 @@ +# Lab 36 Full Stack CRUD + +## Overview + +This is a synth tracker app. A new synth company can be created with the form on the home page. This will add a new synth to the list of synths. The synth will have an update form attached which allows a user to update that synth. There will also be a delete button to delete this synth company. Each synth company can have synths added. The name of each synth must be unique. Within each synth company will be a form where one can add synths. Also within the synth company will be a list of synths, each of which can be updated or deleted. To edit any section, double-click on that section, and a form to update the name or location/polyphony will appear. The synth companies are sent via http requests (managed by superagent) to the backend server where they are stored in mongo. Note that the name property of a synth company/synth is unique, so duplicate names are disallowed. + +*** +## Getting Started + +To get started using this application, familiarity with node and npm, as well as git is assumed. Fork/clone this repo to your machine, and do an `npm i`. Also navigate to the backend folder and do the same. Follow the directions in the server readme to start Mongo and run the server. To view on localhost in your browser, type `npm run watch`. +*** +## Technology/Credits + +Created by Andrew Bloom. Using react, redux, babel, webpack, et al. See package.json for details. \ No newline at end of file diff --git a/lab-andrew/frontend/package-lock.json b/lab-andrew/frontend/package-lock.json new file mode 100644 index 00000000..a0144312 --- /dev/null +++ b/lab-andrew/frontend/package-lock.json @@ -0,0 +1,11891 @@ +{ + "name": "lab-andrew", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.38", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.38.tgz", + "integrity": "sha512-JNHofQND7Iiuy3f6RXSillN1uBe87DAp+1ktsBfSxfL3xWeGFyJC9jH5zu2zs7eqVGp2qXWvJZFiJIwOYnaCQw==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "@types/node": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.3.0.tgz", + "integrity": "sha512-wNBfvNjzsJl4tswIZKXCFQY0lss9nKUyJnG6T94X/eqjRgI2jHZ4evdjhQYBSan/vGtF6XVXPApOmNH2rf0KKw==", + "dev": true + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==" + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "requires": { + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + } + } + }, + "acorn-globals": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", + "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", + "dev": true, + "requires": { + "acorn": "5.3.0" + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, + "adjust-sourcemap-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz", + "integrity": "sha1-QS2SQE62HkETY1ASy6U6M9AI4OI=", + "requires": { + "assert": "1.4.1", + "camelcase": "1.2.1", + "loader-utils": "1.1.0", + "lodash.assign": "4.2.0", + "lodash.defaults": "3.1.2", + "object-path": "0.9.2", + "regex-parser": "2.2.8" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "lodash.defaults": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", + "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", + "requires": { + "lodash.assign": "3.2.0", + "lodash.restparam": "3.6.1" + }, + "dependencies": { + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._createassigner": "3.1.1", + "lodash.keys": "3.1.2" + } + } + } + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=" + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "asn1.js": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", + "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=" + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000794", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "1.0.30000794", + "electron-to-chromium": "1.3.31" + } + } + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-jest": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.1.0.tgz", + "integrity": "sha512-5pKRFTlDr+x1JESNRd5leqvxEJk3dRwVvIXikB6Lr4BWZbBppk1Wp+BLUzxWL8tM+EYGLCWgfqkD35Sft8r8Lw==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "4.1.5", + "babel-preset-jest": "22.1.0" + } + }, + "babel-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "requires": { + "find-cache-dir": "1.0.0", + "loader-utils": "1.1.0", + "mkdirp": "0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "istanbul-lib-instrument": "1.9.1", + "test-exclude": "4.1.1" + } + }, + "babel-plugin-jest-hoist": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.1.0.tgz", + "integrity": "sha512-Og5sjbOZc4XUI3njqwYhS6WLTlHQUJ/y5+dOqmst8eHrozYZgT4OMzAaYaxhk75c2fBVYwn7+mNEN97XDO7cOw==", + "dev": true + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "2.11.3", + "invariant": "2.2.2", + "semver": "5.5.0" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-jest": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.1.0.tgz", + "integrity": "sha512-ps2UYz7IQpP2IgZ41tJjUuUDTxJioprHXD8fi9DoycKDGNqB3nAX/ggy1S3plaQd43ktBvMS1FkkyGNoBujFpg==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "22.1.0", + "babel-plugin-syntax-object-rest-spread": "6.13.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.0", + "pascalcase": "0.1.1" + } + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + }, + "dependencies": { + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "requires": { + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.2.2", + "multicast-dns-service-types": "1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", + "dev": true + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "requires": { + "resolve": "1.1.7" + } + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "requires": { + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.6" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "1.0.6" + } + }, + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "requires": { + "caniuse-lite": "1.0.30000792", + "electron-to-chromium": "1.3.31" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true, + "requires": { + "node-int64": "0.4.0" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000794", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "1.0.30000794", + "electron-to-chromium": "1.3.31" + } + } + } + }, + "caniuse-db": { + "version": "1.0.30000794", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000794.tgz", + "integrity": "sha1-u+cRBPonfOSzYjh9VJBei4jlLzU=" + }, + "caniuse-lite": { + "version": "1.0.30000792", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz", + "integrity": "sha1-0M6pgfgRjzlhRxr7tDyaHlu/AzI=" + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + }, + "dependencies": { + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + } + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "cheerio": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", + "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "parse5": "3.0.3" + }, + "dependencies": { + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + } + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "ci-info": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "requires": { + "chalk": "1.1.3" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "clean-css": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", + "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", + "requires": { + "source-map": "0.5.7" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" + }, + "clone-deep": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", + "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", + "requires": { + "for-own": "1.0.0", + "is-plain-object": "2.0.4", + "kind-of": "3.2.2", + "shallow-clone": "0.1.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "requires": { + "q": "1.5.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "requires": { + "clone": "1.0.3", + "color-convert": "1.9.1", + "color-string": "0.3.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "requires": { + "color-name": "1.1.3" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "compressible": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", + "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", + "requires": { + "mime-db": "1.30.0" + } + }, + "compression": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", + "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", + "requires": { + "accepts": "1.3.4", + "bytes": "3.0.0", + "compressible": "2.0.12", + "debug": "2.6.9", + "on-headers": "1.0.1", + "safe-buffer": "5.1.1", + "vary": "1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=" + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", + "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.10" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.10" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.6", + "randomfill": "1.0.3" + } + }, + "css": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", + "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "requires": { + "inherits": "2.0.3", + "source-map": "0.1.43", + "source-map-resolve": "0.3.1", + "urix": "0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-loader": { + "version": "0.28.9", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.9.tgz", + "integrity": "sha512-r3dgelMm/mkPz5Y7m9SeiGE46i2VsEU/OYbez+1llfxtv8b2y5/b5StaeEvPK3S5tlNQI+tDW/xDIhKJoZgDtw==", + "requires": { + "babel-code-frame": "6.26.0", + "css-selector-tokenizer": "0.7.0", + "cssnano": "3.10.0", + "icss-utils": "2.1.0", + "loader-utils": "1.1.0", + "lodash.camelcase": "4.3.0", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-modules-extract-imports": "1.2.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "postcss-value-parser": "3.3.0", + "source-list-map": "2.0.0" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + } + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "requires": { + "clap": "1.2.3", + "source-map": "0.5.7" + } + }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.2" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "1.0.2" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "0.10.38" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "2.0.1" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=" + }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" + } + }, + "discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=", + "dev": true + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "requires": { + "ip": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "1.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "2.0.2" + } + }, + "dom-converter": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", + "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "requires": { + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" + } + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "4.0.2" + } + }, + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz", + "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==" + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "enzyme": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz", + "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==", + "dev": true, + "requires": { + "cheerio": "1.0.0-rc.2", + "function.prototype.name": "1.1.0", + "has": "1.0.1", + "is-boolean-object": "1.0.0", + "is-callable": "1.1.3", + "is-number-object": "1.0.3", + "is-string": "1.0.4", + "is-subset": "0.1.1", + "lodash": "4.17.4", + "object-inspect": "1.5.0", + "object-is": "1.0.1", + "object.assign": "4.1.0", + "object.entries": "1.0.4", + "object.values": "1.0.4", + "raf": "3.4.0", + "rst-selector-parser": "2.2.3" + } + }, + "enzyme-adapter-react-16": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz", + "integrity": "sha512-kC8pAtU2Jk3OJ0EG8Y2813dg9Ol0TXi7UNxHzHiWs30Jo/hj7alc//G1YpKUsPP1oKl9X+Lkx+WlGJpPYA+nvw==", + "dev": true, + "requires": { + "enzyme-adapter-utils": "1.3.0", + "lodash": "4.17.4", + "object.assign": "4.1.0", + "object.values": "1.0.4", + "prop-types": "15.6.0", + "react-reconciler": "0.7.0", + "react-test-renderer": "16.2.0" + } + }, + "enzyme-adapter-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.3.0.tgz", + "integrity": "sha512-vVXSt6uDv230DIv+ebCG66T1Pm36Kv+m74L1TrF4kaE7e1V7Q/LcxO0QRkajk5cA6R3uu9wJf5h13wOTezTbjA==", + "dev": true, + "requires": { + "lodash": "4.17.4", + "object.assign": "4.1.0", + "prop-types": "15.6.0" + } + }, + "errno": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "requires": { + "prr": "1.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "es5-ext": { + "version": "0.10.38", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", + "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "eslint": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.16.0.tgz", + "integrity": "sha512-YVXV4bDhNoHHcv0qzU4Meof7/P26B4EuaktMi5L1Tnt52Aov85KmYA8c5D+xyZr/BkhvwUqr011jDSD/QTULxg==", + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.3.0", + "concat-stream": "1.6.0", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.2", + "esquery": "1.0.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.1.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" + }, + "globals": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz", + "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==" + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "eslint-plugin-react": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz", + "integrity": "sha512-YGSjB9Qu6QbVTroUZi66pYky3DfoIPLdHQ/wmrBGyBRnwxQsBXAov9j2rpXt/55i8nyMv6IRWJv2s4d4YnduzQ==", + "requires": { + "doctrine": "2.1.0", + "has": "1.0.1", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.0" + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" + }, + "espree": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", + "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", + "requires": { + "acorn": "5.3.0", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38" + } + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "requires": { + "original": "1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "exec-sh": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", + "dev": true, + "requires": { + "merge": "1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "2.2.3" + } + }, + "expect": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-22.1.0.tgz", + "integrity": "sha512-8K+8TjNnZq73KYtqNWKWTbYbN8z4loeL+Pn2bqpmtTdBtLNXJtpz9vkUcQlFsgKMDRA3VM8GXRA6qbV/oBF7Bw==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "jest-diff": "22.1.0", + "jest-get-type": "22.1.0", + "jest-matcher-utils": "22.1.0", + "jest-message-util": "22.1.0", + "jest-regex-util": "22.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + } + } + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "extract-text-webpack-plugin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", + "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", + "requires": { + "async": "2.6.0", + "loader-utils": "1.1.0", + "schema-utils": "0.3.0", + "webpack-sources": "1.1.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=" + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": "0.7.0" + } + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "2.0.0" + } + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "requires": { + "commondir": "1.0.1", + "make-dir": "1.1.0", + "pkg-dir": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "formidable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", + "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=" + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz", + "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "function-bind": "1.1.1", + "is-callable": "1.1.3" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "requires": { + "globule": "1.2.0" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "requires": { + "is-property": "1.0.2" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + } + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "1.1.3", + "commander": "2.12.2", + "is-my-json-valid": "2.17.1", + "pinkie-promise": "2.0.1" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "requires": { + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, + "history": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", + "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", + "requires": { + "invariant": "2.2.2", + "loose-envify": "1.3.1", + "resolve-pathname": "2.2.0", + "value-equal": "0.4.0", + "warning": "3.0.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "hoist-non-react-statics": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", + "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "wbuf": "1.7.2" + } + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "1.0.3" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" + }, + "html-minifier": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.8.tgz", + "integrity": "sha512-WX7D6PB9PFq05fZ1/CyxPUuyqXed6vh2fGOM80+zJT5wAO93D/cUjLs0CcbBFjQmlwmCgRvl97RurtArIpOnkw==", + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.1.9", + "commander": "2.12.2", + "he": "1.1.1", + "ncname": "1.0.0", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.3.8" + } + }, + "html-webpack-plugin": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", + "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", + "requires": { + "bluebird": "3.5.1", + "html-minifier": "3.5.8", + "loader-utils": "0.2.17", + "lodash": "4.17.4", + "pretty-error": "2.1.1", + "toposort": "1.0.6" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + } + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.1.0", + "domutils": "1.1.6", + "readable-stream": "1.0.34" + }, + "dependencies": { + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "requires": { + "domelementtype": "1.3.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "http-parser-js": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", + "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=" + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "requires": { + "http-proxy": "1.16.2", + "is-glob": "3.1.0", + "lodash": "4.17.4", + "micromatch": "2.3.11" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "requires": { + "postcss": "6.0.16" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, + "dependencies": { + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "postcss": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==" + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "requires": { + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "2.0.1" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "requires": { + "meow": "3.7.0" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-boolean-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", + "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" + }, + "is-ci": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "dev": true, + "requires": { + "ci-info": "1.1.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-my-json-valid": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz", + "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==", + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-number-object": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", + "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", + "dev": true + }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "requires": { + "is-number": "3.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", + "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", + "dev": true + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "requires": { + "html-comment-regex": "1.1.1" + } + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-api": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", + "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", + "dev": true, + "requires": { + "async": "2.6.0", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.5.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "jest": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-22.1.4.tgz", + "integrity": "sha512-cIPkn+OFGabazPesbhnYkadPftoO2Fo3w84QjeIP+A8eZ5qj7Zs4PuTemAW8StNMxySJr0KPk/LhYG2GUHLexQ==", + "dev": true, + "requires": { + "jest-cli": "22.1.4" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "cliui": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", + "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "jest-cli": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-22.1.4.tgz", + "integrity": "sha512-p7yOu0Q5uuXb3Q93qEg3LE6eNGgAGueakifxXNEqQx4b0lOl2YlC9t6BLQWNOJ+z42VWK/BIdFjf6lxKcTkjFA==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "exit": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "import-local": "1.0.0", + "is-ci": "1.1.0", + "istanbul-api": "1.2.1", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-source-maps": "1.2.2", + "jest-changed-files": "22.1.4", + "jest-config": "22.1.4", + "jest-environment-jsdom": "22.1.4", + "jest-get-type": "22.1.0", + "jest-haste-map": "22.1.0", + "jest-message-util": "22.1.0", + "jest-regex-util": "22.1.0", + "jest-resolve-dependencies": "22.1.0", + "jest-runner": "22.1.4", + "jest-runtime": "22.1.4", + "jest-snapshot": "22.1.2", + "jest-util": "22.1.4", + "jest-worker": "22.1.0", + "micromatch": "2.3.11", + "node-notifier": "5.2.1", + "realpath-native": "1.0.0", + "rimraf": "2.6.2", + "slash": "1.0.0", + "string-length": "2.0.0", + "strip-ansi": "4.0.0", + "which": "1.3.0", + "yargs": "10.1.2" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", + "dev": true, + "requires": { + "cliui": "4.0.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.1.0" + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "jest-changed-files": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.1.4.tgz", + "integrity": "sha512-EpqJhwt+N/wEHRT+5KrjagVrunduOfMgAb7fjjHkXHFCPRZoVZwl896S7krx7txf5hrMNUkpECnOnO2wBgzJCw==", + "dev": true, + "requires": { + "throat": "4.1.0" + } + }, + "jest-config": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.1.4.tgz", + "integrity": "sha512-ZImFp7STrUDOgQLW5I5UloCiCRMh6HmMIYIoWqaQkxnR5ws7MuZFG/Ns9sZFyfrnyWCvcW91e+XcEfNeoa4Jew==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "glob": "7.1.2", + "jest-environment-jsdom": "22.1.4", + "jest-environment-node": "22.1.4", + "jest-get-type": "22.1.0", + "jest-jasmine2": "22.1.4", + "jest-regex-util": "22.1.0", + "jest-resolve": "22.1.4", + "jest-util": "22.1.4", + "jest-validate": "22.1.2", + "pretty-format": "22.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-diff": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.1.0.tgz", + "integrity": "sha512-lowdbU/dzXh+2/MR5QcvU5KPNkO4JdAEYw0PkQCbIQIuy5+g3QZBuVhWh8179Fmpg4CQrz1WgoK/yQHDCHbqqw==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "diff": "3.4.0", + "jest-get-type": "22.1.0", + "pretty-format": "22.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-docblock": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.1.0.tgz", + "integrity": "sha512-/+OGgBVRJb5wCbXrB1LQvibQBz2SdrvDdKRNzY1gL+OISQJZCR9MOewbygdT5rVzbbkfhC4AR2x+qWmNUdJfjw==", + "dev": true, + "requires": { + "detect-newline": "2.1.0" + } + }, + "jest-environment-jsdom": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.1.4.tgz", + "integrity": "sha512-YGqFJzei/kq5BgQ8su7igLoCl34ytUffr5ZoqwLrDzCmXUKyIiuwBFbWe3xFMG/crlDb1emhBXdzWM1yDEDw5Q==", + "dev": true, + "requires": { + "jest-mock": "22.1.0", + "jest-util": "22.1.4", + "jsdom": "11.6.0" + } + }, + "jest-environment-node": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.1.4.tgz", + "integrity": "sha512-rQmtzgZVdyCzeXsE8i7Alw2483KSd2PYjssZWZYeNzonN/lBeUjjaOCgLWp6FspBzSTnYF7x6cN4umGZxYAhow==", + "dev": true, + "requires": { + "jest-mock": "22.1.0", + "jest-util": "22.1.4" + } + }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==", + "dev": true + }, + "jest-haste-map": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.1.0.tgz", + "integrity": "sha512-vETdC6GboGlZX6+9SMZkXtYRQSKBbQ47sFF7NGglbMN4eyIZBODply8rlcO01KwBiAeiNCKdjUyfonZzJ93JEg==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "22.1.0", + "jest-worker": "22.1.0", + "micromatch": "2.3.11", + "sane": "2.3.0" + } + }, + "jest-jasmine2": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.1.4.tgz", + "integrity": "sha512-+KoRiG4PUwURB7UXei2jzxvbCebhXgTYS+xWl3FsSYUn3flcxdcOgAsFolx31Dkk/B1bVf1HIKt/B6Ubucp9aQ==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.0", + "co": "4.6.0", + "expect": "22.1.0", + "graceful-fs": "4.1.11", + "is-generator-fn": "1.0.0", + "jest-diff": "22.1.0", + "jest-matcher-utils": "22.1.0", + "jest-message-util": "22.1.0", + "jest-snapshot": "22.1.2", + "source-map-support": "0.5.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.2.tgz", + "integrity": "sha512-9zHceZbQwERaMK1MiFguvx1dL9GQPLXInr2D/wUxAsuV6ZKc9F0DHYWeloMcalkYRbtanwqUakoDjvj55cL/4A==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.1.0.tgz", + "integrity": "sha512-8QsCWkncWAqdvrXN4yXQp9vgWF6CT3RkRey+d06SIHX913uXzAJhJdZyo6eE+uHVYMxUbxqW93npbUFhAR0YxA==", + "dev": true, + "requires": { + "pretty-format": "22.1.0" + } + }, + "jest-matcher-utils": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.1.0.tgz", + "integrity": "sha512-Zn1OD9wVjILOdvRxgAnqiCN36OX6KJx+P2FHN+3lzQ0omG2N2OAguxE1QXuJJneG2yndlkXjekXFP254c0cSpw==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "22.1.0", + "pretty-format": "22.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-message-util": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.1.0.tgz", + "integrity": "sha512-kftcoawOeOVUGuGWmMupJt7FGLK1pqOrh02FlJwtImmPGZ2yTWCTx2D+N/g95qD2jCbQ/ntH1goBixhAIIxL+g==", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.38", + "chalk": "2.3.0", + "micromatch": "2.3.11", + "slash": "1.0.0", + "stack-utils": "1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-mock": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.1.0.tgz", + "integrity": "sha512-gL3/C8ds6e1PWiOTsV7sIejPP/ECYQgDbwMzbNCc+ZFPuPH3EpwsVLGmQqPK6okgnDagimbbQnss3kPJ8HCMtA==", + "dev": true + }, + "jest-regex-util": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.1.0.tgz", + "integrity": "sha512-on0LqVS6Xeh69sw3d1RukVnur+lVOl3zkmb0Q54FHj9wHoq6dbtWqb3TSlnVUyx36hqjJhjgs/QLqs07Bzu72Q==", + "dev": true + }, + "jest-resolve": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.1.4.tgz", + "integrity": "sha512-/HuCMeiTD6YJ+NF15bU1mal1r7Gov0GJozA7232XiYve7cOOnU2JwXBx3EQmcIuG38uNrRPjtgpiXkBqfnk4Og==", + "dev": true, + "requires": { + "browser-resolve": "1.11.2", + "chalk": "2.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz", + "integrity": "sha512-76Ll61bD/Sus8wK8d+lw891EtiBJGJkWG8OuVDTEX0z3z2+jPujvQqSB2eQ+kCHyCsRwJ2PSjhn3UHqae/oEtA==", + "dev": true, + "requires": { + "jest-regex-util": "22.1.0" + } + }, + "jest-runner": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-22.1.4.tgz", + "integrity": "sha512-HAyZ0Q2Fyk7mlbtbSKP75hNs9IP0Md7kzPUN1uNKbvQfZkXA/e7P0ttzAIGQtEbRx656tYwkfWNW+hXvs1i4/g==", + "dev": true, + "requires": { + "exit": "0.1.2", + "jest-config": "22.1.4", + "jest-docblock": "22.1.0", + "jest-haste-map": "22.1.0", + "jest-jasmine2": "22.1.4", + "jest-leak-detector": "22.1.0", + "jest-message-util": "22.1.0", + "jest-runtime": "22.1.4", + "jest-util": "22.1.4", + "jest-worker": "22.1.0", + "throat": "4.1.0" + } + }, + "jest-runtime": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.1.4.tgz", + "integrity": "sha512-r/UjVuQppDRwbUprDlLYdd8MTYY+H8H6BCqRujGjo5/QyIt3b0hppNoOQHF+0bHNtuz/sR9chJ9HJ3A1fiv9Pw==", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-jest": "22.1.0", + "babel-plugin-istanbul": "4.1.5", + "chalk": "2.3.0", + "convert-source-map": "1.5.1", + "exit": "0.1.2", + "graceful-fs": "4.1.11", + "jest-config": "22.1.4", + "jest-haste-map": "22.1.0", + "jest-regex-util": "22.1.0", + "jest-resolve": "22.1.4", + "jest-util": "22.1.4", + "json-stable-stringify": "1.0.1", + "micromatch": "2.3.11", + "realpath-native": "1.0.0", + "slash": "1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "2.3.0", + "yargs": "10.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "cliui": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", + "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", + "dev": true, + "requires": { + "cliui": "4.0.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.1.0" + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "jest-snapshot": { + "version": "22.1.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.1.2.tgz", + "integrity": "sha512-45co/M0gTe6Y6yHaJLydEZKHOFpFHESLah40jW35DWd3pd7q188bsi0oUY4Kls7PDXUamvTWuTKTZXCtzwSvCw==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-diff": "22.1.0", + "jest-matcher-utils": "22.1.0", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "pretty-format": "22.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-util": { + "version": "22.1.4", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.1.4.tgz", + "integrity": "sha512-zM29idoVBPvmpsGubS7YmywVyPe4/m1wE2YhmKp0vVmrQmuby7ObuMqabp82EYlM0Rdp4GNEtaDamW9jg8lgTg==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.0", + "graceful-fs": "4.1.11", + "is-ci": "1.1.0", + "jest-message-util": "22.1.0", + "jest-validate": "22.1.2", + "mkdirp": "0.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-validate": { + "version": "22.1.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.1.2.tgz", + "integrity": "sha512-IjvMsV7GW5ghg5PTQvU23zJqTBmnq10eY+4n47awUeXYEGH27N+JajFPOg6tsN+OYvEPsohPquKoqQ5XBVs/ow==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "22.1.0", + "leven": "2.1.0", + "pretty-format": "22.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "jest-worker": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.1.0.tgz", + "integrity": "sha512-ezLueYAQowk5N6g2J7bNZfq4NWZvMNB5Qd24EmOZLcM5SXTdiFvxykZIoNiMj9C98cCbPaojX8tfR7b1LJwNig==", + "dev": true, + "requires": { + "merge-stream": "1.0.1" + } + }, + "js-base64": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.2.tgz", + "integrity": "sha512-lLkz3IRPTNeATsKQGeltbzRK/5+bWsXBHfpZrxJAi4N30RtCtNA+rJznp4uR2+4OgkBsoeeFwONVLr4gzIVErQ==" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsdom": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.6.0.tgz", + "integrity": "sha512-4lMxDCiQYK7qfVi9fKhDf2PpvXXeH/KAmcH6o0Ga7fApi8+lTBxRqGHWZ9B11SsK/pxQKOtsw413utw0M+hUrg==", + "dev": true, + "requires": { + "abab": "1.0.4", + "acorn": "5.3.0", + "acorn-globals": "4.1.0", + "array-equal": "1.0.0", + "browser-process-hrtime": "0.1.2", + "content-type-parser": "1.0.2", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "domexception": "1.0.1", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.2", + "left-pad": "1.2.0", + "nwmatcher": "1.4.3", + "parse5": "4.0.0", + "pn": "1.1.0", + "request": "2.83.0", + "request-promise-native": "1.0.5", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "w3c-hr-time": "1.0.1", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.3", + "whatwg-url": "6.4.0", + "ws": "4.0.0", + "xml-name-validator": "3.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "requires": { + "array-includes": "3.0.3" + } + }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "1.0.0" + } + }, + "left-pad": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", + "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=", + "dev": true + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=" + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash-es": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", + "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "requires": { + "lodash._bindcallback": "3.0.1", + "lodash._isiterateecall": "3.0.9", + "lodash.restparam": "3.6.1" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.mergewith": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", + "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=" + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=" + }, + "make-dir": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "requires": { + "pify": "3.0.0" + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.4" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "1.0.1" + } + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "1.1.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "0.1.6", + "readable-stream": "2.3.3" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mixin-deep": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", + "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "0.1.8", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multicast-dns": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.2.tgz", + "integrity": "sha512-xTO41ApiRHMVDBYhNL9bEhx7kRf1hq3OqPOnOy8bpTi0JZSxVPDre7ZRpTHLDlxmhf6d/FL+10E8VX1QRd+0DA==", + "requires": { + "dns-packet": "1.3.1", + "thunky": "0.1.0" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" + }, + "nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "requires": { + "xml-char-classes": "1.0.0" + } + }, + "nearley": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.11.0.tgz", + "integrity": "sha512-clqqhEuP0ZCJQ85Xv2I/4o2Gs/fvSR6fCg5ZHVE2c8evWyNk2G++ih4JOO3lMb/k/09x6ihQ2nzKUlB/APCWjg==", + "dev": true, + "requires": { + "nomnom": "1.6.2", + "railroad-diagrams": "1.0.0", + "randexp": "0.4.6" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "1.1.4" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-forge": { + "version": "0.6.33", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", + "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=" + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.79.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.8.0", + "string_decoder": "1.0.3", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + } + }, + "node-notifier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", + "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", + "dev": true, + "requires": { + "growly": "1.3.0", + "semver": "5.5.0", + "shellwords": "0.1.1", + "which": "1.3.0" + } + }, + "node-sass": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", + "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.0", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.8.0", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.79.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0", + "true-case-path": "1.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + } + } + }, + "nomnom": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz", + "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=", + "dev": true, + "requires": { + "colors": "0.5.1", + "underscore": "1.4.4" + }, + "dependencies": { + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "requires": { + "boolbase": "1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "object-inspect": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.5.0.tgz", + "integrity": "sha512-UmOFbHbwvv+XHj7BerrhVq+knjceBdkvU5AriwLMvhv2qi+e7DJzxfBeFpILEjVzCp+xA+W/pIf06RGPWlZNfw==", + "dev": true + }, + "object-is": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", + "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", + "dev": true + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "object-keys": "1.0.11" + } + }, + "object.entries": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0", + "function-bind": "1.1.1", + "has": "1.0.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "1.0.2" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "3.0.1" + } + }, + "object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0", + "function-bind": "1.1.1", + "has": "1.0.1" + } + }, + "obuf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", + "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "1.1.0" + } + }, + "opn": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", + "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", + "requires": { + "is-wsl": "1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + } + }, + "original": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "requires": { + "url-parse": "1.0.5" + }, + "dependencies": { + "url-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "requires": { + "querystringify": "0.0.4", + "requires-port": "1.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "1.2.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "2.3.2" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "requires": { + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "9.3.0" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.10" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "portfinder": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", + "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "requires": { + "async": "1.5.2", + "debug": "2.6.9", + "mkdirp": "0.5.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "requires": { + "postcss": "5.2.18", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "requires": { + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "requires": { + "postcss": "5.2.18", + "uniqid": "4.1.1" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "1.0.30000794", + "electron-to-chromium": "1.3.31" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3" + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", + "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", + "requires": { + "postcss": "6.0.16" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, + "dependencies": { + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "postcss": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.16" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, + "dependencies": { + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "postcss": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.16" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, + "dependencies": { + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "postcss": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.16" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, + "dependencies": { + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "postcss": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", + "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "5.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "requires": { + "renderkid": "2.0.1", + "utila": "0.4.0" + } + }, + "pretty-format": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.1.0.tgz", + "integrity": "sha512-0HHR5hCmjDGU4sez3w5zRDAAwn7V0vT4SgPiYPZ1XDm5sT3Icb+Bh+fsOP3+Y3UwPjMr7TbRj+L7eQyMkPAxAw==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.6" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", + "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=" + }, + "raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", + "dev": true, + "requires": { + "performance-now": "2.1.0" + } + }, + "railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=", + "dev": true + }, + "randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "requires": { + "discontinuous-range": "1.0.0", + "ret": "0.1.15" + } + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "randomfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "requires": { + "randombytes": "2.0.6", + "safe-buffer": "5.1.1" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "react": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz", + "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-dom": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz", + "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-reconciler": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.7.0.tgz", + "integrity": "sha512-50JwZ3yNyMS8fchN+jjWEJOH3Oze7UmhxeoJLn2j6f3NjpfCRbcmih83XTWmzqtar/ivd5f7tvQhvvhism2fgg==", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-redux": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz", + "integrity": "sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw==", + "requires": { + "hoist-non-react-statics": "2.3.1", + "invariant": "2.2.2", + "lodash": "4.17.4", + "lodash-es": "4.17.4", + "loose-envify": "1.3.1", + "prop-types": "15.6.0" + } + }, + "react-router": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz", + "integrity": "sha512-DY6pjwRhdARE4TDw7XjxjZsbx9lKmIcyZoZ+SDO7SBJ1KUeWNxT22Kara2AC7u6/c2SYEHlEDLnzBCcNhLE8Vg==", + "requires": { + "history": "4.7.2", + "hoist-non-react-statics": "2.3.1", + "invariant": "2.2.2", + "loose-envify": "1.3.1", + "path-to-regexp": "1.7.0", + "prop-types": "15.6.0", + "warning": "3.0.0" + } + }, + "react-router-dom": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.2.2.tgz", + "integrity": "sha512-cHMFC1ZoLDfEaMFoKTjN7fry/oczMgRt5BKfMAkTu5zEuJvUiPp1J8d0eXSVTnBh6pxlbdqDhozunOOLtmKfPA==", + "requires": { + "history": "4.7.2", + "invariant": "2.2.2", + "loose-envify": "1.3.1", + "prop-types": "15.6.0", + "react-router": "4.2.0", + "warning": "3.0.0" + } + }, + "react-test-renderer": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz", + "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, + "realpath-native": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz", + "integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==", + "dev": true, + "requires": { + "util.promisify": "1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "requires": { + "balanced-match": "0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + } + } + }, + "redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "requires": { + "lodash": "4.17.4", + "lodash-es": "4.17.4", + "loose-envify": "1.3.1", + "symbol-observable": "1.1.0" + } + }, + "redux-devtools-extension": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/redux-devtools-extension/-/redux-devtools-extension-2.13.2.tgz", + "integrity": "sha1-4Pmo6N/KfBe+kscSSVijuU6ykR0=" + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "requires": { + "extend-shallow": "2.0.1" + } + }, + "regex-parser": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.8.tgz", + "integrity": "sha1-2kwM2lqChVkJQWiTD0VfUytv+6w=" + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "renderkid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", + "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "requires": { + "css-select": "1.2.0", + "dom-converter": "0.1.4", + "htmlparser2": "3.3.0", + "strip-ansi": "3.0.1", + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" + } + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3", + "uuid": "3.2.1" + } + }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "dev": true, + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + }, + "resolve-pathname": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", + "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "resolve-url-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.2.1.tgz", + "integrity": "sha512-ywToZt/yttp4qG/SiiGMLAgaGuSaWSujAaf3WCadXehvQLxIgKFmMOSegaoH9Laa70Ayl4kti0zCAqLR48H/Mw==", + "requires": { + "adjust-sourcemap-loader": "1.1.0", + "camelcase": "4.1.0", + "convert-source-map": "1.5.1", + "loader-utils": "1.1.0", + "lodash.defaults": "4.2.0", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.5.7", + "urix": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "requires": { + "convert-source-map": "0.3.5", + "css": "2.2.1" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", + "dev": true, + "requires": { + "lodash.flattendeep": "4.4.0", + "nearley": "2.11.0" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "4.0.8" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sane": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.3.0.tgz", + "integrity": "sha512-6GB9zPCsqJqQPAGcvEkUPijM1ZUFI+A/DrscL++dXO3Ltt5q5mPDayGxZtr3cBRkrbb4akbwszVVkTIFefEkcg==", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "exec-sh": "0.2.1", + "fb-watchman": "2.0.0", + "fsevents": "1.1.3", + "minimatch": "3.0.4", + "minimist": "1.2.0", + "walker": "1.0.7", + "watch": "0.18.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + } + }, + "sass-loader": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", + "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", + "requires": { + "async": "2.6.0", + "clone-deep": "0.3.0", + "loader-utils": "1.1.0", + "lodash.tail": "4.1.1", + "pify": "3.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "requires": { + "ajv": "5.5.2" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "2.4.2", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", + "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", + "requires": { + "node-forge": "0.6.33" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "1.0.3", + "http-errors": "1.6.2", + "mime-types": "2.1.17", + "parseurl": "1.3.2" + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "requires": { + "to-object-path": "0.3.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "sha.js": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", + "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "0.1.1", + "kind-of": "2.0.1", + "lazy-cache": "0.2.7", + "mixin-object": "2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "2.0.0" + } + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "3.2.2" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "requires": { + "faye-websocket": "0.10.0", + "uuid": "3.2.1" + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "requires": { + "debug": "2.6.9", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.2.0" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "requires": { + "websocket-driver": "0.7.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "1.1.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "0.5.7" + } + }, + "source-map-url": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", + "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=" + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "requires": { + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" + } + }, + "spdy-transport": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "requires": { + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "safe-buffer": "5.1.1", + "wbuf": "1.7.2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-http": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dev": true, + "requires": { + "astral-regex": "1.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "style-loader": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", + "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + } + }, + "superagent": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "requires": { + "component-emitter": "1.2.1", + "cookiejar": "2.1.1", + "debug": "3.1.0", + "extend": "3.0.1", + "form-data": "2.3.1", + "formidable": "1.1.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.1", + "readable-stream": "2.3.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + } + }, + "symbol-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.1.0.tgz", + "integrity": "sha512-dQoid9tqQ+uotGhuTKEY11X4xhyYePVnqGSoSm3OGKh2E8LZ6RPULp1uXTctk33IeERlrRJYoVSBglsL05F5Uw==" + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.0", + "lodash": "4.17.4", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "thunky": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", + "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=" + }, + "time-stamp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", + "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=" + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "requires": { + "setimmediate": "1.0.5" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "toposort": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz", + "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=" + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + } + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "requires": { + "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, + "uglify-js": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.8.tgz", + "integrity": "sha512-X0jAGtpSZRtd4RhbVNuGHyjZNa/h2MrVkKrR3Ew5iL2MJw6d7FmBke+fhVCALWySv1ygHnjjROG1KI1FAPvddw==", + "requires": { + "commander": "2.13.0", + "source-map": "0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "requires": { + "macaddress": "0.2.8" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-parse": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", + "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", + "requires": { + "querystringify": "1.0.0", + "requires-port": "1.0.0" + }, + "dependencies": { + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=" + } + } + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "requires": { + "set-getter": "0.1.0" + } + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "object.getownpropertydescriptors": "2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "value-equal": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", + "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "0.1.2" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.11" + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "0.2.1", + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "requires": { + "async": "2.6.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + } + }, + "wbuf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", + "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "requires": { + "minimalistic-assert": "1.0.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", + "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", + "requires": { + "acorn": "5.3.0", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "async": "2.6.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.1.0", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.5.0", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.1.0", + "yargs": "8.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "requires": { + "memory-fs": "0.4.1", + "mime": "1.6.0", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0", + "time-stamp": "2.0.0" + } + }, + "webpack-dev-server": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.1.tgz", + "integrity": "sha512-ombhu5KsO/85sVshIDTyQ5HF3xjZR3N0sf5Ao6h3vFwpNyzInEzA1GV3QPVjTMLTNckp8PjfG1PFGznzBwS5lg==", + "requires": { + "ansi-html": "0.0.7", + "array-includes": "3.0.3", + "bonjour": "3.5.0", + "chokidar": "2.0.0", + "compression": "1.7.1", + "connect-history-api-fallback": "1.5.0", + "debug": "3.1.0", + "del": "3.0.0", + "express": "4.16.2", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "import-local": "1.0.0", + "internal-ip": "1.2.0", + "ip": "1.1.5", + "killable": "1.0.0", + "loglevel": "1.6.1", + "opn": "5.2.0", + "portfinder": "1.0.13", + "selfsigned": "1.10.1", + "serve-index": "1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.1.4", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "5.1.0", + "webpack-dev-middleware": "1.12.2", + "yargs": "6.6.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "3.1.5", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "chokidar": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.0.tgz", + "integrity": "sha512-OgXCNv2U6TnG04D3tth0gsvdbV4zdbxFG3sYUqcoQMoEFVd1j1pZR6TZ8iknC45o9IJ6PeQI/J6wT/+cHcniAw==", + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.0", + "fsevents": "1.1.3", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.6.2" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.7", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "supports-color": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", + "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "requires": { + "has-flag": "2.0.0" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "requires": { + "camelcase": "3.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "requires": { + "http-parser-js": "0.4.9", + "websocket-extensions": "0.1.3" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + }, + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "requires": { + "mkdirp": "0.5.1" + } + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "ws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.0.0.tgz", + "integrity": "sha512-QYslsH44bH8O7/W2815u5DpnCpXWpEK44FmaHffNwgJI4JMaSZONgPBTOfrxJ29mXKbXak+LsJ2uAkDTYq2ptQ==", + "dev": true, + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=" + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } + } + } +} diff --git a/lab-andrew/frontend/package.json b/lab-andrew/frontend/package.json new file mode 100644 index 00000000..43cd90a3 --- /dev/null +++ b/lab-andrew/frontend/package.json @@ -0,0 +1,59 @@ +{ + "name": "lab-andrew", + "version": "1.0.0", + "description": "scrambleVox-frontend", + "main": "webpack.config.js", + "scripts": { + "build": "webpack", + "watch": "webpack-dev-server --inline --hot", + "lint": "eslint .", + "test": "jest -i --coverage" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ALB37/37-full-stack-app.git" + }, + "keywords": [ + "react", + "redux", + "front-end" + ], + "author": "Andrew Bloom", + "license": "MIT", + "bugs": { + "url": "https://github.com/ALB37/37-full-stack-app/issues" + }, + "homepage": "https://github.com/ALB37/37-full-stack-app#readme", + "dependencies": { + "babel-core": "^6.26.0", + "babel-loader": "^7.1.2", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-preset-env": "^1.6.1", + "babel-preset-react": "^6.24.1", + "css-loader": "^0.28.8", + "dotenv": "^4.0.0", + "eslint": "^4.15.0", + "eslint-plugin-react": "^7.5.1", + "extract-text-webpack-plugin": "^3.0.2", + "html-webpack-plugin": "^2.30.1", + "node-sass": "^4.7.2", + "react": "^16.2.0", + "react-dom": "^16.2.0", + "react-redux": "^5.0.6", + "react-router-dom": "^4.2.2", + "redux": "^3.7.2", + "redux-devtools-extension": "^2.13.2", + "resolve-url-loader": "^2.2.1", + "sass-loader": "^6.0.6", + "style-loader": "^0.19.1", + "superagent": "^3.8.2", + "uuid": "^3.2.1", + "webpack": "^3.10.0", + "webpack-dev-server": "^2.11.0" + }, + "devDependencies": { + "enzyme": "^3.3.0", + "enzyme-adapter-react-16": "^1.1.1", + "jest": "^22.1.1" + } +} diff --git a/lab-andrew/frontend/src/main.js b/lab-andrew/frontend/src/main.js new file mode 100644 index 00000000..e69de29b diff --git a/lab-andrew/frontend/src/style/_base.scss b/lab-andrew/frontend/src/style/_base.scss new file mode 100644 index 00000000..e69de29b diff --git a/lab-andrew/frontend/src/style/_layout.scss b/lab-andrew/frontend/src/style/_layout.scss new file mode 100644 index 00000000..e69de29b diff --git a/lab-andrew/frontend/src/style/_reset.scss b/lab-andrew/frontend/src/style/_reset.scss new file mode 100644 index 00000000..e69de29b diff --git a/lab-andrew/frontend/src/style/_vars.scss b/lab-andrew/frontend/src/style/_vars.scss new file mode 100644 index 00000000..e69de29b diff --git a/lab-andrew/frontend/src/style/main.scss b/lab-andrew/frontend/src/style/main.scss new file mode 100644 index 00000000..e69de29b diff --git a/lab-andrew/frontend/webpack.config.js b/lab-andrew/frontend/webpack.config.js new file mode 100644 index 00000000..64321722 --- /dev/null +++ b/lab-andrew/frontend/webpack.config.js @@ -0,0 +1,69 @@ +'use strict'; + +require('dotenv').config(); +const {DefinePlugin, EnvironmentPlugin} = require('webpack'); +const CleanPlugin = require('clean-webpack-plugin'); +const UglifyPlugin = require('uglifyjs-webpack-plugin'); +const HTMLPlugin = require('html-webpack-plugin'); +const ExtractPlugin = require('extract-text-webpack-plugin'); + +const webPackConfig = module.exports = {}; + +const PRODUCTION = process.env.NODE_ENV === 'production'; + +webPackConfig.entry = `${__dirname}/src/main.js`; + +webPackConfig.output = { + filename: 'bundle.[hash].js', + path: `${__dirname}/build`, + publicPath: process.env.CDN_URL, +}; + +webPackConfig.plugins = [ + new HTMLPlugin({title: 'scrambleVox'}), + new EnvironmentPlugin(['NODE_ENV']), + new DefinePlugin({ + __API_URL__: JSON.stringify(process.env.API_URL), + }), + new ExtractPlugin({filename: 'bundle.[hash].css', disable: process.env.NODE_ENV !== 'production'}), +]; + +if (PRODUCTION) { + webPackConfig.plugins = webPackConfig.plugins.concat([ + new UglifyPlugin(), + new CleanPlugin(), + ]); +} + +webPackConfig.module = { + rules: [ + { + test: /\.js$/, + exclude: /node_modules/, + loader: 'babel-loader', + }, + { + test: /\.scss$/, + loader: ExtractPlugin.extract({ + fallback: 'style-loader', + use: [ + 'css-loader', + 'resolve-url-loader', + { + loader: 'sass-loader', + options: { + sourceMap: true, + includePaths: [`${__dirname}/src/style`], + }, + }, + ], + }), + }, + ], +}; + +webPackConfig.devtool = PRODUCTION ? undefined : 'eval-source-map'; + +webPackConfig.devServer = { + historyApiFallback: true, +}; \ No newline at end of file From c24c81e764b59430dc6f8d09011feaf243fb547c Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Tue, 23 Jan 2018 18:18:24 -0800 Subject: [PATCH 02/21] basic auth implemented on frontend --- lab-andrew/backend/lib/server.js | 2 +- lab-andrew/frontend/package-lock.json | 371 ++++++++++++++++-- lab-andrew/frontend/package.json | 2 + lab-andrew/frontend/src/action/auth.js | 32 ++ .../frontend/src/component/app/index.js | 27 ++ .../frontend/src/component/auth-form/index.js | 74 ++++ .../src/component/auth-redirect/index.js | 33 ++ .../frontend/src/component/dashboard/index.js | 13 + .../frontend/src/component/landing/index.js | 76 ++++ lab-andrew/frontend/src/lib/redux-reporter.js | 12 + lab-andrew/frontend/src/lib/redux-thunk.js | 3 + lab-andrew/frontend/src/main.js | 24 ++ lab-andrew/frontend/src/reducer/index.js | 3 + lab-andrew/frontend/src/reducer/token.js | 12 + lab-andrew/frontend/src/routes.js | 4 + lab-andrew/frontend/webpack.config.js | 6 +- 16 files changed, 651 insertions(+), 43 deletions(-) create mode 100644 lab-andrew/frontend/src/action/auth.js create mode 100644 lab-andrew/frontend/src/component/app/index.js create mode 100644 lab-andrew/frontend/src/component/auth-form/index.js create mode 100644 lab-andrew/frontend/src/component/auth-redirect/index.js create mode 100644 lab-andrew/frontend/src/component/dashboard/index.js create mode 100644 lab-andrew/frontend/src/component/landing/index.js create mode 100644 lab-andrew/frontend/src/lib/redux-reporter.js create mode 100644 lab-andrew/frontend/src/lib/redux-thunk.js create mode 100644 lab-andrew/frontend/src/reducer/index.js create mode 100644 lab-andrew/frontend/src/reducer/token.js create mode 100644 lab-andrew/frontend/src/routes.js diff --git a/lab-andrew/backend/lib/server.js b/lab-andrew/backend/lib/server.js index fcc65021..b7abf8f4 100644 --- a/lab-andrew/backend/lib/server.js +++ b/lab-andrew/backend/lib/server.js @@ -14,7 +14,7 @@ mongoose.Promise = Promise; const app = express(); -app.use(cors({origin: 'http://localhost:8080'})); +app.use(cors({origin: 'http://localhost:8080', credentials: true})); app.use(require('./middleware/logger-middleware')); app.use(require('../route/user-router')); app.use(require('../route/wave-router')); diff --git a/lab-andrew/frontend/package-lock.json b/lab-andrew/frontend/package-lock.json index a0144312..44ab292f 100644 --- a/lab-andrew/frontend/package-lock.json +++ b/lab-andrew/frontend/package-lock.json @@ -1417,6 +1417,26 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cacache": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.2.tgz", + "integrity": "sha512-dljb7dk1jqO5ogE+dRpoR9tpHYv5xz9vPSNunh1+0wRuNdYxmzp9WmsyokgW/DUF1FDRVA/TMsmxt027R8djbQ==", + "requires": { + "bluebird": "3.5.1", + "chownr": "1.0.1", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "lru-cache": "4.1.1", + "mississippi": "1.3.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "5.1.0", + "unique-filename": "1.1.0", + "y18n": "3.2.1" + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1594,6 +1614,11 @@ "readdirp": "2.1.0" } }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + }, "ci-info": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", @@ -1702,6 +1727,14 @@ "source-map": "0.5.7" } }, + "clean-webpack-plugin": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.17.tgz", + "integrity": "sha512-Bts/V725v8Ijosp4K1cqppQXgXcrohxoMsg0CV2xL4y/vua1G5pAfHEW/eJIiKF+GNNG72mdjbipxMRFEms7yg==", + "requires": { + "rimraf": "2.6.2" + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1953,6 +1986,19 @@ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=" }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2198,6 +2244,11 @@ "array-find-index": "1.0.2" } }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", @@ -2478,6 +2529,17 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" }, + "duplexify": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "stream-shift": "1.0.0" + } + }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -2529,6 +2591,14 @@ "iconv-lite": "0.4.19" } }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "1.4.0" + } + }, "enhanced-resolve": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", @@ -3294,6 +3364,15 @@ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, + "flush-write-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -3350,6 +3429,26 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.3" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4889,6 +4988,11 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, "ignore": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", @@ -7177,6 +7281,23 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "mississippi": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.0.tgz", + "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=", + "requires": { + "concat-stream": "1.6.0", + "duplexify": "3.5.3", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.2", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "1.0.3", + "pumpify": "1.4.0", + "stream-each": "1.2.2", + "through2": "2.0.3" + } + }, "mixin-deep": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", @@ -7220,6 +7341,19 @@ "minimist": "0.0.8" } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -7877,6 +8011,16 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, "param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -8714,6 +8858,11 @@ "asap": "2.0.6" } }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, "prop-types": { "version": "15.6.0", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", @@ -8755,6 +8904,36 @@ "randombytes": "2.0.6" } }, + "pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "requires": { + "duplexify": "3.5.3", + "inherits": "2.0.3", + "pump": "2.0.1" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + } + } + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -9430,6 +9609,14 @@ "is-promise": "2.1.0" } }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "1.2.0" + } + }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -9572,6 +9759,11 @@ } } }, + "serialize-javascript": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz", + "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=" + }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", @@ -10000,6 +10192,14 @@ } } }, + "ssri": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.1.0.tgz", + "integrity": "sha512-TevC8fgxQKTfQ1nWtM9GNzr3q5rrHNntG9CDMH1k3QhSZI6Kb+NbjLRs8oPFZa2Hgo7zoekL+UTvoEk7tsbjQg==", + "requires": { + "safe-buffer": "5.1.1" + } + }, "stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", @@ -10104,6 +10304,15 @@ "readable-stream": "2.3.3" } }, + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + } + }, "stream-http": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", @@ -10116,6 +10325,11 @@ "xtend": "4.0.1" } }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -10390,6 +10604,15 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, "thunky": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", @@ -10663,54 +10886,46 @@ "optional": true }, "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.6.tgz", + "integrity": "sha512-VUja+7rYbznEvUaeb8IxOCTUrq4BCb1ml0vffa+mfwKtrAwlqnU0ENF14DtYltV1cxd/HSuK51CCA/D/8kMQVw==", "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" + "cacache": "10.0.2", + "find-cache-dir": "1.0.0", + "schema-utils": "0.4.3", + "serialize-javascript": "1.4.0", + "source-map": "0.6.1", + "uglify-es": "3.3.8", + "webpack-sources": "1.1.0", + "worker-farm": "1.5.2" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "schema-utils": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.3.tgz", + "integrity": "sha512-sgv/iF/T4/SewJkaVpldKC4WjSkz0JsOh2eKtxCPpCO1oR05+7MOF+H476HVRbLArkgA7j5TRJJ4p2jdFkUGQQ==", "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "ajv": "5.5.2", + "ajv-keywords": "2.1.1" } }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "uglify-es": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.8.tgz", + "integrity": "sha512-j8li0jWcAN6yBuAVYFZEFyYINZAm4WEdMwkA6qXFi4TLrze3Mp0Le7QjW6LR9HQjQJ2zRa9VgnFLs3PatijWOw==", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "commander": "2.13.0", + "source-map": "0.6.1" } } } @@ -10769,6 +10984,22 @@ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" }, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "requires": { + "unique-slug": "2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "requires": { + "imurmurhash": "0.1.4" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -11198,11 +11429,64 @@ "has-flag": "2.0.0" } }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.1.0" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", @@ -11737,6 +12021,15 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, + "worker-farm": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", + "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", + "requires": { + "errno": "0.1.6", + "xtend": "4.0.1" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", diff --git a/lab-andrew/frontend/package.json b/lab-andrew/frontend/package.json index 43cd90a3..61ea5cd1 100644 --- a/lab-andrew/frontend/package.json +++ b/lab-andrew/frontend/package.json @@ -30,6 +30,7 @@ "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-preset-env": "^1.6.1", "babel-preset-react": "^6.24.1", + "clean-webpack-plugin": "^0.1.17", "css-loader": "^0.28.8", "dotenv": "^4.0.0", "eslint": "^4.15.0", @@ -47,6 +48,7 @@ "sass-loader": "^6.0.6", "style-loader": "^0.19.1", "superagent": "^3.8.2", + "uglifyjs-webpack-plugin": "^1.1.6", "uuid": "^3.2.1", "webpack": "^3.10.0", "webpack-dev-server": "^2.11.0" diff --git a/lab-andrew/frontend/src/action/auth.js b/lab-andrew/frontend/src/action/auth.js new file mode 100644 index 00000000..960e3cd5 --- /dev/null +++ b/lab-andrew/frontend/src/action/auth.js @@ -0,0 +1,32 @@ + +import superagent from 'superagent'; +import * as routes from '../routes'; + +export const setTokenAction = (token) => ({ + type: 'TOKEN_SET', + payload: token, +}); + +export const removeTokenAction = () => ({ + type: 'TOKEN_REMOVE', +}); + +export const signupAction = (user) => (store) => { + return superagent.post(`${__API_URL__}${routes.SIGNUP_ROUTE}`) //eslint-disable-line + .send(user) + .withCredentials() + .then(response => { + console.log({response}); + return store.dispatch(setTokenAction(response.text)); + }); +}; + +export const loginAction = (user) => (store) => { + return superagent.get(`${__API_URL__}${routes.LOGIN_ROUTE}`) //eslint-disable-line + .auth(user.username, user.password) + .withCredentials() + .then(response => { + console.log({response}); + return store.dispatch(setTokenAction(response.text)); + }); +}; \ No newline at end of file diff --git a/lab-andrew/frontend/src/component/app/index.js b/lab-andrew/frontend/src/component/app/index.js new file mode 100644 index 00000000..a39ccad9 --- /dev/null +++ b/lab-andrew/frontend/src/component/app/index.js @@ -0,0 +1,27 @@ +import React from 'react'; +import {connect} from 'react-redux'; +import {BrowserRouter, Route} from 'react-router-dom'; + +import Landing from '../landing'; +import Dashboard from '../dashboard'; +import AuthRedirect from '../auth-redirect'; + +class App extends React.Component { + render(){ + return ( +

+ ); + } +} + +export default App; \ No newline at end of file diff --git a/lab-andrew/frontend/src/component/auth-form/index.js b/lab-andrew/frontend/src/component/auth-form/index.js new file mode 100644 index 00000000..c51fcd3d --- /dev/null +++ b/lab-andrew/frontend/src/component/auth-form/index.js @@ -0,0 +1,74 @@ +import React from 'react'; + +let emptyState = { + username: '', + email: '', + password: '', +}; + +class AuthForm extends React.Component { + constructor(props) { + super(props); + this.state = emptyState; + let memberFunctions = Object.getOwnPropertyNames(AuthForm.prototype); + for (let functionName of memberFunctions) { + if (functionName.startsWith('handle')) { + this[functionName] = this[functionName].bind(this); + } + } + } + handleChange(event) { + let {name, value} = event.target; + this.setState({[name]: value}); + } + + handleSubmit(event) { + event.preventDefault(); + this.props.onComplete(this.state); + this.setState(emptyState); + } + + render() { + let {type} = this.props; + + type = type === 'login' ? type : 'signup'; + + let signupJSX = + ; + + let signupRenderedJSX = (type !== 'login') ? signupJSX : undefined; + + return ( +
+ + + + {signupRenderedJSX} + + + + +
+ ); + } +} + +export default AuthForm; \ No newline at end of file diff --git a/lab-andrew/frontend/src/component/auth-redirect/index.js b/lab-andrew/frontend/src/component/auth-redirect/index.js new file mode 100644 index 00000000..28a9e4e5 --- /dev/null +++ b/lab-andrew/frontend/src/component/auth-redirect/index.js @@ -0,0 +1,33 @@ +import React from 'react'; +import {connect} from 'react-redux'; +import {Redirect} from 'react-router-dom'; +import * as routes from '../../routes'; + +class AuthRedirect extends React.Component { + render() { + let {location, history, token} = this.props; + let {pathname} = location; + let destinationRoute = null; + + if (pathname === routes.LOGIN_ROUTE || pathname === routes.SIGNUP_ROUTE || pathname === routes.ROOT_ROUTE) { + if (token) { + destinationRoute = routes.DASHBOARD_ROUTE; + } + } + else { + if (!token) + destinationRoute = routes.ROOT_ROUTE; + } + return ( +
+ {destinationRoute ? : undefined} +
+ ); + } +} + +const mapStateToProps = state => ({ + token: state.token, +}); + +export default connect(mapStateToProps)(AuthRedirect); \ No newline at end of file diff --git a/lab-andrew/frontend/src/component/dashboard/index.js b/lab-andrew/frontend/src/component/dashboard/index.js new file mode 100644 index 00000000..c81d36ad --- /dev/null +++ b/lab-andrew/frontend/src/component/dashboard/index.js @@ -0,0 +1,13 @@ +import React from 'react'; + +class Dashboard extends React.Component { + render() { + return ( +
+

scrambleVox

+
+ ); + } +} + +export default Dashboard; \ No newline at end of file diff --git a/lab-andrew/frontend/src/component/landing/index.js b/lab-andrew/frontend/src/component/landing/index.js new file mode 100644 index 00000000..4210b4ea --- /dev/null +++ b/lab-andrew/frontend/src/component/landing/index.js @@ -0,0 +1,76 @@ +import React from 'react'; +import {Link} from 'react-router-dom'; +import {connect} from 'react-redux'; + +import AuthForm from '../auth-form'; +import * as authActions from '../../action/auth'; + +import * as routes from '../../routes'; + +class Landing extends React.Component { + constructor(props) { + super(props); + let memberFunctions = Object.getOwnPropertyNames(Landing.prototype); + for (let functionName of memberFunctions) { + if (functionName.startsWith('handle')) { + this[functionName] = this[functionName].bind(this); + } + } + } + handleLogin(user) { + this.props.doLogin(user) + .then(() => { + this.props.history.push(routes.DASHBOARD_ROUTE); + }) + .catch(console.error); + } + + handleSignup(user) { + this.props.doSignup(user) + .then(() => { + this.props.history.push(routes.DASHBOARD_ROUTE); + }) + .catch(console.error); + } + render() { + let {location} = this.props; + + let rootJSX = +
+

welcome

+ signup + login +
; + + let signUpJSX = +
+

signup

+ +

already have an account?

+ login +
; + + let loginJSX = +
+

Login

+ +

Signup

+ signup +
; + return ( +
+ {location.pathname === routes.ROOT_ROUTE ? rootJSX : undefined} + {location.pathname === routes.SIGNUP_ROUTE ? signUpJSX : undefined} + {location.pathname === routes.LOGIN_ROUTE ? loginJSX : undefined} +
+ ); + } +} +const mapStateToProps = (state) => ({ + token: state.token, +}); +const mapDispatchToProps = (dispatch) => ({ + doSignup: (user) => dispatch(authActions.signupAction(user)), + doLogin: (user) => dispatch(authActions.loginAction(user)), +}); +export default connect(mapStateToProps, mapDispatchToProps)(Landing); \ No newline at end of file diff --git a/lab-andrew/frontend/src/lib/redux-reporter.js b/lab-andrew/frontend/src/lib/redux-reporter.js new file mode 100644 index 00000000..c25be454 --- /dev/null +++ b/lab-andrew/frontend/src/lib/redux-reporter.js @@ -0,0 +1,12 @@ +export default store => next => action => { + try { + console.log('__ACTION__', action); + let result = next(action); + console.log('__STATE__', store.getState()); + return result; + } catch (error) { + console.log('__ERROR__', error); + action.error = error; + return action; + } +}; \ No newline at end of file diff --git a/lab-andrew/frontend/src/lib/redux-thunk.js b/lab-andrew/frontend/src/lib/redux-thunk.js new file mode 100644 index 00000000..c456258d --- /dev/null +++ b/lab-andrew/frontend/src/lib/redux-thunk.js @@ -0,0 +1,3 @@ +export default store => next => action => { + typeof action === 'function' ? action(store) : next(action); +}; \ No newline at end of file diff --git a/lab-andrew/frontend/src/main.js b/lab-andrew/frontend/src/main.js index e69de29b..81947d02 100644 --- a/lab-andrew/frontend/src/main.js +++ b/lab-andrew/frontend/src/main.js @@ -0,0 +1,24 @@ +import React from 'react'; +import ReactDom from 'react-dom'; +import {Provider} from 'react-redux'; +import {createStore, applyMiddleware} from 'redux'; + +import reducer from './reducer'; +import App from './component/app'; +import thunk from './lib/redux-thunk.js'; +import reporter from './lib/redux-reporter.js'; +import {composeWithDevTools} from 'redux-devtools-extension'; + +const store = createStore( + reducer, + composeWithDevTools(applyMiddleware(thunk, reporter)) +); + +const container = document.createElement('div'); +document.body.appendChild(container); + +ReactDom.render( + + + , container +); \ No newline at end of file diff --git a/lab-andrew/frontend/src/reducer/index.js b/lab-andrew/frontend/src/reducer/index.js new file mode 100644 index 00000000..27f16de5 --- /dev/null +++ b/lab-andrew/frontend/src/reducer/index.js @@ -0,0 +1,3 @@ +import {combineReducers} from 'redux'; +import token from './token.js'; +export default combineReducers({token}); \ No newline at end of file diff --git a/lab-andrew/frontend/src/reducer/token.js b/lab-andrew/frontend/src/reducer/token.js new file mode 100644 index 00000000..fd0c88f1 --- /dev/null +++ b/lab-andrew/frontend/src/reducer/token.js @@ -0,0 +1,12 @@ +let initialState = null; + +export default (state = initialState, {type, payload}) => { + switch (type) { + case 'TOKEN_SET': + return payload; + case 'TOKEN_REMOVE': + return null; + default: + return state; + } +}; \ No newline at end of file diff --git a/lab-andrew/frontend/src/routes.js b/lab-andrew/frontend/src/routes.js new file mode 100644 index 00000000..0fb7179f --- /dev/null +++ b/lab-andrew/frontend/src/routes.js @@ -0,0 +1,4 @@ +export const LOGIN_ROUTE = '/login'; +export const SIGNUP_ROUTE = '/signup'; +export const ROOT_ROUTE = '/'; +export const DASHBOARD_ROUTE = '/dashboard'; \ No newline at end of file diff --git a/lab-andrew/frontend/webpack.config.js b/lab-andrew/frontend/webpack.config.js index 64321722..05fa7de7 100644 --- a/lab-andrew/frontend/webpack.config.js +++ b/lab-andrew/frontend/webpack.config.js @@ -5,7 +5,7 @@ const {DefinePlugin, EnvironmentPlugin} = require('webpack'); const CleanPlugin = require('clean-webpack-plugin'); const UglifyPlugin = require('uglifyjs-webpack-plugin'); const HTMLPlugin = require('html-webpack-plugin'); -const ExtractPlugin = require('extract-text-webpack-plugin'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); const webPackConfig = module.exports = {}; @@ -25,7 +25,7 @@ webPackConfig.plugins = [ new DefinePlugin({ __API_URL__: JSON.stringify(process.env.API_URL), }), - new ExtractPlugin({filename: 'bundle.[hash].css', disable: process.env.NODE_ENV !== 'production'}), + new ExtractTextPlugin({filename: 'bundle.[hash].css', disable: process.env.NODE_ENV !== 'production'}), ]; if (PRODUCTION) { @@ -44,7 +44,7 @@ webPackConfig.module = { }, { test: /\.scss$/, - loader: ExtractPlugin.extract({ + loader: ExtractTextPlugin.extract({ fallback: 'style-loader', use: [ 'css-loader', From 608558708926ce087ddd393248743d8ef06729c0 Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Tue, 23 Jan 2018 23:13:51 -0800 Subject: [PATCH 03/21] updated readme and reformated some JSX --- lab-andrew/frontend/README.md | 7 ++++--- lab-andrew/frontend/src/action/auth.js | 3 ++- .../frontend/src/component/landing/index.js | 16 +++++++++------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/lab-andrew/frontend/README.md b/lab-andrew/frontend/README.md index ac588ca0..36a6a08e 100644 --- a/lab-andrew/frontend/README.md +++ b/lab-andrew/frontend/README.md @@ -1,8 +1,8 @@ -# Lab 36 Full Stack CRUD +# Lab 37 Full Stack Signup/Login ## Overview -This is a synth tracker app. A new synth company can be created with the form on the home page. This will add a new synth to the list of synths. The synth will have an update form attached which allows a user to update that synth. There will also be a delete button to delete this synth company. Each synth company can have synths added. The name of each synth must be unique. Within each synth company will be a form where one can add synths. Also within the synth company will be a list of synths, each of which can be updated or deleted. To edit any section, double-click on that section, and a form to update the name or location/polyphony will appear. The synth companies are sent via http requests (managed by superagent) to the backend server where they are stored in mongo. Note that the name property of a synth company/synth is unique, so duplicate names are disallowed. +This is the front end for the scrambleVox application. Upon arrival, a user will be welcomed and asked to login or signup. If they are successful, they will be returned a token, and will be redirected to the dashboard. *** ## Getting Started @@ -11,4 +11,5 @@ To get started using this application, familiarity with node and npm, as well as *** ## Technology/Credits -Created by Andrew Bloom. Using react, redux, babel, webpack, et al. See package.json for details. \ No newline at end of file +Created by Andrew Bloom. Using react, redux, babel, webpack, et al. See package.json for details. + diff --git a/lab-andrew/frontend/src/action/auth.js b/lab-andrew/frontend/src/action/auth.js index 960e3cd5..020513ed 100644 --- a/lab-andrew/frontend/src/action/auth.js +++ b/lab-andrew/frontend/src/action/auth.js @@ -18,7 +18,8 @@ export const signupAction = (user) => (store) => { .then(response => { console.log({response}); return store.dispatch(setTokenAction(response.text)); - }); + }) + .catch(err => console.log(err)); }; export const loginAction = (user) => (store) => { diff --git a/lab-andrew/frontend/src/component/landing/index.js b/lab-andrew/frontend/src/component/landing/index.js index 4210b4ea..a9cf42e6 100644 --- a/lab-andrew/frontend/src/component/landing/index.js +++ b/lab-andrew/frontend/src/component/landing/index.js @@ -37,17 +37,19 @@ class Landing extends React.Component { let rootJSX =
-

welcome

- signup - login +

Welcome to scrambleVox!

+

Login or signup to get started:

+ Signup +
+ Login
; let signUpJSX =
-

signup

+

Signup

-

already have an account?

- login +

Already have an account?

+ Login
; let loginJSX = @@ -55,7 +57,7 @@ class Landing extends React.Component {

Login

Signup

- signup + Signup ; return (
From b98ca6bd8a90e92292c78b6c81d801402ffff16a Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Wed, 24 Jan 2018 10:30:07 -0800 Subject: [PATCH 04/21] adding signup validation --- lab-andrew/frontend/package-lock.json | 5 +++ lab-andrew/frontend/package.json | 1 + .../frontend/src/component/auth-form/index.js | 41 ++++++++++++++++++- lab-andrew/frontend/src/lib/cookie.js | 7 ++++ lab-andrew/frontend/src/reducer/token.js | 8 +++- 5 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 lab-andrew/frontend/src/lib/cookie.js diff --git a/lab-andrew/frontend/package-lock.json b/lab-andrew/frontend/package-lock.json index 44ab292f..cc711a31 100644 --- a/lab-andrew/frontend/package-lock.json +++ b/lab-andrew/frontend/package-lock.json @@ -11216,6 +11216,11 @@ "spdx-expression-parse": "1.0.4" } }, + "validator": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-9.2.0.tgz", + "integrity": "sha512-6Ij4Eo0KM4LkR0d0IegOwluG5453uqT5QyF5SV5Ezvm8/zmkKI/L4eoraafZGlZPC9guLkwKzgypcw8VGWWnGA==" + }, "value-equal": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", diff --git a/lab-andrew/frontend/package.json b/lab-andrew/frontend/package.json index 61ea5cd1..ca38ce15 100644 --- a/lab-andrew/frontend/package.json +++ b/lab-andrew/frontend/package.json @@ -50,6 +50,7 @@ "superagent": "^3.8.2", "uglifyjs-webpack-plugin": "^1.1.6", "uuid": "^3.2.1", + "validator": "^9.2.0", "webpack": "^3.10.0", "webpack-dev-server": "^2.11.0" }, diff --git a/lab-andrew/frontend/src/component/auth-form/index.js b/lab-andrew/frontend/src/component/auth-form/index.js index c51fcd3d..a1215da5 100644 --- a/lab-andrew/frontend/src/component/auth-form/index.js +++ b/lab-andrew/frontend/src/component/auth-form/index.js @@ -1,9 +1,18 @@ import React from 'react'; +import validator from 'validator'; let emptyState = { username: '', + usernameDirty: false, + usernameError: 'Username is required', + email: '', + emailDirty: false, + emailError: 'Email is required', + password: '', + passwordDirty: false, + passwordError: 'Password is required', }; class AuthForm extends React.Component { @@ -19,7 +28,11 @@ class AuthForm extends React.Component { } handleChange(event) { let {name, value} = event.target; - this.setState({[name]: value}); + this.setState({ + [name]: value, + [`${name}Dirty`]: true, + [`${name}Error`]: this.handleValidation(name, value), + }); } handleSubmit(event) { @@ -28,6 +41,32 @@ class AuthForm extends React.Component { this.setState(emptyState); } + handleValidation(name, value){ + if (this.props.type === 'login'){ + return null; + } + + switch(name){ + case 'username': + if (value.length < 6){ + return 'Your name must be at least 6 characters long'; + } + return null; + case 'email': + if (!validator.isEmail(value)){ + return 'You must provide a valid email'; + } + return null; + case 'password': + if (value.length < 8){ + return 'Your password must be at least 8 characters long'; + } + return null; + default: + return null; + } + } + render() { let {type} = this.props; diff --git a/lab-andrew/frontend/src/lib/cookie.js b/lab-andrew/frontend/src/lib/cookie.js new file mode 100644 index 00000000..06f6ba5a --- /dev/null +++ b/lab-andrew/frontend/src/lib/cookie.js @@ -0,0 +1,7 @@ +export const cookieFetchAll = () => { + return Object.assign(...document.cookie.split(';')) + .map(cookie => { + let [key, value] = cookie.split('='); + return {[key.trim()]: value}; + }); +}; \ No newline at end of file diff --git a/lab-andrew/frontend/src/reducer/token.js b/lab-andrew/frontend/src/reducer/token.js index fd0c88f1..74345311 100644 --- a/lab-andrew/frontend/src/reducer/token.js +++ b/lab-andrew/frontend/src/reducer/token.js @@ -1,4 +1,10 @@ -let initialState = null; +import * as cookie from '../lib/cookie'; + +const SCRAMBLEVOX_COOKIE = 'scrambleVox-Token'; + +let token = cookie.cookieFetch(''); + +let initialState = token ? token : null; export default (state = initialState, {type, payload}) => { switch (type) { From 34348bee8cfacb5ac7a70e242256ac9eb109422a Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Wed, 24 Jan 2018 10:49:15 -0800 Subject: [PATCH 05/21] adding logic to display error messages with signup --- .../frontend/src/component/auth-form/index.js | 42 ++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/lab-andrew/frontend/src/component/auth-form/index.js b/lab-andrew/frontend/src/component/auth-form/index.js index a1215da5..63490822 100644 --- a/lab-andrew/frontend/src/component/auth-form/index.js +++ b/lab-andrew/frontend/src/component/auth-form/index.js @@ -26,6 +26,7 @@ class AuthForm extends React.Component { } } } + handleChange(event) { let {name, value} = event.target; this.setState({ @@ -37,8 +38,19 @@ class AuthForm extends React.Component { handleSubmit(event) { event.preventDefault(); - this.props.onComplete(this.state); - this.setState(emptyState); + + const {nameError, emailError, passwordError} = this.state; + + if (this.props.type === 'login' || !nameError && !emailError && !passwordError){ + this.props.onComplete(this.state); + this.setState(emptyState); + } else { + this.setState({ + usernameDirty: true, + emailDirty: true, + passwordDirty: true, + }); + } } handleValidation(name, value){ @@ -73,21 +85,27 @@ class AuthForm extends React.Component { type = type === 'login' ? type : 'signup'; let signupJSX = - ; + + {this.state.emailDirty ?

{this.state.emailError}

: null} + +
; - let signupRenderedJSX = (type !== 'login') ? signupJSX : undefined; + let signupRenderedJSX = (type !== 'login') ? signupJSX : null; return ( -
+ + {this.state.usernameDirty ?

{this.state.usernameError}

: null} {this.state.passwordError}

: null} Date: Wed, 24 Jan 2018 15:42:22 -0800 Subject: [PATCH 06/21] refactored back end to reflect one-many relationship between models --- lab-andrew/backend/lib/server.js | 1 + lab-andrew/backend/model/favorites.js | 21 ++++++++ lab-andrew/backend/route/favorites-router.js | 50 +++++++++++++++++++ lab-andrew/backend/route/user-router.js | 11 +++- .../frontend/src/action/client-profile.js | 0 lab-andrew/frontend/src/lib/cookie.js | 4 ++ 6 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 lab-andrew/backend/model/favorites.js create mode 100644 lab-andrew/backend/route/favorites-router.js create mode 100644 lab-andrew/frontend/src/action/client-profile.js diff --git a/lab-andrew/backend/lib/server.js b/lab-andrew/backend/lib/server.js index b7abf8f4..1b57b342 100644 --- a/lab-andrew/backend/lib/server.js +++ b/lab-andrew/backend/lib/server.js @@ -18,6 +18,7 @@ app.use(cors({origin: 'http://localhost:8080', credentials: true})); app.use(require('./middleware/logger-middleware')); app.use(require('../route/user-router')); app.use(require('../route/wave-router')); +app.use(require('../route/favorites-router')); app.all('*', (request, response) => { logger.log('info','Returning a 404 from the catch-all route'); diff --git a/lab-andrew/backend/model/favorites.js b/lab-andrew/backend/model/favorites.js new file mode 100644 index 00000000..073f3cb6 --- /dev/null +++ b/lab-andrew/backend/model/favorites.js @@ -0,0 +1,21 @@ +'use strict'; + +const mongoose = require('mongoose'); + +const favoritesSchema = mongoose.Schema({ + user: { + type: mongoose.Schema.Types.ObjectId, + required: true, + }, + favorites: [{ + type: mongoose.Schema.Types.ObjectId, + ref: 'wave', + }], + notes: { + type: String, + }, +},{ + usePushEach: true, +}); + +module.exports = mongoose.model('favorite', favoritesSchema); \ No newline at end of file diff --git a/lab-andrew/backend/route/favorites-router.js b/lab-andrew/backend/route/favorites-router.js new file mode 100644 index 00000000..94e624cb --- /dev/null +++ b/lab-andrew/backend/route/favorites-router.js @@ -0,0 +1,50 @@ +'use strict'; + +const {Router} = require(`express`); +const jsonParser = require(`body-parser`).json(); +const Favorites = require(`../model/favorites`); +const httpErrors = require(`http-errors`); + +const bearerAuth = require(`../lib/middleware/bearer-auth`); + +const favoritesRouter = module.exports = new Router(); + +favoritesRouter.get('/favorites/:id', bearerAuth, (request, response, next) => { + return Favorites.findOne({user: request.params.id}) + .then(favorites => { + if (!favorites) { + throw new httpErrors(404, '__ERROR__ favorites not found'); + } + return response.json(favorites); + }) + .catch(next); +}); + +favoritesRouter.put('/favorites/:id', jsonParser, bearerAuth, (request, response, next) => { + if (!request.body) { + throw httpErrors(400, 'body is required'); + } + + return Favorites.findOne({user: request.params.id}) + .then(favorites => { + if (!favorites) { + throw httpErrors(404, 'favorites not found'); + } + if (request.body.notes) { + favorites.set({ + notes: `${request.body.notes}`, + }); + } + if (request.body.favorites) { + favorites.set({ + favorites: request.body.favorites, + }); + } + + return favorites.save() + .then(updatedFavorites => response.json(updatedFavorites)) + .catch(next); + }) + .catch(next); +}); + diff --git a/lab-andrew/backend/route/user-router.js b/lab-andrew/backend/route/user-router.js index f92cd2c2..ff2cb55b 100644 --- a/lab-andrew/backend/route/user-router.js +++ b/lab-andrew/backend/route/user-router.js @@ -3,6 +3,7 @@ const {Router} = require(`express`); const jsonParser = require(`body-parser`).json(); const User = require(`../model/user`); +const Favorites = require(`../model/favorites`); const httpErrors = require(`http-errors`); const basicAuthMiddleware = require(`../lib/middleware/basic-auth`); @@ -13,10 +14,16 @@ userRouter.post(`/signup`, jsonParser, (request, response, next) => { if(!request.body.username || !request.body.password || !request.body.email){ return next(new httpErrors(400, `__ERROR__ username, password, and email are required`)); } - + let tempUser = null; return User.create(request.body.username, request.body.email, request.body.password) - .then(user => user.createToken()) + .then(user => { + tempUser = user; + return user.createToken(); + }) .then(token => response.json({token})) + .then(() => new Favorites({ + user: tempUser._id, + }).save()) .catch(next); }); diff --git a/lab-andrew/frontend/src/action/client-profile.js b/lab-andrew/frontend/src/action/client-profile.js new file mode 100644 index 00000000..e69de29b diff --git a/lab-andrew/frontend/src/lib/cookie.js b/lab-andrew/frontend/src/lib/cookie.js index 06f6ba5a..2ce12c66 100644 --- a/lab-andrew/frontend/src/lib/cookie.js +++ b/lab-andrew/frontend/src/lib/cookie.js @@ -4,4 +4,8 @@ export const cookieFetchAll = () => { let [key, value] = cookie.split('='); return {[key.trim()]: value}; }); +}; + +export const cookieDelete = key => { + document.cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 GMT`; }; \ No newline at end of file From cbb610d554079156724ed7781af3c8b810ee659f Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Wed, 24 Jan 2018 17:06:27 -0800 Subject: [PATCH 07/21] persistence via cookies implemented --- lab-andrew/backend/route/user-router.js | 10 +++++-- lab-andrew/frontend/src/action/auth.js | 6 ++-- .../frontend/src/action/client-favorites.js | 29 +++++++++++++++++++ .../frontend/src/action/client-profile.js | 0 lab-andrew/frontend/src/lib/cookie.js | 8 +++-- .../frontend/src/reducer/client-favorites.js | 23 +++++++++++++++ lab-andrew/frontend/src/reducer/token.js | 4 +-- lab-andrew/frontend/src/routes.js | 3 +- 8 files changed, 74 insertions(+), 9 deletions(-) create mode 100644 lab-andrew/frontend/src/action/client-favorites.js delete mode 100644 lab-andrew/frontend/src/action/client-profile.js create mode 100644 lab-andrew/frontend/src/reducer/client-favorites.js diff --git a/lab-andrew/backend/route/user-router.js b/lab-andrew/backend/route/user-router.js index ff2cb55b..946b8d0d 100644 --- a/lab-andrew/backend/route/user-router.js +++ b/lab-andrew/backend/route/user-router.js @@ -20,7 +20,10 @@ userRouter.post(`/signup`, jsonParser, (request, response, next) => { tempUser = user; return user.createToken(); }) - .then(token => response.json({token})) + .then(token => { + response.cookie('X-scrambleVox-Token', token, {maxAge: 900000}); + response.json({token}); + }) .then(() => new Favorites({ user: tempUser._id, }).save()) @@ -32,6 +35,9 @@ userRouter.get(`/login`, basicAuthMiddleware, (request, response, next) => { return next(new httpErrors(404, `__ERROR__ Not Found`)); } return request.user.createToken() - .then(token => response.json({token})) + .then(token => { + response.cookie('X-scrambleVox-Token', token, {maxAge: 900000}); + response.json({token}); + }) .catch(next); }); diff --git a/lab-andrew/frontend/src/action/auth.js b/lab-andrew/frontend/src/action/auth.js index 020513ed..eb104af2 100644 --- a/lab-andrew/frontend/src/action/auth.js +++ b/lab-andrew/frontend/src/action/auth.js @@ -17,7 +17,8 @@ export const signupAction = (user) => (store) => { .withCredentials() .then(response => { console.log({response}); - return store.dispatch(setTokenAction(response.text)); + return store.dispatch(setTokenAction(JSON.parse(response.text).token)); + // return store.dispatch(setTokenAction(response.text)); }) .catch(err => console.log(err)); }; @@ -28,6 +29,7 @@ export const loginAction = (user) => (store) => { .withCredentials() .then(response => { console.log({response}); - return store.dispatch(setTokenAction(response.text)); + return store.dispatch(setTokenAction(JSON.parse(response.text).token)); + // return store.dispatch(setTokenAction(response.text)); }); }; \ No newline at end of file diff --git a/lab-andrew/frontend/src/action/client-favorites.js b/lab-andrew/frontend/src/action/client-favorites.js new file mode 100644 index 00000000..7752a1d8 --- /dev/null +++ b/lab-andrew/frontend/src/action/client-favorites.js @@ -0,0 +1,29 @@ +import superagent from 'superagent'; +import * as routes from '../routes'; + +export const setAction = (favorite) => ({ + type: 'CLIENT_FAVORITES_SET', + payload: favorite, +}); + +export const updateAction = (favorite) => (store) => { + let {token, userID} = store.getState(); + + return superagent.put(`${__API_URL__}${routes.PROFILE_ROUTE}/${userID}`) //eslint-disable-line + .set('Authorization', `Bearer ${token}`) + .set('Content-Type', 'application/json') + .send(favorite) + .then(response => { + return store.dispatch(setAction(response.body)); + }); +}; + +export const fetchAction = (user) => (store) => { + let {token} = store.getState(); + + return superagent.get(`${__API_URL__}${routes.PROFILE_ROUTE}/${user._id}`) //eslint-disable-line + .set('Authorization', `Bearer ${token}`) + .then(response => { + return store.dispatch(setAction(response.body)); + }); +}; \ No newline at end of file diff --git a/lab-andrew/frontend/src/action/client-profile.js b/lab-andrew/frontend/src/action/client-profile.js deleted file mode 100644 index e69de29b..00000000 diff --git a/lab-andrew/frontend/src/lib/cookie.js b/lab-andrew/frontend/src/lib/cookie.js index 2ce12c66..7787c390 100644 --- a/lab-andrew/frontend/src/lib/cookie.js +++ b/lab-andrew/frontend/src/lib/cookie.js @@ -1,11 +1,15 @@ export const cookieFetchAll = () => { - return Object.assign(...document.cookie.split(';')) + return Object.assign(...document.cookie.split(';') .map(cookie => { let [key, value] = cookie.split('='); return {[key.trim()]: value}; - }); + })); }; export const cookieDelete = key => { document.cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 GMT`; +}; + +export const cookieFetch = (key) => { + return cookieFetchAll()[key]; }; \ No newline at end of file diff --git a/lab-andrew/frontend/src/reducer/client-favorites.js b/lab-andrew/frontend/src/reducer/client-favorites.js new file mode 100644 index 00000000..c72524db --- /dev/null +++ b/lab-andrew/frontend/src/reducer/client-favorites.js @@ -0,0 +1,23 @@ +export const validateFavorites = (favs) => { + if (!favs) + throw new Error('favorites required'); + + let {user, favorites, notes} = favs; + + if (!user || !favorites || !notes){ + throw new Error('invalid favorites'); + } +}; + +export default (state = null, action) => { + let {type, payload} = action; + switch (type) { + case 'CLIENT_FAVORITES_SET': + validateFavorites(payload); + return payload; + case 'TOKEN_REMOVE': + return null; + default: + return state; + } +}; \ No newline at end of file diff --git a/lab-andrew/frontend/src/reducer/token.js b/lab-andrew/frontend/src/reducer/token.js index 74345311..e5c94c9e 100644 --- a/lab-andrew/frontend/src/reducer/token.js +++ b/lab-andrew/frontend/src/reducer/token.js @@ -1,8 +1,8 @@ import * as cookie from '../lib/cookie'; -const SCRAMBLEVOX_COOKIE = 'scrambleVox-Token'; +const SCRAMBLEVOX_COOKIE = 'X-scrambleVox-Token'; -let token = cookie.cookieFetch(''); +let token = cookie.cookieFetch(SCRAMBLEVOX_COOKIE); let initialState = token ? token : null; diff --git a/lab-andrew/frontend/src/routes.js b/lab-andrew/frontend/src/routes.js index 0fb7179f..58894a6d 100644 --- a/lab-andrew/frontend/src/routes.js +++ b/lab-andrew/frontend/src/routes.js @@ -1,4 +1,5 @@ export const LOGIN_ROUTE = '/login'; export const SIGNUP_ROUTE = '/signup'; export const ROOT_ROUTE = '/'; -export const DASHBOARD_ROUTE = '/dashboard'; \ No newline at end of file +export const DASHBOARD_ROUTE = '/dashboard'; +export const FAVORITES_ROUTE = '/favorites'; \ No newline at end of file From 83502d678caac712aa0d682c6e297ed6c195684c Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Wed, 24 Jan 2018 22:55:15 -0800 Subject: [PATCH 08/21] debugging application, async issues --- lab-andrew/backend/route/favorites-router.js | 21 ++++-- lab-andrew/frontend/src/action/auth.js | 19 +++-- .../frontend/src/action/client-favorites.js | 12 ++-- .../frontend/src/component/app/index.js | 23 +++++- .../src/component/favorites-form/index.js | 56 +++++++++++++++ .../frontend/src/component/favorites/index.js | 70 +++++++++++++++++++ .../frontend/src/component/header/index.js | 44 ++++++++++++ .../frontend/src/component/landing/index.js | 29 +++----- .../frontend/src/reducer/client-favorites.js | 2 +- lab-andrew/frontend/src/reducer/index.js | 3 +- 10 files changed, 241 insertions(+), 38 deletions(-) create mode 100644 lab-andrew/frontend/src/component/favorites-form/index.js create mode 100644 lab-andrew/frontend/src/component/favorites/index.js create mode 100644 lab-andrew/frontend/src/component/header/index.js diff --git a/lab-andrew/backend/route/favorites-router.js b/lab-andrew/backend/route/favorites-router.js index 94e624cb..c6ca7310 100644 --- a/lab-andrew/backend/route/favorites-router.js +++ b/lab-andrew/backend/route/favorites-router.js @@ -9,8 +9,21 @@ const bearerAuth = require(`../lib/middleware/bearer-auth`); const favoritesRouter = module.exports = new Router(); -favoritesRouter.get('/favorites/:id', bearerAuth, (request, response, next) => { - return Favorites.findOne({user: request.params.id}) +favoritesRouter.post('/favorites', bearerAuth, (request, response, next) => { + return Favorites.findOne({user: request.user._id}) + .then(favorites => { + if (favorites){ + return; + } + return new Favorites({user: request.user._id}).save() + .then(newFav => response.json(newFav)) + .catch(next); + }) + .catch(next); +}); + +favoritesRouter.get('/favorites/me', bearerAuth, (request, response, next) => { + return Favorites.findOne({user: request.user._id}) .then(favorites => { if (!favorites) { throw new httpErrors(404, '__ERROR__ favorites not found'); @@ -20,12 +33,12 @@ favoritesRouter.get('/favorites/:id', bearerAuth, (request, response, next) => { .catch(next); }); -favoritesRouter.put('/favorites/:id', jsonParser, bearerAuth, (request, response, next) => { +favoritesRouter.put('/favorites', jsonParser, bearerAuth, (request, response, next) => { if (!request.body) { throw httpErrors(400, 'body is required'); } - return Favorites.findOne({user: request.params.id}) + return Favorites.findOne({user: request.user._id}) .then(favorites => { if (!favorites) { throw httpErrors(404, 'favorites not found'); diff --git a/lab-andrew/frontend/src/action/auth.js b/lab-andrew/frontend/src/action/auth.js index eb104af2..28ee3a53 100644 --- a/lab-andrew/frontend/src/action/auth.js +++ b/lab-andrew/frontend/src/action/auth.js @@ -1,6 +1,6 @@ - import superagent from 'superagent'; import * as routes from '../routes'; +import * as cookie from '../lib/cookie'; export const setTokenAction = (token) => ({ type: 'TOKEN_SET', @@ -11,6 +11,11 @@ export const removeTokenAction = () => ({ type: 'TOKEN_REMOVE', }); +export const logoutAction = () => { + cookie.cookieDelete('X-scrambleVox-Token'); + return removeTokenAction(); +}; + export const signupAction = (user) => (store) => { return superagent.post(`${__API_URL__}${routes.SIGNUP_ROUTE}`) //eslint-disable-line .send(user) @@ -18,9 +23,8 @@ export const signupAction = (user) => (store) => { .then(response => { console.log({response}); return store.dispatch(setTokenAction(JSON.parse(response.text).token)); - // return store.dispatch(setTokenAction(response.text)); }) - .catch(err => console.log(err)); + .catch(console.error); }; export const loginAction = (user) => (store) => { @@ -28,8 +32,9 @@ export const loginAction = (user) => (store) => { .auth(user.username, user.password) .withCredentials() .then(response => { - console.log({response}); - return store.dispatch(setTokenAction(JSON.parse(response.text).token)); - // return store.dispatch(setTokenAction(response.text)); - }); + + console.log(response); + return store.dispatch(setTokenAction(response.text)); + }) + .then(what => console.log(what)); }; \ No newline at end of file diff --git a/lab-andrew/frontend/src/action/client-favorites.js b/lab-andrew/frontend/src/action/client-favorites.js index 7752a1d8..8de73473 100644 --- a/lab-andrew/frontend/src/action/client-favorites.js +++ b/lab-andrew/frontend/src/action/client-favorites.js @@ -1,15 +1,15 @@ import superagent from 'superagent'; import * as routes from '../routes'; -export const setAction = (favorite) => ({ +export const setAction = favorite => ({ type: 'CLIENT_FAVORITES_SET', payload: favorite, }); -export const updateAction = (favorite) => (store) => { - let {token, userID} = store.getState(); +export const updateAction = favorite => (store) => { + let {token} = store.getState(); - return superagent.put(`${__API_URL__}${routes.PROFILE_ROUTE}/${userID}`) //eslint-disable-line + return superagent.put(`${__API_URL__}${routes.FAVORITES_ROUTE}`) //eslint-disable-line .set('Authorization', `Bearer ${token}`) .set('Content-Type', 'application/json') .send(favorite) @@ -18,10 +18,10 @@ export const updateAction = (favorite) => (store) => { }); }; -export const fetchAction = (user) => (store) => { +export const fetchAction = () => (store) => { let {token} = store.getState(); - return superagent.get(`${__API_URL__}${routes.PROFILE_ROUTE}/${user._id}`) //eslint-disable-line + return superagent.get(`${__API_URL__}${routes.FAVORITES_ROUTE}/me`) //eslint-disable-line .set('Authorization', `Bearer ${token}`) .then(response => { return store.dispatch(setAction(response.body)); diff --git a/lab-andrew/frontend/src/component/app/index.js b/lab-andrew/frontend/src/component/app/index.js index a39ccad9..fa066eeb 100644 --- a/lab-andrew/frontend/src/component/app/index.js +++ b/lab-andrew/frontend/src/component/app/index.js @@ -2,21 +2,34 @@ import React from 'react'; import {connect} from 'react-redux'; import {BrowserRouter, Route} from 'react-router-dom'; +import Header from '../header'; import Landing from '../landing'; +import Favorites from '../favorites'; import Dashboard from '../dashboard'; import AuthRedirect from '../auth-redirect'; +import * as clientFavorites from '../../action/client-favorites'; + class App extends React.Component { + componentWillMount(){ + if (this.props.loggedIn) { + this.props.fetchClientFavorites(); + // .catch(console.error); + } + } + render(){ return (
+
+
@@ -24,4 +37,12 @@ class App extends React.Component { } } -export default App; \ No newline at end of file +let mapStateToProps = (state) => ({ + loggedIn: !!state.token, +}); + +const mapDispatchToProps = (dispatch) => ({ + fetchClientFavorites: () => dispatch(clientFavorites.fetchAction()), +}); + +export default connect(mapStateToProps, mapDispatchToProps)(App); \ No newline at end of file diff --git a/lab-andrew/frontend/src/component/favorites-form/index.js b/lab-andrew/frontend/src/component/favorites-form/index.js new file mode 100644 index 00000000..3ccee306 --- /dev/null +++ b/lab-andrew/frontend/src/component/favorites-form/index.js @@ -0,0 +1,56 @@ +import React from 'react'; + +let emptyState = { + favorites: '', + notes: '', +}; + +class FavoritesForm extends React.Component { + constructor(props) { + super(props); + this.state = props.favorites ? props.favorites : emptyState; + let memberFunctions = Object.getOwnPropertyNames(FavoritesForm.prototype); + for (let functionName of memberFunctions) { + if (functionName.startsWith('handle')) { + this[functionName] = this[functionName].bind(this); + } + } + } + + handleChange(event) { + let {value} = event.target; + this.setState({ + notes: value, + }); + } + + handleSubmit(event) { + event.preventDefault(); + this.props.onComplete(this.state); + this.setState(emptyState); + } + + componentWillReceiveProps(props) { + if (props.favorites) + this.setState(props.favorites); + } + + render() { + return ( + + +