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 pool = require('./live-pool.js')
|
||||||
const raven = require('./raven.js')
|
const raven = require('./raven.js')
|
||||||
|
|
||||||
module.exports = async (scope, fn, paramsPath) => {
|
module.exports = async (service, fn, paramsPath) => {
|
||||||
const fetchKey = `#${scope}/${paramsPath}`
|
const fetchStart = new Date()
|
||||||
|
const fetchKey = `#${service}/${paramsPath}`
|
||||||
|
|
||||||
if (pool.has(fetchKey)) return pool.get(fetchKey)
|
if (pool.has(fetchKey)) return pool.get(fetchKey)
|
||||||
|
|
||||||
const fetchStart = new Date()
|
|
||||||
const fetcher = fn(...paramsPath.split('/')).then(
|
const fetcher = fn(...paramsPath.split('/')).then(
|
||||||
result => {
|
result => {
|
||||||
const timeSpan = String(new Date() - fetchStart).padStart(4, ' ')
|
console.log(timeSince(fetchStart), fetchKey)
|
||||||
console.log(`${timeSpan}ms ${fetchKey}`)
|
|
||||||
return typeof result === 'object' ? result : { failed: true }
|
return typeof result === 'object' ? result : { failed: true }
|
||||||
},
|
},
|
||||||
err => errorHandler(scope, paramsPath, err)
|
err => errorHandler(service, paramsPath, err)
|
||||||
).finally(() => {
|
).finally(() => {
|
||||||
pool.delete(fetchKey)
|
pool.delete(fetchKey)
|
||||||
})
|
})
|
||||||
|
|
||||||
pool.set(fetchKey, fetcher)
|
pool.set(fetchKey, fetcher)
|
||||||
|
|
||||||
return 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) => {
|
const errorHandler = (scope, paramsPath, err) => {
|
||||||
|
if (err.url) {
|
||||||
|
return gotErrorHandler(scope, paramsPath, err)
|
||||||
|
}
|
||||||
|
|
||||||
let status = 'unknown'
|
let status = 'unknown'
|
||||||
|
|
||||||
if (err.response && err.response.status === 404) {
|
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) => {
|
const printError = (serviceKey, status, err) => {
|
||||||
let details = err.message
|
let details = err.message
|
||||||
if (status === 'unknown') {
|
if (status === 'unknown') {
|
||||||
details += `\n ${err.stack}`.replace(/^/mg, ' ')
|
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 = [
|
const statuses = [
|
||||||
['passed', 'green'],
|
['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 com = `https://api.travis-ci.com/${user}/${repo}.svg?branch=${branch}`
|
||||||
const org = `https://api.travis-ci.org/${user}/${repo}.svg?branch=${branch}`
|
const org = `https://api.travis-ci.org/${user}/${repo}.svg?branch=${branch}`
|
||||||
const [svg1, svg2] = await Promise.all([
|
const [svg1, svg2] = await Promise.all([
|
||||||
axios(com).then(({ data }) => data).catch(e => undefined),
|
got(com, { json: false }).then(({ body }) => body),
|
||||||
axios(org).then(({ data }) => data).catch(e => undefined)
|
got(org, { json: false }).then(({ body }) => body)
|
||||||
])
|
])
|
||||||
|
|
||||||
const result = statuses.find(st => {
|
const result = statuses.find(st => {
|
||||||
|
|
|
@ -23,16 +23,14 @@ module.exports = Object.entries(liveFns).map(([name, fn]) => {
|
||||||
color = 'grey',
|
color = 'grey',
|
||||||
failed = false
|
failed = false
|
||||||
} = await (
|
} = await (
|
||||||
API_HOST
|
API_HOST ? apiFetcher(req.url) : liveFetcher(name, fn, req.params['*'])
|
||||||
? apiFetcher(req.url)
|
|
||||||
: liveFetcher(name, fn, req.params['*'])
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const style = req.headers.host === 'flat.badgen.net' ? 'flat' : undefined
|
const style = req.headers.host === 'flat.badgen.net' ? 'flat' : undefined
|
||||||
req.params = { subject, status, color, style }
|
req.params = { subject, status, color, style }
|
||||||
serveBadge(req, res, {
|
serveBadge(req, res, {
|
||||||
code: 200, // Always 200 for badges
|
code: 200, // always 200 for badges
|
||||||
maxAge: failed ? '0' : (Math.random() * 60 + 60).toFixed()
|
sMaxAge: failed ? '0' : (Math.random() * 60 + 60).toFixed()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -9,10 +9,10 @@ const noneSquareIconWidths = {
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = (req, res, options = {}) => {
|
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 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 { style, label, list, icon, iconWidth, color: queryColor } = req.query
|
||||||
|
|
||||||
const badge = badgen({
|
const badge = badgen({
|
||||||
|
@ -26,6 +26,6 @@ module.exports = (req, res, options = {}) => {
|
||||||
})
|
})
|
||||||
|
|
||||||
res.setHeader('Content-Type', 'image/svg+xml;charset=utf-8')
|
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)
|
send(res, code, badge)
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ module.exports = serveMarked('libs/index.md', {
|
||||||
img { height: 20px }
|
img { height: 20px }
|
||||||
|
|
||||||
pre, code { background-color: #EEF2F8; font-weight: 400 }
|
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 { vertical-align: top; font: 16px/32px sans-serif; color: #777 }
|
||||||
li code { padding: 0.3em 0.5em; display: pre; color: #333 }
|
li code { padding: 0.3em 0.5em; display: pre; color: #333 }
|
||||||
|
|
|
@ -3,6 +3,29 @@
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"dependencies": {
|
"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": {
|
"@types/node": {
|
||||||
"version": "10.5.6",
|
"version": "10.5.6",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.6.tgz",
|
||||||
|
@ -229,7 +252,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chalk": {
|
"chalk": {
|
||||||
"version": "1.1.3",
|
"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=",
|
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
@ -441,6 +464,20 @@
|
||||||
"unset-value": "^1.0.0"
|
"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": {
|
"caller-path": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
|
||||||
|
@ -648,6 +685,14 @@
|
||||||
"wrap-ansi": "^2.0.0"
|
"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": {
|
"co": {
|
||||||
"version": "4.6.0",
|
"version": "4.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
||||||
|
@ -847,12 +892,25 @@
|
||||||
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
|
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
|
||||||
"dev": true
|
"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": {
|
"deep-is": {
|
||||||
"version": "0.1.3",
|
"version": "0.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||||
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
|
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
|
||||||
"dev": true
|
"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": {
|
"define-properties": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
|
||||||
|
@ -1028,6 +1086,11 @@
|
||||||
"integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
|
"integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"duplexer3": {
|
||||||
|
"version": "0.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
|
||||||
|
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
|
||||||
|
},
|
||||||
"ecc-jsbn": {
|
"ecc-jsbn": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||||
|
@ -1039,6 +1102,14 @@
|
||||||
"safer-buffer": "^2.1.0"
|
"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": {
|
"entities": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
|
||||||
|
@ -2376,8 +2447,7 @@
|
||||||
"get-stream": {
|
"get-stream": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
|
||||||
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
|
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"get-value": {
|
"get-value": {
|
||||||
"version": "2.0.6",
|
"version": "2.0.6",
|
||||||
|
@ -2454,6 +2524,33 @@
|
||||||
"pinkie-promise": "^2.0.0"
|
"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": {
|
"graceful-fs": {
|
||||||
"version": "4.1.11",
|
"version": "4.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
"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": {
|
"http-errors": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
|
||||||
|
@ -2962,6 +3064,11 @@
|
||||||
"yargs": "^11.0.0"
|
"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": {
|
"json-parse-better-errors": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
|
"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"
|
"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": {
|
"kind-of": {
|
||||||
"version": "6.0.2",
|
"version": "6.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
"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"
|
"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": {
|
"lru-cache": {
|
||||||
"version": "4.1.3",
|
"version": "4.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
|
||||||
|
@ -3293,6 +3413,11 @@
|
||||||
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
|
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
|
||||||
"dev": true
|
"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": {
|
"minimatch": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
|
@ -3431,6 +3556,11 @@
|
||||||
"remove-trailing-separator": "^1.0.1"
|
"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": {
|
"npm-run-path": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||||
|
@ -6155,7 +6285,6 @@
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
|
@ -6227,6 +6356,11 @@
|
||||||
"own-or": "^1.0.0"
|
"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": {
|
"p-finally": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||||
|
@ -6466,6 +6600,11 @@
|
||||||
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
|
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
|
||||||
"dev": true
|
"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": {
|
"pretty-error": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
|
||||||
|
@ -6503,6 +6642,15 @@
|
||||||
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
|
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
|
||||||
"dev": true
|
"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": {
|
"punycode": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||||
|
@ -6520,22 +6668,15 @@
|
||||||
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
||||||
},
|
},
|
||||||
"raven": {
|
"raven": {
|
||||||
"version": "2.6.3",
|
"version": "2.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/raven/-/raven-2.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz",
|
||||||
"integrity": "sha512-bKre7qlDW+y1+G2bUtCuntdDYc8o5v1T233t0vmJfbj8ttGOgLrGRlYB8saelVMW9KUAJNLrhFkAKOwFWFJonw==",
|
"integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"cookie": "0.3.1",
|
"cookie": "0.3.1",
|
||||||
"md5": "^2.2.1",
|
"md5": "^2.2.1",
|
||||||
"stack-trace": "0.0.10",
|
"stack-trace": "0.0.10",
|
||||||
"timed-out": "4.0.1",
|
"timed-out": "4.0.1",
|
||||||
"uuid": "3.0.0"
|
"uuid": "3.3.2"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"uuid": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz",
|
|
||||||
"integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"raw-body": {
|
"raw-body": {
|
||||||
|
@ -6754,6 +6895,14 @@
|
||||||
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
|
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
|
||||||
"dev": true
|
"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": {
|
"restore-cursor": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
|
||||||
|
@ -6837,9 +6986,9 @@
|
||||||
"integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg=="
|
"integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg=="
|
||||||
},
|
},
|
||||||
"serve-handler": {
|
"serve-handler": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-5.0.2.tgz",
|
||||||
"integrity": "sha512-VbNr1Yk4cDMAdIyVr5J1vPtGuXUsuu0R8iht+reK0g8t48fSuGWqnsIYVh3xXFJynFDHMLbPQ9mll+/hhmuGEQ==",
|
"integrity": "sha512-sYhCyS//dNTTFHb8OlL/bFTTwACtlvnT2ybA0v1hTHxEnQ9tN1m2ifBIv4ozHUE8OjYCYUbuJ6No0enWdKHi5w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bytes": "3.0.0",
|
"bytes": "3.0.0",
|
||||||
"content-disposition": "0.5.2",
|
"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": {
|
"to-regex": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
|
||||||
|
@ -7737,6 +7891,14 @@
|
||||||
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
|
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
|
||||||
"dev": true
|
"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": {
|
"use": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
||||||
|
@ -7757,8 +7919,7 @@
|
||||||
"uuid": {
|
"uuid": {
|
||||||
"version": "3.3.2",
|
"version": "3.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
|
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"validate-npm-package-license": {
|
"validate-npm-package-license": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
|
@ -7855,8 +8016,7 @@
|
||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"write": {
|
"write": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
|
|
|
@ -22,12 +22,13 @@
|
||||||
"cheerio": "^1.0.0-rc.2",
|
"cheerio": "^1.0.0-rc.2",
|
||||||
"chrome-webstore": "^1.0.0",
|
"chrome-webstore": "^1.0.0",
|
||||||
"date-fns": "^1.29.0",
|
"date-fns": "^1.29.0",
|
||||||
|
"got": "^9.2.0",
|
||||||
"micro": "^9.3.3",
|
"micro": "^9.3.3",
|
||||||
"micro-fork": "^0.1.0",
|
"micro-fork": "^0.1.0",
|
||||||
"millify": "^2.0.1",
|
"millify": "^2.0.1",
|
||||||
"raven": "^2.6.3",
|
"raven": "^2.6.4",
|
||||||
"semver": "^5.5.1",
|
"semver": "^5.5.1",
|
||||||
"serve-handler": "^5.0.0",
|
"serve-handler": "^5.0.2",
|
||||||
"serve-marked": "^0.3.3",
|
"serve-marked": "^0.3.3",
|
||||||
"xml2js": "^0.4.19"
|
"xml2js": "^0.4.19"
|
||||||
},
|
},
|
||||||
|
|
Ładowanie…
Reference in New Issue