This commit is contained in:
parent
62de65d2bd
commit
42ee829fc0
34
index.js
34
index.js
@ -1,34 +0,0 @@
|
||||
require("dotenv").config();
|
||||
|
||||
const { Client: FortniteAPI, Language } = require("fnapicom");
|
||||
|
||||
const ACCOUNTS_TO_TRACK = process.env.FORTNITE_USERNAMES.includes(",")
|
||||
? process.env.FORTNITE_USERNAMES.split(",")
|
||||
: [process.env.FORTNITE_USERNAMES];
|
||||
|
||||
const client = new FortniteAPI({
|
||||
language: Language.English,
|
||||
apiKey: process.env.API_KEY,
|
||||
});
|
||||
|
||||
trackAccounts();
|
||||
setInterval(() => {
|
||||
trackAccounts();
|
||||
}, 60_000);
|
||||
|
||||
async function trackAccounts() {
|
||||
for (const username of ACCOUNTS_TO_TRACK) {
|
||||
try {
|
||||
const account = await client.brStats({
|
||||
name: username,
|
||||
});
|
||||
if (account.status !== 200) {
|
||||
console.error(`Error: ${account.status}`);
|
||||
continue;
|
||||
}
|
||||
console.log("works");
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
}
|
1017
package-lock.json
generated
1017
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@
|
||||
"name": "fortnite-metrics-grafana",
|
||||
"version": "1.0.0",
|
||||
"description": "Tracks fortnite account metrics such as kills, kd, wins, etc.",
|
||||
"main": "index.js",
|
||||
"main": "src/index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
@ -14,6 +14,8 @@
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"dotenv": "^16.0.3",
|
||||
"fnapicom": "^1.1.0"
|
||||
"express": "^4.18.2",
|
||||
"fnapicom": "^1.1.0",
|
||||
"prom-client": "^14.2.0"
|
||||
}
|
||||
}
|
||||
|
68
src/index.js
Normal file
68
src/index.js
Normal file
@ -0,0 +1,68 @@
|
||||
require("dotenv").config();
|
||||
|
||||
const { Client: FortniteAPI, Language } = require("fnapicom");
|
||||
const { sleep } = require("./utils");
|
||||
const express = require("express");
|
||||
|
||||
// Prometheus metrics
|
||||
const promClient = require("prom-client");
|
||||
const Registry = promClient.Registry;
|
||||
const register = new Registry();
|
||||
register.setDefaultLabels({ app: "fortnite-api" });
|
||||
|
||||
const ACCOUNTS_TO_TRACK = process.env.FORTNITE_USERNAMES.includes(",")
|
||||
? process.env.FORTNITE_USERNAMES.split(",")
|
||||
: [process.env.FORTNITE_USERNAMES];
|
||||
|
||||
const client = new FortniteAPI({
|
||||
language: Language.English,
|
||||
apiKey: process.env.API_KEY,
|
||||
});
|
||||
|
||||
// Define metrics
|
||||
const trackedAccountsGauge = new promClient.Gauge({
|
||||
name: "fortnite_tracked_accounts",
|
||||
help: "Number of Fortnite accounts being tracked",
|
||||
});
|
||||
|
||||
register.registerMetric(trackedAccountsGauge);
|
||||
|
||||
// Track accounts before starting the server so we dont get no data
|
||||
trackAccounts();
|
||||
setInterval(() => {
|
||||
trackAccounts();
|
||||
}, 60_000);
|
||||
|
||||
const app = express();
|
||||
app.listen(3000, () => {
|
||||
console.log("Listening on http://localhost:3000");
|
||||
});
|
||||
|
||||
app.get("/", (req, res) => {
|
||||
res.send("Are you looking for metrics? Go to /metrics");
|
||||
});
|
||||
|
||||
app.get("/metrics", async (req, res) => {
|
||||
res.set("Content-Type", register.contentType);
|
||||
register.metrics().then((data) => res.status(200).send(data));
|
||||
});
|
||||
|
||||
async function trackAccounts() {
|
||||
trackedAccountsGauge.set(ACCOUNTS_TO_TRACK.length);
|
||||
for (const username of ACCOUNTS_TO_TRACK) {
|
||||
try {
|
||||
const account = await client.brStats({
|
||||
name: username,
|
||||
});
|
||||
if (account.status !== 200) {
|
||||
console.error(`Error: ${account.status}`);
|
||||
continue;
|
||||
}
|
||||
console.log("works");
|
||||
|
||||
sleep(1000);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
}
|
17
src/utils.js
Normal file
17
src/utils.js
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Makes the current thread sleep for the given time
|
||||
*
|
||||
* @param {Number} time the time to sleep in milliseconds
|
||||
* @returns {Promise} a promise that resolves after the time has passed
|
||||
*/
|
||||
async function sleep(time) {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve();
|
||||
}, time);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
sleep,
|
||||
};
|
411
yarn.lock
411
yarn.lock
@ -2,6 +2,19 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"accepts@~1.3.8":
|
||||
"integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="
|
||||
"resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
|
||||
"version" "1.3.8"
|
||||
dependencies:
|
||||
"mime-types" "~2.1.34"
|
||||
"negotiator" "0.6.3"
|
||||
|
||||
"array-flatten@1.1.1":
|
||||
"integrity" "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
|
||||
"resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
|
||||
"version" "1.1.1"
|
||||
|
||||
"asynckit@^0.4.0":
|
||||
"integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
"resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
|
||||
@ -20,6 +33,42 @@
|
||||
"follow-redirects" "^1.14.9"
|
||||
"form-data" "^4.0.0"
|
||||
|
||||
"bintrees@1.0.2":
|
||||
"integrity" "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw=="
|
||||
"resolved" "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz"
|
||||
"version" "1.0.2"
|
||||
|
||||
"body-parser@1.20.1":
|
||||
"integrity" "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw=="
|
||||
"resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz"
|
||||
"version" "1.20.1"
|
||||
dependencies:
|
||||
"bytes" "3.1.2"
|
||||
"content-type" "~1.0.4"
|
||||
"debug" "2.6.9"
|
||||
"depd" "2.0.0"
|
||||
"destroy" "1.2.0"
|
||||
"http-errors" "2.0.0"
|
||||
"iconv-lite" "0.4.24"
|
||||
"on-finished" "2.4.1"
|
||||
"qs" "6.11.0"
|
||||
"raw-body" "2.5.1"
|
||||
"type-is" "~1.6.18"
|
||||
"unpipe" "1.0.0"
|
||||
|
||||
"bytes@3.1.2":
|
||||
"integrity" "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
|
||||
"resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
|
||||
"version" "3.1.2"
|
||||
|
||||
"call-bind@^1.0.0":
|
||||
"integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
|
||||
"resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
|
||||
"version" "1.0.2"
|
||||
dependencies:
|
||||
"function-bind" "^1.1.1"
|
||||
"get-intrinsic" "^1.0.2"
|
||||
|
||||
"combined-stream@^1.0.8":
|
||||
"integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
|
||||
"resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
|
||||
@ -27,16 +76,125 @@
|
||||
dependencies:
|
||||
"delayed-stream" "~1.0.0"
|
||||
|
||||
"content-disposition@0.5.4":
|
||||
"integrity" "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="
|
||||
"resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
|
||||
"version" "0.5.4"
|
||||
dependencies:
|
||||
"safe-buffer" "5.2.1"
|
||||
|
||||
"content-type@~1.0.4":
|
||||
"integrity" "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
|
||||
"resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
|
||||
"version" "1.0.5"
|
||||
|
||||
"cookie-signature@1.0.6":
|
||||
"integrity" "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
|
||||
"resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
|
||||
"version" "1.0.6"
|
||||
|
||||
"cookie@0.5.0":
|
||||
"integrity" "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
|
||||
"resolved" "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz"
|
||||
"version" "0.5.0"
|
||||
|
||||
"debug@2.6.9":
|
||||
"integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
|
||||
"resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
|
||||
"version" "2.6.9"
|
||||
dependencies:
|
||||
"ms" "2.0.0"
|
||||
|
||||
"delayed-stream@~1.0.0":
|
||||
"integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
|
||||
"resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"depd@2.0.0":
|
||||
"integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
|
||||
"resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
|
||||
"destroy@1.2.0":
|
||||
"integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
|
||||
"resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
|
||||
"version" "1.2.0"
|
||||
|
||||
"dotenv@^16.0.3":
|
||||
"integrity" "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ=="
|
||||
"resolved" "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz"
|
||||
"version" "16.0.3"
|
||||
|
||||
"ee-first@1.1.1":
|
||||
"integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
||||
"resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
|
||||
"version" "1.1.1"
|
||||
|
||||
"encodeurl@~1.0.2":
|
||||
"integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
|
||||
"resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
|
||||
"version" "1.0.2"
|
||||
|
||||
"escape-html@~1.0.3":
|
||||
"integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
|
||||
"resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
|
||||
"version" "1.0.3"
|
||||
|
||||
"etag@~1.8.1":
|
||||
"integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
|
||||
"resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
|
||||
"version" "1.8.1"
|
||||
|
||||
"express@^4.18.2":
|
||||
"integrity" "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ=="
|
||||
"resolved" "https://registry.npmjs.org/express/-/express-4.18.2.tgz"
|
||||
"version" "4.18.2"
|
||||
dependencies:
|
||||
"accepts" "~1.3.8"
|
||||
"array-flatten" "1.1.1"
|
||||
"body-parser" "1.20.1"
|
||||
"content-disposition" "0.5.4"
|
||||
"content-type" "~1.0.4"
|
||||
"cookie" "0.5.0"
|
||||
"cookie-signature" "1.0.6"
|
||||
"debug" "2.6.9"
|
||||
"depd" "2.0.0"
|
||||
"encodeurl" "~1.0.2"
|
||||
"escape-html" "~1.0.3"
|
||||
"etag" "~1.8.1"
|
||||
"finalhandler" "1.2.0"
|
||||
"fresh" "0.5.2"
|
||||
"http-errors" "2.0.0"
|
||||
"merge-descriptors" "1.0.1"
|
||||
"methods" "~1.1.2"
|
||||
"on-finished" "2.4.1"
|
||||
"parseurl" "~1.3.3"
|
||||
"path-to-regexp" "0.1.7"
|
||||
"proxy-addr" "~2.0.7"
|
||||
"qs" "6.11.0"
|
||||
"range-parser" "~1.2.1"
|
||||
"safe-buffer" "5.2.1"
|
||||
"send" "0.18.0"
|
||||
"serve-static" "1.15.0"
|
||||
"setprototypeof" "1.2.0"
|
||||
"statuses" "2.0.1"
|
||||
"type-is" "~1.6.18"
|
||||
"utils-merge" "1.0.1"
|
||||
"vary" "~1.1.2"
|
||||
|
||||
"finalhandler@1.2.0":
|
||||
"integrity" "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg=="
|
||||
"resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz"
|
||||
"version" "1.2.0"
|
||||
dependencies:
|
||||
"debug" "2.6.9"
|
||||
"encodeurl" "~1.0.2"
|
||||
"escape-html" "~1.0.3"
|
||||
"on-finished" "2.4.1"
|
||||
"parseurl" "~1.3.3"
|
||||
"statuses" "2.0.1"
|
||||
"unpipe" "~1.0.0"
|
||||
|
||||
"fnapicom@^1.1.0":
|
||||
"integrity" "sha512-9gAkXgA3D72HIYcv4p+QRBUmuNsSDq2B+HoYmgRDhhpmIlJbAqOLfkGDoaq4AqHO5IqYuyyo73w4B5lw1EM0xg=="
|
||||
"resolved" "https://registry.npmjs.org/fnapicom/-/fnapicom-1.1.0.tgz"
|
||||
@ -60,19 +218,270 @@
|
||||
"combined-stream" "^1.0.8"
|
||||
"mime-types" "^2.1.12"
|
||||
|
||||
"forwarded@0.2.0":
|
||||
"integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
|
||||
"resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
|
||||
"version" "0.2.0"
|
||||
|
||||
"fresh@0.5.2":
|
||||
"integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
|
||||
"resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
|
||||
"version" "0.5.2"
|
||||
|
||||
"function-bind@^1.1.1":
|
||||
"integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
||||
"resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
|
||||
"version" "1.1.1"
|
||||
|
||||
"get-intrinsic@^1.0.2":
|
||||
"integrity" "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q=="
|
||||
"resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz"
|
||||
"version" "1.2.0"
|
||||
dependencies:
|
||||
"function-bind" "^1.1.1"
|
||||
"has" "^1.0.3"
|
||||
"has-symbols" "^1.0.3"
|
||||
|
||||
"has-symbols@^1.0.3":
|
||||
"integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
|
||||
"resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
|
||||
"version" "1.0.3"
|
||||
|
||||
"has@^1.0.3":
|
||||
"integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
|
||||
"resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
|
||||
"version" "1.0.3"
|
||||
dependencies:
|
||||
"function-bind" "^1.1.1"
|
||||
|
||||
"http-errors@2.0.0":
|
||||
"integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="
|
||||
"resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
dependencies:
|
||||
"depd" "2.0.0"
|
||||
"inherits" "2.0.4"
|
||||
"setprototypeof" "1.2.0"
|
||||
"statuses" "2.0.1"
|
||||
"toidentifier" "1.0.1"
|
||||
|
||||
"iconv-lite@0.4.24":
|
||||
"integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="
|
||||
"resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
|
||||
"version" "0.4.24"
|
||||
dependencies:
|
||||
"safer-buffer" ">= 2.1.2 < 3"
|
||||
|
||||
"inherits@2.0.4":
|
||||
"integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
"resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
||||
"version" "2.0.4"
|
||||
|
||||
"ipaddr.js@1.9.1":
|
||||
"integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
|
||||
"resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
|
||||
"version" "1.9.1"
|
||||
|
||||
"media-typer@0.3.0":
|
||||
"integrity" "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
|
||||
"resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
|
||||
"version" "0.3.0"
|
||||
|
||||
"merge-descriptors@1.0.1":
|
||||
"integrity" "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
|
||||
"resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"methods@~1.1.2":
|
||||
"integrity" "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
|
||||
"resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
|
||||
"version" "1.1.2"
|
||||
|
||||
"mime-db@1.52.0":
|
||||
"integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
|
||||
"resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
|
||||
"version" "1.52.0"
|
||||
|
||||
"mime-types@^2.1.12":
|
||||
"mime-types@^2.1.12", "mime-types@~2.1.24", "mime-types@~2.1.34":
|
||||
"integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
|
||||
"resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
|
||||
"version" "2.1.35"
|
||||
dependencies:
|
||||
"mime-db" "1.52.0"
|
||||
|
||||
"mime@1.6.0":
|
||||
"integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
|
||||
"resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
|
||||
"version" "1.6.0"
|
||||
|
||||
"ms@2.0.0":
|
||||
"integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
"resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
|
||||
"ms@2.1.3":
|
||||
"integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
"resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
|
||||
"version" "2.1.3"
|
||||
|
||||
"negotiator@0.6.3":
|
||||
"integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
|
||||
"resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
|
||||
"version" "0.6.3"
|
||||
|
||||
"object-inspect@^1.9.0":
|
||||
"integrity" "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
|
||||
"resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
|
||||
"version" "1.12.3"
|
||||
|
||||
"on-finished@2.4.1":
|
||||
"integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="
|
||||
"resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
|
||||
"version" "2.4.1"
|
||||
dependencies:
|
||||
"ee-first" "1.1.1"
|
||||
|
||||
"parseurl@~1.3.3":
|
||||
"integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
|
||||
"resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
|
||||
"version" "1.3.3"
|
||||
|
||||
"path-to-regexp@0.1.7":
|
||||
"integrity" "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
||||
"resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
|
||||
"version" "0.1.7"
|
||||
|
||||
"prom-client@^14.2.0":
|
||||
"integrity" "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA=="
|
||||
"resolved" "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz"
|
||||
"version" "14.2.0"
|
||||
dependencies:
|
||||
"tdigest" "^0.1.1"
|
||||
|
||||
"proxy-addr@~2.0.7":
|
||||
"integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="
|
||||
"resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
|
||||
"version" "2.0.7"
|
||||
dependencies:
|
||||
"forwarded" "0.2.0"
|
||||
"ipaddr.js" "1.9.1"
|
||||
|
||||
"qs@6.11.0":
|
||||
"integrity" "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q=="
|
||||
"resolved" "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
|
||||
"version" "6.11.0"
|
||||
dependencies:
|
||||
"side-channel" "^1.0.4"
|
||||
|
||||
"range-parser@~1.2.1":
|
||||
"integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
|
||||
"resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
|
||||
"version" "1.2.1"
|
||||
|
||||
"raw-body@2.5.1":
|
||||
"integrity" "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig=="
|
||||
"resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz"
|
||||
"version" "2.5.1"
|
||||
dependencies:
|
||||
"bytes" "3.1.2"
|
||||
"http-errors" "2.0.0"
|
||||
"iconv-lite" "0.4.24"
|
||||
"unpipe" "1.0.0"
|
||||
|
||||
"safe-buffer@5.2.1":
|
||||
"integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
||||
"resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
|
||||
"version" "5.2.1"
|
||||
|
||||
"safer-buffer@>= 2.1.2 < 3":
|
||||
"integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
"resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
|
||||
"version" "2.1.2"
|
||||
|
||||
"send@0.18.0":
|
||||
"integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg=="
|
||||
"resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz"
|
||||
"version" "0.18.0"
|
||||
dependencies:
|
||||
"debug" "2.6.9"
|
||||
"depd" "2.0.0"
|
||||
"destroy" "1.2.0"
|
||||
"encodeurl" "~1.0.2"
|
||||
"escape-html" "~1.0.3"
|
||||
"etag" "~1.8.1"
|
||||
"fresh" "0.5.2"
|
||||
"http-errors" "2.0.0"
|
||||
"mime" "1.6.0"
|
||||
"ms" "2.1.3"
|
||||
"on-finished" "2.4.1"
|
||||
"range-parser" "~1.2.1"
|
||||
"statuses" "2.0.1"
|
||||
|
||||
"serve-static@1.15.0":
|
||||
"integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g=="
|
||||
"resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz"
|
||||
"version" "1.15.0"
|
||||
dependencies:
|
||||
"encodeurl" "~1.0.2"
|
||||
"escape-html" "~1.0.3"
|
||||
"parseurl" "~1.3.3"
|
||||
"send" "0.18.0"
|
||||
|
||||
"setprototypeof@1.2.0":
|
||||
"integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
|
||||
"resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
|
||||
"version" "1.2.0"
|
||||
|
||||
"side-channel@^1.0.4":
|
||||
"integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
|
||||
"resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
|
||||
"version" "1.0.4"
|
||||
dependencies:
|
||||
"call-bind" "^1.0.0"
|
||||
"get-intrinsic" "^1.0.2"
|
||||
"object-inspect" "^1.9.0"
|
||||
|
||||
"statuses@2.0.1":
|
||||
"integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
|
||||
"resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
|
||||
"version" "2.0.1"
|
||||
|
||||
"tdigest@^0.1.1":
|
||||
"integrity" "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA=="
|
||||
"resolved" "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz"
|
||||
"version" "0.1.2"
|
||||
dependencies:
|
||||
"bintrees" "1.0.2"
|
||||
|
||||
"toidentifier@1.0.1":
|
||||
"integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
|
||||
"resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"tslib@^2.4.0":
|
||||
"integrity" "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
|
||||
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz"
|
||||
"version" "2.5.0"
|
||||
|
||||
"type-is@~1.6.18":
|
||||
"integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="
|
||||
"resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
|
||||
"version" "1.6.18"
|
||||
dependencies:
|
||||
"media-typer" "0.3.0"
|
||||
"mime-types" "~2.1.24"
|
||||
|
||||
"unpipe@~1.0.0", "unpipe@1.0.0":
|
||||
"integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
|
||||
"resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"utils-merge@1.0.1":
|
||||
"integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
|
||||
"resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"vary@~1.1.2":
|
||||
"integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
|
||||
"resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
|
||||
"version" "1.1.2"
|
||||
|
Reference in New Issue
Block a user