kopia lustrzana https://github.com/badgen/badgen.net
Merge branch 'master' of https://github.com/amio/badgen-service
commit
c0a595c4d9
|
@ -0,0 +1,7 @@
|
|||
const got = require('got')
|
||||
|
||||
module.exports = got.extend({
|
||||
json: true,
|
||||
timeout: 3200,
|
||||
retry: 0
|
||||
})
|
|
@ -2,27 +2,52 @@
|
|||
const pool = require('./live-pool.js')
|
||||
const raven = require('./raven.js')
|
||||
|
||||
module.exports = async (scope, fn, paramsPath) => {
|
||||
const fetchKey = `#${scope}/${paramsPath}`
|
||||
module.exports = async (service, fn, paramsPath) => {
|
||||
const fetchStart = new Date()
|
||||
const fetchKey = `#${service}/${paramsPath}`
|
||||
|
||||
if (pool.has(fetchKey)) return pool.get(fetchKey)
|
||||
|
||||
const fetchStart = new Date()
|
||||
const fetcher = fn(...paramsPath.split('/')).then(
|
||||
result => {
|
||||
const timeSpan = String(new Date() - fetchStart).padStart(4, ' ')
|
||||
console.log(`${timeSpan}ms ${fetchKey}`)
|
||||
console.log(timeSince(fetchStart), fetchKey)
|
||||
return typeof result === 'object' ? result : { failed: true }
|
||||
},
|
||||
err => errorHandler(scope, paramsPath, err)
|
||||
err => errorHandler(service, paramsPath, err)
|
||||
).finally(() => {
|
||||
pool.delete(fetchKey)
|
||||
})
|
||||
|
||||
pool.set(fetchKey, fetcher)
|
||||
|
||||
return fetcher
|
||||
}
|
||||
|
||||
const timeSince = startStamp => {
|
||||
return String(new Date() - startStamp).padStart(4, ' ') + 'ms'
|
||||
}
|
||||
|
||||
const gotErrorHandler = (service, paramsPath, err) => {
|
||||
const serviceKey = `/${service}/${paramsPath}`
|
||||
|
||||
let status = 'unknown'
|
||||
if (err.statusCode === '404') {
|
||||
status = 'not found'
|
||||
} else if (err.code === 'ETIMEDOUT') {
|
||||
status = 'timeout'
|
||||
}
|
||||
|
||||
logError(serviceKey, err, status)
|
||||
sendError(serviceKey, err, status)
|
||||
|
||||
return { status, failed: true }
|
||||
}
|
||||
|
||||
const errorHandler = (scope, paramsPath, err) => {
|
||||
if (err.url) {
|
||||
return gotErrorHandler(scope, paramsPath, err)
|
||||
}
|
||||
|
||||
let status = 'unknown'
|
||||
|
||||
if (err.response && err.response.status === 404) {
|
||||
|
@ -57,10 +82,28 @@ const errorLogger = (serviceKey, err, status) => {
|
|||
}
|
||||
}
|
||||
|
||||
// log error
|
||||
const logError = (serviceKey, err, status) => {
|
||||
console.error(`LIVE_FN_ERR <${status}> ${serviceKey}
|
||||
@ ${err.url}
|
||||
> [${err.statusCode || err.code}] ${err.message}`)
|
||||
}
|
||||
|
||||
// send error to sentry
|
||||
const sendError = (serviceKey, err, status) => {
|
||||
status === 'unknown' && raven && raven.captureException(err, {
|
||||
tags: {
|
||||
serviceKey,
|
||||
url: err.url
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const printError = (serviceKey, status, err) => {
|
||||
let details = err.message
|
||||
if (status === 'unknown') {
|
||||
details += `\n ${err.stack}`.replace(/^/mg, ' ')
|
||||
}
|
||||
console.error(`LIVE_FN_ERR <${status}> ${serviceKey} > ${err.config.url}\n`, details)
|
||||
const url = (err.config && err.config.url) || ''
|
||||
console.error(`LIVE_FN_ERR <${status}> ${serviceKey} > ${url}\n`, details)
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
const axios = require('../axios.js')
|
||||
const got = require('../got.js')
|
||||
|
||||
const statuses = [
|
||||
['passed', 'green'],
|
||||
|
@ -17,8 +17,8 @@ module.exports = async (user, repo, branch = 'master') => {
|
|||
const com = `https://api.travis-ci.com/${user}/${repo}.svg?branch=${branch}`
|
||||
const org = `https://api.travis-ci.org/${user}/${repo}.svg?branch=${branch}`
|
||||
const [svg1, svg2] = await Promise.all([
|
||||
axios(com).then(({ data }) => data).catch(e => undefined),
|
||||
axios(org).then(({ data }) => data).catch(e => undefined)
|
||||
got(com, { json: false }).then(({ body }) => body),
|
||||
got(org, { json: false }).then(({ body }) => body)
|
||||
])
|
||||
|
||||
const result = statuses.find(st => {
|
||||
|
|
|
@ -23,16 +23,14 @@ module.exports = Object.entries(liveFns).map(([name, fn]) => {
|
|||
color = 'grey',
|
||||
failed = false
|
||||
} = await (
|
||||
API_HOST
|
||||
? apiFetcher(req.url)
|
||||
: liveFetcher(name, fn, req.params['*'])
|
||||
API_HOST ? apiFetcher(req.url) : liveFetcher(name, fn, req.params['*'])
|
||||
)
|
||||
|
||||
const style = req.headers.host === 'flat.badgen.net' ? 'flat' : undefined
|
||||
req.params = { subject, status, color, style }
|
||||
serveBadge(req, res, {
|
||||
code: 200, // Always 200 for badges
|
||||
maxAge: failed ? '0' : (Math.random() * 60 + 60).toFixed()
|
||||
code: 200, // always 200 for badges
|
||||
sMaxAge: failed ? '0' : (Math.random() * 60 + 60).toFixed()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
@ -9,10 +9,10 @@ const noneSquareIconWidths = {
|
|||
}
|
||||
|
||||
module.exports = (req, res, options = {}) => {
|
||||
const { code = 200, maxAge = '86400' } = options
|
||||
const { code = 200, sMaxAge = '86400', params } = options
|
||||
|
||||
const hostStyle = req.headers.host === 'flat.badgen.net' ? 'flat' : undefined
|
||||
const { subject, status, color } = req.params
|
||||
const { subject, status, color } = params || req.params
|
||||
const { style, label, list, icon, iconWidth, color: queryColor } = req.query
|
||||
|
||||
const badge = badgen({
|
||||
|
@ -26,6 +26,6 @@ module.exports = (req, res, options = {}) => {
|
|||
})
|
||||
|
||||
res.setHeader('Content-Type', 'image/svg+xml;charset=utf-8')
|
||||
res.setHeader('Cache-Control', `${CACHE_CONTROL}, s-maxage=${maxAge}`)
|
||||
res.setHeader('Cache-Control', `${CACHE_CONTROL}, s-maxage=${sMaxAge}`)
|
||||
send(res, code, badge)
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ module.exports = serveMarked('libs/index.md', {
|
|||
img { height: 20px }
|
||||
|
||||
pre, code { background-color: #EEF2F8; font-weight: 400 }
|
||||
pre > code { padding: 0 }
|
||||
pre > code { padding: 0; font-family: SF Mono, Courier, Monaco, monospace }
|
||||
|
||||
li { vertical-align: top; font: 16px/32px sans-serif; color: #777 }
|
||||
li code { padding: 0.3em 0.5em; display: pre; color: #333 }
|
||||
|
|
|
@ -3,6 +3,29 @@
|
|||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"@sindresorhus/is": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.11.0.tgz",
|
||||
"integrity": "sha512-i5Zh5+3QARyXtzq3Bd2Lg3aBRFLcgYbNoap3Hyu1uRN8X+D+0JMqqc4uk4XjhNxfVdCnL8WHUA2wxa33QCC50w==",
|
||||
"requires": {
|
||||
"symbol-observable": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"symbol-observable": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
|
||||
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@szmarczak/http-timer": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.1.tgz",
|
||||
"integrity": "sha512-WljfOGkmSJe8SUkl+4TPvN2ec0dpUGVyfTBQLoXJUiILs+wBSc4Kvp2N3aAWE4VwwDSLGdmD3/bufS5BgZpVSQ==",
|
||||
"requires": {
|
||||
"defer-to-connect": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "10.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.6.tgz",
|
||||
|
@ -229,7 +252,7 @@
|
|||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -441,6 +464,20 @@
|
|||
"unset-value": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"cacheable-request": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-4.0.1.tgz",
|
||||
"integrity": "sha512-sJJ9ivV+1DytIdAgQG1CsRjAESGD5WnjTr4BsQ3X4xZKp3O9i6Es7MWeQ1pOTuE0bTLVEf86YFjSGpr53wz7nw==",
|
||||
"requires": {
|
||||
"clone-response": "^1.0.2",
|
||||
"get-stream": "^3.0.0",
|
||||
"http-cache-semantics": "^4.0.0",
|
||||
"keyv": "^3.0.0",
|
||||
"lowercase-keys": "^1.0.1",
|
||||
"normalize-url": "^3.1.0",
|
||||
"responselike": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"caller-path": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
|
||||
|
@ -648,6 +685,14 @@
|
|||
"wrap-ansi": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"clone-response": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
|
||||
"integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
|
||||
"requires": {
|
||||
"mimic-response": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"co": {
|
||||
"version": "4.6.0",
|
||||
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
||||
|
@ -847,12 +892,25 @@
|
|||
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
|
||||
"dev": true
|
||||
},
|
||||
"decompress-response": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
|
||||
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
|
||||
"requires": {
|
||||
"mimic-response": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"deep-is": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
|
||||
"dev": true
|
||||
},
|
||||
"defer-to-connect": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.1.tgz",
|
||||
"integrity": "sha512-2e0FJesseUqQj671gvZWfUyxpnFx/5n4xleamlpCD3U6Fm5dh5qzmmLNxNhtmHF06+SYVHH8QU6FACffYTnj0Q=="
|
||||
},
|
||||
"define-properties": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
|
||||
|
@ -1028,6 +1086,11 @@
|
|||
"integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
|
||||
"dev": true
|
||||
},
|
||||
"duplexer3": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
|
||||
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
|
@ -1039,6 +1102,14 @@
|
|||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
||||
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
|
||||
"requires": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"entities": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
|
||||
|
@ -2376,8 +2447,7 @@
|
|||
"get-stream": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
|
||||
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
|
||||
"dev": true
|
||||
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
|
||||
},
|
||||
"get-value": {
|
||||
"version": "2.0.6",
|
||||
|
@ -2454,6 +2524,33 @@
|
|||
"pinkie-promise": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"got": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/got/-/got-9.2.0.tgz",
|
||||
"integrity": "sha512-H6GUT6PMamiIm5pVufgmfmuk7Tl92Vr2RHf8n587SGs5HPiarOUVrmyL6bGIfX/mJ5IEUMpHEdGR03LSIHhZrQ==",
|
||||
"requires": {
|
||||
"@sindresorhus/is": "^0.11.0",
|
||||
"@szmarczak/http-timer": "^1.1.0",
|
||||
"cacheable-request": "^4.0.1",
|
||||
"decompress-response": "^3.3.0",
|
||||
"duplexer3": "^0.1.4",
|
||||
"get-stream": "^4.0.0",
|
||||
"mimic-response": "^1.0.1",
|
||||
"p-cancelable": "^0.5.0",
|
||||
"to-readable-stream": "^1.0.0",
|
||||
"url-parse-lax": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"get-stream": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.0.0.tgz",
|
||||
"integrity": "sha512-FneLKMENeOR7wOK0/ZXCh+lwqtnPwkeunJjRN28LPqzGvNAhYvrTAhXv6xDm4vsJ0M7lcRbIYHQudKsSy2RtSQ==",
|
||||
"requires": {
|
||||
"pump": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.1.11",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
||||
|
@ -2590,6 +2687,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"http-cache-semantics": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz",
|
||||
"integrity": "sha512-NtexGRtaV5z3ZUX78W9UDTOJPBdpqms6RmwQXmOhHws7CuQK3cqIoQtnmeqi1VvVD6u6eMMRL0sKE9BCZXTDWQ=="
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
|
||||
|
@ -2962,6 +3064,11 @@
|
|||
"yargs": "^11.0.0"
|
||||
}
|
||||
},
|
||||
"json-buffer": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
||||
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
|
||||
},
|
||||
"json-parse-better-errors": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
|
||||
|
@ -3013,6 +3120,14 @@
|
|||
"array-includes": "^3.0.3"
|
||||
}
|
||||
},
|
||||
"keyv": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
|
||||
"integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
|
||||
"requires": {
|
||||
"json-buffer": "3.0.0"
|
||||
}
|
||||
},
|
||||
"kind-of": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
||||
|
@ -3094,6 +3209,11 @@
|
|||
"js-tokens": "^3.0.0 || ^4.0.0"
|
||||
}
|
||||
},
|
||||
"lowercase-keys": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
|
||||
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
|
||||
|
@ -3293,6 +3413,11 @@
|
|||
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
|
||||
"dev": true
|
||||
},
|
||||
"mimic-response": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
|
||||
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
|
@ -3431,6 +3556,11 @@
|
|||
"remove-trailing-separator": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"normalize-url": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
|
||||
"integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||
|
@ -6155,7 +6285,6 @@
|
|||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
|
@ -6227,6 +6356,11 @@
|
|||
"own-or": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"p-cancelable": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.5.0.tgz",
|
||||
"integrity": "sha512-UTykUaG4vhPAMNi1/GZKGdCNDj4qGnq6taAjnOG0KCx5Fva3b1vtskXtagAePmgIhUrdcoDGEvAQIHaSPXEZWg=="
|
||||
},
|
||||
"p-finally": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||
|
@ -6466,6 +6600,11 @@
|
|||
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
|
||||
"dev": true
|
||||
},
|
||||
"prepend-http": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
|
||||
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
|
||||
},
|
||||
"pretty-error": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
|
||||
|
@ -6503,6 +6642,15 @@
|
|||
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
|
||||
"dev": true
|
||||
},
|
||||
"pump": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
|
@ -6520,22 +6668,15 @@
|
|||
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
||||
},
|
||||
"raven": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/raven/-/raven-2.6.3.tgz",
|
||||
"integrity": "sha512-bKre7qlDW+y1+G2bUtCuntdDYc8o5v1T233t0vmJfbj8ttGOgLrGRlYB8saelVMW9KUAJNLrhFkAKOwFWFJonw==",
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz",
|
||||
"integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==",
|
||||
"requires": {
|
||||
"cookie": "0.3.1",
|
||||
"md5": "^2.2.1",
|
||||
"stack-trace": "0.0.10",
|
||||
"timed-out": "4.0.1",
|
||||
"uuid": "3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"uuid": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz",
|
||||
"integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg="
|
||||
}
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"raw-body": {
|
||||
|
@ -6754,6 +6895,14 @@
|
|||
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
|
||||
"dev": true
|
||||
},
|
||||
"responselike": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
|
||||
"integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
|
||||
"requires": {
|
||||
"lowercase-keys": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"restore-cursor": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
|
||||
|
@ -6837,9 +6986,9 @@
|
|||
"integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg=="
|
||||
},
|
||||
"serve-handler": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-5.0.0.tgz",
|
||||
"integrity": "sha512-VbNr1Yk4cDMAdIyVr5J1vPtGuXUsuu0R8iht+reK0g8t48fSuGWqnsIYVh3xXFJynFDHMLbPQ9mll+/hhmuGEQ==",
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-5.0.2.tgz",
|
||||
"integrity": "sha512-sYhCyS//dNTTFHb8OlL/bFTTwACtlvnT2ybA0v1hTHxEnQ9tN1m2ifBIv4ozHUE8OjYCYUbuJ6No0enWdKHi5w==",
|
||||
"requires": {
|
||||
"bytes": "3.0.0",
|
||||
"content-disposition": "0.5.2",
|
||||
|
@ -7533,6 +7682,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"to-readable-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
|
||||
},
|
||||
"to-regex": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
|
||||
|
@ -7737,6 +7891,14 @@
|
|||
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
|
||||
"dev": true
|
||||
},
|
||||
"url-parse-lax": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
|
||||
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
|
||||
"requires": {
|
||||
"prepend-http": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"use": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
||||
|
@ -7757,8 +7919,7 @@
|
|||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||
},
|
||||
"validate-npm-package-license": {
|
||||
"version": "3.0.4",
|
||||
|
@ -7855,8 +8016,7 @@
|
|||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"write": {
|
||||
"version": "0.2.1",
|
||||
|
|
|
@ -22,12 +22,13 @@
|
|||
"cheerio": "^1.0.0-rc.2",
|
||||
"chrome-webstore": "^1.0.0",
|
||||
"date-fns": "^1.29.0",
|
||||
"got": "^9.2.0",
|
||||
"micro": "^9.3.3",
|
||||
"micro-fork": "^0.1.0",
|
||||
"millify": "^2.0.1",
|
||||
"raven": "^2.6.3",
|
||||
"raven": "^2.6.4",
|
||||
"semver": "^5.5.1",
|
||||
"serve-handler": "^5.0.0",
|
||||
"serve-handler": "^5.0.2",
|
||||
"serve-marked": "^0.3.3",
|
||||
"xml2js": "^0.4.19"
|
||||
},
|
||||
|
|
Ładowanie…
Reference in New Issue