├── .editorconfig ├── .env.example ├── .eslintrc.json ├── .gitignore ├── Makefile ├── README.md ├── docker-compose.yml ├── index.js ├── models └── user.js ├── package.json ├── prettier.config.js ├── setup ├── db.js ├── jwt.js └── server.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.mdx] 15 | indent_style = space 16 | 17 | [Makefile] 18 | indent_style = tab 19 | 20 | [*.yml] 21 | indent_style = space 22 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | NODE_ENV=development 2 | 3 | # Server 4 | SERVER_PORT= 5 | 6 | # DB 7 | DB_HOST= 8 | DB_PORT= 9 | DB_NAME= 10 | DB_USER= 11 | DB_PASS= 12 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "eslint:recommended", 4 | "plugin:json/recommended", 5 | "plugin:prettier/recommended" 6 | ], 7 | 8 | "env": { 9 | "es6": true, 10 | "node": true 11 | }, 12 | "rules": { 13 | "comma-dangle": [ 14 | "error", 15 | { 16 | "arrays": "always-multiline", 17 | "objects": "always-multiline", 18 | "imports": "always-multiline", 19 | "exports": "always-multiline", 20 | "functions": "never" 21 | } 22 | ], 23 | "prettier/prettier": ["error", "prettier"] 24 | }, 25 | "parserOptions": { 26 | "ecmaVersion": 2018, 27 | "sourceType": "module" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | include .env 2 | 3 | .PHONY: up 4 | 5 | up: 6 | docker-compose up -d 7 | 8 | .PHONY: down 9 | 10 | down: 11 | docker-compose down 12 | 13 | .PHONY: it 14 | 15 | it: 16 | docker exec -it data bash 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Leasson - Node Auth 2 | 3 | Authentication with NodeJS and JWT 4 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.1" 2 | services: 3 | db: 4 | image: mongo:4.2 5 | container_name: data 6 | restart: always 7 | ports: 8 | - ${DB_PORT}:27017 9 | environment: 10 | MONGO_INITDB_DATABASE: ${DB_NAME} 11 | MONGO_INITDB_ROOT_USERNAME: ${DB_USER} 12 | MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS} 13 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import './setup/db' 2 | 3 | import { server } from './setup/server' 4 | import * as jwt from './setup/jwt' 5 | import { UserModel } from './models/user' 6 | 7 | const authMiddleware = async (req, res, next) => { 8 | const [, token] = req.headers.authorization.split(' ') 9 | console.log(req.headers.authorization) 10 | try { 11 | const payload = await jwt.verify(token) 12 | const user = await UserModel.findById(payload.user) 13 | 14 | if (!user) { 15 | return res.send(401) 16 | } 17 | 18 | req.auth = user 19 | 20 | next() 21 | } catch (error) { 22 | res.send(401, error) 23 | } 24 | } 25 | 26 | server.post('/signup', async (req, res) => { 27 | try { 28 | const result = await UserModel.create(req.body) 29 | const { password, ...user } = result.toObject() 30 | 31 | const token = jwt.sign({ user: user.id }) 32 | 33 | res.send({ user, token }) 34 | } catch (error) { 35 | res.send(400, error) 36 | } 37 | }) 38 | 39 | server.get('/login', async (req, res) => { 40 | const [, hash] = req.headers.authorization.split(' ') 41 | const [email, password] = Buffer.from(hash, 'base64') 42 | .toString() 43 | .split(':') 44 | 45 | try { 46 | const user = await UserModel.findOne({ email, password }) 47 | 48 | if (!user) { 49 | return res.send(401) 50 | } 51 | 52 | const token = jwt.sign({ user: user.id }) 53 | 54 | res.send({ user, token }) 55 | } catch (error) { 56 | res.send(error) 57 | } 58 | }) 59 | 60 | server.get('/users', authMiddleware, async (req, res) => { 61 | try { 62 | const users = await UserModel.find() 63 | res.send(users) 64 | } catch (error) { 65 | res.send(error) 66 | } 67 | }) 68 | 69 | server.get('/me', authMiddleware, (req, res) => { 70 | res.send(req.auth) 71 | }) 72 | 73 | server.start() 74 | -------------------------------------------------------------------------------- /models/user.js: -------------------------------------------------------------------------------- 1 | import mongoose from 'mongoose' 2 | import crypto from 'crypto' 3 | 4 | const schema = new mongoose.Schema( 5 | { 6 | name: { 7 | type: String, 8 | required: true, 9 | }, 10 | 11 | email: { 12 | type: String, 13 | required: true, 14 | unique: true, 15 | lowercase: true, 16 | trim: true, 17 | }, 18 | 19 | password: { 20 | type: String, 21 | required: true, 22 | select: false, 23 | set: value => 24 | crypto 25 | .createHash('md5') 26 | .update(value) 27 | .digest('hex'), 28 | }, 29 | }, 30 | { 31 | timestamps: true, 32 | toJSON: { virtuals: true, getters: true }, 33 | toObject: { virtuals: true, getters: true }, 34 | } 35 | ) 36 | export const UserModel = mongoose.model('User', schema) 37 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lesson-node-auth", 3 | "version": "0.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "nodemon -- -r esm -r dotenv/config index.js" 8 | }, 9 | "dependencies": { 10 | "jsonwebtoken": "^8.5.1", 11 | "mongoose": "^5.8.3", 12 | "restify": "^8.5.1" 13 | }, 14 | "devDependencies": { 15 | "dotenv": "^8.2.0", 16 | "esm": "^3.2.25", 17 | "nodemon": "^2.0.2" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | requirePragma: false, 3 | printWidth: 80, 4 | tabWidth: 2, 5 | useTabs: false, 6 | semi: false, 7 | singleQuote: true, 8 | trailingComma: 'es5', 9 | bracketSpacing: true, 10 | jsxBracketSameLine: false, 11 | } 12 | -------------------------------------------------------------------------------- /setup/db.js: -------------------------------------------------------------------------------- 1 | import mongoose from 'mongoose' 2 | 3 | const { DB_USER, DB_PASS, DB_HOST, DB_PORT, DB_NAME } = process.env 4 | 5 | mongoose.connect( 6 | `mongodb://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}?authSource=admin`, 7 | { 8 | useNewUrlParser: true, 9 | } 10 | ) 11 | 12 | mongoose.connection.on('error', () => console.error('connection error:')) 13 | mongoose.connection.once('open', () => console.log('database connected')) 14 | -------------------------------------------------------------------------------- /setup/jwt.js: -------------------------------------------------------------------------------- 1 | import jwt from 'jsonwebtoken' 2 | 3 | const secret = 'iIsInR5cCI6IkpXVCJ9eyJhbGciOiJIUzI1N' 4 | 5 | export const sign = payload => jwt.sign(payload, secret, { expiresIn: 86400 }) 6 | export const verify = token => jwt.verify(token, secret) 7 | -------------------------------------------------------------------------------- /setup/server.js: -------------------------------------------------------------------------------- 1 | import restify from 'restify' 2 | 3 | export const server = restify.createServer() 4 | 5 | server.use(restify.plugins.queryParser({ mapParams: false, allowDots: true })) 6 | server.use(restify.plugins.bodyParser({ mapParams: false })) 7 | 8 | server.start = () => { 9 | server.listen(process.env.SERVER_PORT, () => console.log('Started')) 10 | return server 11 | } 12 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@netflix/nerror@^1.0.0": 6 | version "1.1.3" 7 | resolved "https://registry.yarnpkg.com/@netflix/nerror/-/nerror-1.1.3.tgz#9d88eccca442f1d544f2761d15ea557dc0a44ed2" 8 | integrity sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg== 9 | dependencies: 10 | assert-plus "^1.0.0" 11 | extsprintf "^1.4.0" 12 | lodash "^4.17.15" 13 | 14 | abbrev@1: 15 | version "1.1.1" 16 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 17 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 18 | 19 | ansi-align@^2.0.0: 20 | version "2.0.0" 21 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 22 | integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= 23 | dependencies: 24 | string-width "^2.0.0" 25 | 26 | ansi-regex@^3.0.0: 27 | version "3.0.0" 28 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 29 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 30 | 31 | ansi-styles@^3.2.1: 32 | version "3.2.1" 33 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 34 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 35 | dependencies: 36 | color-convert "^1.9.0" 37 | 38 | anymatch@~3.1.1: 39 | version "3.1.1" 40 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 41 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 42 | dependencies: 43 | normalize-path "^3.0.0" 44 | picomatch "^2.0.4" 45 | 46 | asn1@~0.2.3: 47 | version "0.2.4" 48 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" 49 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== 50 | dependencies: 51 | safer-buffer "~2.1.0" 52 | 53 | assert-plus@1.0.0, assert-plus@^1.0.0: 54 | version "1.0.0" 55 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 56 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 57 | 58 | balanced-match@^1.0.0: 59 | version "1.0.0" 60 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 61 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 62 | 63 | bcrypt-pbkdf@^1.0.0: 64 | version "1.0.2" 65 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 66 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= 67 | dependencies: 68 | tweetnacl "^0.14.3" 69 | 70 | binary-extensions@^2.0.0: 71 | version "2.0.0" 72 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" 73 | integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== 74 | 75 | bluebird@3.5.1: 76 | version "3.5.1" 77 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 78 | integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== 79 | 80 | boxen@^1.2.1: 81 | version "1.3.0" 82 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 83 | integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== 84 | dependencies: 85 | ansi-align "^2.0.0" 86 | camelcase "^4.0.0" 87 | chalk "^2.0.1" 88 | cli-boxes "^1.0.0" 89 | string-width "^2.0.0" 90 | term-size "^1.2.0" 91 | widest-line "^2.0.0" 92 | 93 | brace-expansion@^1.1.7: 94 | version "1.1.11" 95 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 96 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 97 | dependencies: 98 | balanced-match "^1.0.0" 99 | concat-map "0.0.1" 100 | 101 | braces@~3.0.2: 102 | version "3.0.2" 103 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 104 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 105 | dependencies: 106 | fill-range "^7.0.1" 107 | 108 | bson@^1.1.1, bson@~1.1.1: 109 | version "1.1.3" 110 | resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.3.tgz#aa82cb91f9a453aaa060d6209d0675114a8154d3" 111 | integrity sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg== 112 | 113 | buffer-equal-constant-time@1.0.1: 114 | version "1.0.1" 115 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 116 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 117 | 118 | bunyan@^1.8.12: 119 | version "1.8.12" 120 | resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" 121 | integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c= 122 | optionalDependencies: 123 | dtrace-provider "~0.8" 124 | moment "^2.10.6" 125 | mv "~2" 126 | safe-json-stringify "~1" 127 | 128 | camelcase@^4.0.0: 129 | version "4.1.0" 130 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 131 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= 132 | 133 | capture-stack-trace@^1.0.0: 134 | version "1.0.1" 135 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" 136 | integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== 137 | 138 | chalk@^2.0.1: 139 | version "2.4.2" 140 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 141 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 142 | dependencies: 143 | ansi-styles "^3.2.1" 144 | escape-string-regexp "^1.0.5" 145 | supports-color "^5.3.0" 146 | 147 | chokidar@^3.2.2: 148 | version "3.3.1" 149 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" 150 | integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== 151 | dependencies: 152 | anymatch "~3.1.1" 153 | braces "~3.0.2" 154 | glob-parent "~5.1.0" 155 | is-binary-path "~2.1.0" 156 | is-glob "~4.0.1" 157 | normalize-path "~3.0.0" 158 | readdirp "~3.3.0" 159 | optionalDependencies: 160 | fsevents "~2.1.2" 161 | 162 | ci-info@^1.5.0: 163 | version "1.6.0" 164 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 165 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== 166 | 167 | cli-boxes@^1.0.0: 168 | version "1.0.0" 169 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 170 | integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= 171 | 172 | color-convert@^1.9.0: 173 | version "1.9.3" 174 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 175 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 176 | dependencies: 177 | color-name "1.1.3" 178 | 179 | color-name@1.1.3: 180 | version "1.1.3" 181 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 182 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 183 | 184 | concat-map@0.0.1: 185 | version "0.0.1" 186 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 187 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 188 | 189 | configstore@^3.0.0: 190 | version "3.1.2" 191 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" 192 | integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== 193 | dependencies: 194 | dot-prop "^4.1.0" 195 | graceful-fs "^4.1.2" 196 | make-dir "^1.0.0" 197 | unique-string "^1.0.0" 198 | write-file-atomic "^2.0.0" 199 | xdg-basedir "^3.0.0" 200 | 201 | core-util-is@1.0.2, core-util-is@~1.0.0: 202 | version "1.0.2" 203 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 204 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 205 | 206 | create-error-class@^3.0.0: 207 | version "3.0.2" 208 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 209 | integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= 210 | dependencies: 211 | capture-stack-trace "^1.0.0" 212 | 213 | cross-spawn@^5.0.1: 214 | version "5.1.0" 215 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 216 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 217 | dependencies: 218 | lru-cache "^4.0.1" 219 | shebang-command "^1.2.0" 220 | which "^1.2.9" 221 | 222 | crypto-random-string@^1.0.0: 223 | version "1.0.0" 224 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 225 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= 226 | 227 | csv-generate@^3.2.4: 228 | version "3.2.4" 229 | resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.2.4.tgz#440dab9177339ee0676c9e5c16f50e2b3463c019" 230 | integrity sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA== 231 | 232 | csv-parse@^4.8.2: 233 | version "4.8.3" 234 | resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.8.3.tgz#9f9b66c3e7e30409dba3d08ecd89eaa04b320659" 235 | integrity sha512-0GPxubzYzSn08lhNTWDCkcDKn8krmw0WuscqB2RrW6sugGGskbwaaEz7PCFFwbQ0phNGTTieiyfzzu3S/jZZ7Q== 236 | 237 | csv-stringify@^5.3.4: 238 | version "5.3.6" 239 | resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.3.6.tgz#2655e2e1c01b97b3963bccbc9407b8fb876dc589" 240 | integrity sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw== 241 | 242 | csv@^5.1.1: 243 | version "5.3.1" 244 | resolved "https://registry.yarnpkg.com/csv/-/csv-5.3.1.tgz#8ceb548813182d3d76a13889878c6b06104927b0" 245 | integrity sha512-UBO4x5EYpihikfjHUQ7dCTIgC+e9TrWWZbCcoMr935tcAZfXT1MZKHLD+aYSHs1jwW2G1uljpFfJ4XxYwQ6t5w== 246 | dependencies: 247 | csv-generate "^3.2.4" 248 | csv-parse "^4.8.2" 249 | csv-stringify "^5.3.4" 250 | stream-transform "^2.0.1" 251 | 252 | dashdash@^1.12.0: 253 | version "1.14.1" 254 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 255 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 256 | dependencies: 257 | assert-plus "^1.0.0" 258 | 259 | debug@2.6.9, debug@^2.2.0: 260 | version "2.6.9" 261 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 262 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 263 | dependencies: 264 | ms "2.0.0" 265 | 266 | debug@3.1.0: 267 | version "3.1.0" 268 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 269 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 270 | dependencies: 271 | ms "2.0.0" 272 | 273 | debug@^3.2.6: 274 | version "3.2.6" 275 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 276 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 277 | dependencies: 278 | ms "^2.1.1" 279 | 280 | debug@^4.1.0: 281 | version "4.1.1" 282 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 283 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 284 | dependencies: 285 | ms "^2.1.1" 286 | 287 | deep-extend@^0.6.0: 288 | version "0.6.0" 289 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 290 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 291 | 292 | depd@~1.1.2: 293 | version "1.1.2" 294 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 295 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 296 | 297 | destroy@~1.0.4: 298 | version "1.0.4" 299 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 300 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 301 | 302 | detect-node@^2.0.4: 303 | version "2.0.4" 304 | resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" 305 | integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== 306 | 307 | dot-prop@^4.1.0: 308 | version "4.2.0" 309 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 310 | integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== 311 | dependencies: 312 | is-obj "^1.0.0" 313 | 314 | dotenv@^8.2.0: 315 | version "8.2.0" 316 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" 317 | integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== 318 | 319 | dtrace-provider@^0.8.1, dtrace-provider@~0.8: 320 | version "0.8.8" 321 | resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" 322 | integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg== 323 | dependencies: 324 | nan "^2.14.0" 325 | 326 | duplexer3@^0.1.4: 327 | version "0.1.4" 328 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 329 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 330 | 331 | ecc-jsbn@~0.1.1: 332 | version "0.1.2" 333 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 334 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= 335 | dependencies: 336 | jsbn "~0.1.0" 337 | safer-buffer "^2.1.0" 338 | 339 | ecdsa-sig-formatter@1.0.11: 340 | version "1.0.11" 341 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 342 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 343 | dependencies: 344 | safe-buffer "^5.0.1" 345 | 346 | ee-first@1.1.1: 347 | version "1.1.1" 348 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 349 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 350 | 351 | encodeurl@~1.0.2: 352 | version "1.0.2" 353 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 354 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 355 | 356 | escape-html@~1.0.3: 357 | version "1.0.3" 358 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 359 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 360 | 361 | escape-regexp-component@^1.0.2: 362 | version "1.0.2" 363 | resolved "https://registry.yarnpkg.com/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz#9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2" 364 | integrity sha1-nGO20LJf8qiMOtvRjFthrMO5+qI= 365 | 366 | escape-string-regexp@^1.0.5: 367 | version "1.0.5" 368 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 369 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 370 | 371 | esm@^3.2.25: 372 | version "3.2.25" 373 | resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" 374 | integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== 375 | 376 | etag@~1.8.1: 377 | version "1.8.1" 378 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 379 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 380 | 381 | ewma@^2.0.1: 382 | version "2.0.1" 383 | resolved "https://registry.yarnpkg.com/ewma/-/ewma-2.0.1.tgz#9876c1c491ac5733c8666001a3961a04c97cf1e8" 384 | integrity sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw== 385 | dependencies: 386 | assert-plus "^1.0.0" 387 | 388 | execa@^0.7.0: 389 | version "0.7.0" 390 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 391 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= 392 | dependencies: 393 | cross-spawn "^5.0.1" 394 | get-stream "^3.0.0" 395 | is-stream "^1.1.0" 396 | npm-run-path "^2.0.0" 397 | p-finally "^1.0.0" 398 | signal-exit "^3.0.0" 399 | strip-eof "^1.0.0" 400 | 401 | extsprintf@1.3.0: 402 | version "1.3.0" 403 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 404 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 405 | 406 | extsprintf@^1.2.0, extsprintf@^1.4.0: 407 | version "1.4.0" 408 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 409 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= 410 | 411 | fast-decode-uri-component@^1.0.0: 412 | version "1.0.1" 413 | resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" 414 | integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== 415 | 416 | fill-range@^7.0.1: 417 | version "7.0.1" 418 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 419 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 420 | dependencies: 421 | to-regex-range "^5.0.1" 422 | 423 | find-my-way@^2.0.1: 424 | version "2.2.1" 425 | resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-2.2.1.tgz#248e939243af1b9df368bcc9b8c8286306caae7d" 426 | integrity sha512-pzZA9/PlhDGG5PRzmd4vH4AbKW7FO68RE7q2I3NzjJHcVPukYbDA7bPdArg7ySKfS6pKki+qhrawFoN6aNZfjA== 427 | dependencies: 428 | fast-decode-uri-component "^1.0.0" 429 | safe-regex2 "^2.0.0" 430 | semver-store "^0.3.0" 431 | 432 | formidable@^1.2.1: 433 | version "1.2.1" 434 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" 435 | integrity sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg== 436 | 437 | fresh@0.5.2: 438 | version "0.5.2" 439 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 440 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 441 | 442 | fsevents@~2.1.2: 443 | version "2.1.2" 444 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" 445 | integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== 446 | 447 | get-stream@^3.0.0: 448 | version "3.0.0" 449 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 450 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 451 | 452 | getpass@^0.1.1: 453 | version "0.1.7" 454 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 455 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 456 | dependencies: 457 | assert-plus "^1.0.0" 458 | 459 | glob-parent@~5.1.0: 460 | version "5.1.0" 461 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" 462 | integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== 463 | dependencies: 464 | is-glob "^4.0.1" 465 | 466 | glob@^6.0.1: 467 | version "6.0.4" 468 | resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" 469 | integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= 470 | dependencies: 471 | inflight "^1.0.4" 472 | inherits "2" 473 | minimatch "2 || 3" 474 | once "^1.3.0" 475 | path-is-absolute "^1.0.0" 476 | 477 | global-dirs@^0.1.0: 478 | version "0.1.1" 479 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 480 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= 481 | dependencies: 482 | ini "^1.3.4" 483 | 484 | got@^6.7.1: 485 | version "6.7.1" 486 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 487 | integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= 488 | dependencies: 489 | create-error-class "^3.0.0" 490 | duplexer3 "^0.1.4" 491 | get-stream "^3.0.0" 492 | is-redirect "^1.0.0" 493 | is-retry-allowed "^1.0.0" 494 | is-stream "^1.0.0" 495 | lowercase-keys "^1.0.0" 496 | safe-buffer "^5.0.1" 497 | timed-out "^4.0.0" 498 | unzip-response "^2.0.1" 499 | url-parse-lax "^1.0.0" 500 | 501 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 502 | version "4.2.3" 503 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" 504 | integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== 505 | 506 | handle-thing@^2.0.0: 507 | version "2.0.0" 508 | resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" 509 | integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== 510 | 511 | has-flag@^3.0.0: 512 | version "3.0.0" 513 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 514 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 515 | 516 | hpack.js@^2.1.6: 517 | version "2.1.6" 518 | resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" 519 | integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= 520 | dependencies: 521 | inherits "^2.0.1" 522 | obuf "^1.0.0" 523 | readable-stream "^2.0.1" 524 | wbuf "^1.1.0" 525 | 526 | http-deceiver@^1.2.7: 527 | version "1.2.7" 528 | resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" 529 | integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= 530 | 531 | http-errors@~1.6.2: 532 | version "1.6.3" 533 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 534 | integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 535 | dependencies: 536 | depd "~1.1.2" 537 | inherits "2.0.3" 538 | setprototypeof "1.1.0" 539 | statuses ">= 1.4.0 < 2" 540 | 541 | http-signature@^1.2.0: 542 | version "1.3.1" 543 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.1.tgz#739fe2f8897ba84798e3e54b699a9008a8724ff9" 544 | integrity sha512-Y29YKEc8MQsjch/VzkUVJ+2MXd9WcR42fK5u36CZf4G8bXw2DXMTWuESiB0R6m59JAWxlPPw5/Fri/t/AyyueA== 545 | dependencies: 546 | assert-plus "^1.0.0" 547 | jsprim "^1.2.2" 548 | sshpk "^1.14.1" 549 | 550 | ignore-by-default@^1.0.1: 551 | version "1.0.1" 552 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 553 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 554 | 555 | import-lazy@^2.1.0: 556 | version "2.1.0" 557 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 558 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 559 | 560 | imurmurhash@^0.1.4: 561 | version "0.1.4" 562 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 563 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 564 | 565 | inflight@^1.0.4: 566 | version "1.0.6" 567 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 568 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 569 | dependencies: 570 | once "^1.3.0" 571 | wrappy "1" 572 | 573 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: 574 | version "2.0.4" 575 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 576 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 577 | 578 | inherits@2.0.3: 579 | version "2.0.3" 580 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 581 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 582 | 583 | ini@^1.3.4, ini@~1.3.0: 584 | version "1.3.5" 585 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 586 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== 587 | 588 | is-binary-path@~2.1.0: 589 | version "2.1.0" 590 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 591 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 592 | dependencies: 593 | binary-extensions "^2.0.0" 594 | 595 | is-ci@^1.0.10: 596 | version "1.2.1" 597 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 598 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== 599 | dependencies: 600 | ci-info "^1.5.0" 601 | 602 | is-extglob@^2.1.1: 603 | version "2.1.1" 604 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 605 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 606 | 607 | is-fullwidth-code-point@^2.0.0: 608 | version "2.0.0" 609 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 610 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 611 | 612 | is-glob@^4.0.1, is-glob@~4.0.1: 613 | version "4.0.1" 614 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 615 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 616 | dependencies: 617 | is-extglob "^2.1.1" 618 | 619 | is-installed-globally@^0.1.0: 620 | version "0.1.0" 621 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 622 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= 623 | dependencies: 624 | global-dirs "^0.1.0" 625 | is-path-inside "^1.0.0" 626 | 627 | is-npm@^1.0.0: 628 | version "1.0.0" 629 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 630 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= 631 | 632 | is-number@^7.0.0: 633 | version "7.0.0" 634 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 635 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 636 | 637 | is-obj@^1.0.0: 638 | version "1.0.1" 639 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 640 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= 641 | 642 | is-path-inside@^1.0.0: 643 | version "1.0.1" 644 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 645 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= 646 | dependencies: 647 | path-is-inside "^1.0.1" 648 | 649 | is-redirect@^1.0.0: 650 | version "1.0.0" 651 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 652 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= 653 | 654 | is-retry-allowed@^1.0.0: 655 | version "1.2.0" 656 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" 657 | integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== 658 | 659 | is-stream@^1.0.0, is-stream@^1.1.0: 660 | version "1.1.0" 661 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 662 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 663 | 664 | isarray@~1.0.0: 665 | version "1.0.0" 666 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 667 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 668 | 669 | isexe@^2.0.0: 670 | version "2.0.0" 671 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 672 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 673 | 674 | jsbn@~0.1.0: 675 | version "0.1.1" 676 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 677 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 678 | 679 | json-schema@0.2.3: 680 | version "0.2.3" 681 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 682 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 683 | 684 | jsonwebtoken@^8.5.1: 685 | version "8.5.1" 686 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" 687 | integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== 688 | dependencies: 689 | jws "^3.2.2" 690 | lodash.includes "^4.3.0" 691 | lodash.isboolean "^3.0.3" 692 | lodash.isinteger "^4.0.4" 693 | lodash.isnumber "^3.0.3" 694 | lodash.isplainobject "^4.0.6" 695 | lodash.isstring "^4.0.1" 696 | lodash.once "^4.0.0" 697 | ms "^2.1.1" 698 | semver "^5.6.0" 699 | 700 | jsprim@^1.2.2: 701 | version "1.4.1" 702 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 703 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 704 | dependencies: 705 | assert-plus "1.0.0" 706 | extsprintf "1.3.0" 707 | json-schema "0.2.3" 708 | verror "1.10.0" 709 | 710 | jwa@^1.4.1: 711 | version "1.4.1" 712 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 713 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 714 | dependencies: 715 | buffer-equal-constant-time "1.0.1" 716 | ecdsa-sig-formatter "1.0.11" 717 | safe-buffer "^5.0.1" 718 | 719 | jws@^3.2.2: 720 | version "3.2.2" 721 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 722 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 723 | dependencies: 724 | jwa "^1.4.1" 725 | safe-buffer "^5.0.1" 726 | 727 | kareem@2.3.1: 728 | version "2.3.1" 729 | resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87" 730 | integrity sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw== 731 | 732 | latest-version@^3.0.0: 733 | version "3.1.0" 734 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 735 | integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= 736 | dependencies: 737 | package-json "^4.0.0" 738 | 739 | lodash.includes@^4.3.0: 740 | version "4.3.0" 741 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 742 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= 743 | 744 | lodash.isboolean@^3.0.3: 745 | version "3.0.3" 746 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 747 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= 748 | 749 | lodash.isinteger@^4.0.4: 750 | version "4.0.4" 751 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 752 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= 753 | 754 | lodash.isnumber@^3.0.3: 755 | version "3.0.3" 756 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 757 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= 758 | 759 | lodash.isplainobject@^4.0.6: 760 | version "4.0.6" 761 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 762 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 763 | 764 | lodash.isstring@^4.0.1: 765 | version "4.0.1" 766 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 767 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= 768 | 769 | lodash.once@^4.0.0: 770 | version "4.1.1" 771 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 772 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 773 | 774 | lodash@^4.17.11, lodash@^4.17.15: 775 | version "4.17.15" 776 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 777 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== 778 | 779 | lowercase-keys@^1.0.0: 780 | version "1.0.1" 781 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 782 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 783 | 784 | lru-cache@^4.0.1: 785 | version "4.1.5" 786 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 787 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 788 | dependencies: 789 | pseudomap "^1.0.2" 790 | yallist "^2.1.2" 791 | 792 | lru-cache@^5.1.1: 793 | version "5.1.1" 794 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 795 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 796 | dependencies: 797 | yallist "^3.0.2" 798 | 799 | make-dir@^1.0.0: 800 | version "1.3.0" 801 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 802 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== 803 | dependencies: 804 | pify "^3.0.0" 805 | 806 | memory-pager@^1.0.2: 807 | version "1.5.0" 808 | resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" 809 | integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== 810 | 811 | mime@1.4.1: 812 | version "1.4.1" 813 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 814 | integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== 815 | 816 | mime@^2.4.3: 817 | version "2.4.4" 818 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" 819 | integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== 820 | 821 | minimalistic-assert@^1.0.0: 822 | version "1.0.1" 823 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 824 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 825 | 826 | "minimatch@2 || 3", minimatch@^3.0.4: 827 | version "3.0.4" 828 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 829 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 830 | dependencies: 831 | brace-expansion "^1.1.7" 832 | 833 | minimist@0.0.8: 834 | version "0.0.8" 835 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 836 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 837 | 838 | minimist@^1.2.0: 839 | version "1.2.0" 840 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 841 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 842 | 843 | mixme@^0.3.1: 844 | version "0.3.5" 845 | resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.3.5.tgz#304652cdaf24a3df0487205e61ac6162c6906ddd" 846 | integrity sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ== 847 | 848 | mkdirp@~0.5.1: 849 | version "0.5.1" 850 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 851 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 852 | dependencies: 853 | minimist "0.0.8" 854 | 855 | moment@^2.10.6: 856 | version "2.24.0" 857 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" 858 | integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== 859 | 860 | mongodb@3.4.1: 861 | version "3.4.1" 862 | resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.4.1.tgz#0d15e57e0ea0fc85b7a4fb9291b374c2e71652dc" 863 | integrity sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA== 864 | dependencies: 865 | bson "^1.1.1" 866 | require_optional "^1.0.1" 867 | safe-buffer "^5.1.2" 868 | optionalDependencies: 869 | saslprep "^1.0.0" 870 | 871 | mongoose-legacy-pluralize@1.0.2: 872 | version "1.0.2" 873 | resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" 874 | integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ== 875 | 876 | mongoose@^5.8.3: 877 | version "5.8.3" 878 | resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.8.3.tgz#0b5fff9702e2d36caa20bd6d8a6dfcb30942bcc7" 879 | integrity sha512-WnO4WJ8eZ5Hgwp11Gl2dOxkWYJe8xV7oCqDV3ZbTA7j2q1prc0lPWAd9ZK5R6OhQlp55CleEZXqXUPrZnjSEDQ== 880 | dependencies: 881 | bson "~1.1.1" 882 | kareem "2.3.1" 883 | mongodb "3.4.1" 884 | mongoose-legacy-pluralize "1.0.2" 885 | mpath "0.6.0" 886 | mquery "3.2.2" 887 | ms "2.1.2" 888 | regexp-clone "1.0.0" 889 | safe-buffer "5.1.2" 890 | sift "7.0.1" 891 | sliced "1.0.1" 892 | 893 | mpath@0.6.0: 894 | version "0.6.0" 895 | resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.6.0.tgz#aa922029fca4f0f641f360e74c5c1b6a4c47078e" 896 | integrity sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw== 897 | 898 | mquery@3.2.2: 899 | version "3.2.2" 900 | resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.2.2.tgz#e1383a3951852ce23e37f619a9b350f1fb3664e7" 901 | integrity sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q== 902 | dependencies: 903 | bluebird "3.5.1" 904 | debug "3.1.0" 905 | regexp-clone "^1.0.0" 906 | safe-buffer "5.1.2" 907 | sliced "1.0.1" 908 | 909 | ms@2.0.0: 910 | version "2.0.0" 911 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 912 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 913 | 914 | ms@2.1.2, ms@^2.1.1: 915 | version "2.1.2" 916 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 917 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 918 | 919 | mv@~2: 920 | version "2.1.1" 921 | resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" 922 | integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= 923 | dependencies: 924 | mkdirp "~0.5.1" 925 | ncp "~2.0.0" 926 | rimraf "~2.4.0" 927 | 928 | nan@^2.14.0: 929 | version "2.14.0" 930 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" 931 | integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== 932 | 933 | ncp@~2.0.0: 934 | version "2.0.0" 935 | resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" 936 | integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= 937 | 938 | negotiator@^0.6.2: 939 | version "0.6.2" 940 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 941 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 942 | 943 | nodemon@^2.0.2: 944 | version "2.0.2" 945 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.2.tgz#9c7efeaaf9b8259295a97e5d4585ba8f0cbe50b0" 946 | integrity sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw== 947 | dependencies: 948 | chokidar "^3.2.2" 949 | debug "^3.2.6" 950 | ignore-by-default "^1.0.1" 951 | minimatch "^3.0.4" 952 | pstree.remy "^1.1.7" 953 | semver "^5.7.1" 954 | supports-color "^5.5.0" 955 | touch "^3.1.0" 956 | undefsafe "^2.0.2" 957 | update-notifier "^2.5.0" 958 | 959 | nopt@~1.0.10: 960 | version "1.0.10" 961 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 962 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 963 | dependencies: 964 | abbrev "1" 965 | 966 | normalize-path@^3.0.0, normalize-path@~3.0.0: 967 | version "3.0.0" 968 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 969 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 970 | 971 | npm-run-path@^2.0.0: 972 | version "2.0.2" 973 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 974 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 975 | dependencies: 976 | path-key "^2.0.0" 977 | 978 | obuf@^1.0.0, obuf@^1.1.2: 979 | version "1.1.2" 980 | resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" 981 | integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== 982 | 983 | on-finished@~2.3.0: 984 | version "2.3.0" 985 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 986 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 987 | dependencies: 988 | ee-first "1.1.1" 989 | 990 | once@^1.3.0, once@^1.4.0: 991 | version "1.4.0" 992 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 993 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 994 | dependencies: 995 | wrappy "1" 996 | 997 | p-finally@^1.0.0: 998 | version "1.0.0" 999 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1000 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1001 | 1002 | package-json@^4.0.0: 1003 | version "4.0.1" 1004 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 1005 | integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= 1006 | dependencies: 1007 | got "^6.7.1" 1008 | registry-auth-token "^3.0.1" 1009 | registry-url "^3.0.3" 1010 | semver "^5.1.0" 1011 | 1012 | path-is-absolute@^1.0.0: 1013 | version "1.0.1" 1014 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1015 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1016 | 1017 | path-is-inside@^1.0.1: 1018 | version "1.0.2" 1019 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1020 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 1021 | 1022 | path-key@^2.0.0: 1023 | version "2.0.1" 1024 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1025 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1026 | 1027 | picomatch@^2.0.4, picomatch@^2.0.7: 1028 | version "2.1.1" 1029 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5" 1030 | integrity sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA== 1031 | 1032 | pidusage@^2.0.17: 1033 | version "2.0.17" 1034 | resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-2.0.17.tgz#6b4a2b4a09026f0e9828f7e5627837e4c0672581" 1035 | integrity sha512-N8X5v18rBmlBoArfS83vrnD0gIFyZkXEo7a5pAS2aT0i2OLVymFb2AzVg+v8l/QcXnE1JwZcaXR8daJcoJqtjw== 1036 | dependencies: 1037 | safe-buffer "^5.1.2" 1038 | 1039 | pify@^3.0.0: 1040 | version "3.0.0" 1041 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1042 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 1043 | 1044 | prepend-http@^1.0.1: 1045 | version "1.0.4" 1046 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 1047 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= 1048 | 1049 | process-nextick-args@~2.0.0: 1050 | version "2.0.1" 1051 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1052 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1053 | 1054 | pseudomap@^1.0.2: 1055 | version "1.0.2" 1056 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1057 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 1058 | 1059 | pstree.remy@^1.1.7: 1060 | version "1.1.7" 1061 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" 1062 | integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A== 1063 | 1064 | qs@^6.7.0: 1065 | version "6.9.1" 1066 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" 1067 | integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== 1068 | 1069 | range-parser@~1.2.0: 1070 | version "1.2.1" 1071 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1072 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1073 | 1074 | rc@^1.0.1, rc@^1.1.6: 1075 | version "1.2.8" 1076 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 1077 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 1078 | dependencies: 1079 | deep-extend "^0.6.0" 1080 | ini "~1.3.0" 1081 | minimist "^1.2.0" 1082 | strip-json-comments "~2.0.1" 1083 | 1084 | readable-stream@^2.0.1: 1085 | version "2.3.6" 1086 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1087 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== 1088 | dependencies: 1089 | core-util-is "~1.0.0" 1090 | inherits "~2.0.3" 1091 | isarray "~1.0.0" 1092 | process-nextick-args "~2.0.0" 1093 | safe-buffer "~5.1.1" 1094 | string_decoder "~1.1.1" 1095 | util-deprecate "~1.0.1" 1096 | 1097 | readable-stream@^3.0.6: 1098 | version "3.4.0" 1099 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" 1100 | integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== 1101 | dependencies: 1102 | inherits "^2.0.3" 1103 | string_decoder "^1.1.1" 1104 | util-deprecate "^1.0.1" 1105 | 1106 | readdirp@~3.3.0: 1107 | version "3.3.0" 1108 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" 1109 | integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== 1110 | dependencies: 1111 | picomatch "^2.0.7" 1112 | 1113 | regexp-clone@1.0.0, regexp-clone@^1.0.0: 1114 | version "1.0.0" 1115 | resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" 1116 | integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== 1117 | 1118 | registry-auth-token@^3.0.1: 1119 | version "3.4.0" 1120 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" 1121 | integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== 1122 | dependencies: 1123 | rc "^1.1.6" 1124 | safe-buffer "^5.0.1" 1125 | 1126 | registry-url@^3.0.3: 1127 | version "3.1.0" 1128 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1129 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= 1130 | dependencies: 1131 | rc "^1.0.1" 1132 | 1133 | require_optional@^1.0.1: 1134 | version "1.0.1" 1135 | resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" 1136 | integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g== 1137 | dependencies: 1138 | resolve-from "^2.0.0" 1139 | semver "^5.1.0" 1140 | 1141 | resolve-from@^2.0.0: 1142 | version "2.0.0" 1143 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 1144 | integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= 1145 | 1146 | restify-errors@^8.0.2: 1147 | version "8.0.2" 1148 | resolved "https://registry.yarnpkg.com/restify-errors/-/restify-errors-8.0.2.tgz#0b9678738e37888e4fefe52aa6ee92771ec954e9" 1149 | integrity sha512-UsXUVQo7M26xoQzeUcZQ0+H8L2t9DGzrXcAgR3WB/1vnbl+UdI4tZ1PqYsN+sS5WnqHKZ0Xy9w0CKf83bbrwYA== 1150 | dependencies: 1151 | "@netflix/nerror" "^1.0.0" 1152 | assert-plus "^1.0.0" 1153 | lodash "^4.17.15" 1154 | optionalDependencies: 1155 | safe-json-stringify "^1.0.4" 1156 | 1157 | restify@^8.5.1: 1158 | version "8.5.1" 1159 | resolved "https://registry.yarnpkg.com/restify/-/restify-8.5.1.tgz#1cbab41ef6a0990e7abac62a5b12182f591c1a0c" 1160 | integrity sha512-g+xciouvSDg2vmCZuCinztt2mvQynCfnGIE1y8vMjfcUrjBo4AP8DJ9RNheu0mdGpiI0cMoCHYA/GdZ3TEW+DA== 1161 | dependencies: 1162 | assert-plus "^1.0.0" 1163 | bunyan "^1.8.12" 1164 | csv "^5.1.1" 1165 | escape-regexp-component "^1.0.2" 1166 | ewma "^2.0.1" 1167 | find-my-way "^2.0.1" 1168 | formidable "^1.2.1" 1169 | http-signature "^1.2.0" 1170 | lodash "^4.17.11" 1171 | lru-cache "^5.1.1" 1172 | mime "^2.4.3" 1173 | negotiator "^0.6.2" 1174 | once "^1.4.0" 1175 | pidusage "^2.0.17" 1176 | qs "^6.7.0" 1177 | restify-errors "^8.0.2" 1178 | semver "^6.1.1" 1179 | send "^0.16.2" 1180 | spdy "^4.0.0" 1181 | uuid "^3.3.2" 1182 | vasync "^2.2.0" 1183 | optionalDependencies: 1184 | dtrace-provider "^0.8.1" 1185 | 1186 | ret@~0.2.0: 1187 | version "0.2.2" 1188 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" 1189 | integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== 1190 | 1191 | rimraf@~2.4.0: 1192 | version "2.4.5" 1193 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" 1194 | integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= 1195 | dependencies: 1196 | glob "^6.0.1" 1197 | 1198 | safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1199 | version "5.1.2" 1200 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1201 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1202 | 1203 | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: 1204 | version "5.2.0" 1205 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" 1206 | integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== 1207 | 1208 | safe-json-stringify@^1.0.4, safe-json-stringify@~1: 1209 | version "1.2.0" 1210 | resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" 1211 | integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== 1212 | 1213 | safe-regex2@^2.0.0: 1214 | version "2.0.0" 1215 | resolved "https://registry.yarnpkg.com/safe-regex2/-/safe-regex2-2.0.0.tgz#b287524c397c7a2994470367e0185e1916b1f5b9" 1216 | integrity sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ== 1217 | dependencies: 1218 | ret "~0.2.0" 1219 | 1220 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 1221 | version "2.1.2" 1222 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1223 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1224 | 1225 | saslprep@^1.0.0: 1226 | version "1.0.3" 1227 | resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" 1228 | integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== 1229 | dependencies: 1230 | sparse-bitfield "^3.0.3" 1231 | 1232 | select-hose@^2.0.0: 1233 | version "2.0.0" 1234 | resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" 1235 | integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= 1236 | 1237 | semver-diff@^2.0.0: 1238 | version "2.1.0" 1239 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1240 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= 1241 | dependencies: 1242 | semver "^5.0.3" 1243 | 1244 | semver-store@^0.3.0: 1245 | version "0.3.0" 1246 | resolved "https://registry.yarnpkg.com/semver-store/-/semver-store-0.3.0.tgz#ce602ff07df37080ec9f4fb40b29576547befbe9" 1247 | integrity sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg== 1248 | 1249 | semver@^5.0.3, semver@^5.1.0, semver@^5.6.0, semver@^5.7.1: 1250 | version "5.7.1" 1251 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1252 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1253 | 1254 | semver@^6.1.1: 1255 | version "6.3.0" 1256 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1257 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1258 | 1259 | send@^0.16.2: 1260 | version "0.16.2" 1261 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 1262 | integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== 1263 | dependencies: 1264 | debug "2.6.9" 1265 | depd "~1.1.2" 1266 | destroy "~1.0.4" 1267 | encodeurl "~1.0.2" 1268 | escape-html "~1.0.3" 1269 | etag "~1.8.1" 1270 | fresh "0.5.2" 1271 | http-errors "~1.6.2" 1272 | mime "1.4.1" 1273 | ms "2.0.0" 1274 | on-finished "~2.3.0" 1275 | range-parser "~1.2.0" 1276 | statuses "~1.4.0" 1277 | 1278 | setprototypeof@1.1.0: 1279 | version "1.1.0" 1280 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1281 | integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 1282 | 1283 | shebang-command@^1.2.0: 1284 | version "1.2.0" 1285 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1286 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1287 | dependencies: 1288 | shebang-regex "^1.0.0" 1289 | 1290 | shebang-regex@^1.0.0: 1291 | version "1.0.0" 1292 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1293 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1294 | 1295 | sift@7.0.1: 1296 | version "7.0.1" 1297 | resolved "https://registry.yarnpkg.com/sift/-/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08" 1298 | integrity sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g== 1299 | 1300 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1301 | version "3.0.2" 1302 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1303 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 1304 | 1305 | sliced@1.0.1: 1306 | version "1.0.1" 1307 | resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" 1308 | integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= 1309 | 1310 | sparse-bitfield@^3.0.3: 1311 | version "3.0.3" 1312 | resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" 1313 | integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= 1314 | dependencies: 1315 | memory-pager "^1.0.2" 1316 | 1317 | spdy-transport@^3.0.0: 1318 | version "3.0.0" 1319 | resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" 1320 | integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== 1321 | dependencies: 1322 | debug "^4.1.0" 1323 | detect-node "^2.0.4" 1324 | hpack.js "^2.1.6" 1325 | obuf "^1.1.2" 1326 | readable-stream "^3.0.6" 1327 | wbuf "^1.7.3" 1328 | 1329 | spdy@^4.0.0: 1330 | version "4.0.1" 1331 | resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" 1332 | integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== 1333 | dependencies: 1334 | debug "^4.1.0" 1335 | handle-thing "^2.0.0" 1336 | http-deceiver "^1.2.7" 1337 | select-hose "^2.0.0" 1338 | spdy-transport "^3.0.0" 1339 | 1340 | sshpk@^1.14.1: 1341 | version "1.16.1" 1342 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" 1343 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== 1344 | dependencies: 1345 | asn1 "~0.2.3" 1346 | assert-plus "^1.0.0" 1347 | bcrypt-pbkdf "^1.0.0" 1348 | dashdash "^1.12.0" 1349 | ecc-jsbn "~0.1.1" 1350 | getpass "^0.1.1" 1351 | jsbn "~0.1.0" 1352 | safer-buffer "^2.0.2" 1353 | tweetnacl "~0.14.0" 1354 | 1355 | "statuses@>= 1.4.0 < 2": 1356 | version "1.5.0" 1357 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1358 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1359 | 1360 | statuses@~1.4.0: 1361 | version "1.4.0" 1362 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 1363 | integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== 1364 | 1365 | stream-transform@^2.0.1: 1366 | version "2.0.1" 1367 | resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.0.1.tgz#112ef2b4d8b9b517f9a6994b0bf7b946fa4d51bc" 1368 | integrity sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw== 1369 | dependencies: 1370 | mixme "^0.3.1" 1371 | 1372 | string-width@^2.0.0, string-width@^2.1.1: 1373 | version "2.1.1" 1374 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1375 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1376 | dependencies: 1377 | is-fullwidth-code-point "^2.0.0" 1378 | strip-ansi "^4.0.0" 1379 | 1380 | string_decoder@^1.1.1: 1381 | version "1.3.0" 1382 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1383 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1384 | dependencies: 1385 | safe-buffer "~5.2.0" 1386 | 1387 | string_decoder@~1.1.1: 1388 | version "1.1.1" 1389 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1390 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1391 | dependencies: 1392 | safe-buffer "~5.1.0" 1393 | 1394 | strip-ansi@^4.0.0: 1395 | version "4.0.0" 1396 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1397 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1398 | dependencies: 1399 | ansi-regex "^3.0.0" 1400 | 1401 | strip-eof@^1.0.0: 1402 | version "1.0.0" 1403 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1404 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 1405 | 1406 | strip-json-comments@~2.0.1: 1407 | version "2.0.1" 1408 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1409 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1410 | 1411 | supports-color@^5.3.0, supports-color@^5.5.0: 1412 | version "5.5.0" 1413 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1414 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1415 | dependencies: 1416 | has-flag "^3.0.0" 1417 | 1418 | term-size@^1.2.0: 1419 | version "1.2.0" 1420 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 1421 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= 1422 | dependencies: 1423 | execa "^0.7.0" 1424 | 1425 | timed-out@^4.0.0: 1426 | version "4.0.1" 1427 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 1428 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= 1429 | 1430 | to-regex-range@^5.0.1: 1431 | version "5.0.1" 1432 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1433 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1434 | dependencies: 1435 | is-number "^7.0.0" 1436 | 1437 | touch@^3.1.0: 1438 | version "3.1.0" 1439 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 1440 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 1441 | dependencies: 1442 | nopt "~1.0.10" 1443 | 1444 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1445 | version "0.14.5" 1446 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1447 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 1448 | 1449 | undefsafe@^2.0.2: 1450 | version "2.0.2" 1451 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" 1452 | integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= 1453 | dependencies: 1454 | debug "^2.2.0" 1455 | 1456 | unique-string@^1.0.0: 1457 | version "1.0.0" 1458 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 1459 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= 1460 | dependencies: 1461 | crypto-random-string "^1.0.0" 1462 | 1463 | unzip-response@^2.0.1: 1464 | version "2.0.1" 1465 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 1466 | integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= 1467 | 1468 | update-notifier@^2.5.0: 1469 | version "2.5.0" 1470 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 1471 | integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== 1472 | dependencies: 1473 | boxen "^1.2.1" 1474 | chalk "^2.0.1" 1475 | configstore "^3.0.0" 1476 | import-lazy "^2.1.0" 1477 | is-ci "^1.0.10" 1478 | is-installed-globally "^0.1.0" 1479 | is-npm "^1.0.0" 1480 | latest-version "^3.0.0" 1481 | semver-diff "^2.0.0" 1482 | xdg-basedir "^3.0.0" 1483 | 1484 | url-parse-lax@^1.0.0: 1485 | version "1.0.0" 1486 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 1487 | integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= 1488 | dependencies: 1489 | prepend-http "^1.0.1" 1490 | 1491 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 1492 | version "1.0.2" 1493 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1494 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1495 | 1496 | uuid@^3.3.2: 1497 | version "3.3.3" 1498 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" 1499 | integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== 1500 | 1501 | vasync@^2.2.0: 1502 | version "2.2.0" 1503 | resolved "https://registry.yarnpkg.com/vasync/-/vasync-2.2.0.tgz#cfde751860a15822db3b132bc59b116a4adaf01b" 1504 | integrity sha1-z951GGChWCLbOxMrxZsRakra8Bs= 1505 | dependencies: 1506 | verror "1.10.0" 1507 | 1508 | verror@1.10.0: 1509 | version "1.10.0" 1510 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1511 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 1512 | dependencies: 1513 | assert-plus "^1.0.0" 1514 | core-util-is "1.0.2" 1515 | extsprintf "^1.2.0" 1516 | 1517 | wbuf@^1.1.0, wbuf@^1.7.3: 1518 | version "1.7.3" 1519 | resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" 1520 | integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== 1521 | dependencies: 1522 | minimalistic-assert "^1.0.0" 1523 | 1524 | which@^1.2.9: 1525 | version "1.3.1" 1526 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1527 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1528 | dependencies: 1529 | isexe "^2.0.0" 1530 | 1531 | widest-line@^2.0.0: 1532 | version "2.0.1" 1533 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" 1534 | integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== 1535 | dependencies: 1536 | string-width "^2.1.1" 1537 | 1538 | wrappy@1: 1539 | version "1.0.2" 1540 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1541 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1542 | 1543 | write-file-atomic@^2.0.0: 1544 | version "2.4.3" 1545 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" 1546 | integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== 1547 | dependencies: 1548 | graceful-fs "^4.1.11" 1549 | imurmurhash "^0.1.4" 1550 | signal-exit "^3.0.2" 1551 | 1552 | xdg-basedir@^3.0.0: 1553 | version "3.0.0" 1554 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 1555 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= 1556 | 1557 | yallist@^2.1.2: 1558 | version "2.1.2" 1559 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1560 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 1561 | 1562 | yallist@^3.0.2: 1563 | version "3.1.1" 1564 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1565 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1566 | --------------------------------------------------------------------------------