├── .eslintrc ├── .gitignore ├── Dockerfile ├── README.md ├── config.js ├── docker-compose.yml ├── index.js ├── logs └── .gitkeep ├── middleware ├── access-control.js ├── header.js └── onerror.js ├── package.json ├── router.js ├── routes ├── bilibili.js ├── get.js └── post.js ├── utils ├── logger.js ├── mongodb.js └── redis.js └── yarn.lock /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["eslint:recommended", "plugin:prettier/recommended"], 3 | "plugins": ["prettier"], 4 | "parserOptions": { 5 | "ecmaVersion": 2017, 6 | "sourceType": "module", 7 | "ecmaFeatures": { 8 | "experimentalObjectRestSpread": true 9 | } 10 | }, 11 | "env": { 12 | "node": true, 13 | "es6": true 14 | }, 15 | "rules": { 16 | "no-console": 0, 17 | "block-scoped-var": 1, 18 | "curly": 1, 19 | "eqeqeq": 1, 20 | "no-global-assign": 1, 21 | "no-implicit-globals": 1, 22 | "no-labels": 1, 23 | "no-multi-str": 1, 24 | "comma-spacing": 1, 25 | "comma-style": 1, 26 | "func-call-spacing": 1, 27 | "keyword-spacing": 1, 28 | "linebreak-style": 1, 29 | "lines-around-comment": 1, 30 | "no-multiple-empty-lines": 1, 31 | "space-infix-ops": 1, 32 | "arrow-spacing": 1, 33 | "no-var": 1, 34 | "prefer-const": 1, 35 | "no-unsafe-negation": 1, 36 | "array-callback-return": 1, 37 | "dot-notation": 1, 38 | "no-eval": 1, 39 | "no-extend-native": 1, 40 | "no-extra-label": 1, 41 | "semi": 1, 42 | "space-before-blocks": 1, 43 | "space-in-parens": 1, 44 | "space-unary-ops": 1, 45 | "spaced-comment": 1, 46 | "arrow-body-style": 1, 47 | "arrow-parens": 1, 48 | "no-restricted-imports": 1, 49 | "no-duplicate-imports": 1, 50 | "no-useless-computed-key": 1, 51 | "no-useless-rename": 1, 52 | "rest-spread-spacing": 1, 53 | "no-trailing-spaces": 1, 54 | "quotes": [1, "single"], 55 | "no-control-regex": 0, 56 | "prettier/prettier": 0 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | error.log 3 | combined.log -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:8-onbuild 2 | WORKDIR /usr/src/app 3 | RUN npm install pm2@3.5.1 -g 4 | EXPOSE 1207 5 | CMD pm2-docker index.js 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DPlayer node 2 | 3 | > Node.js backend for [DPlayer](https://github.com/DIYgod/DPlayer) 4 | 5 | ## Usage 6 | 7 | ### Start 8 | 9 | ```shell 10 | docker-compose build 11 | docker-compose pull 12 | docker-compose up # -d for run it in the background 13 | ``` 14 | 15 | ### Data & logs 16 | 17 | Database data: `~/dplayer/db` 18 | DPlayer logs: `~/dplayer/logs` 19 | PM2 logs: `~/dplayer/pm2logs` 20 | 21 | ### Import 22 | 23 | ```shell 24 | mv dans.json ~/dplayer/db/backup/dans.json 25 | docker exec dplayernode_mongo_1 mongoimport -d danmaku -c dans --file /data/db/backup/dans.json 26 | ``` 27 | 28 | ### Export 29 | 30 | ```shell 31 | docker exec dplayernode_mongo_1 mongoexport -d danmaku -c dans -o /data/db/backup/dans.json 32 | cat ~/dplayer/db/backup/dans.json 33 | ``` 34 | 35 | ### Stop 36 | 37 | ```shell 38 | docker-compose stop 39 | ``` 40 | 41 | ## Communication Groups 42 | 43 | [Telegram Group](https://t.me/adplayer) 44 | 45 | ## Author 46 | 47 | **DPlayer-node** © [DIYgod](https://github.com/DIYgod), Released under the [MIT](./LICENSE) License.
48 | Authored and maintained by DIYgod with help from contributors ([list](https://github.com/MoePlayer/DPlayer-node/contributors)). 49 | 50 | > Blog [@DIYgod](https://diygod.me) · GitHub [@DIYgod](https://github.com/DIYgod) · Twitter [@DIYgod](https://twitter.com/DIYgod) · Telegram Channel [@awesomeDIYgod](https://t.me/awesomeDIYgod) 51 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | port: process.env.PORT || 1207, 3 | mongodb: { 4 | username: process.env.MONGO_USERNAME || null, 5 | password: process.env.MONGO_PASSWORD || null, 6 | host: process.env.MONGO_HOST || '127.0.0.1', 7 | port: process.env.MONGO_PORT || '27017', 8 | database: process.env.MONGO_DATABASE || 'danmaku', 9 | }, 10 | redis: { 11 | host: process.env.REDIS_HOST || '127.0.0.1', 12 | port: process.env.REDIS_PORT || '6379', 13 | password: process.env.REDIS_PASSWORD || null, 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2.1' 2 | 3 | services: 4 | mongo: 5 | image: mongo:latest 6 | ports: 7 | - "127.0.0.1:27017:27017" 8 | volumes: 9 | - ~/dplayer/db:/data/db 10 | redis: 11 | image: redis:latest 12 | ports: 13 | - "127.0.0.1:6379:6379" 14 | web: 15 | build: . 16 | links: 17 | - mongo 18 | - redis 19 | depends_on: 20 | - mongo 21 | - redis 22 | ports: 23 | - 1207:1207 24 | environment: 25 | REDIS_HOST: "redis" 26 | REDIS_PORT: 6379 27 | MONGO_HOST: "mongo" 28 | MONGO_PORT: 27017 29 | MONGO_DATABASE: "danmaku" 30 | volumes: 31 | - ~/dplayer/logs:/usr/src/app/logs 32 | - ~/dplayer/pm2logs:/root/.pm2/logs 33 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const Koa = require('koa'); 2 | const bodyParser = require('koa-bodyparser'); 3 | 4 | const logger = require('./utils/logger'); 5 | const config = require('./config'); 6 | 7 | const mongodb = require('./utils/mongodb'); 8 | const redis = require('./utils/redis'); 9 | 10 | const onerror = require('./middleware/onerror'); 11 | const header = require('./middleware/header.js'); 12 | const accessControl = require('./middleware/access-control.js'); 13 | 14 | const router = require('./router'); 15 | 16 | process.on('uncaughtException', (e) => { 17 | logger.error('uncaughtException: ' + e); 18 | }); 19 | 20 | logger.info('🎉 DPlayer start! Cheers!'); 21 | 22 | const app = new Koa(); 23 | app.proxy = true; 24 | app.context.mongodb = mongodb; 25 | app.context.redis = redis; 26 | 27 | app.use(bodyParser()); 28 | app.use(onerror); 29 | app.use(header); 30 | app.use(accessControl); 31 | app.use(router.routes()).use(router.allowedMethods()); 32 | 33 | app.listen(config.port); 34 | logger.info('Listening Port ' + config.port); -------------------------------------------------------------------------------- /logs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MoePlayer/DPlayer-node/c6cba069973703e0d9709999d84c7c5c1528912c/logs/.gitkeep -------------------------------------------------------------------------------- /middleware/access-control.js: -------------------------------------------------------------------------------- 1 | const blacklist = (process.env.BLACKLIST && process.env.BLACKLIST.split(',')) || []; 2 | const whitelist = process.env.WHITELIST && process.env.WHITELIST.split(','); 3 | 4 | module.exports = async (ctx, next) => { 5 | const ip = ctx.ips[0] || ctx.ip; 6 | const referer = ctx.request.headers.referer; 7 | 8 | const refererAllowed = (whitelist && whitelist.indexOf(referer) !== -1) || blacklist.indexOf(referer) === -1; 9 | const ipAllowed = (whitelist && whitelist.indexOf(ip) !== -1) || blacklist.indexOf(ip) === -1; 10 | 11 | if (refererAllowed && ipAllowed) { 12 | await next(); 13 | } else { 14 | ctx.response.status = 403; 15 | 16 | ctx.body = JSON.stringify({ 17 | code: 1, 18 | msg: `${!refererAllowed ? '该站点' : '你的 IP '}没有访问权限`, 19 | }); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /middleware/header.js: -------------------------------------------------------------------------------- 1 | const logger = require('../utils/logger'); 2 | const headers = { 3 | 'Access-Control-Allow-Origin': '*', 4 | 'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild', 5 | 'Access-Control-Allow-Methods': 'PUT, POST, GET, DELETE, OPTIONS', 6 | 'Content-Type': 'application/json; charset=UTF-8', 7 | 'Cache-Control': 'no-cache', 8 | }; 9 | 10 | module.exports = async (ctx, next) => { 11 | logger.info(`${ctx.url}, user IP: ${ctx.ips[0] || ctx.ip}`); 12 | ctx.set(headers); 13 | await next(); 14 | }; 15 | -------------------------------------------------------------------------------- /middleware/onerror.js: -------------------------------------------------------------------------------- 1 | const logger = require('../utils/logger'); 2 | 3 | module.exports = async (ctx, next) => { 4 | try { 5 | await next(); 6 | } catch (err) { 7 | logger.error('Promise error: ' + (err instanceof Error ? err.stack : err)); 8 | ctx.set({ 9 | 'Content-Type': 'text/html; charset=UTF-8', 10 | }); 11 | ctx.body = `DPlayer-node 发生了一些意外:
${err instanceof Error ? err.stack : err}
`; 12 | ctx.status = 500; 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DPlayer_nodejs", 3 | "version": "0.0.1", 4 | "description": "", 5 | "main": "index.js", 6 | "author": "DIYgod", 7 | "license": "MIT", 8 | "devDependencies": { 9 | "eslint": "5.0.1", 10 | "eslint-config-prettier": "2.9.0", 11 | "eslint-plugin-prettier": "2.6.1" 12 | }, 13 | "dependencies": { 14 | "cheerio": "1.0.0-rc.2", 15 | "koa": "2.5.1", 16 | "koa-bodyparser": "4.2.1", 17 | "koa-router": "7.4.0", 18 | "mongoose": "5.1.7", 19 | "node-fetch": "2.1.2", 20 | "redis": "2.8.0", 21 | "winston": "3.0.0", 22 | "xml2js": "0.4.19" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /router.js: -------------------------------------------------------------------------------- 1 | const Router = require('koa-router'); 2 | const router = new Router(); 3 | 4 | router.get('/v3', require('./routes/get')); 5 | router.post('/v3', require('./routes/post')); 6 | router.get('/v3/bilibili', require('./routes/bilibili')); 7 | 8 | module.exports = router; -------------------------------------------------------------------------------- /routes/bilibili.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch'); 2 | const cheerio = require('cheerio'); 3 | 4 | module.exports = async (ctx) => { 5 | const aid = ctx.request.query.aid; 6 | let cid = ctx.request.query.cid; 7 | 8 | if (!cid && aid) { 9 | cid = await ctx.redis.get(`v3bilibiliaid2cid${aid}`); 10 | if (!cid) { 11 | const res = await fetch(`http://www.bilibili.com/widget/getPageList?aid=${aid}`); 12 | const result = await res.json(); 13 | cid = result[0].cid; 14 | ctx.redis.set(`v3bilibiliaid2cid${aid}`, cid); 15 | } 16 | } 17 | let data = await ctx.redis.get(`v3bilibilicid2dan${cid}`); 18 | if (data) { 19 | ctx.response.set('X-Koa-Redis', 'true'); 20 | data = JSON.parse(data); 21 | } else { 22 | const res = await fetch(`https://api.bilibili.com/x/v1/dm/list.so?oid=${cid}`); 23 | const result = await res.text(); 24 | const $ = cheerio.load(result.replace(/[\x00-\x08\x0b-\x0c\x0e-\x1f\x7f]/g, ''), { 25 | xmlMode: true 26 | }); 27 | data = $('d').map((i, el) => { 28 | const item = $(el); 29 | const p = item.attr('p').split(','); 30 | let type = 0; 31 | if (p[1] === '4') { 32 | type = 2; 33 | } 34 | else if (p[1] === '5') { 35 | type = 1; 36 | } 37 | return [[parseFloat(p[0]), type, parseInt(p[3]), p[6], item.text()]]; 38 | }).get(); 39 | ctx.redis.set(`v3bilibilicid2dan${cid}`, JSON.stringify(data), 10 * 60); 40 | ctx.response.set('X-Koa-Origin', 'true'); 41 | } 42 | ctx.body = JSON.stringify({ 43 | code: 0, 44 | data: data, 45 | }); 46 | }; -------------------------------------------------------------------------------- /routes/get.js: -------------------------------------------------------------------------------- 1 | function htmlEncode (str) { 2 | return str ? str.replace(/&/g, '&') 3 | .replace(//g, '>') 5 | .replace(/"/g, '"') 6 | .replace(/'/g, ''') 7 | .replace(/\//g, '/') : ''; 8 | } 9 | 10 | module.exports = async (ctx) => { 11 | const { id, limit } = ctx.request.query; 12 | 13 | let data = await ctx.redis.get(`danmaku${id}`); 14 | if (data) { 15 | data = JSON.parse(data); 16 | if (limit) { 17 | data = data.slice(-1 * parseInt(limit)); 18 | } 19 | ctx.response.set('X-Koa-Redis', 'true'); 20 | } else { 21 | data = await ctx.mongodb.find({ player: id }) || []; 22 | ctx.redis.set(`danmaku${id}`, JSON.stringify(data)); 23 | if (limit) { 24 | data = data.slice(-1 * parseInt(limit)); 25 | } 26 | ctx.response.set('X-Koa-Mongodb', 'true'); 27 | } 28 | ctx.body = JSON.stringify({ 29 | code: 0, 30 | data: data.map((item) => [item.time || 0, item.type || 0, item.color || 16777215, htmlEncode(item.author) || 'DPlayer', htmlEncode(item.text) || '']), 31 | }); 32 | }; -------------------------------------------------------------------------------- /routes/post.js: -------------------------------------------------------------------------------- 1 | const logger = require('../utils/logger'); 2 | 3 | module.exports = async (ctx) => { 4 | const body = ctx.request.body; 5 | 6 | const dan = new ctx.mongodb({ 7 | player: body.id, 8 | author: body.author, 9 | time: body.time, 10 | text: body.text, 11 | color: body.color, 12 | type: body.type, 13 | ip: ctx.ips[0] || ctx.ip, 14 | referer: ctx.headers.referer, 15 | date: +new Date(), 16 | }); 17 | try { 18 | const data = await dan.save(); 19 | ctx.body = JSON.stringify({ 20 | code: 0, 21 | data, 22 | }); 23 | ctx.redis.del(`danmaku${data.player}`); 24 | } 25 | catch (err) { 26 | logger.error(err); 27 | ctx.body = JSON.stringify({ 28 | code: 1, 29 | msg: `Database error: ${err}`, 30 | }); 31 | } 32 | }; -------------------------------------------------------------------------------- /utils/logger.js: -------------------------------------------------------------------------------- 1 | const winston = require('winston'); 2 | 3 | const logger = winston.createLogger({ 4 | level: 'info', 5 | format: winston.format.json(), 6 | transports: [ 7 | // 8 | // - Write to all logs with level `info` and below to `combined.log` 9 | // - Write all logs error (and below) to `error.log`. 10 | // 11 | new winston.transports.File({ 12 | filename: 'logs/error.log', 13 | level: 'error', 14 | }), 15 | new winston.transports.File({ filename: 'logs/combined.log' }), 16 | ], 17 | }); 18 | 19 | // 20 | // If we're not in production then log to the `console` with the format: 21 | // `${info.level}: ${info.message} JSON.stringify({ ...rest }) ` 22 | // 23 | logger.add( 24 | new winston.transports.Console({ 25 | format: winston.format.combine(winston.format.colorize(), winston.format.simple()), 26 | }) 27 | ); 28 | 29 | module.exports = logger; 30 | -------------------------------------------------------------------------------- /utils/mongodb.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const config = require('../config'); 3 | const logger = require('./logger'); 4 | 5 | mongoose.connect(`mongodb://${(config.mongodb.username && config.mongodb.password) ? `${config.mongodb.username}:${config.mongodb.password}@` : ''}${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.database}`); 6 | 7 | const db = mongoose.connection; 8 | db.on('error', (e) => { 9 | logger.error('Mongodb error: ', e); 10 | }); 11 | db.once('open', () => { 12 | logger.info('Mongodb connected'); 13 | }); 14 | 15 | const danmakuSchema = new mongoose.Schema({ 16 | player: { 17 | type: String, 18 | index: true, 19 | }, 20 | author: String, 21 | time: Number, 22 | text: String, 23 | color: Number, 24 | type: Number, 25 | ip: String, 26 | referer: String, 27 | date: Number, 28 | }); 29 | const danmaku = mongoose.model('dan', danmakuSchema); 30 | 31 | module.exports = danmaku; -------------------------------------------------------------------------------- /utils/redis.js: -------------------------------------------------------------------------------- 1 | const logger = require('./logger'); 2 | const config = require('../config'); 3 | const redis = require('redis'); 4 | const { promisify } = require('util'); 5 | 6 | const options = { 7 | host: config.redis.host, 8 | port: config.redis.port, 9 | password: config.redis.password, 10 | }; 11 | if (!options.password) { 12 | delete options.password; 13 | } 14 | const client = redis.createClient(options); 15 | 16 | client.on('error', (e) => { 17 | logger.error('Redis error: ', e); 18 | }); 19 | 20 | client.on('connect', () => { 21 | logger.info('Redis connected'); 22 | }); 23 | 24 | const getAsync = promisify(client.get).bind(client); 25 | 26 | module.exports = { 27 | set: (key, value, maxAge = 30 * 24 * 60 * 60) => { 28 | logger.info('Set redis: ' + key); 29 | client.setex(key, maxAge, value); 30 | }, 31 | get: async (key) => await getAsync(key), 32 | del: (key) => { 33 | client.del(key); 34 | }, 35 | }; -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/node@*": 6 | version "10.5.2" 7 | resolved "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz#f19f05314d5421fe37e74153254201a7bf00a707" 8 | 9 | accepts@^1.2.2: 10 | version "1.3.5" 11 | resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 12 | dependencies: 13 | mime-types "~2.1.18" 14 | negotiator "0.6.1" 15 | 16 | acorn-jsx@^4.1.1: 17 | version "4.1.1" 18 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" 19 | dependencies: 20 | acorn "^5.0.3" 21 | 22 | acorn@^5.0.3, acorn@^5.6.0: 23 | version "5.7.1" 24 | resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" 25 | 26 | ajv-keywords@^3.0.0: 27 | version "3.2.0" 28 | resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" 29 | 30 | ajv@^6.0.1, ajv@^6.5.0: 31 | version "6.5.2" 32 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" 33 | dependencies: 34 | fast-deep-equal "^2.0.1" 35 | fast-json-stable-stringify "^2.0.0" 36 | json-schema-traverse "^0.4.1" 37 | uri-js "^4.2.1" 38 | 39 | ansi-escapes@^3.0.0: 40 | version "3.1.0" 41 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 42 | 43 | ansi-regex@^2.0.0: 44 | version "2.1.1" 45 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 46 | 47 | ansi-regex@^3.0.0: 48 | version "3.0.0" 49 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 50 | 51 | ansi-styles@^2.2.1: 52 | version "2.2.1" 53 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 54 | 55 | ansi-styles@^3.2.1: 56 | version "3.2.1" 57 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 58 | dependencies: 59 | color-convert "^1.9.0" 60 | 61 | any-promise@^1.1.0: 62 | version "1.3.0" 63 | resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 64 | 65 | argparse@^1.0.7: 66 | version "1.0.10" 67 | resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 68 | dependencies: 69 | sprintf-js "~1.0.2" 70 | 71 | array-union@^1.0.1: 72 | version "1.0.2" 73 | resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 74 | dependencies: 75 | array-uniq "^1.0.1" 76 | 77 | array-uniq@^1.0.1: 78 | version "1.0.3" 79 | resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 80 | 81 | arrify@^1.0.0: 82 | version "1.0.1" 83 | resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 84 | 85 | async@2.6.1, async@^2.6.0: 86 | version "2.6.1" 87 | resolved "https://registry.npmjs.org/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" 88 | dependencies: 89 | lodash "^4.17.10" 90 | 91 | babel-code-frame@^6.26.0: 92 | version "6.26.0" 93 | resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 94 | dependencies: 95 | chalk "^1.1.3" 96 | esutils "^2.0.2" 97 | js-tokens "^3.0.2" 98 | 99 | balanced-match@^1.0.0: 100 | version "1.0.0" 101 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 102 | 103 | bluebird@3.5.0: 104 | version "3.5.0" 105 | resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 106 | 107 | boolbase@~1.0.0: 108 | version "1.0.0" 109 | resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 110 | 111 | brace-expansion@^1.1.7: 112 | version "1.1.11" 113 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 114 | dependencies: 115 | balanced-match "^1.0.0" 116 | concat-map "0.0.1" 117 | 118 | bson@~1.0.4: 119 | version "1.0.4" 120 | resolved "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c" 121 | 122 | bson@~1.0.5: 123 | version "1.0.9" 124 | resolved "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57" 125 | 126 | bytes@3.0.0: 127 | version "3.0.0" 128 | resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 129 | 130 | caller-path@^0.1.0: 131 | version "0.1.0" 132 | resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 133 | dependencies: 134 | callsites "^0.2.0" 135 | 136 | callsites@^0.2.0: 137 | version "0.2.0" 138 | resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 139 | 140 | chalk@^1.1.3: 141 | version "1.1.3" 142 | resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 143 | dependencies: 144 | ansi-styles "^2.2.1" 145 | escape-string-regexp "^1.0.2" 146 | has-ansi "^2.0.0" 147 | strip-ansi "^3.0.0" 148 | supports-color "^2.0.0" 149 | 150 | chalk@^2.0.0, chalk@^2.1.0: 151 | version "2.4.1" 152 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 153 | dependencies: 154 | ansi-styles "^3.2.1" 155 | escape-string-regexp "^1.0.5" 156 | supports-color "^5.3.0" 157 | 158 | chardet@^0.4.0: 159 | version "0.4.2" 160 | resolved "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 161 | 162 | cheerio@1.0.0-rc.2: 163 | version "1.0.0-rc.2" 164 | resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" 165 | dependencies: 166 | css-select "~1.2.0" 167 | dom-serializer "~0.1.0" 168 | entities "~1.1.1" 169 | htmlparser2 "^3.9.1" 170 | lodash "^4.15.0" 171 | parse5 "^3.0.1" 172 | 173 | circular-json@^0.3.1: 174 | version "0.3.3" 175 | resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 176 | 177 | cli-cursor@^2.1.0: 178 | version "2.1.0" 179 | resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 180 | dependencies: 181 | restore-cursor "^2.0.0" 182 | 183 | cli-width@^2.0.0: 184 | version "2.2.0" 185 | resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 186 | 187 | co-body@^6.0.0: 188 | version "6.0.0" 189 | resolved "https://registry.npmjs.org/co-body/-/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3" 190 | dependencies: 191 | inflation "^2.0.0" 192 | qs "^6.5.2" 193 | raw-body "^2.3.3" 194 | type-is "^1.6.16" 195 | 196 | co@^4.6.0: 197 | version "4.6.0" 198 | resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 199 | 200 | color-convert@^0.5.0: 201 | version "0.5.3" 202 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" 203 | 204 | color-convert@^1.9.0: 205 | version "1.9.2" 206 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" 207 | dependencies: 208 | color-name "1.1.1" 209 | 210 | color-name@1.1.1: 211 | version "1.1.1" 212 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 213 | 214 | color-name@^1.0.0: 215 | version "1.1.3" 216 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 217 | 218 | color-string@^0.3.0: 219 | version "0.3.0" 220 | resolved "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" 221 | dependencies: 222 | color-name "^1.0.0" 223 | 224 | color@0.8.x: 225 | version "0.8.0" 226 | resolved "https://registry.npmjs.org/color/-/color-0.8.0.tgz#890c07c3fd4e649537638911cf691e5458b6fca5" 227 | dependencies: 228 | color-convert "^0.5.0" 229 | color-string "^0.3.0" 230 | 231 | colornames@0.0.2: 232 | version "0.0.2" 233 | resolved "https://registry.npmjs.org/colornames/-/colornames-0.0.2.tgz#d811fd6c84f59029499a8ac4436202935b92be31" 234 | 235 | colors@^1.2.1: 236 | version "1.3.0" 237 | resolved "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e" 238 | 239 | colorspace@1.0.x: 240 | version "1.0.1" 241 | resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.0.1.tgz#c99c796ed31128b9876a52e1ee5ee03a4a719749" 242 | dependencies: 243 | color "0.8.x" 244 | text-hex "0.0.x" 245 | 246 | concat-map@0.0.1: 247 | version "0.0.1" 248 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 249 | 250 | content-disposition@~0.5.0: 251 | version "0.5.2" 252 | resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 253 | 254 | content-type@^1.0.0: 255 | version "1.0.4" 256 | resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 257 | 258 | cookies@~0.7.0: 259 | version "0.7.1" 260 | resolved "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b" 261 | dependencies: 262 | depd "~1.1.1" 263 | keygrip "~1.0.2" 264 | 265 | copy-to@^2.0.1: 266 | version "2.0.1" 267 | resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" 268 | 269 | core-util-is@~1.0.0: 270 | version "1.0.2" 271 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 272 | 273 | cross-spawn@^6.0.5: 274 | version "6.0.5" 275 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 276 | dependencies: 277 | nice-try "^1.0.4" 278 | path-key "^2.0.1" 279 | semver "^5.5.0" 280 | shebang-command "^1.2.0" 281 | which "^1.2.9" 282 | 283 | css-select@~1.2.0: 284 | version "1.2.0" 285 | resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" 286 | dependencies: 287 | boolbase "~1.0.0" 288 | css-what "2.1" 289 | domutils "1.5.1" 290 | nth-check "~1.0.1" 291 | 292 | css-what@2.1: 293 | version "2.1.0" 294 | resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" 295 | 296 | debug@*, debug@^3.1.0: 297 | version "3.1.0" 298 | resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 299 | dependencies: 300 | ms "2.0.0" 301 | 302 | debug@2.6.9: 303 | version "2.6.9" 304 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 305 | dependencies: 306 | ms "2.0.0" 307 | 308 | deep-equal@~1.0.1: 309 | version "1.0.1" 310 | resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 311 | 312 | deep-is@~0.1.3: 313 | version "0.1.3" 314 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 315 | 316 | define-properties@^1.1.2: 317 | version "1.1.2" 318 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 319 | dependencies: 320 | foreach "^2.0.5" 321 | object-keys "^1.0.8" 322 | 323 | del@^2.0.2: 324 | version "2.2.2" 325 | resolved "https://registry.npmjs.org/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 326 | dependencies: 327 | globby "^5.0.0" 328 | is-path-cwd "^1.0.0" 329 | is-path-in-cwd "^1.0.0" 330 | object-assign "^4.0.1" 331 | pify "^2.0.0" 332 | pinkie-promise "^2.0.0" 333 | rimraf "^2.2.8" 334 | 335 | delegates@^1.0.0: 336 | version "1.0.0" 337 | resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 338 | 339 | depd@^1.1.0, depd@~1.1.2: 340 | version "1.1.2" 341 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 342 | 343 | depd@~1.1.1: 344 | version "1.1.1" 345 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 346 | 347 | destroy@^1.0.3: 348 | version "1.0.4" 349 | resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 350 | 351 | diagnostics@^1.0.1: 352 | version "1.1.0" 353 | resolved "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.0.tgz#e1090900b49523e8527be20f081275205f2ae36a" 354 | dependencies: 355 | colorspace "1.0.x" 356 | enabled "1.0.x" 357 | kuler "0.0.x" 358 | 359 | doctrine@^2.1.0: 360 | version "2.1.0" 361 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 362 | dependencies: 363 | esutils "^2.0.2" 364 | 365 | dom-serializer@0, dom-serializer@~0.1.0: 366 | version "0.1.0" 367 | resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" 368 | dependencies: 369 | domelementtype "~1.1.1" 370 | entities "~1.1.1" 371 | 372 | domelementtype@1, domelementtype@^1.3.0: 373 | version "1.3.0" 374 | resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" 375 | 376 | domelementtype@~1.1.1: 377 | version "1.1.3" 378 | resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" 379 | 380 | domhandler@^2.3.0: 381 | version "2.4.2" 382 | resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" 383 | dependencies: 384 | domelementtype "1" 385 | 386 | domutils@1.5.1: 387 | version "1.5.1" 388 | resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" 389 | dependencies: 390 | dom-serializer "0" 391 | domelementtype "1" 392 | 393 | domutils@^1.5.1: 394 | version "1.7.0" 395 | resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" 396 | dependencies: 397 | dom-serializer "0" 398 | domelementtype "1" 399 | 400 | double-ended-queue@^2.1.0-0: 401 | version "2.1.0-0" 402 | resolved "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" 403 | 404 | ee-first@1.1.1: 405 | version "1.1.1" 406 | resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 407 | 408 | enabled@1.0.x: 409 | version "1.0.2" 410 | resolved "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" 411 | dependencies: 412 | env-variable "0.0.x" 413 | 414 | entities@^1.1.1, entities@~1.1.1: 415 | version "1.1.1" 416 | resolved "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" 417 | 418 | env-variable@0.0.x: 419 | version "0.0.4" 420 | resolved "https://registry.npmjs.org/env-variable/-/env-variable-0.0.4.tgz#0d6280cf507d84242befe35a512b5ae4be77c54e" 421 | 422 | error-inject@~1.0.0: 423 | version "1.0.0" 424 | resolved "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" 425 | 426 | es-abstract@^1.10.0: 427 | version "1.12.0" 428 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" 429 | dependencies: 430 | es-to-primitive "^1.1.1" 431 | function-bind "^1.1.1" 432 | has "^1.0.1" 433 | is-callable "^1.1.3" 434 | is-regex "^1.0.4" 435 | 436 | es-to-primitive@^1.1.1: 437 | version "1.1.1" 438 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 439 | dependencies: 440 | is-callable "^1.1.1" 441 | is-date-object "^1.0.1" 442 | is-symbol "^1.0.1" 443 | 444 | escape-html@~1.0.1: 445 | version "1.0.3" 446 | resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 447 | 448 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 449 | version "1.0.5" 450 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 451 | 452 | eslint-config-prettier@2.9.0: 453 | version "2.9.0" 454 | resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" 455 | dependencies: 456 | get-stdin "^5.0.1" 457 | 458 | eslint-plugin-prettier@2.6.1: 459 | version "2.6.1" 460 | resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.1.tgz#de902b4a66b7bca24296429a59a1cc04020ccbbd" 461 | dependencies: 462 | fast-diff "^1.1.1" 463 | jest-docblock "^21.0.0" 464 | 465 | eslint-scope@^4.0.0: 466 | version "4.0.0" 467 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" 468 | dependencies: 469 | esrecurse "^4.1.0" 470 | estraverse "^4.1.1" 471 | 472 | eslint-visitor-keys@^1.0.0: 473 | version "1.0.0" 474 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 475 | 476 | eslint@5.0.1: 477 | version "5.0.1" 478 | resolved "https://registry.npmjs.org/eslint/-/eslint-5.0.1.tgz#109b90ab7f7a736f54e0f341c8bb9d09777494c3" 479 | dependencies: 480 | ajv "^6.5.0" 481 | babel-code-frame "^6.26.0" 482 | chalk "^2.1.0" 483 | cross-spawn "^6.0.5" 484 | debug "^3.1.0" 485 | doctrine "^2.1.0" 486 | eslint-scope "^4.0.0" 487 | eslint-visitor-keys "^1.0.0" 488 | espree "^4.0.0" 489 | esquery "^1.0.1" 490 | esutils "^2.0.2" 491 | file-entry-cache "^2.0.0" 492 | functional-red-black-tree "^1.0.1" 493 | glob "^7.1.2" 494 | globals "^11.5.0" 495 | ignore "^3.3.3" 496 | imurmurhash "^0.1.4" 497 | inquirer "^5.2.0" 498 | is-resolvable "^1.1.0" 499 | js-yaml "^3.11.0" 500 | json-stable-stringify-without-jsonify "^1.0.1" 501 | levn "^0.3.0" 502 | lodash "^4.17.5" 503 | minimatch "^3.0.4" 504 | mkdirp "^0.5.1" 505 | natural-compare "^1.4.0" 506 | optionator "^0.8.2" 507 | path-is-inside "^1.0.2" 508 | pluralize "^7.0.0" 509 | progress "^2.0.0" 510 | regexpp "^1.1.0" 511 | require-uncached "^1.0.3" 512 | semver "^5.5.0" 513 | string.prototype.matchall "^2.0.0" 514 | strip-ansi "^4.0.0" 515 | strip-json-comments "^2.0.1" 516 | table "^4.0.3" 517 | text-table "^0.2.0" 518 | 519 | espree@^4.0.0: 520 | version "4.0.0" 521 | resolved "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" 522 | dependencies: 523 | acorn "^5.6.0" 524 | acorn-jsx "^4.1.1" 525 | 526 | esprima@^4.0.0: 527 | version "4.0.0" 528 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 529 | 530 | esquery@^1.0.1: 531 | version "1.0.1" 532 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 533 | dependencies: 534 | estraverse "^4.0.0" 535 | 536 | esrecurse@^4.1.0: 537 | version "4.2.1" 538 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 539 | dependencies: 540 | estraverse "^4.1.0" 541 | 542 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 543 | version "4.2.0" 544 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 545 | 546 | esutils@^2.0.2: 547 | version "2.0.2" 548 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 549 | 550 | external-editor@^2.1.0: 551 | version "2.2.0" 552 | resolved "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 553 | dependencies: 554 | chardet "^0.4.0" 555 | iconv-lite "^0.4.17" 556 | tmp "^0.0.33" 557 | 558 | fast-deep-equal@^2.0.1: 559 | version "2.0.1" 560 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 561 | 562 | fast-diff@^1.1.1: 563 | version "1.1.2" 564 | resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" 565 | 566 | fast-json-stable-stringify@^2.0.0: 567 | version "2.0.0" 568 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 569 | 570 | fast-levenshtein@~2.0.4: 571 | version "2.0.6" 572 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 573 | 574 | fast-safe-stringify@^2.0.4: 575 | version "2.0.4" 576 | resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.4.tgz#4fe828718aa61dbcf9119c3c24e79cc4dea973b2" 577 | 578 | fecha@^2.3.3: 579 | version "2.3.3" 580 | resolved "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" 581 | 582 | figures@^2.0.0: 583 | version "2.0.0" 584 | resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 585 | dependencies: 586 | escape-string-regexp "^1.0.5" 587 | 588 | file-entry-cache@^2.0.0: 589 | version "2.0.0" 590 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 591 | dependencies: 592 | flat-cache "^1.2.1" 593 | object-assign "^4.0.1" 594 | 595 | flat-cache@^1.2.1: 596 | version "1.3.0" 597 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 598 | dependencies: 599 | circular-json "^0.3.1" 600 | del "^2.0.2" 601 | graceful-fs "^4.1.2" 602 | write "^0.2.1" 603 | 604 | foreach@^2.0.5: 605 | version "2.0.5" 606 | resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 607 | 608 | fresh@^0.5.2: 609 | version "0.5.2" 610 | resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 611 | 612 | fs.realpath@^1.0.0: 613 | version "1.0.0" 614 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 615 | 616 | function-bind@^1.1.1: 617 | version "1.1.1" 618 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 619 | 620 | functional-red-black-tree@^1.0.1: 621 | version "1.0.1" 622 | resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 623 | 624 | get-stdin@^5.0.1: 625 | version "5.0.1" 626 | resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 627 | 628 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: 629 | version "7.1.2" 630 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 631 | dependencies: 632 | fs.realpath "^1.0.0" 633 | inflight "^1.0.4" 634 | inherits "2" 635 | minimatch "^3.0.4" 636 | once "^1.3.0" 637 | path-is-absolute "^1.0.0" 638 | 639 | globals@^11.5.0: 640 | version "11.7.0" 641 | resolved "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" 642 | 643 | globby@^5.0.0: 644 | version "5.0.0" 645 | resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 646 | dependencies: 647 | array-union "^1.0.1" 648 | arrify "^1.0.0" 649 | glob "^7.0.3" 650 | object-assign "^4.0.1" 651 | pify "^2.0.0" 652 | pinkie-promise "^2.0.0" 653 | 654 | graceful-fs@^4.1.2: 655 | version "4.1.11" 656 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 657 | 658 | has-ansi@^2.0.0: 659 | version "2.0.0" 660 | resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 661 | dependencies: 662 | ansi-regex "^2.0.0" 663 | 664 | has-flag@^3.0.0: 665 | version "3.0.0" 666 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 667 | 668 | has-symbols@^1.0.0: 669 | version "1.0.0" 670 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 671 | 672 | has@^1.0.1: 673 | version "1.0.3" 674 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 675 | dependencies: 676 | function-bind "^1.1.1" 677 | 678 | htmlparser2@^3.9.1: 679 | version "3.9.2" 680 | resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" 681 | dependencies: 682 | domelementtype "^1.3.0" 683 | domhandler "^2.3.0" 684 | domutils "^1.5.1" 685 | entities "^1.1.1" 686 | inherits "^2.0.1" 687 | readable-stream "^2.0.2" 688 | 689 | http-assert@^1.1.0: 690 | version "1.3.0" 691 | resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a" 692 | dependencies: 693 | deep-equal "~1.0.1" 694 | http-errors "~1.6.1" 695 | 696 | http-errors@1.6.3, http-errors@^1.2.8, http-errors@^1.3.1, http-errors@~1.6.1: 697 | version "1.6.3" 698 | resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 699 | dependencies: 700 | depd "~1.1.2" 701 | inherits "2.0.3" 702 | setprototypeof "1.1.0" 703 | statuses ">= 1.4.0 < 2" 704 | 705 | iconv-lite@0.4.23, iconv-lite@^0.4.17: 706 | version "0.4.23" 707 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 708 | dependencies: 709 | safer-buffer ">= 2.1.2 < 3" 710 | 711 | ignore@^3.3.3: 712 | version "3.3.10" 713 | resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" 714 | 715 | imurmurhash@^0.1.4: 716 | version "0.1.4" 717 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 718 | 719 | inflation@^2.0.0: 720 | version "2.0.0" 721 | resolved "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" 722 | 723 | inflight@^1.0.4: 724 | version "1.0.6" 725 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 726 | dependencies: 727 | once "^1.3.0" 728 | wrappy "1" 729 | 730 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.3: 731 | version "2.0.3" 732 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 733 | 734 | inquirer@^5.2.0: 735 | version "5.2.0" 736 | resolved "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" 737 | dependencies: 738 | ansi-escapes "^3.0.0" 739 | chalk "^2.0.0" 740 | cli-cursor "^2.1.0" 741 | cli-width "^2.0.0" 742 | external-editor "^2.1.0" 743 | figures "^2.0.0" 744 | lodash "^4.3.0" 745 | mute-stream "0.0.7" 746 | run-async "^2.2.0" 747 | rxjs "^5.5.2" 748 | string-width "^2.1.0" 749 | strip-ansi "^4.0.0" 750 | through "^2.3.6" 751 | 752 | is-callable@^1.1.1, is-callable@^1.1.3: 753 | version "1.1.3" 754 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 755 | 756 | is-date-object@^1.0.1: 757 | version "1.0.1" 758 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 759 | 760 | is-fullwidth-code-point@^2.0.0: 761 | version "2.0.0" 762 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 763 | 764 | is-generator-function@^1.0.3: 765 | version "1.0.7" 766 | resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" 767 | 768 | is-path-cwd@^1.0.0: 769 | version "1.0.0" 770 | resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 771 | 772 | is-path-in-cwd@^1.0.0: 773 | version "1.0.1" 774 | resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 775 | dependencies: 776 | is-path-inside "^1.0.0" 777 | 778 | is-path-inside@^1.0.0: 779 | version "1.0.1" 780 | resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 781 | dependencies: 782 | path-is-inside "^1.0.1" 783 | 784 | is-promise@^2.1.0: 785 | version "2.1.0" 786 | resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 787 | 788 | is-regex@^1.0.4: 789 | version "1.0.4" 790 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 791 | dependencies: 792 | has "^1.0.1" 793 | 794 | is-resolvable@^1.1.0: 795 | version "1.1.0" 796 | resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 797 | 798 | is-stream@^1.1.0: 799 | version "1.1.0" 800 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 801 | 802 | is-symbol@^1.0.1: 803 | version "1.0.1" 804 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 805 | 806 | isarray@0.0.1: 807 | version "0.0.1" 808 | resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 809 | 810 | isarray@~1.0.0: 811 | version "1.0.0" 812 | resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 813 | 814 | isexe@^2.0.0: 815 | version "2.0.0" 816 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 817 | 818 | jest-docblock@^21.0.0: 819 | version "21.2.0" 820 | resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" 821 | 822 | js-tokens@^3.0.2: 823 | version "3.0.2" 824 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 825 | 826 | js-yaml@^3.11.0: 827 | version "3.12.0" 828 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 829 | dependencies: 830 | argparse "^1.0.7" 831 | esprima "^4.0.0" 832 | 833 | json-schema-traverse@^0.4.1: 834 | version "0.4.1" 835 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 836 | 837 | json-stable-stringify-without-jsonify@^1.0.1: 838 | version "1.0.1" 839 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 840 | 841 | kareem@2.2.1: 842 | version "2.2.1" 843 | resolved "https://registry.npmjs.org/kareem/-/kareem-2.2.1.tgz#9950809415aa3cde62ab43b4f7b919d99816e015" 844 | 845 | keygrip@~1.0.2: 846 | version "1.0.2" 847 | resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91" 848 | 849 | koa-bodyparser@4.2.1: 850 | version "4.2.1" 851 | resolved "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.2.1.tgz#4d7dacb5e6db1106649b595d9e5ccb158b6f3b29" 852 | dependencies: 853 | co-body "^6.0.0" 854 | copy-to "^2.0.1" 855 | 856 | koa-compose@^3.0.0: 857 | version "3.2.1" 858 | resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" 859 | dependencies: 860 | any-promise "^1.1.0" 861 | 862 | koa-compose@^4.0.0: 863 | version "4.1.0" 864 | resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" 865 | 866 | koa-convert@^1.2.0: 867 | version "1.2.0" 868 | resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" 869 | dependencies: 870 | co "^4.6.0" 871 | koa-compose "^3.0.0" 872 | 873 | koa-is-json@^1.0.0: 874 | version "1.0.0" 875 | resolved "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" 876 | 877 | koa-router@7.4.0: 878 | version "7.4.0" 879 | resolved "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0" 880 | dependencies: 881 | debug "^3.1.0" 882 | http-errors "^1.3.1" 883 | koa-compose "^3.0.0" 884 | methods "^1.0.1" 885 | path-to-regexp "^1.1.1" 886 | urijs "^1.19.0" 887 | 888 | koa@2.5.1: 889 | version "2.5.1" 890 | resolved "https://registry.npmjs.org/koa/-/koa-2.5.1.tgz#79f8b95f8d72d04fe9a58a8da5ebd6d341103f9c" 891 | dependencies: 892 | accepts "^1.2.2" 893 | content-disposition "~0.5.0" 894 | content-type "^1.0.0" 895 | cookies "~0.7.0" 896 | debug "*" 897 | delegates "^1.0.0" 898 | depd "^1.1.0" 899 | destroy "^1.0.3" 900 | error-inject "~1.0.0" 901 | escape-html "~1.0.1" 902 | fresh "^0.5.2" 903 | http-assert "^1.1.0" 904 | http-errors "^1.2.8" 905 | is-generator-function "^1.0.3" 906 | koa-compose "^4.0.0" 907 | koa-convert "^1.2.0" 908 | koa-is-json "^1.0.0" 909 | mime-types "^2.0.7" 910 | on-finished "^2.1.0" 911 | only "0.0.2" 912 | parseurl "^1.3.0" 913 | statuses "^1.2.0" 914 | type-is "^1.5.5" 915 | vary "^1.0.0" 916 | 917 | kuler@0.0.x: 918 | version "0.0.0" 919 | resolved "https://registry.npmjs.org/kuler/-/kuler-0.0.0.tgz#b66bb46b934e550f59d818848e0abba4f7f5553c" 920 | dependencies: 921 | colornames "0.0.2" 922 | 923 | levn@^0.3.0, levn@~0.3.0: 924 | version "0.3.0" 925 | resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 926 | dependencies: 927 | prelude-ls "~1.1.2" 928 | type-check "~0.3.2" 929 | 930 | lodash.get@4.4.2: 931 | version "4.4.2" 932 | resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" 933 | 934 | lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: 935 | version "4.17.10" 936 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 937 | 938 | logform@^1.9.0: 939 | version "1.9.1" 940 | resolved "https://registry.npmjs.org/logform/-/logform-1.9.1.tgz#58b29d7b11c332456d7a217e17b48a13ad69d60a" 941 | dependencies: 942 | colors "^1.2.1" 943 | fast-safe-stringify "^2.0.4" 944 | fecha "^2.3.3" 945 | ms "^2.1.1" 946 | triple-beam "^1.2.0" 947 | 948 | media-typer@0.3.0: 949 | version "0.3.0" 950 | resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 951 | 952 | methods@^1.0.1: 953 | version "1.1.2" 954 | resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 955 | 956 | mime-db@~1.33.0: 957 | version "1.33.0" 958 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 959 | 960 | mime-types@^2.0.7, mime-types@~2.1.18: 961 | version "2.1.18" 962 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 963 | dependencies: 964 | mime-db "~1.33.0" 965 | 966 | mimic-fn@^1.0.0: 967 | version "1.2.0" 968 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 969 | 970 | minimatch@^3.0.4: 971 | version "3.0.4" 972 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 973 | dependencies: 974 | brace-expansion "^1.1.7" 975 | 976 | minimist@0.0.8: 977 | version "0.0.8" 978 | resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 979 | 980 | mkdirp@^0.5.1: 981 | version "0.5.1" 982 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 983 | dependencies: 984 | minimist "0.0.8" 985 | 986 | mongodb-core@3.0.9: 987 | version "3.0.9" 988 | resolved "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.9.tgz#8327410c88811013fb3e4ac7c4c670f324349be1" 989 | dependencies: 990 | bson "~1.0.4" 991 | require_optional "^1.0.1" 992 | 993 | mongodb@3.0.10: 994 | version "3.0.10" 995 | resolved "https://registry.npmjs.org/mongodb/-/mongodb-3.0.10.tgz#f948cb9595adcbfcad7444f6b24a040b653b23e8" 996 | dependencies: 997 | mongodb-core "3.0.9" 998 | 999 | mongoose-legacy-pluralize@1.0.2: 1000 | version "1.0.2" 1001 | resolved "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" 1002 | 1003 | mongoose@5.1.7: 1004 | version "5.1.7" 1005 | resolved "https://registry.npmjs.org/mongoose/-/mongoose-5.1.7.tgz#b13463278cc455b3e19031b96cde9c2010095f6c" 1006 | dependencies: 1007 | async "2.6.1" 1008 | bson "~1.0.5" 1009 | kareem "2.2.1" 1010 | lodash.get "4.4.2" 1011 | mongodb "3.0.10" 1012 | mongoose-legacy-pluralize "1.0.2" 1013 | mpath "0.4.1" 1014 | mquery "3.0.0" 1015 | ms "2.0.0" 1016 | regexp-clone "0.0.1" 1017 | sliced "1.0.1" 1018 | 1019 | mpath@0.4.1: 1020 | version "0.4.1" 1021 | resolved "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz#ed10388430380bf7bbb5be1391e5d6969cb08e89" 1022 | 1023 | mquery@3.0.0: 1024 | version "3.0.0" 1025 | resolved "https://registry.npmjs.org/mquery/-/mquery-3.0.0.tgz#e5f387dbabc0b9b69859e550e810faabe0ceabb0" 1026 | dependencies: 1027 | bluebird "3.5.0" 1028 | debug "2.6.9" 1029 | regexp-clone "0.0.1" 1030 | sliced "0.0.5" 1031 | 1032 | ms@2.0.0: 1033 | version "2.0.0" 1034 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1035 | 1036 | ms@^2.1.1: 1037 | version "2.1.1" 1038 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1039 | 1040 | mute-stream@0.0.7: 1041 | version "0.0.7" 1042 | resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1043 | 1044 | natural-compare@^1.4.0: 1045 | version "1.4.0" 1046 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1047 | 1048 | negotiator@0.6.1: 1049 | version "0.6.1" 1050 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 1051 | 1052 | nice-try@^1.0.4: 1053 | version "1.0.4" 1054 | resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" 1055 | 1056 | node-fetch@2.1.2: 1057 | version "2.1.2" 1058 | resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" 1059 | 1060 | nth-check@~1.0.1: 1061 | version "1.0.1" 1062 | resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" 1063 | dependencies: 1064 | boolbase "~1.0.0" 1065 | 1066 | object-assign@^4.0.1: 1067 | version "4.1.1" 1068 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1069 | 1070 | object-keys@^1.0.8: 1071 | version "1.0.12" 1072 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 1073 | 1074 | on-finished@^2.1.0: 1075 | version "2.3.0" 1076 | resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1077 | dependencies: 1078 | ee-first "1.1.1" 1079 | 1080 | once@^1.3.0: 1081 | version "1.4.0" 1082 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1083 | dependencies: 1084 | wrappy "1" 1085 | 1086 | one-time@0.0.4: 1087 | version "0.0.4" 1088 | resolved "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" 1089 | 1090 | onetime@^2.0.0: 1091 | version "2.0.1" 1092 | resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1093 | dependencies: 1094 | mimic-fn "^1.0.0" 1095 | 1096 | only@0.0.2: 1097 | version "0.0.2" 1098 | resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" 1099 | 1100 | optionator@^0.8.2: 1101 | version "0.8.2" 1102 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1103 | dependencies: 1104 | deep-is "~0.1.3" 1105 | fast-levenshtein "~2.0.4" 1106 | levn "~0.3.0" 1107 | prelude-ls "~1.1.2" 1108 | type-check "~0.3.2" 1109 | wordwrap "~1.0.0" 1110 | 1111 | os-tmpdir@~1.0.2: 1112 | version "1.0.2" 1113 | resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1114 | 1115 | parse5@^3.0.1: 1116 | version "3.0.3" 1117 | resolved "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" 1118 | dependencies: 1119 | "@types/node" "*" 1120 | 1121 | parseurl@^1.3.0: 1122 | version "1.3.2" 1123 | resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 1124 | 1125 | path-is-absolute@^1.0.0: 1126 | version "1.0.1" 1127 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1128 | 1129 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 1130 | version "1.0.2" 1131 | resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1132 | 1133 | path-key@^2.0.1: 1134 | version "2.0.1" 1135 | resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1136 | 1137 | path-to-regexp@^1.1.1: 1138 | version "1.7.0" 1139 | resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" 1140 | dependencies: 1141 | isarray "0.0.1" 1142 | 1143 | pify@^2.0.0: 1144 | version "2.3.0" 1145 | resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1146 | 1147 | pinkie-promise@^2.0.0: 1148 | version "2.0.1" 1149 | resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1150 | dependencies: 1151 | pinkie "^2.0.0" 1152 | 1153 | pinkie@^2.0.0: 1154 | version "2.0.4" 1155 | resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1156 | 1157 | pluralize@^7.0.0: 1158 | version "7.0.0" 1159 | resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 1160 | 1161 | prelude-ls@~1.1.2: 1162 | version "1.1.2" 1163 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1164 | 1165 | process-nextick-args@~2.0.0: 1166 | version "2.0.0" 1167 | resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1168 | 1169 | progress@^2.0.0: 1170 | version "2.0.0" 1171 | resolved "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 1172 | 1173 | punycode@^2.1.0: 1174 | version "2.1.1" 1175 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1176 | 1177 | qs@^6.5.2: 1178 | version "6.5.2" 1179 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 1180 | 1181 | raw-body@^2.3.3: 1182 | version "2.3.3" 1183 | resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 1184 | dependencies: 1185 | bytes "3.0.0" 1186 | http-errors "1.6.3" 1187 | iconv-lite "0.4.23" 1188 | unpipe "1.0.0" 1189 | 1190 | readable-stream@^2.0.2, readable-stream@^2.3.6: 1191 | version "2.3.6" 1192 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1193 | dependencies: 1194 | core-util-is "~1.0.0" 1195 | inherits "~2.0.3" 1196 | isarray "~1.0.0" 1197 | process-nextick-args "~2.0.0" 1198 | safe-buffer "~5.1.1" 1199 | string_decoder "~1.1.1" 1200 | util-deprecate "~1.0.1" 1201 | 1202 | redis-commands@^1.2.0: 1203 | version "1.3.1" 1204 | resolved "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz#81d826f45fa9c8b2011f4cd7a0fe597d241d442b" 1205 | 1206 | redis-parser@^2.6.0: 1207 | version "2.6.0" 1208 | resolved "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" 1209 | 1210 | redis@2.8.0: 1211 | version "2.8.0" 1212 | resolved "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" 1213 | dependencies: 1214 | double-ended-queue "^2.1.0-0" 1215 | redis-commands "^1.2.0" 1216 | redis-parser "^2.6.0" 1217 | 1218 | regexp-clone@0.0.1: 1219 | version "0.0.1" 1220 | resolved "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589" 1221 | 1222 | regexp.prototype.flags@^1.2.0: 1223 | version "1.2.0" 1224 | resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" 1225 | dependencies: 1226 | define-properties "^1.1.2" 1227 | 1228 | regexpp@^1.1.0: 1229 | version "1.1.0" 1230 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" 1231 | 1232 | require-uncached@^1.0.3: 1233 | version "1.0.3" 1234 | resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1235 | dependencies: 1236 | caller-path "^0.1.0" 1237 | resolve-from "^1.0.0" 1238 | 1239 | require_optional@^1.0.1: 1240 | version "1.0.1" 1241 | resolved "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" 1242 | dependencies: 1243 | resolve-from "^2.0.0" 1244 | semver "^5.1.0" 1245 | 1246 | resolve-from@^1.0.0: 1247 | version "1.0.1" 1248 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1249 | 1250 | resolve-from@^2.0.0: 1251 | version "2.0.0" 1252 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 1253 | 1254 | restore-cursor@^2.0.0: 1255 | version "2.0.0" 1256 | resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1257 | dependencies: 1258 | onetime "^2.0.0" 1259 | signal-exit "^3.0.2" 1260 | 1261 | rimraf@^2.2.8: 1262 | version "2.6.2" 1263 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1264 | dependencies: 1265 | glob "^7.0.5" 1266 | 1267 | run-async@^2.2.0: 1268 | version "2.3.0" 1269 | resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1270 | dependencies: 1271 | is-promise "^2.1.0" 1272 | 1273 | rxjs@^5.5.2: 1274 | version "5.5.11" 1275 | resolved "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" 1276 | dependencies: 1277 | symbol-observable "1.0.1" 1278 | 1279 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1280 | version "5.1.1" 1281 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1282 | 1283 | "safer-buffer@>= 2.1.2 < 3": 1284 | version "2.1.2" 1285 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1286 | 1287 | sax@>=0.6.0: 1288 | version "1.2.4" 1289 | resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1290 | 1291 | semver@^5.1.0: 1292 | version "5.4.1" 1293 | resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 1294 | 1295 | semver@^5.5.0: 1296 | version "5.5.0" 1297 | resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1298 | 1299 | setprototypeof@1.1.0: 1300 | version "1.1.0" 1301 | resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1302 | 1303 | shebang-command@^1.2.0: 1304 | version "1.2.0" 1305 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1306 | dependencies: 1307 | shebang-regex "^1.0.0" 1308 | 1309 | shebang-regex@^1.0.0: 1310 | version "1.0.0" 1311 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1312 | 1313 | signal-exit@^3.0.2: 1314 | version "3.0.2" 1315 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1316 | 1317 | slice-ansi@1.0.0: 1318 | version "1.0.0" 1319 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 1320 | dependencies: 1321 | is-fullwidth-code-point "^2.0.0" 1322 | 1323 | sliced@0.0.5: 1324 | version "0.0.5" 1325 | resolved "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz#5edc044ca4eb6f7816d50ba2fc63e25d8fe4707f" 1326 | 1327 | sliced@1.0.1: 1328 | version "1.0.1" 1329 | resolved "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" 1330 | 1331 | sprintf-js@~1.0.2: 1332 | version "1.0.3" 1333 | resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1334 | 1335 | stack-trace@0.0.x: 1336 | version "0.0.10" 1337 | resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 1338 | 1339 | "statuses@>= 1.4.0 < 2", statuses@^1.2.0: 1340 | version "1.5.0" 1341 | resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1342 | 1343 | string-width@^2.1.0, string-width@^2.1.1: 1344 | version "2.1.1" 1345 | resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1346 | dependencies: 1347 | is-fullwidth-code-point "^2.0.0" 1348 | strip-ansi "^4.0.0" 1349 | 1350 | string.prototype.matchall@^2.0.0: 1351 | version "2.0.0" 1352 | resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8" 1353 | dependencies: 1354 | define-properties "^1.1.2" 1355 | es-abstract "^1.10.0" 1356 | function-bind "^1.1.1" 1357 | has-symbols "^1.0.0" 1358 | regexp.prototype.flags "^1.2.0" 1359 | 1360 | string_decoder@~1.1.1: 1361 | version "1.1.1" 1362 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1363 | dependencies: 1364 | safe-buffer "~5.1.0" 1365 | 1366 | strip-ansi@^3.0.0: 1367 | version "3.0.1" 1368 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1369 | dependencies: 1370 | ansi-regex "^2.0.0" 1371 | 1372 | strip-ansi@^4.0.0: 1373 | version "4.0.0" 1374 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1375 | dependencies: 1376 | ansi-regex "^3.0.0" 1377 | 1378 | strip-json-comments@^2.0.1: 1379 | version "2.0.1" 1380 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1381 | 1382 | supports-color@^2.0.0: 1383 | version "2.0.0" 1384 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1385 | 1386 | supports-color@^5.3.0: 1387 | version "5.4.0" 1388 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 1389 | dependencies: 1390 | has-flag "^3.0.0" 1391 | 1392 | symbol-observable@1.0.1: 1393 | version "1.0.1" 1394 | resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" 1395 | 1396 | table@^4.0.3: 1397 | version "4.0.3" 1398 | resolved "https://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" 1399 | dependencies: 1400 | ajv "^6.0.1" 1401 | ajv-keywords "^3.0.0" 1402 | chalk "^2.1.0" 1403 | lodash "^4.17.4" 1404 | slice-ansi "1.0.0" 1405 | string-width "^2.1.1" 1406 | 1407 | text-hex@0.0.x: 1408 | version "0.0.0" 1409 | resolved "https://registry.npmjs.org/text-hex/-/text-hex-0.0.0.tgz#578fbc85a6a92636e42dd17b41d0218cce9eb2b3" 1410 | 1411 | text-table@^0.2.0: 1412 | version "0.2.0" 1413 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1414 | 1415 | through@^2.3.6: 1416 | version "2.3.8" 1417 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1418 | 1419 | tmp@^0.0.33: 1420 | version "0.0.33" 1421 | resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1422 | dependencies: 1423 | os-tmpdir "~1.0.2" 1424 | 1425 | triple-beam@^1.2.0, triple-beam@^1.3.0: 1426 | version "1.3.0" 1427 | resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" 1428 | 1429 | type-check@~0.3.2: 1430 | version "0.3.2" 1431 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1432 | dependencies: 1433 | prelude-ls "~1.1.2" 1434 | 1435 | type-is@^1.5.5, type-is@^1.6.16: 1436 | version "1.6.16" 1437 | resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 1438 | dependencies: 1439 | media-typer "0.3.0" 1440 | mime-types "~2.1.18" 1441 | 1442 | unpipe@1.0.0: 1443 | version "1.0.0" 1444 | resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1445 | 1446 | uri-js@^4.2.1: 1447 | version "4.2.2" 1448 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1449 | dependencies: 1450 | punycode "^2.1.0" 1451 | 1452 | urijs@^1.19.0: 1453 | version "1.19.1" 1454 | resolved "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" 1455 | 1456 | util-deprecate@~1.0.1: 1457 | version "1.0.2" 1458 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1459 | 1460 | vary@^1.0.0: 1461 | version "1.1.2" 1462 | resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1463 | 1464 | which@^1.2.9: 1465 | version "1.3.1" 1466 | resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1467 | dependencies: 1468 | isexe "^2.0.0" 1469 | 1470 | winston-transport@^4.2.0: 1471 | version "4.2.0" 1472 | resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.2.0.tgz#a20be89edf2ea2ca39ba25f3e50344d73e6520e5" 1473 | dependencies: 1474 | readable-stream "^2.3.6" 1475 | triple-beam "^1.2.0" 1476 | 1477 | winston@3.0.0: 1478 | version "3.0.0" 1479 | resolved "https://registry.npmjs.org/winston/-/winston-3.0.0.tgz#1f0b24a96586798bcf0cd149fb07ed47cb01a1b2" 1480 | dependencies: 1481 | async "^2.6.0" 1482 | diagnostics "^1.0.1" 1483 | is-stream "^1.1.0" 1484 | logform "^1.9.0" 1485 | one-time "0.0.4" 1486 | readable-stream "^2.3.6" 1487 | stack-trace "0.0.x" 1488 | triple-beam "^1.3.0" 1489 | winston-transport "^4.2.0" 1490 | 1491 | wordwrap@~1.0.0: 1492 | version "1.0.0" 1493 | resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1494 | 1495 | wrappy@1: 1496 | version "1.0.2" 1497 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1498 | 1499 | write@^0.2.1: 1500 | version "0.2.1" 1501 | resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1502 | dependencies: 1503 | mkdirp "^0.5.1" 1504 | 1505 | xml2js@0.4.19: 1506 | version "0.4.19" 1507 | resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" 1508 | dependencies: 1509 | sax ">=0.6.0" 1510 | xmlbuilder "~9.0.1" 1511 | 1512 | xmlbuilder@~9.0.1: 1513 | version "9.0.4" 1514 | resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f" 1515 | --------------------------------------------------------------------------------