修正头像上传
This commit is contained in:
		
							
								
								
									
										1
									
								
								fmhub.js
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								fmhub.js
									
									
									
									
									
								
							@@ -38,6 +38,7 @@ export default class fmhub {
 | 
				
			|||||||
    // 当终端结束了观看某个作品时. 要移除围观,
 | 
					    // 当终端结束了观看某个作品时. 要移除围观,
 | 
				
			||||||
    // 当终端断开连接时, 要移除围观
 | 
					    // 当终端断开连接时, 要移除围观
 | 
				
			||||||
    // 于是这也要一套关系绑定...
 | 
					    // 于是这也要一套关系绑定...
 | 
				
			||||||
 | 
					    // 同一浏览器的多个页面, 使用同一个 ws 连接
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  订阅频道(fid, uid) {
 | 
					  订阅频道(fid, uid) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										76
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								index.js
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
import nedb from 'nedb'
 | 
					import nedb from 'nedb'
 | 
				
			||||||
import express from 'express'
 | 
					import express, { query } from 'express'
 | 
				
			||||||
import expressWs from 'express-ws'
 | 
					import expressWs from 'express-ws'
 | 
				
			||||||
import session from 'express-session'
 | 
					import session from 'express-session'
 | 
				
			||||||
import sessionDb from 'express-session-nedb'
 | 
					import sessionDb from 'express-session-nedb'
 | 
				
			||||||
@@ -295,7 +295,7 @@ function object_patch(req, res, next) {
 | 
				
			|||||||
      // 执行通知所有关注者
 | 
					      // 执行通知所有关注者
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // 构建消息内容
 | 
					      // 构建消息内容
 | 
				
			||||||
      let data = { name: req.params.name, _id: req.params._id }
 | 
					      //let data = { name: req.params.name, _id: req.params._id }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // 如何加入订阅和取消订阅? 如何判断自己是否已经订阅?
 | 
					      // 如何加入订阅和取消订阅? 如何判断自己是否已经订阅?
 | 
				
			||||||
      // 关注了此对象的用户们(如果存在)
 | 
					      // 关注了此对象的用户们(如果存在)
 | 
				
			||||||
@@ -478,8 +478,24 @@ const file_upload = function (req, res) {
 | 
				
			|||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 头像上传
 | 
					const file_temp_list = new Map()
 | 
				
			||||||
const uploadavatar = function (req, res) {
 | 
					
 | 
				
			||||||
 | 
					const upload_file_temp = function (req, res) {
 | 
				
			||||||
 | 
					  formidable({
 | 
				
			||||||
 | 
					    multiples: true,
 | 
				
			||||||
 | 
					    uploadDir: 'data/file',
 | 
				
			||||||
 | 
					    keepExtensions: true,
 | 
				
			||||||
 | 
					    maxFieldsSize: 200 * 1024 * 1024
 | 
				
			||||||
 | 
					  }).parse(req, (err, fields, files) => {
 | 
				
			||||||
 | 
					    let image = files['image']
 | 
				
			||||||
 | 
					    if (image) (Array.isArray(image) ? image : [image]).forEach(item => {
 | 
				
			||||||
 | 
					      file_temp_list.set(item.newFilename, item) // 每帧图像记录到临时表
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 向账户上传文件 (头像, 背景, 其它文件)
 | 
				
			||||||
 | 
					const uploadfile = function (req, res) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let idable = formidable({
 | 
					  let idable = formidable({
 | 
				
			||||||
    multiples: true,
 | 
					    multiples: true,
 | 
				
			||||||
@@ -489,29 +505,37 @@ const uploadavatar = function (req, res) {
 | 
				
			|||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  idable.parse(req, (err, fields, files) => {
 | 
					  idable.parse(req, (err, fields, files) => {
 | 
				
			||||||
 | 
					 | 
				
			||||||
    let list = []
 | 
					 | 
				
			||||||
    for (let key in files) {
 | 
					 | 
				
			||||||
      (Array.isArray(files[key]) ? files[key] : [files[key]]).map((data) => {
 | 
					 | 
				
			||||||
        let { filepath, mimetype, newFilename, originalFilename, size } = data
 | 
					 | 
				
			||||||
        list.push({ filepath, mimetype, newFilename, originalFilename, size })
 | 
					 | 
				
			||||||
      })
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!list[0]) return res.status(400).send('未获得图像')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let avatar = '/data/file/' + list[0].newFilename
 | 
					 | 
				
			||||||
    let query = { _id: req.session.account.uid }
 | 
					    let query = { _id: req.session.account.uid }
 | 
				
			||||||
    let data = {
 | 
					
 | 
				
			||||||
 | 
					    // 针对特定对象处理上传字段(头像)
 | 
				
			||||||
 | 
					    let avatar = files["avatar"]
 | 
				
			||||||
 | 
					    if (avatar) {
 | 
				
			||||||
 | 
					      let list = (Array.isArray(avatar) ? avatar : [avatar])
 | 
				
			||||||
 | 
					      db('user').update(query, {
 | 
				
			||||||
        $addToSet: { file: { $each: list } },                  // 保存记录
 | 
					        $addToSet: { file: { $each: list } },                  // 保存记录
 | 
				
			||||||
      $set: { avatar },                     // 替换头像
 | 
					        $set: { avatar: '/data/file/' + list[0].newFilename }, // 替换头像
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    db('user').update(query, data, (err, count) => {
 | 
					    // 针对特定对象处理上传字段(背景图)
 | 
				
			||||||
      if (!count) return res.status(500).send('附件挂载对象失败')
 | 
					    let background = files["background"]
 | 
				
			||||||
      res.json({ ...list[0], avatar }) // 返回唯一图像
 | 
					    if (background) {
 | 
				
			||||||
 | 
					      let list = (Array.isArray(background) ? background : [background])
 | 
				
			||||||
 | 
					      db('user').update(query, {
 | 
				
			||||||
 | 
					        $addToSet: { file: { $each: list } },                      // 保存记录
 | 
				
			||||||
 | 
					        $set: { background: '/data/file/' + list[0].newFilename }, // 替换背景
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    //let list = []
 | 
				
			||||||
 | 
					    //for (let key in files) {
 | 
				
			||||||
 | 
					    //  console.log(key)
 | 
				
			||||||
 | 
					    //  console.log(files[key].originalFilename)
 | 
				
			||||||
 | 
					    //  //(Array.isArray(files[key]) ? files[key] : [files[key]]).map((data) => {
 | 
				
			||||||
 | 
					    //  //  let { filepath, mimetype, newFilename, originalFilename, size } = data
 | 
				
			||||||
 | 
					    //  //  list.push({ filepath, mimetype, newFilename, originalFilename, size })
 | 
				
			||||||
 | 
					    //  //})
 | 
				
			||||||
 | 
					    //}
 | 
				
			||||||
 | 
					    res.json(files)
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -535,18 +559,14 @@ function index_patch(req, res) {
 | 
				
			|||||||
  // 指定设定的目标类型
 | 
					  // 指定设定的目标类型
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 锁定后手动创建列表(管理员) {
 | 
					 | 
				
			||||||
//  
 | 
					 | 
				
			||||||
//}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const app = expressWs(express()).app
 | 
					const app = expressWs(express()).app
 | 
				
			||||||
app.use(express.json())
 | 
					app.use(express.json())
 | 
				
			||||||
app.use(express.urlencoded({ extended: false }))
 | 
					app.use(express.urlencoded({ extended: false }))
 | 
				
			||||||
app.use(session({ secret: 'kana', name: 'sid', resave: false, saveUninitialized: false, cookie: { maxAge: 180 * 24 * 3600000 }, store: session_store }))
 | 
					app.use(session({ secret: 'kana', name: 'sid', resave: false, saveUninitialized: false, cookie: { maxAge: 180 * 24 * 3600000 }, store: session_store }))
 | 
				
			||||||
app.use('/data/file/', express.static('data/file'))
 | 
					app.use('/data/file/', express.static('data/file'))
 | 
				
			||||||
app.ws('/', websocketer)
 | 
					app.ws('/', websocketer)
 | 
				
			||||||
app.route('/').get(index_get)  // (req, res) => res.send(`<DOCTYPE html><p> Hello World</p>`)
 | 
					app.route('/').get(index_get)
 | 
				
			||||||
app.route('/account').get(profile).post(online, uploadavatar)
 | 
					app.route('/account').get(profile).post(online, uploadfile)
 | 
				
			||||||
app.route('/session').get(online, session_list).post(session_create).delete(online, sessionDeleteSelf)
 | 
					app.route('/session').get(online, session_list).post(session_create).delete(online, sessionDeleteSelf)
 | 
				
			||||||
app.route('/session/:sid').delete(online, session_delete)
 | 
					app.route('/session/:sid').delete(online, session_delete)
 | 
				
			||||||
app.route('/:name').get(object_list).post(object_create).put(db_compact)
 | 
					app.route('/:name').get(object_list).post(object_create).put(db_compact)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,8 +14,10 @@
 | 
				
			|||||||
    "formidable": "^2.0.1",
 | 
					    "formidable": "^2.0.1",
 | 
				
			||||||
    "interrelated": "^2.0.0-0",
 | 
					    "interrelated": "^2.0.0-0",
 | 
				
			||||||
    "level": "^7.0.1",
 | 
					    "level": "^7.0.1",
 | 
				
			||||||
 | 
					    "md5": "^2.3.0",
 | 
				
			||||||
    "md5-node": "^1.0.1",
 | 
					    "md5-node": "^1.0.1",
 | 
				
			||||||
    "nedb": "^1.8.0",
 | 
					    "nedb": "^1.8.0",
 | 
				
			||||||
 | 
					    "request": "^2.88.2",
 | 
				
			||||||
    "string-random": "^0.1.3"
 | 
					    "string-random": "^0.1.3"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										61
									
								
								plugins/GravatarCache.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								plugins/GravatarCache.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Gravatar 头像缓存插件
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import md5 from 'md5'
 | 
				
			||||||
 | 
					import path from 'path'
 | 
				
			||||||
 | 
					import request from 'request'
 | 
				
			||||||
 | 
					import { createWriteStream, existsSync, mkdirSync } from 'fs'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const 镜像站列表 = [
 | 
				
			||||||
 | 
					  'gravatar.loli.net',    // loli.net
 | 
				
			||||||
 | 
					  'sdn.geekzu.org',       // 极客族公共加速服务
 | 
				
			||||||
 | 
					  'cravatar.cn',          // Cravatar - 中国的公共头像服务
 | 
				
			||||||
 | 
					  'gravatar.inwao.com',   // 「公益」Gravatar 韩国免费高速镜像源|支持负载均衡 - inwao blog
 | 
				
			||||||
 | 
					  'gravatar.loli.top',    // 自建Gravatar国内+全球镜像加速服务 | 城南旧事 (loli.top)
 | 
				
			||||||
 | 
					  'gravatar.zeruns.tech', // Gravatar头像介绍 镜像地址大全 - Zeruns's Blog
 | 
				
			||||||
 | 
					  'secure.gravatar.com',  // Gravatar 官网
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var 头像来源 = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function getGravatar(email, size) {
 | 
				
			||||||
 | 
					  let str = email ? md5(email.toLowerCase()) : 'default'
 | 
				
			||||||
 | 
					  let 本地路径 = './data/avatar/' + str + '.jpg'
 | 
				
			||||||
 | 
					  let 网络路径 = `https://${镜像站列表[头像来源]}/avatar/${str}.jpg?s=${size}&d=mm&r=g`
 | 
				
			||||||
 | 
					  if (!existsSync(本地路径)) {
 | 
				
			||||||
 | 
					    request(网络路径).on('error', function (err) {
 | 
				
			||||||
 | 
					      头像来源++
 | 
				
			||||||
 | 
					      if (镜像站列表.length <= 头像来源) {
 | 
				
			||||||
 | 
					        return console.log("下载头像失败, 使用默认头像")
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      getGravatar(email, size)
 | 
				
			||||||
 | 
					    }).pipe(createWriteStream(本地路径))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function 检查并创建目录(dirname) {
 | 
				
			||||||
 | 
					  if (existsSync(dirname)) {
 | 
				
			||||||
 | 
					    return true
 | 
				
			||||||
 | 
					  } else if (检查并创建目录(path.dirname(dirname))) {
 | 
				
			||||||
 | 
					    mkdirSync(dirname)
 | 
				
			||||||
 | 
					    return true
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return fasle
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  // 激活插件方法
 | 
				
			||||||
 | 
					  activate() {
 | 
				
			||||||
 | 
					    检查并创建目录('./data/avatar/')
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 禁用插件方法
 | 
				
			||||||
 | 
					  deactivate() {
 | 
				
			||||||
 | 
					    // 停用插件并删除目录
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 向头像获取方法插入替换
 | 
				
			||||||
 | 
					  getGravatar, // 获取头像(如果不存在自动从网络下载)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								plugins/comment.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								plugins/comment.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 博客评论插件
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default class {
 | 
				
			||||||
 | 
					  constructor() {
 | 
				
			||||||
 | 
					    // 初始化
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 发表一条评论
 | 
				
			||||||
 | 
					  // 获取某个主题的评论列表时, 隐藏未经审核的 SID
 | 
				
			||||||
 | 
					  // 在本地生成一个会话sid(非时间种子随机码), 发送评论时附上, 以及邮箱
 | 
				
			||||||
 | 
					  // 则服务端对相同的会话sid(已审核的)直接放行显示
 | 
				
			||||||
 | 
					  // 否则不放行
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										59
									
								
								plugins/file.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								plugins/file.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
				
			|||||||
 | 
					const FileListTemp = new Map()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  // 上传图像时
 | 
				
			||||||
 | 
					  upload(req, res) {
 | 
				
			||||||
 | 
					    formidable({
 | 
				
			||||||
 | 
					      multiples: true,
 | 
				
			||||||
 | 
					      uploadDir: 'data/file',
 | 
				
			||||||
 | 
					      keepExtensions: true,
 | 
				
			||||||
 | 
					      maxFieldsSize: 200 * 1024 * 1024
 | 
				
			||||||
 | 
					    }).parse(req, (err, fields, files) => {
 | 
				
			||||||
 | 
					      let data = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // 先处理图像的
 | 
				
			||||||
 | 
					      let image = files['image']
 | 
				
			||||||
 | 
					      if (image) {
 | 
				
			||||||
 | 
					        data.image = [];
 | 
				
			||||||
 | 
					        (Array.isArray(image) ? image : [image]).forEach(item => {
 | 
				
			||||||
 | 
					          file_temp_list.set(item.newFilename, item) // 每帧图像记录到临时表
 | 
				
			||||||
 | 
					          data.image.push(item)
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // 其它类型的文件另行处理
 | 
				
			||||||
 | 
					      let file = files['file']
 | 
				
			||||||
 | 
					      if (file) {
 | 
				
			||||||
 | 
					        data.file = [];
 | 
				
			||||||
 | 
					        (Array.isArray(file) ? file : [file]).forEach(item => {
 | 
				
			||||||
 | 
					          file_temp_list.set(item.newFilename, item)
 | 
				
			||||||
 | 
					          data.file.push(item)
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // 返回总记录
 | 
				
			||||||
 | 
					      res.json(data)
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 引用图像时
 | 
				
			||||||
 | 
					  // 返回文件记录, 并从 map 中移除
 | 
				
			||||||
 | 
					  // 将文件记录到对象的引用列表
 | 
				
			||||||
 | 
					  quote(filename) {
 | 
				
			||||||
 | 
					    let file = FileListTemp.get(filename)
 | 
				
			||||||
 | 
					    if (file) FileListTemp.delete(filename)
 | 
				
			||||||
 | 
					    return file
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 然后只需要定期清理未被引用的过期记录
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 终端的对象操作全部ID化, 因而不必有任何其它牵涉
 | 
				
			||||||
 | 
					// 如在设置头像时, 直接指定 account/avatar = image/id
 | 
				
			||||||
 | 
					// 剩余事务均由后端处理
 | 
				
			||||||
 | 
					// patch: /api/account/avatar
 | 
				
			||||||
 | 
					// {  }
 | 
				
			||||||
 | 
					// 获取本账户上传的所有头像
 | 
				
			||||||
 | 
					// 删除本账户上传的指定头像
 | 
				
			||||||
 | 
					// 设置头像为指定头像
 | 
				
			||||||
							
								
								
									
										7
									
								
								plugins/image.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								plugins/image.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  // 任意用户上传图像, 但仅被缓存一段时间
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 当提交引用不存在的图像时, 移除引用
 | 
				
			||||||
 | 
					  // 当提交引用已被引用的图像时, 增加引用计数
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										326
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										326
									
								
								yarn.lock
									
									
									
									
									
								
							@@ -22,6 +22,16 @@ accepts@~1.3.7:
 | 
				
			|||||||
    mime-types "~2.1.24"
 | 
					    mime-types "~2.1.24"
 | 
				
			||||||
    negotiator "0.6.2"
 | 
					    negotiator "0.6.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ajv@^6.12.3:
 | 
				
			||||||
 | 
					  version "6.12.6"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
 | 
				
			||||||
 | 
					  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    fast-deep-equal "^3.1.1"
 | 
				
			||||||
 | 
					    fast-json-stable-stringify "^2.0.0"
 | 
				
			||||||
 | 
					    json-schema-traverse "^0.4.1"
 | 
				
			||||||
 | 
					    uri-js "^4.2.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
array-flatten@1.1.1:
 | 
					array-flatten@1.1.1:
 | 
				
			||||||
  version "1.1.1"
 | 
					  version "1.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
 | 
					  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
 | 
				
			||||||
@@ -32,16 +42,50 @@ asap@^2.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
 | 
					  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
 | 
				
			||||||
  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
 | 
					  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					asn1@~0.2.3:
 | 
				
			||||||
 | 
					  version "0.2.6"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
 | 
				
			||||||
 | 
					  integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    safer-buffer "~2.1.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					assert-plus@1.0.0, assert-plus@^1.0.0:
 | 
				
			||||||
 | 
					  version "1.0.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
 | 
				
			||||||
 | 
					  integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async@0.2.10:
 | 
					async@0.2.10:
 | 
				
			||||||
  version "0.2.10"
 | 
					  version "0.2.10"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
 | 
					  resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
 | 
				
			||||||
  integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E=
 | 
					  integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					asynckit@^0.4.0:
 | 
				
			||||||
 | 
					  version "0.4.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
 | 
				
			||||||
 | 
					  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					aws-sign2@~0.7.0:
 | 
				
			||||||
 | 
					  version "0.7.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
 | 
				
			||||||
 | 
					  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					aws4@^1.8.0:
 | 
				
			||||||
 | 
					  version "1.11.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
 | 
				
			||||||
 | 
					  integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
base64-js@^1.3.1:
 | 
					base64-js@^1.3.1:
 | 
				
			||||||
  version "1.5.1"
 | 
					  version "1.5.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
 | 
					  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
 | 
				
			||||||
  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
 | 
					  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bcrypt-pbkdf@^1.0.0:
 | 
				
			||||||
 | 
					  version "1.0.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
 | 
				
			||||||
 | 
					  integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    tweetnacl "^0.14.3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
binary-search-tree@0.2.5:
 | 
					binary-search-tree@0.2.5:
 | 
				
			||||||
  version "0.2.5"
 | 
					  version "0.2.5"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784"
 | 
					  resolved "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784"
 | 
				
			||||||
@@ -78,11 +122,28 @@ bytes@3.1.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
 | 
					  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
 | 
				
			||||||
  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 | 
					  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					caseless@~0.12.0:
 | 
				
			||||||
 | 
					  version "0.12.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
 | 
				
			||||||
 | 
					  integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
catering@^2.0.0, catering@^2.1.0:
 | 
					catering@^2.0.0, catering@^2.1.0:
 | 
				
			||||||
  version "2.1.1"
 | 
					  version "2.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510"
 | 
					  resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510"
 | 
				
			||||||
  integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==
 | 
					  integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					charenc@0.0.2:
 | 
				
			||||||
 | 
					  version "0.0.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
 | 
				
			||||||
 | 
					  integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					combined-stream@^1.0.6, combined-stream@~1.0.6:
 | 
				
			||||||
 | 
					  version "1.0.8"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
 | 
				
			||||||
 | 
					  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    delayed-stream "~1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
content-disposition@0.5.3:
 | 
					content-disposition@0.5.3:
 | 
				
			||||||
  version "0.5.3"
 | 
					  version "0.5.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
 | 
					  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
 | 
				
			||||||
@@ -110,6 +171,23 @@ cookie@0.4.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
 | 
					  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
 | 
				
			||||||
  integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
 | 
					  integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					core-util-is@1.0.2:
 | 
				
			||||||
 | 
					  version "1.0.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
 | 
				
			||||||
 | 
					  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					crypt@0.0.2:
 | 
				
			||||||
 | 
					  version "0.0.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
 | 
				
			||||||
 | 
					  integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dashdash@^1.12.0:
 | 
				
			||||||
 | 
					  version "1.14.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
 | 
				
			||||||
 | 
					  integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    assert-plus "^1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
debug@2.6.9:
 | 
					debug@2.6.9:
 | 
				
			||||||
  version "2.6.9"
 | 
					  version "2.6.9"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
 | 
					  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
 | 
				
			||||||
@@ -125,6 +203,11 @@ deferred-leveldown@^7.0.0:
 | 
				
			|||||||
    abstract-leveldown "^7.2.0"
 | 
					    abstract-leveldown "^7.2.0"
 | 
				
			||||||
    inherits "^2.0.3"
 | 
					    inherits "^2.0.3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					delayed-stream@~1.0.0:
 | 
				
			||||||
 | 
					  version "1.0.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
 | 
				
			||||||
 | 
					  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
depd@~1.1.2:
 | 
					depd@~1.1.2:
 | 
				
			||||||
  version "1.1.2"
 | 
					  version "1.1.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
 | 
					  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
 | 
				
			||||||
@@ -148,6 +231,14 @@ dezalgo@1.0.3:
 | 
				
			|||||||
    asap "^2.0.0"
 | 
					    asap "^2.0.0"
 | 
				
			||||||
    wrappy "1"
 | 
					    wrappy "1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ecc-jsbn@~0.1.1:
 | 
				
			||||||
 | 
					  version "0.1.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
 | 
				
			||||||
 | 
					  integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    jsbn "~0.1.0"
 | 
				
			||||||
 | 
					    safer-buffer "^2.1.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ee-first@1.1.1:
 | 
					ee-first@1.1.1:
 | 
				
			||||||
  version "1.1.1"
 | 
					  version "1.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
 | 
					  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
 | 
				
			||||||
@@ -240,6 +331,31 @@ express@^4.17.1:
 | 
				
			|||||||
    utils-merge "1.0.1"
 | 
					    utils-merge "1.0.1"
 | 
				
			||||||
    vary "~1.1.2"
 | 
					    vary "~1.1.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extend@~3.0.2:
 | 
				
			||||||
 | 
					  version "3.0.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
 | 
				
			||||||
 | 
					  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extsprintf@1.3.0:
 | 
				
			||||||
 | 
					  version "1.3.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
 | 
				
			||||||
 | 
					  integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extsprintf@^1.2.0:
 | 
				
			||||||
 | 
					  version "1.4.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
 | 
				
			||||||
 | 
					  integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fast-deep-equal@^3.1.1:
 | 
				
			||||||
 | 
					  version "3.1.3"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
 | 
				
			||||||
 | 
					  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fast-json-stable-stringify@^2.0.0:
 | 
				
			||||||
 | 
					  version "2.1.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
 | 
				
			||||||
 | 
					  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
finalhandler@~1.1.2:
 | 
					finalhandler@~1.1.2:
 | 
				
			||||||
  version "1.1.2"
 | 
					  version "1.1.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
 | 
					  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
 | 
				
			||||||
@@ -253,6 +369,20 @@ finalhandler@~1.1.2:
 | 
				
			|||||||
    statuses "~1.5.0"
 | 
					    statuses "~1.5.0"
 | 
				
			||||||
    unpipe "~1.0.0"
 | 
					    unpipe "~1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					forever-agent@~0.6.1:
 | 
				
			||||||
 | 
					  version "0.6.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
 | 
				
			||||||
 | 
					  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					form-data@~2.3.2:
 | 
				
			||||||
 | 
					  version "2.3.3"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
 | 
				
			||||||
 | 
					  integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    asynckit "^0.4.0"
 | 
				
			||||||
 | 
					    combined-stream "^1.0.6"
 | 
				
			||||||
 | 
					    mime-types "^2.1.12"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
formidable@^2.0.1:
 | 
					formidable@^2.0.1:
 | 
				
			||||||
  version "2.0.1"
 | 
					  version "2.0.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff"
 | 
					  resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff"
 | 
				
			||||||
@@ -273,6 +403,26 @@ fresh@0.5.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
 | 
					  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
 | 
				
			||||||
  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
 | 
					  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getpass@^0.1.1:
 | 
				
			||||||
 | 
					  version "0.1.7"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
 | 
				
			||||||
 | 
					  integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    assert-plus "^1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					har-schema@^2.0.0:
 | 
				
			||||||
 | 
					  version "2.0.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
 | 
				
			||||||
 | 
					  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					har-validator@~5.1.3:
 | 
				
			||||||
 | 
					  version "5.1.5"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
 | 
				
			||||||
 | 
					  integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    ajv "^6.12.3"
 | 
				
			||||||
 | 
					    har-schema "^2.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hexoid@1.0.0:
 | 
					hexoid@1.0.0:
 | 
				
			||||||
  version "1.0.0"
 | 
					  version "1.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18"
 | 
					  resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18"
 | 
				
			||||||
@@ -300,6 +450,15 @@ http-errors@~1.7.2:
 | 
				
			|||||||
    statuses ">= 1.5.0 < 2"
 | 
					    statuses ">= 1.5.0 < 2"
 | 
				
			||||||
    toidentifier "1.0.0"
 | 
					    toidentifier "1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					http-signature@~1.2.0:
 | 
				
			||||||
 | 
					  version "1.2.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
 | 
				
			||||||
 | 
					  integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    assert-plus "^1.0.0"
 | 
				
			||||||
 | 
					    jsprim "^1.2.2"
 | 
				
			||||||
 | 
					    sshpk "^1.7.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
iconv-lite@0.4.24:
 | 
					iconv-lite@0.4.24:
 | 
				
			||||||
  version "0.4.24"
 | 
					  version "0.4.24"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
 | 
					  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
 | 
				
			||||||
@@ -342,6 +501,51 @@ is-buffer@^2.0.5:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
 | 
					  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
 | 
				
			||||||
  integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
 | 
					  integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					is-buffer@~1.1.6:
 | 
				
			||||||
 | 
					  version "1.1.6"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
 | 
				
			||||||
 | 
					  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					is-typedarray@~1.0.0:
 | 
				
			||||||
 | 
					  version "1.0.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
 | 
				
			||||||
 | 
					  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					isstream@~0.1.2:
 | 
				
			||||||
 | 
					  version "0.1.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
 | 
				
			||||||
 | 
					  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jsbn@~0.1.0:
 | 
				
			||||||
 | 
					  version "0.1.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
 | 
				
			||||||
 | 
					  integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					json-schema-traverse@^0.4.1:
 | 
				
			||||||
 | 
					  version "0.4.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
 | 
				
			||||||
 | 
					  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					json-schema@0.4.0:
 | 
				
			||||||
 | 
					  version "0.4.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
 | 
				
			||||||
 | 
					  integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					json-stringify-safe@~5.0.1:
 | 
				
			||||||
 | 
					  version "5.0.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
 | 
				
			||||||
 | 
					  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jsprim@^1.2.2:
 | 
				
			||||||
 | 
					  version "1.4.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
 | 
				
			||||||
 | 
					  integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    assert-plus "1.0.0"
 | 
				
			||||||
 | 
					    extsprintf "1.3.0"
 | 
				
			||||||
 | 
					    json-schema "0.4.0"
 | 
				
			||||||
 | 
					    verror "1.10.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
level-codec@^10.0.0:
 | 
					level-codec@^10.0.0:
 | 
				
			||||||
  version "10.0.0"
 | 
					  version "10.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-10.0.0.tgz#f9e892770532c6cdcc83529546730791b0c62c12"
 | 
					  resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-10.0.0.tgz#f9e892770532c6cdcc83529546730791b0c62c12"
 | 
				
			||||||
@@ -447,6 +651,15 @@ md5-node@^1.0.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/md5-node/-/md5-node-1.0.1.tgz#0e22d009d46bdc95b1d3c5e8c8feddc1a5c3aa88"
 | 
					  resolved "https://registry.yarnpkg.com/md5-node/-/md5-node-1.0.1.tgz#0e22d009d46bdc95b1d3c5e8c8feddc1a5c3aa88"
 | 
				
			||||||
  integrity sha1-DiLQCdRr3JWx08XoyP7dwaXDqog=
 | 
					  integrity sha1-DiLQCdRr3JWx08XoyP7dwaXDqog=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					md5@^2.3.0:
 | 
				
			||||||
 | 
					  version "2.3.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
 | 
				
			||||||
 | 
					  integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    charenc "0.0.2"
 | 
				
			||||||
 | 
					    crypt "0.0.2"
 | 
				
			||||||
 | 
					    is-buffer "~1.1.6"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
media-typer@0.3.0:
 | 
					media-typer@0.3.0:
 | 
				
			||||||
  version "0.3.0"
 | 
					  version "0.3.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
 | 
					  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
 | 
				
			||||||
@@ -467,7 +680,7 @@ mime-db@1.51.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
 | 
					  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
 | 
				
			||||||
  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
 | 
					  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mime-types@~2.1.24:
 | 
					mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
 | 
				
			||||||
  version "2.1.34"
 | 
					  version "2.1.34"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
 | 
					  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
 | 
				
			||||||
  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
 | 
					  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
 | 
				
			||||||
@@ -527,6 +740,11 @@ node-gyp-build@^4.3.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3"
 | 
					  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3"
 | 
				
			||||||
  integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==
 | 
					  integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					oauth-sign@~0.9.0:
 | 
				
			||||||
 | 
					  version "0.9.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
 | 
				
			||||||
 | 
					  integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
on-finished@~2.3.0:
 | 
					on-finished@~2.3.0:
 | 
				
			||||||
  version "2.3.0"
 | 
					  version "2.3.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
 | 
					  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
 | 
				
			||||||
@@ -556,6 +774,11 @@ path-to-regexp@0.1.7:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
 | 
					  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
 | 
				
			||||||
  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
 | 
					  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					performance-now@^2.1.0:
 | 
				
			||||||
 | 
					  version "2.1.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
 | 
				
			||||||
 | 
					  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
proxy-addr@~2.0.5:
 | 
					proxy-addr@~2.0.5:
 | 
				
			||||||
  version "2.0.7"
 | 
					  version "2.0.7"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
 | 
					  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
 | 
				
			||||||
@@ -564,6 +787,16 @@ proxy-addr@~2.0.5:
 | 
				
			|||||||
    forwarded "0.2.0"
 | 
					    forwarded "0.2.0"
 | 
				
			||||||
    ipaddr.js "1.9.1"
 | 
					    ipaddr.js "1.9.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					psl@^1.1.28:
 | 
				
			||||||
 | 
					  version "1.8.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
 | 
				
			||||||
 | 
					  integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					punycode@^2.1.0, punycode@^2.1.1:
 | 
				
			||||||
 | 
					  version "2.1.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
 | 
				
			||||||
 | 
					  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
qs@6.7.0:
 | 
					qs@6.7.0:
 | 
				
			||||||
  version "6.7.0"
 | 
					  version "6.7.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
 | 
					  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
 | 
				
			||||||
@@ -574,6 +807,11 @@ qs@6.9.3:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e"
 | 
					  resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e"
 | 
				
			||||||
  integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==
 | 
					  integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					qs@~6.5.2:
 | 
				
			||||||
 | 
					  version "6.5.3"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
 | 
				
			||||||
 | 
					  integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
queue-microtask@^1.2.2, queue-microtask@^1.2.3:
 | 
					queue-microtask@^1.2.2, queue-microtask@^1.2.3:
 | 
				
			||||||
  version "1.2.3"
 | 
					  version "1.2.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
 | 
					  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
 | 
				
			||||||
@@ -608,6 +846,32 @@ readable-stream@^3.4.0:
 | 
				
			|||||||
    string_decoder "^1.1.1"
 | 
					    string_decoder "^1.1.1"
 | 
				
			||||||
    util-deprecate "^1.0.1"
 | 
					    util-deprecate "^1.0.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					request@^2.88.2:
 | 
				
			||||||
 | 
					  version "2.88.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
 | 
				
			||||||
 | 
					  integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    aws-sign2 "~0.7.0"
 | 
				
			||||||
 | 
					    aws4 "^1.8.0"
 | 
				
			||||||
 | 
					    caseless "~0.12.0"
 | 
				
			||||||
 | 
					    combined-stream "~1.0.6"
 | 
				
			||||||
 | 
					    extend "~3.0.2"
 | 
				
			||||||
 | 
					    forever-agent "~0.6.1"
 | 
				
			||||||
 | 
					    form-data "~2.3.2"
 | 
				
			||||||
 | 
					    har-validator "~5.1.3"
 | 
				
			||||||
 | 
					    http-signature "~1.2.0"
 | 
				
			||||||
 | 
					    is-typedarray "~1.0.0"
 | 
				
			||||||
 | 
					    isstream "~0.1.2"
 | 
				
			||||||
 | 
					    json-stringify-safe "~5.0.1"
 | 
				
			||||||
 | 
					    mime-types "~2.1.19"
 | 
				
			||||||
 | 
					    oauth-sign "~0.9.0"
 | 
				
			||||||
 | 
					    performance-now "^2.1.0"
 | 
				
			||||||
 | 
					    qs "~6.5.2"
 | 
				
			||||||
 | 
					    safe-buffer "^5.1.2"
 | 
				
			||||||
 | 
					    tough-cookie "~2.5.0"
 | 
				
			||||||
 | 
					    tunnel-agent "^0.6.0"
 | 
				
			||||||
 | 
					    uuid "^3.3.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run-parallel-limit@^1.1.0:
 | 
					run-parallel-limit@^1.1.0:
 | 
				
			||||||
  version "1.1.0"
 | 
					  version "1.1.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba"
 | 
					  resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba"
 | 
				
			||||||
@@ -620,12 +884,12 @@ safe-buffer@5.1.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
 | 
					  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
 | 
				
			||||||
  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 | 
					  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
safe-buffer@5.2.1, safe-buffer@~5.2.0:
 | 
					safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
 | 
				
			||||||
  version "5.2.1"
 | 
					  version "5.2.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
 | 
					  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
 | 
				
			||||||
  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 | 
					  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"safer-buffer@>= 2.1.2 < 3":
 | 
					"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
 | 
				
			||||||
  version "2.1.2"
 | 
					  version "2.1.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
 | 
					  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
 | 
				
			||||||
  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 | 
					  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 | 
				
			||||||
@@ -664,6 +928,21 @@ setprototypeof@1.1.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
 | 
					  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
 | 
				
			||||||
  integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
 | 
					  integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sshpk@^1.7.0:
 | 
				
			||||||
 | 
					  version "1.17.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
 | 
				
			||||||
 | 
					  integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    asn1 "~0.2.3"
 | 
				
			||||||
 | 
					    assert-plus "^1.0.0"
 | 
				
			||||||
 | 
					    bcrypt-pbkdf "^1.0.0"
 | 
				
			||||||
 | 
					    dashdash "^1.12.0"
 | 
				
			||||||
 | 
					    ecc-jsbn "~0.1.1"
 | 
				
			||||||
 | 
					    getpass "^0.1.1"
 | 
				
			||||||
 | 
					    jsbn "~0.1.0"
 | 
				
			||||||
 | 
					    safer-buffer "^2.0.2"
 | 
				
			||||||
 | 
					    tweetnacl "~0.14.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
 | 
					"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
 | 
				
			||||||
  version "1.5.0"
 | 
					  version "1.5.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
 | 
					  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
 | 
				
			||||||
@@ -686,6 +965,26 @@ toidentifier@1.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
 | 
					  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
 | 
				
			||||||
  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 | 
					  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tough-cookie@~2.5.0:
 | 
				
			||||||
 | 
					  version "2.5.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
 | 
				
			||||||
 | 
					  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    psl "^1.1.28"
 | 
				
			||||||
 | 
					    punycode "^2.1.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tunnel-agent@^0.6.0:
 | 
				
			||||||
 | 
					  version "0.6.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
 | 
				
			||||||
 | 
					  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    safe-buffer "^5.0.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tweetnacl@^0.14.3, tweetnacl@~0.14.0:
 | 
				
			||||||
 | 
					  version "0.14.5"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
 | 
				
			||||||
 | 
					  integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type-is@~1.6.17, type-is@~1.6.18:
 | 
					type-is@~1.6.17, type-is@~1.6.18:
 | 
				
			||||||
  version "1.6.18"
 | 
					  version "1.6.18"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
 | 
					  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
 | 
				
			||||||
@@ -711,6 +1010,13 @@ unpipe@1.0.0, unpipe@~1.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
 | 
					  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
 | 
				
			||||||
  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
 | 
					  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uri-js@^4.2.2:
 | 
				
			||||||
 | 
					  version "4.4.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
 | 
				
			||||||
 | 
					  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    punycode "^2.1.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util-deprecate@^1.0.1:
 | 
					util-deprecate@^1.0.1:
 | 
				
			||||||
  version "1.0.2"
 | 
					  version "1.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
 | 
					  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
 | 
				
			||||||
@@ -721,11 +1027,25 @@ utils-merge@1.0.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
 | 
					  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
 | 
				
			||||||
  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
 | 
					  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uuid@^3.3.2:
 | 
				
			||||||
 | 
					  version "3.4.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
 | 
				
			||||||
 | 
					  integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vary@~1.1.2:
 | 
					vary@~1.1.2:
 | 
				
			||||||
  version "1.1.2"
 | 
					  version "1.1.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
 | 
					  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
 | 
				
			||||||
  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 | 
					  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					verror@1.10.0:
 | 
				
			||||||
 | 
					  version "1.10.0"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
 | 
				
			||||||
 | 
					  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    assert-plus "^1.0.0"
 | 
				
			||||||
 | 
					    core-util-is "1.0.2"
 | 
				
			||||||
 | 
					    extsprintf "^1.2.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wrappy@1:
 | 
					wrappy@1:
 | 
				
			||||||
  version "1.0.2"
 | 
					  version "1.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
 | 
					  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user