├── .gitignore ├── Dockerfile ├── README.md ├── index.js ├── logs └── .gitkeep ├── package.json ├── routes ├── all.js └── get.js ├── tools ├── logger.js └── redis.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | npm-debug.log 4 | Juejin2RSS.log* 5 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:4.4-onbuild 2 | EXPOSE 1208 3 | RUN npm install -g forever 4 | ENTRYPOINT forever --spinSleepTime 1000 --minUptime 1000 index.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ⚠️ 此项目已被弃用并合入 [RSSHub](https://github.com/DIYgod/RSSHub),请使用 [RSSHub](https://github.com/DIYgod/RSSHub) 2 | 3 | # Juejin2RSS 4 | 5 | > 使用RSS订阅稀土掘金 6 | 7 | ## 介绍 8 | 9 | 掘金的[官方 RSS](http://juejin.im/rss) 只能订阅全部内容,不能只订阅某个分类,只好自己动手了 10 | 11 | ## 使用 12 | 13 | 订阅某个分类 https://api.prprpr.me/xitu/{分类} 14 | 15 | 名称 | 分类 16 | --- | ---- 17 | 前端 | frontend 18 | Android | android 19 | iOS | ios 20 | 后端 | backend 21 | 设计 | design 22 | 产品 | product 23 | 工具资源 | freebie 24 | 阅读 | article 25 | 人工智能 | ai 26 | 27 | ## 搭建 28 | 29 | 需要环境:Node.js redis 30 | 31 | ## LICENSE 32 | 33 | MIT © [DIYgod](http://github.com/DIYgod) -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var logger = require('./tools/logger'); 3 | 4 | logger.info(`🍻 Juejin2RSS start! Cheers!`); 5 | 6 | var app = express(); 7 | app.all('*', require('./routes/all')); 8 | app.get('/', require('./routes/get')); 9 | app.get('/:category', require('./routes/get')); 10 | app.listen(1208); -------------------------------------------------------------------------------- /logs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DIYgod/Juejin2RSS/b2eababcda0f3caf923addc7758bd3c49fd8ddc6/logs/.gitkeep -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Juejin2RSS", 3 | "version": "0.0.1", 4 | "description": "使用RSS订阅稀土掘金", 5 | "main": "index.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/DIYgod/Juejin2RSS.git" 9 | }, 10 | "keywords": [ 11 | "Weibo", 12 | "RSS" 13 | ], 14 | "author": "DIYgod", 15 | "license": "SATA", 16 | "bugs": { 17 | "url": "https://github.com/DIYgod/Juejin2RSS/issues" 18 | }, 19 | "homepage": "https://github.com/DIYgod/Juejin2RSS#readme", 20 | "devDependencies": {}, 21 | "dependencies": { 22 | "express": "^4.14.0", 23 | "log4js": "^2.4.1", 24 | "redis": "2.8.0", 25 | "request": "2.83.0", 26 | "xml2js": "^0.4.17" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /routes/all.js: -------------------------------------------------------------------------------- 1 | module.exports = function (req, res, next) { 2 | res.header('Access-Control-Allow-Origin', '*'); 3 | res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild'); 4 | res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); 5 | 6 | if (req.method == 'OPTIONS') { 7 | res.send(200); 8 | } 9 | else { 10 | next(); 11 | } 12 | }; -------------------------------------------------------------------------------- /routes/get.js: -------------------------------------------------------------------------------- 1 | var request = require('request'); 2 | var logger = require('../tools/logger'); 3 | var redis = require('../tools/redis'); 4 | var xml2js = require('xml2js'); 5 | var parseString = xml2js.parseString; 6 | var builder = new xml2js.Builder({ 7 | allowSurrogateChars: true 8 | }); 9 | 10 | module.exports = function (req, res) { 11 | res.header('Content-Type', 'application/xml; charset=utf-8'); 12 | 13 | var ip = req.headers['x-forwarded-for'] || 14 | req.connection.remoteAddress || 15 | req.socket.remoteAddress || 16 | req.connection.socket.remoteAddress; 17 | 18 | var category = req.params.category; 19 | 20 | function categorydone (id, name, callback) { 21 | request.get({ 22 | url: `https://timeline-merger-ms.juejin.im/v1/get_entry_by_timeline?src=web&limit=20&category=${id}`, 23 | headers: { 24 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 25 | 'Referer': `https://juejin.im/welcome/${category}`, 26 | 'Origin': 'https://juejin.im', 27 | } 28 | }, function (err, httpResponse, body) { 29 | if (body) { 30 | const data = JSON.parse(body); 31 | const list = data.d.entrylist || []; 32 | var rss = 33 | ` 34 | 35 | 36 | 掘金RSS - ${name} 37 | https://juejin.im/welcome/${category} 38 | 掘金RSS - ${name},使用 Juejin2RSS(https://github.com/DIYgod/Juejin2RSS) 构建 39 | zh-cn 40 | ${new Date().toUTCString()} 41 | 300` 42 | for (var i = 0; i < list.length; i++) { 43 | rss += ` 44 | 45 | <![CDATA[${list[i].title}]]> 46 | 47 | ${new Date(list[i].createdAt).toUTCString()} 48 | ${list[i].originalUrl} 49 | ${list[i].originalUrl} 50 | ` 51 | } 52 | rss += ` 53 | 54 | ` 55 | callback(rss); 56 | } 57 | else { 58 | callback(''); 59 | } 60 | }); 61 | } 62 | 63 | redis.client.get(`JuejinCategories`, function (err, reply) { 64 | if (reply) { 65 | logger.info(`Juejin2RSS category ${category} from redis, IP: ${ip}`); 66 | const cat = JSON.parse(reply).filter(item => item.title === category)[0]; 67 | if (cat) { 68 | categorydone(cat.id, cat.name, (rss) => { 69 | res.send(rss); 70 | }); 71 | } 72 | else { 73 | res.send(''); 74 | } 75 | } 76 | else { 77 | logger.info(`Juejin2RSS category ${category} form origin, IP: ${ip}`); 78 | 79 | request.get({ 80 | url: `https://gold-tag-ms.juejin.im/v1/categories`, 81 | headers: { 82 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36', 83 | 'Referer': `https://juejin.im/welcome/${category}`, 84 | 'Origin': 'https://juejin.im', 85 | 'X-Juejin-Client': '', 86 | 'X-Juejin-Src': 'web', 87 | 'X-Juejin-Token': '', 88 | 'X-Juejin-Uid': '' 89 | } 90 | }, function (err, httpResponse, body) { 91 | if (body) { 92 | const data = JSON.parse(body); 93 | redis.set(`JuejinCategories`, JSON.stringify(data.d.categoryList)); 94 | const cat = data.d.categoryList.filter(item => item.title === category)[0]; 95 | if (cat) { 96 | categorydone(cat.id, cat.name, (rss) => { 97 | res.send(rss); 98 | }); 99 | } 100 | else { 101 | res.send(''); 102 | } 103 | } 104 | }); 105 | } 106 | }); 107 | }; -------------------------------------------------------------------------------- /tools/logger.js: -------------------------------------------------------------------------------- 1 | var log4js = require('log4js'); 2 | log4js.configure({ 3 | appenders: { 4 | Juejin2RSS: { 5 | type: 'file', 6 | filename: 'logs/Juejin2RSS.log', 7 | maxLogSize: 20480, 8 | backups: 3, 9 | compress: true 10 | }, 11 | console: { 12 | type: 'console' 13 | } 14 | }, 15 | categories: { default: { appenders: ['Juejin2RSS', 'console'], level: 'INFO' } } 16 | }); 17 | var logger = log4js.getLogger('Juejin2RSS'); 18 | 19 | module.exports = logger; -------------------------------------------------------------------------------- /tools/redis.js: -------------------------------------------------------------------------------- 1 | var logger = require('./logger'); 2 | var redis = require("redis"); 3 | var client; 4 | if (process.env.REDIS_PORT_6379_TCP_ADDR && process.env.REDIS_PORT_6379_TCP_PORT) { 5 | client = redis.createClient({ 6 | host: process.env.REDIS_PORT_6379_TCP_ADDR, 7 | port: process.env.REDIS_PORT_6379_TCP_PORT 8 | }); 9 | } 10 | else { 11 | client = redis.createClient(); 12 | } 13 | 14 | 15 | client.on("error", function (err) { 16 | logger.error('Redis Error ' + err); 17 | }); 18 | 19 | module.exports = { 20 | set: function (key, value) { 21 | client.set(key, value, redis.print); 22 | client.expire(key, 86400); 23 | logger.info('Set redis: ' + key); 24 | }, 25 | client: client 26 | }; -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | accepts@~1.3.4: 6 | version "1.3.4" 7 | resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" 8 | dependencies: 9 | mime-types "~2.1.16" 10 | negotiator "0.6.1" 11 | 12 | addressparser@1.0.1: 13 | version "1.0.1" 14 | resolved "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" 15 | 16 | agent-base@2: 17 | version "2.1.1" 18 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" 19 | dependencies: 20 | extend "~3.0.0" 21 | semver "~5.0.1" 22 | 23 | ajv@^5.1.0: 24 | version "5.5.2" 25 | resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 26 | dependencies: 27 | co "^4.6.0" 28 | fast-deep-equal "^1.0.0" 29 | fast-json-stable-stringify "^2.0.0" 30 | json-schema-traverse "^0.3.0" 31 | 32 | ansi-regex@^2.0.0: 33 | version "2.1.1" 34 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 35 | 36 | ansi-styles@^2.2.1: 37 | version "2.2.1" 38 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 39 | 40 | array-flatten@1.1.1: 41 | version "1.1.1" 42 | resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 43 | 44 | asn1@~0.2.3: 45 | version "0.2.3" 46 | resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 47 | 48 | assert-plus@1.0.0, assert-plus@^1.0.0: 49 | version "1.0.0" 50 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 51 | 52 | assert-plus@^0.2.0: 53 | version "0.2.0" 54 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 55 | 56 | ast-types@0.x.x: 57 | version "0.10.1" 58 | resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" 59 | 60 | async@~2.1.2: 61 | version "2.1.5" 62 | resolved "https://registry.npmjs.org/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" 63 | dependencies: 64 | lodash "^4.14.0" 65 | 66 | asynckit@^0.4.0: 67 | version "0.4.0" 68 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 69 | 70 | aws-sign2@~0.6.0: 71 | version "0.6.0" 72 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 73 | 74 | aws-sign2@~0.7.0: 75 | version "0.7.0" 76 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 77 | 78 | aws4@^1.2.1, aws4@^1.6.0: 79 | version "1.6.0" 80 | resolved "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 81 | 82 | axios@^0.15.3: 83 | version "0.15.3" 84 | resolved "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053" 85 | dependencies: 86 | follow-redirects "1.0.0" 87 | 88 | bcrypt-pbkdf@^1.0.0: 89 | version "1.0.1" 90 | resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 91 | dependencies: 92 | tweetnacl "^0.14.3" 93 | 94 | bl@~1.1.2: 95 | version "1.1.2" 96 | resolved "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" 97 | dependencies: 98 | readable-stream "~2.0.5" 99 | 100 | body-parser@1.18.2: 101 | version "1.18.2" 102 | resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 103 | dependencies: 104 | bytes "3.0.0" 105 | content-type "~1.0.4" 106 | debug "2.6.9" 107 | depd "~1.1.1" 108 | http-errors "~1.6.2" 109 | iconv-lite "0.4.19" 110 | on-finished "~2.3.0" 111 | qs "6.5.1" 112 | raw-body "2.3.2" 113 | type-is "~1.6.15" 114 | 115 | boom@2.x.x: 116 | version "2.10.1" 117 | resolved "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 118 | dependencies: 119 | hoek "2.x.x" 120 | 121 | boom@4.x.x: 122 | version "4.3.1" 123 | resolved "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" 124 | dependencies: 125 | hoek "4.x.x" 126 | 127 | boom@5.x.x: 128 | version "5.2.0" 129 | resolved "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" 130 | dependencies: 131 | hoek "4.x.x" 132 | 133 | buildmail@4.0.1: 134 | version "4.0.1" 135 | resolved "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72" 136 | dependencies: 137 | addressparser "1.0.1" 138 | libbase64 "0.1.0" 139 | libmime "3.0.0" 140 | libqp "1.1.0" 141 | nodemailer-fetch "1.6.0" 142 | nodemailer-shared "1.1.0" 143 | punycode "1.4.1" 144 | 145 | bytes@3.0.0: 146 | version "3.0.0" 147 | resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 148 | 149 | caseless@~0.11.0: 150 | version "0.11.0" 151 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" 152 | 153 | caseless@~0.12.0: 154 | version "0.12.0" 155 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 156 | 157 | chalk@^1.1.1: 158 | version "1.1.3" 159 | resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 160 | dependencies: 161 | ansi-styles "^2.2.1" 162 | escape-string-regexp "^1.0.2" 163 | has-ansi "^2.0.0" 164 | strip-ansi "^3.0.0" 165 | supports-color "^2.0.0" 166 | 167 | circular-json@^0.4.0: 168 | version "0.4.0" 169 | resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.4.0.tgz#c448ea998b7fe31ecf472ec29c6b608e2e2a62fd" 170 | 171 | co@^4.6.0: 172 | version "4.6.0" 173 | resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 174 | 175 | co@~3.0.6: 176 | version "3.0.6" 177 | resolved "https://registry.npmjs.org/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda" 178 | 179 | combined-stream@^1.0.5, combined-stream@~1.0.5: 180 | version "1.0.5" 181 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 182 | dependencies: 183 | delayed-stream "~1.0.0" 184 | 185 | commander@^2.9.0: 186 | version "2.13.0" 187 | resolved "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" 188 | 189 | content-disposition@0.5.2: 190 | version "0.5.2" 191 | resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 192 | 193 | content-type@~1.0.4: 194 | version "1.0.4" 195 | resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 196 | 197 | cookie-signature@1.0.6: 198 | version "1.0.6" 199 | resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 200 | 201 | cookie@0.3.1: 202 | version "0.3.1" 203 | resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 204 | 205 | core-util-is@1.0.2, core-util-is@~1.0.0: 206 | version "1.0.2" 207 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 208 | 209 | cryptiles@2.x.x: 210 | version "2.0.5" 211 | resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 212 | dependencies: 213 | boom "2.x.x" 214 | 215 | cryptiles@3.x.x: 216 | version "3.1.2" 217 | resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" 218 | dependencies: 219 | boom "5.x.x" 220 | 221 | dashdash@^1.12.0: 222 | version "1.14.1" 223 | resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 224 | dependencies: 225 | assert-plus "^1.0.0" 226 | 227 | data-uri-to-buffer@1: 228 | version "1.2.0" 229 | resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" 230 | 231 | date-format@^1.2.0: 232 | version "1.2.0" 233 | resolved "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8" 234 | 235 | debug@2, debug@2.6.9, debug@^2.2.0: 236 | version "2.6.9" 237 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 238 | dependencies: 239 | ms "2.0.0" 240 | 241 | debug@^3.1.0: 242 | version "3.1.0" 243 | resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 244 | dependencies: 245 | ms "2.0.0" 246 | 247 | debug@~2.2.0: 248 | version "2.2.0" 249 | resolved "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 250 | dependencies: 251 | ms "0.7.1" 252 | 253 | deep-is@~0.1.3: 254 | version "0.1.3" 255 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 256 | 257 | degenerator@~1.0.2: 258 | version "1.0.4" 259 | resolved "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" 260 | dependencies: 261 | ast-types "0.x.x" 262 | escodegen "1.x.x" 263 | esprima "3.x.x" 264 | 265 | delayed-stream@~1.0.0: 266 | version "1.0.0" 267 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 268 | 269 | depd@1.1.1: 270 | version "1.1.1" 271 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 272 | 273 | depd@~1.1.1: 274 | version "1.1.2" 275 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 276 | 277 | destroy@~1.0.4: 278 | version "1.0.4" 279 | resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 280 | 281 | double-ended-queue@^2.1.0-0: 282 | version "2.1.0-0" 283 | resolved "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" 284 | 285 | ecc-jsbn@~0.1.1: 286 | version "0.1.1" 287 | resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 288 | dependencies: 289 | jsbn "~0.1.0" 290 | 291 | ee-first@1.1.1: 292 | version "1.1.1" 293 | resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 294 | 295 | encodeurl@~1.0.1: 296 | version "1.0.1" 297 | resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" 298 | 299 | escape-html@~1.0.3: 300 | version "1.0.3" 301 | resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 302 | 303 | escape-string-regexp@^1.0.2: 304 | version "1.0.5" 305 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 306 | 307 | escodegen@1.x.x: 308 | version "1.9.0" 309 | resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" 310 | dependencies: 311 | esprima "^3.1.3" 312 | estraverse "^4.2.0" 313 | esutils "^2.0.2" 314 | optionator "^0.8.1" 315 | optionalDependencies: 316 | source-map "~0.5.6" 317 | 318 | esprima@3.x.x, esprima@^3.1.3: 319 | version "3.1.3" 320 | resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 321 | 322 | estraverse@^4.2.0: 323 | version "4.2.0" 324 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 325 | 326 | esutils@^2.0.2: 327 | version "2.0.2" 328 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 329 | 330 | etag@~1.8.1: 331 | version "1.8.1" 332 | resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 333 | 334 | express@^4.14.0: 335 | version "4.16.2" 336 | resolved "https://registry.npmjs.org/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" 337 | dependencies: 338 | accepts "~1.3.4" 339 | array-flatten "1.1.1" 340 | body-parser "1.18.2" 341 | content-disposition "0.5.2" 342 | content-type "~1.0.4" 343 | cookie "0.3.1" 344 | cookie-signature "1.0.6" 345 | debug "2.6.9" 346 | depd "~1.1.1" 347 | encodeurl "~1.0.1" 348 | escape-html "~1.0.3" 349 | etag "~1.8.1" 350 | finalhandler "1.1.0" 351 | fresh "0.5.2" 352 | merge-descriptors "1.0.1" 353 | methods "~1.1.2" 354 | on-finished "~2.3.0" 355 | parseurl "~1.3.2" 356 | path-to-regexp "0.1.7" 357 | proxy-addr "~2.0.2" 358 | qs "6.5.1" 359 | range-parser "~1.2.0" 360 | safe-buffer "5.1.1" 361 | send "0.16.1" 362 | serve-static "1.13.1" 363 | setprototypeof "1.1.0" 364 | statuses "~1.3.1" 365 | type-is "~1.6.15" 366 | utils-merge "1.0.1" 367 | vary "~1.1.2" 368 | 369 | extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: 370 | version "3.0.1" 371 | resolved "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 372 | 373 | extsprintf@1.3.0: 374 | version "1.3.0" 375 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 376 | 377 | extsprintf@^1.2.0: 378 | version "1.4.0" 379 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 380 | 381 | fast-deep-equal@^1.0.0: 382 | version "1.0.0" 383 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" 384 | 385 | fast-json-stable-stringify@^2.0.0: 386 | version "2.0.0" 387 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 388 | 389 | fast-levenshtein@~2.0.4: 390 | version "2.0.6" 391 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 392 | 393 | file-uri-to-path@1: 394 | version "1.0.0" 395 | resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 396 | 397 | finalhandler@1.1.0: 398 | version "1.1.0" 399 | resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" 400 | dependencies: 401 | debug "2.6.9" 402 | encodeurl "~1.0.1" 403 | escape-html "~1.0.3" 404 | on-finished "~2.3.0" 405 | parseurl "~1.3.2" 406 | statuses "~1.3.1" 407 | unpipe "~1.0.0" 408 | 409 | follow-redirects@1.0.0: 410 | version "1.0.0" 411 | resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37" 412 | dependencies: 413 | debug "^2.2.0" 414 | 415 | forever-agent@~0.6.1: 416 | version "0.6.1" 417 | resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 418 | 419 | form-data@~2.0.0: 420 | version "2.0.0" 421 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" 422 | dependencies: 423 | asynckit "^0.4.0" 424 | combined-stream "^1.0.5" 425 | mime-types "^2.1.11" 426 | 427 | form-data@~2.1.1: 428 | version "2.1.4" 429 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 430 | dependencies: 431 | asynckit "^0.4.0" 432 | combined-stream "^1.0.5" 433 | mime-types "^2.1.12" 434 | 435 | form-data@~2.3.1: 436 | version "2.3.1" 437 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" 438 | dependencies: 439 | asynckit "^0.4.0" 440 | combined-stream "^1.0.5" 441 | mime-types "^2.1.12" 442 | 443 | forwarded@~0.1.2: 444 | version "0.1.2" 445 | resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 446 | 447 | fresh@0.5.2: 448 | version "0.5.2" 449 | resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 450 | 451 | ftp@~0.3.10: 452 | version "0.3.10" 453 | resolved "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" 454 | dependencies: 455 | readable-stream "1.1.x" 456 | xregexp "2.0.0" 457 | 458 | generate-function@^2.0.0: 459 | version "2.0.0" 460 | resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 461 | 462 | generate-object-property@^1.1.0: 463 | version "1.2.0" 464 | resolved "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 465 | dependencies: 466 | is-property "^1.0.0" 467 | 468 | get-uri@2: 469 | version "2.0.1" 470 | resolved "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz#dbdcacacd8c608a38316869368117697a1631c59" 471 | dependencies: 472 | data-uri-to-buffer "1" 473 | debug "2" 474 | extend "3" 475 | file-uri-to-path "1" 476 | ftp "~0.3.10" 477 | readable-stream "2" 478 | 479 | getpass@^0.1.1: 480 | version "0.1.7" 481 | resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 482 | dependencies: 483 | assert-plus "^1.0.0" 484 | 485 | har-schema@^2.0.0: 486 | version "2.0.0" 487 | resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 488 | 489 | har-validator@~2.0.6: 490 | version "2.0.6" 491 | resolved "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" 492 | dependencies: 493 | chalk "^1.1.1" 494 | commander "^2.9.0" 495 | is-my-json-valid "^2.12.4" 496 | pinkie-promise "^2.0.0" 497 | 498 | har-validator@~5.0.3: 499 | version "5.0.3" 500 | resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 501 | dependencies: 502 | ajv "^5.1.0" 503 | har-schema "^2.0.0" 504 | 505 | has-ansi@^2.0.0: 506 | version "2.0.0" 507 | resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 508 | dependencies: 509 | ansi-regex "^2.0.0" 510 | 511 | hawk@~3.1.3: 512 | version "3.1.3" 513 | resolved "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 514 | dependencies: 515 | boom "2.x.x" 516 | cryptiles "2.x.x" 517 | hoek "2.x.x" 518 | sntp "1.x.x" 519 | 520 | hawk@~6.0.2: 521 | version "6.0.2" 522 | resolved "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" 523 | dependencies: 524 | boom "4.x.x" 525 | cryptiles "3.x.x" 526 | hoek "4.x.x" 527 | sntp "2.x.x" 528 | 529 | hipchat-notifier@^1.1.0: 530 | version "1.1.0" 531 | resolved "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz#b6d249755437c191082367799d3ba9a0f23b231e" 532 | dependencies: 533 | lodash "^4.0.0" 534 | request "^2.0.0" 535 | 536 | hoek@2.x.x: 537 | version "2.16.3" 538 | resolved "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 539 | 540 | hoek@4.x.x: 541 | version "4.2.0" 542 | resolved "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" 543 | 544 | http-errors@1.6.2, http-errors@~1.6.2: 545 | version "1.6.2" 546 | resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 547 | dependencies: 548 | depd "1.1.1" 549 | inherits "2.0.3" 550 | setprototypeof "1.0.3" 551 | statuses ">= 1.3.1 < 2" 552 | 553 | http-proxy-agent@1: 554 | version "1.0.0" 555 | resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" 556 | dependencies: 557 | agent-base "2" 558 | debug "2" 559 | extend "3" 560 | 561 | http-signature@~1.1.0: 562 | version "1.1.1" 563 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 564 | dependencies: 565 | assert-plus "^0.2.0" 566 | jsprim "^1.2.2" 567 | sshpk "^1.7.0" 568 | 569 | http-signature@~1.2.0: 570 | version "1.2.0" 571 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 572 | dependencies: 573 | assert-plus "^1.0.0" 574 | jsprim "^1.2.2" 575 | sshpk "^1.7.0" 576 | 577 | httpntlm@1.6.1: 578 | version "1.6.1" 579 | resolved "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2" 580 | dependencies: 581 | httpreq ">=0.4.22" 582 | underscore "~1.7.0" 583 | 584 | httpreq@>=0.4.22: 585 | version "0.4.24" 586 | resolved "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz#4335ffd82cd969668a39465c929ac61d6393627f" 587 | 588 | https-proxy-agent@1: 589 | version "1.0.0" 590 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" 591 | dependencies: 592 | agent-base "2" 593 | debug "2" 594 | extend "3" 595 | 596 | iconv-lite@0.4.15: 597 | version "0.4.15" 598 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" 599 | 600 | iconv-lite@0.4.19: 601 | version "0.4.19" 602 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 603 | 604 | inflection@~1.10.0: 605 | version "1.10.0" 606 | resolved "https://registry.npmjs.org/inflection/-/inflection-1.10.0.tgz#5bffcb1197ad3e81050f8e17e21668087ee9eb2f" 607 | 608 | inflection@~1.3.0: 609 | version "1.3.8" 610 | resolved "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz#cbd160da9f75b14c3cc63578d4f396784bf3014e" 611 | 612 | inherits@2.0.3, inherits@~2.0.1, inherits@~2.0.3: 613 | version "2.0.3" 614 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 615 | 616 | ip@1.0.1: 617 | version "1.0.1" 618 | resolved "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" 619 | 620 | ip@^1.1.2, ip@^1.1.4: 621 | version "1.1.5" 622 | resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" 623 | 624 | ipaddr.js@1.5.2: 625 | version "1.5.2" 626 | resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" 627 | 628 | is-my-json-valid@^2.12.4: 629 | version "2.17.1" 630 | resolved "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471" 631 | dependencies: 632 | generate-function "^2.0.0" 633 | generate-object-property "^1.1.0" 634 | jsonpointer "^4.0.0" 635 | xtend "^4.0.0" 636 | 637 | is-property@^1.0.0: 638 | version "1.0.2" 639 | resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 640 | 641 | is-stream@^1.1.0: 642 | version "1.1.0" 643 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 644 | 645 | is-typedarray@~1.0.0: 646 | version "1.0.0" 647 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 648 | 649 | isarray@0.0.1: 650 | version "0.0.1" 651 | resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 652 | 653 | isarray@~1.0.0: 654 | version "1.0.0" 655 | resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 656 | 657 | isstream@~0.1.2: 658 | version "0.1.2" 659 | resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 660 | 661 | jsbn@~0.1.0: 662 | version "0.1.1" 663 | resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 664 | 665 | json-schema-traverse@^0.3.0: 666 | version "0.3.1" 667 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 668 | 669 | json-schema@0.2.3: 670 | version "0.2.3" 671 | resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 672 | 673 | json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1: 674 | version "5.0.1" 675 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 676 | 677 | jsonpointer@^4.0.0: 678 | version "4.0.1" 679 | resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 680 | 681 | jsprim@^1.2.2: 682 | version "1.4.1" 683 | resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 684 | dependencies: 685 | assert-plus "1.0.0" 686 | extsprintf "1.3.0" 687 | json-schema "0.2.3" 688 | verror "1.10.0" 689 | 690 | levn@~0.3.0: 691 | version "0.3.0" 692 | resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 693 | dependencies: 694 | prelude-ls "~1.1.2" 695 | type-check "~0.3.2" 696 | 697 | libbase64@0.1.0: 698 | version "0.1.0" 699 | resolved "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6" 700 | 701 | libmime@3.0.0: 702 | version "3.0.0" 703 | resolved "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6" 704 | dependencies: 705 | iconv-lite "0.4.15" 706 | libbase64 "0.1.0" 707 | libqp "1.1.0" 708 | 709 | libqp@1.1.0: 710 | version "1.1.0" 711 | resolved "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" 712 | 713 | lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0: 714 | version "4.17.4" 715 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 716 | 717 | log4js@^2.4.1: 718 | version "2.4.1" 719 | resolved "https://registry.npmjs.org/log4js/-/log4js-2.4.1.tgz#b0c4e88133e0e3056afdc6f91f7f377576158778" 720 | dependencies: 721 | circular-json "^0.4.0" 722 | date-format "^1.2.0" 723 | debug "^3.1.0" 724 | semver "^5.3.0" 725 | streamroller "^0.7.0" 726 | optionalDependencies: 727 | axios "^0.15.3" 728 | hipchat-notifier "^1.1.0" 729 | loggly "^1.1.0" 730 | mailgun-js "^0.7.0" 731 | nodemailer "^2.5.0" 732 | redis "^2.7.1" 733 | slack-node "~0.2.0" 734 | 735 | loggly@^1.1.0: 736 | version "1.1.1" 737 | resolved "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee" 738 | dependencies: 739 | json-stringify-safe "5.0.x" 740 | request "2.75.x" 741 | timespan "2.3.x" 742 | 743 | lru-cache@~2.6.5: 744 | version "2.6.5" 745 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" 746 | 747 | mailcomposer@4.0.1: 748 | version "4.0.1" 749 | resolved "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4" 750 | dependencies: 751 | buildmail "4.0.1" 752 | libmime "3.0.0" 753 | 754 | mailgun-js@^0.7.0: 755 | version "0.7.15" 756 | resolved "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.7.15.tgz#ee366a20dac64c3c15c03d6c1b3e0ed795252abb" 757 | dependencies: 758 | async "~2.1.2" 759 | debug "~2.2.0" 760 | form-data "~2.1.1" 761 | inflection "~1.10.0" 762 | is-stream "^1.1.0" 763 | path-proxy "~1.0.0" 764 | proxy-agent "~2.0.0" 765 | q "~1.4.0" 766 | tsscmp "~1.0.0" 767 | 768 | media-typer@0.3.0: 769 | version "0.3.0" 770 | resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 771 | 772 | merge-descriptors@1.0.1: 773 | version "1.0.1" 774 | resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 775 | 776 | methods@~1.1.2: 777 | version "1.1.2" 778 | resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 779 | 780 | mime-db@~1.30.0: 781 | version "1.30.0" 782 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" 783 | 784 | mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: 785 | version "2.1.17" 786 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" 787 | dependencies: 788 | mime-db "~1.30.0" 789 | 790 | mime@1.4.1: 791 | version "1.4.1" 792 | resolved "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 793 | 794 | minimist@0.0.8: 795 | version "0.0.8" 796 | resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 797 | 798 | mkdirp@^0.5.1: 799 | version "0.5.1" 800 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 801 | dependencies: 802 | minimist "0.0.8" 803 | 804 | ms@0.7.1: 805 | version "0.7.1" 806 | resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 807 | 808 | ms@2.0.0: 809 | version "2.0.0" 810 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 811 | 812 | negotiator@0.6.1: 813 | version "0.6.1" 814 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 815 | 816 | netmask@~1.0.4: 817 | version "1.0.6" 818 | resolved "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" 819 | 820 | node-uuid@~1.4.7: 821 | version "1.4.8" 822 | resolved "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" 823 | 824 | nodemailer-direct-transport@3.3.2: 825 | version "3.3.2" 826 | resolved "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86" 827 | dependencies: 828 | nodemailer-shared "1.1.0" 829 | smtp-connection "2.12.0" 830 | 831 | nodemailer-fetch@1.6.0: 832 | version "1.6.0" 833 | resolved "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4" 834 | 835 | nodemailer-shared@1.1.0: 836 | version "1.1.0" 837 | resolved "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0" 838 | dependencies: 839 | nodemailer-fetch "1.6.0" 840 | 841 | nodemailer-smtp-pool@2.8.2: 842 | version "2.8.2" 843 | resolved "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72" 844 | dependencies: 845 | nodemailer-shared "1.1.0" 846 | nodemailer-wellknown "0.1.10" 847 | smtp-connection "2.12.0" 848 | 849 | nodemailer-smtp-transport@2.7.2: 850 | version "2.7.2" 851 | resolved "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77" 852 | dependencies: 853 | nodemailer-shared "1.1.0" 854 | nodemailer-wellknown "0.1.10" 855 | smtp-connection "2.12.0" 856 | 857 | nodemailer-wellknown@0.1.10: 858 | version "0.1.10" 859 | resolved "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5" 860 | 861 | nodemailer@^2.5.0: 862 | version "2.7.2" 863 | resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9" 864 | dependencies: 865 | libmime "3.0.0" 866 | mailcomposer "4.0.1" 867 | nodemailer-direct-transport "3.3.2" 868 | nodemailer-shared "1.1.0" 869 | nodemailer-smtp-pool "2.8.2" 870 | nodemailer-smtp-transport "2.7.2" 871 | socks "1.1.9" 872 | 873 | oauth-sign@~0.8.1, oauth-sign@~0.8.2: 874 | version "0.8.2" 875 | resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 876 | 877 | on-finished@~2.3.0: 878 | version "2.3.0" 879 | resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 880 | dependencies: 881 | ee-first "1.1.1" 882 | 883 | optionator@^0.8.1: 884 | version "0.8.2" 885 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 886 | dependencies: 887 | deep-is "~0.1.3" 888 | fast-levenshtein "~2.0.4" 889 | levn "~0.3.0" 890 | prelude-ls "~1.1.2" 891 | type-check "~0.3.2" 892 | wordwrap "~1.0.0" 893 | 894 | pac-proxy-agent@1: 895 | version "1.1.0" 896 | resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d" 897 | dependencies: 898 | agent-base "2" 899 | debug "2" 900 | extend "3" 901 | get-uri "2" 902 | http-proxy-agent "1" 903 | https-proxy-agent "1" 904 | pac-resolver "~2.0.0" 905 | raw-body "2" 906 | socks-proxy-agent "2" 907 | 908 | pac-resolver@~2.0.0: 909 | version "2.0.0" 910 | resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd" 911 | dependencies: 912 | co "~3.0.6" 913 | degenerator "~1.0.2" 914 | ip "1.0.1" 915 | netmask "~1.0.4" 916 | thunkify "~2.1.1" 917 | 918 | parseurl@~1.3.2: 919 | version "1.3.2" 920 | resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 921 | 922 | path-proxy@~1.0.0: 923 | version "1.0.0" 924 | resolved "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e" 925 | dependencies: 926 | inflection "~1.3.0" 927 | 928 | path-to-regexp@0.1.7: 929 | version "0.1.7" 930 | resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 931 | 932 | performance-now@^2.1.0: 933 | version "2.1.0" 934 | resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 935 | 936 | pinkie-promise@^2.0.0: 937 | version "2.0.1" 938 | resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 939 | dependencies: 940 | pinkie "^2.0.0" 941 | 942 | pinkie@^2.0.0: 943 | version "2.0.4" 944 | resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 945 | 946 | prelude-ls@~1.1.2: 947 | version "1.1.2" 948 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 949 | 950 | process-nextick-args@~1.0.6: 951 | version "1.0.7" 952 | resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 953 | 954 | proxy-addr@~2.0.2: 955 | version "2.0.2" 956 | resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" 957 | dependencies: 958 | forwarded "~0.1.2" 959 | ipaddr.js "1.5.2" 960 | 961 | proxy-agent@~2.0.0: 962 | version "2.0.0" 963 | resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499" 964 | dependencies: 965 | agent-base "2" 966 | debug "2" 967 | extend "3" 968 | http-proxy-agent "1" 969 | https-proxy-agent "1" 970 | lru-cache "~2.6.5" 971 | pac-proxy-agent "1" 972 | socks-proxy-agent "2" 973 | 974 | punycode@1.4.1, punycode@^1.4.1: 975 | version "1.4.1" 976 | resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 977 | 978 | q@~1.4.0: 979 | version "1.4.1" 980 | resolved "https://registry.npmjs.org/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" 981 | 982 | qs@6.5.1, qs@~6.5.1: 983 | version "6.5.1" 984 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 985 | 986 | qs@~6.2.0: 987 | version "6.2.3" 988 | resolved "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" 989 | 990 | range-parser@~1.2.0: 991 | version "1.2.0" 992 | resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 993 | 994 | raw-body@2, raw-body@2.3.2: 995 | version "2.3.2" 996 | resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 997 | dependencies: 998 | bytes "3.0.0" 999 | http-errors "1.6.2" 1000 | iconv-lite "0.4.19" 1001 | unpipe "1.0.0" 1002 | 1003 | readable-stream@1.1.x: 1004 | version "1.1.14" 1005 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 1006 | dependencies: 1007 | core-util-is "~1.0.0" 1008 | inherits "~2.0.1" 1009 | isarray "0.0.1" 1010 | string_decoder "~0.10.x" 1011 | 1012 | readable-stream@2, readable-stream@^2.3.0: 1013 | version "2.3.3" 1014 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 1015 | dependencies: 1016 | core-util-is "~1.0.0" 1017 | inherits "~2.0.3" 1018 | isarray "~1.0.0" 1019 | process-nextick-args "~1.0.6" 1020 | safe-buffer "~5.1.1" 1021 | string_decoder "~1.0.3" 1022 | util-deprecate "~1.0.1" 1023 | 1024 | readable-stream@~2.0.5: 1025 | version "2.0.6" 1026 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" 1027 | dependencies: 1028 | core-util-is "~1.0.0" 1029 | inherits "~2.0.1" 1030 | isarray "~1.0.0" 1031 | process-nextick-args "~1.0.6" 1032 | string_decoder "~0.10.x" 1033 | util-deprecate "~1.0.1" 1034 | 1035 | redis-commands@^1.2.0: 1036 | version "1.3.1" 1037 | resolved "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz#81d826f45fa9c8b2011f4cd7a0fe597d241d442b" 1038 | 1039 | redis-parser@^2.6.0: 1040 | version "2.6.0" 1041 | resolved "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" 1042 | 1043 | redis@2.8.0, redis@^2.7.1: 1044 | version "2.8.0" 1045 | resolved "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" 1046 | dependencies: 1047 | double-ended-queue "^2.1.0-0" 1048 | redis-commands "^1.2.0" 1049 | redis-parser "^2.6.0" 1050 | 1051 | request@2.75.x: 1052 | version "2.75.0" 1053 | resolved "https://registry.npmjs.org/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" 1054 | dependencies: 1055 | aws-sign2 "~0.6.0" 1056 | aws4 "^1.2.1" 1057 | bl "~1.1.2" 1058 | caseless "~0.11.0" 1059 | combined-stream "~1.0.5" 1060 | extend "~3.0.0" 1061 | forever-agent "~0.6.1" 1062 | form-data "~2.0.0" 1063 | har-validator "~2.0.6" 1064 | hawk "~3.1.3" 1065 | http-signature "~1.1.0" 1066 | is-typedarray "~1.0.0" 1067 | isstream "~0.1.2" 1068 | json-stringify-safe "~5.0.1" 1069 | mime-types "~2.1.7" 1070 | node-uuid "~1.4.7" 1071 | oauth-sign "~0.8.1" 1072 | qs "~6.2.0" 1073 | stringstream "~0.0.4" 1074 | tough-cookie "~2.3.0" 1075 | tunnel-agent "~0.4.1" 1076 | 1077 | request@2.83.0, request@^2.0.0, request@^2.74.0: 1078 | version "2.83.0" 1079 | resolved "https://registry.npmjs.org/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" 1080 | dependencies: 1081 | aws-sign2 "~0.7.0" 1082 | aws4 "^1.6.0" 1083 | caseless "~0.12.0" 1084 | combined-stream "~1.0.5" 1085 | extend "~3.0.1" 1086 | forever-agent "~0.6.1" 1087 | form-data "~2.3.1" 1088 | har-validator "~5.0.3" 1089 | hawk "~6.0.2" 1090 | http-signature "~1.2.0" 1091 | is-typedarray "~1.0.0" 1092 | isstream "~0.1.2" 1093 | json-stringify-safe "~5.0.1" 1094 | mime-types "~2.1.17" 1095 | oauth-sign "~0.8.2" 1096 | performance-now "^2.1.0" 1097 | qs "~6.5.1" 1098 | safe-buffer "^5.1.1" 1099 | stringstream "~0.0.5" 1100 | tough-cookie "~2.3.3" 1101 | tunnel-agent "^0.6.0" 1102 | uuid "^3.1.0" 1103 | 1104 | requestretry@^1.2.2: 1105 | version "1.12.2" 1106 | resolved "https://registry.npmjs.org/requestretry/-/requestretry-1.12.2.tgz#13ce38a4ce4e809f3c9ec6d4ca3b7b9ba4acf26c" 1107 | dependencies: 1108 | extend "^3.0.0" 1109 | lodash "^4.15.0" 1110 | request "^2.74.0" 1111 | when "^3.7.7" 1112 | 1113 | safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1114 | version "5.1.1" 1115 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1116 | 1117 | sax@>=0.6.0: 1118 | version "1.2.4" 1119 | resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1120 | 1121 | semver@^5.3.0: 1122 | version "5.4.1" 1123 | resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 1124 | 1125 | semver@~5.0.1: 1126 | version "5.0.3" 1127 | resolved "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" 1128 | 1129 | send@0.16.1: 1130 | version "0.16.1" 1131 | resolved "https://registry.npmjs.org/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" 1132 | dependencies: 1133 | debug "2.6.9" 1134 | depd "~1.1.1" 1135 | destroy "~1.0.4" 1136 | encodeurl "~1.0.1" 1137 | escape-html "~1.0.3" 1138 | etag "~1.8.1" 1139 | fresh "0.5.2" 1140 | http-errors "~1.6.2" 1141 | mime "1.4.1" 1142 | ms "2.0.0" 1143 | on-finished "~2.3.0" 1144 | range-parser "~1.2.0" 1145 | statuses "~1.3.1" 1146 | 1147 | serve-static@1.13.1: 1148 | version "1.13.1" 1149 | resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" 1150 | dependencies: 1151 | encodeurl "~1.0.1" 1152 | escape-html "~1.0.3" 1153 | parseurl "~1.3.2" 1154 | send "0.16.1" 1155 | 1156 | setprototypeof@1.0.3: 1157 | version "1.0.3" 1158 | resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 1159 | 1160 | setprototypeof@1.1.0: 1161 | version "1.1.0" 1162 | resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1163 | 1164 | slack-node@~0.2.0: 1165 | version "0.2.0" 1166 | resolved "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz#de4b8dddaa8b793f61dbd2938104fdabf37dfa30" 1167 | dependencies: 1168 | requestretry "^1.2.2" 1169 | 1170 | smart-buffer@^1.0.13, smart-buffer@^1.0.4: 1171 | version "1.1.15" 1172 | resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" 1173 | 1174 | smtp-connection@2.12.0: 1175 | version "2.12.0" 1176 | resolved "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1" 1177 | dependencies: 1178 | httpntlm "1.6.1" 1179 | nodemailer-shared "1.1.0" 1180 | 1181 | sntp@1.x.x: 1182 | version "1.0.9" 1183 | resolved "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1184 | dependencies: 1185 | hoek "2.x.x" 1186 | 1187 | sntp@2.x.x: 1188 | version "2.1.0" 1189 | resolved "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" 1190 | dependencies: 1191 | hoek "4.x.x" 1192 | 1193 | socks-proxy-agent@2: 1194 | version "2.1.1" 1195 | resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" 1196 | dependencies: 1197 | agent-base "2" 1198 | extend "3" 1199 | socks "~1.1.5" 1200 | 1201 | socks@1.1.9: 1202 | version "1.1.9" 1203 | resolved "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691" 1204 | dependencies: 1205 | ip "^1.1.2" 1206 | smart-buffer "^1.0.4" 1207 | 1208 | socks@~1.1.5: 1209 | version "1.1.10" 1210 | resolved "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" 1211 | dependencies: 1212 | ip "^1.1.4" 1213 | smart-buffer "^1.0.13" 1214 | 1215 | source-map@~0.5.6: 1216 | version "0.5.7" 1217 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1218 | 1219 | sshpk@^1.7.0: 1220 | version "1.13.1" 1221 | resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 1222 | dependencies: 1223 | asn1 "~0.2.3" 1224 | assert-plus "^1.0.0" 1225 | dashdash "^1.12.0" 1226 | getpass "^0.1.1" 1227 | optionalDependencies: 1228 | bcrypt-pbkdf "^1.0.0" 1229 | ecc-jsbn "~0.1.1" 1230 | jsbn "~0.1.0" 1231 | tweetnacl "~0.14.0" 1232 | 1233 | "statuses@>= 1.3.1 < 2": 1234 | version "1.4.0" 1235 | resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 1236 | 1237 | statuses@~1.3.1: 1238 | version "1.3.1" 1239 | resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 1240 | 1241 | streamroller@^0.7.0: 1242 | version "0.7.0" 1243 | resolved "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b" 1244 | dependencies: 1245 | date-format "^1.2.0" 1246 | debug "^3.1.0" 1247 | mkdirp "^0.5.1" 1248 | readable-stream "^2.3.0" 1249 | 1250 | string_decoder@~0.10.x: 1251 | version "0.10.31" 1252 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1253 | 1254 | string_decoder@~1.0.3: 1255 | version "1.0.3" 1256 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 1257 | dependencies: 1258 | safe-buffer "~5.1.0" 1259 | 1260 | stringstream@~0.0.4, stringstream@~0.0.5: 1261 | version "0.0.5" 1262 | resolved "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1263 | 1264 | strip-ansi@^3.0.0: 1265 | version "3.0.1" 1266 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1267 | dependencies: 1268 | ansi-regex "^2.0.0" 1269 | 1270 | supports-color@^2.0.0: 1271 | version "2.0.0" 1272 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1273 | 1274 | thunkify@~2.1.1: 1275 | version "2.1.2" 1276 | resolved "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" 1277 | 1278 | timespan@2.3.x: 1279 | version "2.3.0" 1280 | resolved "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" 1281 | 1282 | tough-cookie@~2.3.0, tough-cookie@~2.3.3: 1283 | version "2.3.3" 1284 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" 1285 | dependencies: 1286 | punycode "^1.4.1" 1287 | 1288 | tsscmp@~1.0.0: 1289 | version "1.0.5" 1290 | resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" 1291 | 1292 | tunnel-agent@^0.6.0: 1293 | version "0.6.0" 1294 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1295 | dependencies: 1296 | safe-buffer "^5.0.1" 1297 | 1298 | tunnel-agent@~0.4.1: 1299 | version "0.4.3" 1300 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" 1301 | 1302 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1303 | version "0.14.5" 1304 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1305 | 1306 | type-check@~0.3.2: 1307 | version "0.3.2" 1308 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1309 | dependencies: 1310 | prelude-ls "~1.1.2" 1311 | 1312 | type-is@~1.6.15: 1313 | version "1.6.15" 1314 | resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" 1315 | dependencies: 1316 | media-typer "0.3.0" 1317 | mime-types "~2.1.15" 1318 | 1319 | underscore@~1.7.0: 1320 | version "1.7.0" 1321 | resolved "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" 1322 | 1323 | unpipe@1.0.0, unpipe@~1.0.0: 1324 | version "1.0.0" 1325 | resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1326 | 1327 | util-deprecate@~1.0.1: 1328 | version "1.0.2" 1329 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1330 | 1331 | utils-merge@1.0.1: 1332 | version "1.0.1" 1333 | resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1334 | 1335 | uuid@^3.1.0: 1336 | version "3.1.0" 1337 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 1338 | 1339 | vary@~1.1.2: 1340 | version "1.1.2" 1341 | resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1342 | 1343 | verror@1.10.0: 1344 | version "1.10.0" 1345 | resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1346 | dependencies: 1347 | assert-plus "^1.0.0" 1348 | core-util-is "1.0.2" 1349 | extsprintf "^1.2.0" 1350 | 1351 | when@^3.7.7: 1352 | version "3.7.8" 1353 | resolved "https://registry.npmjs.org/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" 1354 | 1355 | wordwrap@~1.0.0: 1356 | version "1.0.0" 1357 | resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1358 | 1359 | xml2js@^0.4.17: 1360 | version "0.4.19" 1361 | resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" 1362 | dependencies: 1363 | sax ">=0.6.0" 1364 | xmlbuilder "~9.0.1" 1365 | 1366 | xmlbuilder@~9.0.1: 1367 | version "9.0.4" 1368 | resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f" 1369 | 1370 | xregexp@2.0.0: 1371 | version "2.0.0" 1372 | resolved "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" 1373 | 1374 | xtend@^4.0.0: 1375 | version "4.0.1" 1376 | resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1377 | --------------------------------------------------------------------------------