Compare commits

...

14 commits

24 changed files with 1910 additions and 234 deletions

View file

@ -1,4 +1,4 @@
const express = require("express"), http = require('http'), UAParser = require('ua-parser-js'), fs = require('fs'), path = require("path"), app = express(), dir = __dirname, /*htmlfileloc = directory + "/public/pages", rawfileloc = directory + "/public/raw", cssfileloc = directory + "/public/scripts", jsfileloc = directory + "/public/styles", iconfileloc = directory + "/public/icons", errorfileloc = directory + "/public/errors", dynamfileloc = directory + "/public/dynamic", err404loc = errorfileloc + "/404.ejs", err422loc = errorfileloc + "/422.ejs", err403loc = errorfileloc + "/403.ejs", err500loc = errorfileloc + "/500.ejs", conloc = htmlfileloc + "/construction.html",*/ port = 8080, /*validImageTypes = ['.jpg', '.jpeg', '.png', '.gif'], imgsrv = "https://image-hosting.firepup650.repl.co",*/ axios = require('axios'), und = undefined, users = ["youngchief","coderelijah","bigminiboss","pikachub2005","jayayseaohbee14","9pfs","omegaorbitals","snakebyte"], aliases = {"smallmaxworker":"bigminiboss","9pfs1":"9pfs"}, exec = require('child_process').exec;
const express = require("express"), http = require('http'), UAParser = require('ua-parser-js'), fs = require('fs'), path = require("path"), app = express(), root = __dirname, dir = root + "/public/", /*htmlfileloc = directory + "/public/pages", rawfileloc = directory + "/public/raw", cssfileloc = directory + "/public/scripts", jsfileloc = directory + "/public/styles", iconfileloc = directory + "/public/icons", errorfileloc = directory + "/public/errors", dynamfileloc = directory + "/public/dynamic", err404loc = errorfileloc + "/404.ejs", err422loc = errorfileloc + "/422.ejs", err403loc = errorfileloc + "/403.ejs", err500loc = errorfileloc + "/500.ejs", conloc = htmlfileloc + "/construction.html",*/ port = 8080, /*validImageTypes = ['.jpg', '.jpeg', '.png', '.gif'], imgsrv = "https://image-hosting.firepup650.repl.co",*/ axios = require('axios'), und = undefined, users = ["youngchief","coderelijah","bigminiboss","pikachub2005","jayayseaohbee14","9pfs","omegaorbitals","snakebyte"], aliases = {"smallmaxworker":"bigminiboss","9pfs1":"9pfs"}, exec = require('child_process').exec;
var tracks = und, datas = und;
//app.use(require("expressjs-remembering-doomsdaybear"))
app.set('trust proxy', 1)
@ -176,13 +176,13 @@ function format(seconds){
return pad(hours) + ':' + pad(minutes) + ':' + pad(seconds);
}
app.use(cookieCheck);
app.use(express.static(dir + "/public/styles"));
app.use(express.static(dir + "/public/audio"));
app.use(express.static(dir + "/public/videos"));
app.use(express.static(dir + "/public/scripts"));
app.use(express.static(dir + "/public/fonts"));
app.use(express.static(dir + "/public/icons"));
app.use(express.static(dir + "/public/images"));
app.use(express.static(dir + "styles"));
app.use(express.static(dir + "audio"));
app.use(express.static(dir + "videos"));
app.use(express.static(dir + "scripts"));
app.use(express.static(dir + "fonts"));
app.use(express.static(dir + "icons"));
app.use(express.static(dir + "images"));
/*
app.get("/images/:filename", function(req, res, next) {
let path = '/' + req.params.filename;
@ -200,13 +200,13 @@ app.get("/cause-error-500", function(req, res, next) {
throw new Error("Intentional 500 Internal Server Error");
});
app.get("/cause-error-404", function(req, res) {
res.status(404).render(dir + "/public/errors/404.ejs", { message: "Intentional 404 Not Found" });
res.status(404).render(dir + "errors/404.ejs", { message: "Intentional 404 Not Found" });
});
app.get("/cause-error-403", function(req, res) {
res.status(403).render(dir + "/public/errors/403.ejs", { message: "Intentional 403 Forbidden" });
res.status(403).render(dir + "errors/403.ejs", { message: "Intentional 403 Forbidden" });
});
app.get('/', function(req, res) {
res.sendFile(path.join(dir + "/public/pages/", `index.html`));
res.sendFile(path.join(dir + "pages/", `index.html`));
});
app.get(/\.html$/, function(req, res) {
const strippedUrl = req.url.slice(0, -5);
@ -254,7 +254,7 @@ app.get('/about-you', function(req, res) {
if (deviceType == undefined) {
deviceType = 'Unknown, might be desktop.';
}
res.render(path.join(dynamfileloc, 'about-you'), {
res.render(path.join(dir + "dynamic/", 'about-you'), {
userAgent: uAH,
browserName: browserName,
browserVersion: browserVersion,
@ -270,7 +270,7 @@ app.get("/server-info", (req, res) => {
execute("uptime -p", (sysup) => {
let uptime = process.uptime();
let author = "Firepup650";
res.render(dir + '/public/dynamic/server-info.ejs', {
res.render(dir + 'dynamic/server-info.ejs', {
author: author,
uptime: format(process.uptime()),
system: sysup,
@ -311,7 +311,7 @@ app.get("/youngchief/spotify", (req, res) => {
cal = "/images/error.png";
error = song;
}
res.render(dir + '/public/dynamic/spotify.ejs', {
res.render(dir + 'dynamic/spotify.ejs', {
playing: playing,
progress: secondsToMinutes(progress),
isrc: isrc,
@ -345,7 +345,7 @@ app.get("/youngchief/spotify/queue", (req, res) => {
raw = "Unknown (Server Error)";
error = "Internal Error";
}
res.render(dir + '/public/dynamic/spotify-queue.ejs', {
res.render(dir + 'dynamic/spotify-queue.ejs', {
isrc: isrcs,
name: names,
raw: raw,
@ -374,7 +374,7 @@ app.get("/youngchief/spotify/history", (req, res) => {
raw = "Unknown (Server Error)";
error = "Internal Error";
}
res.render(dir + '/public/dynamic/spotify-history.ejs', {
res.render(dir + 'dynamic/spotify-history.ejs', {
isrc: isrcs,
name: names,
raw: raw,
@ -393,37 +393,37 @@ app.get('/rating/:name', function(req, res) {
app.get('/user/:name', function(req, res) {
let user = req.params.name
if (isUser(user)) {
const htmlFilePath = path.join(htmlfileloc, `users/${user}.html`);
const htmlFilePath = path.join(dir + "pages/", `users/${user}.html`);
res.sendFile(htmlFilePath);
} else {
let test = isAlias(user);
if (test) {
return res.redirect(`/user/${test}`)
} else {
res.status(404).render(err404loc, {message: `User "${user}" does not have a user page. Contact @Firepup650 if you believe you have seen this message in error.`});
res.status(404).render(dir + "errors/404.ejs", {message: `User "${user}" does not have a user page. Contact @Firepup650 if you believe you have seen this message in error.`});
}
}
});
app.get('/ratings/:name', function(req, res) {
let user = req.params.name
if (isUser(user)) {
const htmlFilePath = path.join(htmlfileloc, `ratings/${user}.html`);
const htmlFilePath = path.join(dir + "pages/", `ratings/${user}.html`);
res.sendFile(htmlFilePath);
} else {
let test = isAlias(user);
if (test) {
return res.redirect(`/ratings/${test}`)
} else {
res.status(404).render(err404loc, {message: `User "${user}" does not have a ratings page. Contact @Firepup650 if you believe you have seen this message in error.`});
res.status(404).render(dir + "errors/404.ejs", {message: `User "${user}" does not have a ratings page. Contact @Firepup650 if you believe you have seen this message in error.`});
}
}
});
app.get('/:file', function(req, res) {
const fileName = req.params.file;
const htmlFilePath = path.join(dir, `public/pages/${fileName}.html`);
const htmlFilePath = path.join(dir, `pages/${fileName}.html`);
if (fs.existsSync(htmlFilePath) && fileName != "construction") {
if (fileName.startsWith('forbid')) {
res.status(403).render(dir + "/public/errors/403.ejs");
res.status(403).render(dir + "errors/403.ejs");
} else {
res.sendFile(htmlFilePath);
}
@ -431,7 +431,7 @@ app.get('/:file', function(req, res) {
if (isUser(fileName)) {
return res.redirect(`/user/${fileName}`)
} else if (!(isAlias(fileName))) {
res.status(404).render(dir + "/public/errors/404.ejs");
res.status(404).render(dir + "errors/404.ejs");
} else {
return res.redirect(`/user/${isAlias(fileName)}`);
}
@ -439,75 +439,75 @@ app.get('/:file', function(req, res) {
});
app.get('/raw/:file', function(req, res) {
const fileName = req.params.file;
const filePath = path.join(dir, `public/raw/${fileName}`);
const filePath = path.join(dir + "raw/", `${fileName}`);
if (fs.existsSync(filePath)) {
if (fileName.startsWith('forbid')) {
res.status(403).render(dir + "/public/errors/403.ejs");
res.status(403).render(dir + "errors/403.ejs");
} else {
res.sendFile(filePath);
/*
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
res.render(dynamfileloc+"/raw.ejs", {fileName: "Error", fileData: err});
res.render(dir + "dynamic/raw.ejs", {fileName: "Error", fileData: err});
return;
}
res.render(dynamfileloc+"/raw.ejs", {fileName: fileName, fileData: data.replace(/\n/g, "<br />").replace(/=/g, " = ")});
res.render(dir + "dynamic/raw.ejs", {fileName: fileName, fileData: data.replace(/\n/g, "<br />").replace(/=/g, " = ")});
})
//*/
}
} else {
res.status(404).render(dir + "/public/errors/404.ejs", {message: "The requested file was not found on the server."});
res.status(404).render(dir + "errors/404.ejs", {message: "The requested file was not found on the server."});
}
});
app.get('/rawFile/:file', function(req, res) {
const fileName = req.params.file;
const filePath = path.join(rawfileloc, `${fileName}`);
const filePath = path.join(dir + "raw/", `${fileName}`);
if (fs.existsSync(filePath)) {
if (fileName.startsWith('forbid')) {
res.status(403).render(dir + "/public/errors/403.ejs");
res.status(403).render(dir + "/errors/403.ejs");
} else {
//res.sendFile(filePath);
///*
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
res.render(dynamfileloc+"/raw.ejs", {fileName: "Error", fileData: err, raw: false});
res.render(dir + "dynamic/raw.ejs", {fileName: "Error", fileData: err, raw: false});
return;
}
res.render(dynamfileloc+"/raw.ejs", {fileName: fileName, fileData: data.replace(/\n/g, "<br />"), raw: true});
res.render(dir + "dynamic/raw.ejs", {fileName: fileName, fileData: data.replace(/\n/g, "<br />"), raw: true});
})
//*/
}
} else {
res.status(404).render(dir + "/public/errors/404.ejs", {message: "The requested file was not found on the server."});
res.status(404).render(dir + "errors/404.ejs", {message: "The requested file was not found on the server."});
}
});
app.get('/file/:file', function(req, res) {
const fileName = req.params.file;
const filePath = path.join(rawfileloc, `${fileName}`);
const filePath = path.join(dir + "raw/", `${fileName}`);
if (fs.existsSync(filePath)) {
if (fileName.startsWith('forbid')) {
res.status(403).render(dir + "/public/errors/403.ejs");
res.status(403).render(dir + "errors/403.ejs");
} else {
//res.sendFile(filePath);
///*
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
res.render(dynamfileloc+"/raw.ejs", {fileName: "Error", fileData: err, raw: false});
res.render(dir + "dynamic/raw.ejs", {fileName: "Error", fileData: err, raw: false});
return;
}
res.render(dynamfileloc+"/raw.ejs", {fileName: fileName, fileData: data.replace(/\n/g, "<br />").replace(/=/g, " = "), raw: false});
res.render(dir + "dynamic/raw.ejs", {fileName: fileName, fileData: data.replace(/\n/g, "<br />").replace(/=/g, " = "), raw: false});
})
//*/
}
} else {
res.status(404).render(dir + "/public/errors/404.ejs", {message: "The requested file was not found on the server."});
res.status(404).render(dir + "errors/404.ejs", {message: "The requested file was not found on the server."});
}
});
app.use(function(req, res, next) {
res.status(404).render(dir + "/public/errors/404.ejs");
res.status(404).render(dir + "errors/404.ejs");
});
app.use(function(error, req, res, next) {
res.status(500).render(dir + "/public/errors/500.ejs", { error });
res.status(500).render(dir + "errors/500.ejs", { error });
});
app.listen(port, () => {
console.log(`Server started on port ${port}`);

516
package-lock.json generated
View file

@ -9,13 +9,13 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"axios": "^1.3.5",
"ejs": "^3.1.9",
"express": "^4.18.2",
"ua-parser-js": "^1.0.33"
"axios": "^1.6.8",
"ejs": "^3.1.10",
"express": "^4.19.2",
"ua-parser-js": "^1.0.37"
},
"devDependencies": {
"nodemon": "^2.0.20"
"nodemon": "^3.1.0"
}
},
"node_modules/abbrev": {
@ -79,11 +79,11 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/axios": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz",
"integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
"version": "1.6.8",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
"integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
"dependencies": {
"follow-redirects": "^1.15.0",
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@ -103,12 +103,12 @@
}
},
"node_modules/body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
@ -116,7 +116,7 @@
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
"raw-body": "2.5.1",
"raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
@ -155,12 +155,18 @@
}
},
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"dependencies": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"set-function-length": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@ -195,7 +201,6 @@
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"fsevents": "~2.3.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@ -261,9 +266,9 @@
}
},
"node_modules/cookie": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"engines": {
"node": ">= 0.6"
}
@ -281,6 +286,22 @@
"ms": "2.0.0"
}
},
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@ -312,9 +333,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/ejs": {
"version": "3.1.9",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
"integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
"integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
"dependencies": {
"jake": "^10.8.5"
},
@ -333,6 +354,25 @@
"node": ">= 0.8"
}
},
"node_modules/es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
"dependencies": {
"get-intrinsic": "^1.2.4"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@ -347,16 +387,16 @@
}
},
"node_modules/express": {
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
"integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
"version": "4.19.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.1",
"body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.5.0",
"cookie": "0.6.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
@ -444,9 +484,9 @@
}
},
"node_modules/follow-redirects": {
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"funding": [
{
"type": "individual",
@ -506,19 +546,26 @@
}
},
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@ -536,15 +583,15 @@
"node": ">= 6"
}
},
"node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dependencies": {
"function-bind": "^1.1.1"
"get-intrinsic": "^1.1.3"
},
"engines": {
"node": ">= 0.4.0"
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-flag": {
@ -555,10 +602,21 @@
"node": ">=8"
}
},
"node_modules/has-property-descriptors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dependencies": {
"es-define-property": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"engines": {
"node": ">= 0.4"
},
@ -577,6 +635,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
@ -757,18 +826,18 @@
}
},
"node_modules/nodemon": {
"version": "2.0.22",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
"integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz",
"integrity": "sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==",
"dev": true,
"dependencies": {
"chokidar": "^3.5.2",
"debug": "^3.2.7",
"debug": "^4",
"ignore-by-default": "^1.0.1",
"minimatch": "^3.1.2",
"pstree.remy": "^1.1.8",
"semver": "^5.7.1",
"simple-update-notifier": "^1.0.7",
"semver": "^7.5.3",
"simple-update-notifier": "^2.0.0",
"supports-color": "^5.5.0",
"touch": "^3.1.0",
"undefsafe": "^2.0.5"
@ -777,7 +846,7 @@
"nodemon": "bin/nodemon.js"
},
"engines": {
"node": ">=8.10.0"
"node": ">=10"
},
"funding": {
"type": "opencollective",
@ -785,12 +854,20 @@
}
},
"node_modules/nodemon/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"dependencies": {
"ms": "^2.1.1"
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/nodemon/node_modules/has-flag": {
@ -803,9 +880,9 @@
}
},
"node_modules/nodemon/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"node_modules/nodemon/node_modules/supports-color": {
@ -842,9 +919,9 @@
}
},
"node_modules/object-inspect": {
"version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@ -931,9 +1008,9 @@
}
},
"node_modules/raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
"integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@ -981,12 +1058,15 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"version": "7.6.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
"dev": true,
"bin": {
"semver": "bin/semver"
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/send": {
@ -1031,43 +1111,54 @@
"node": ">= 0.8.0"
}
},
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dependencies": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
"call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/simple-update-notifier": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
"integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
"integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
"dev": true,
"dependencies": {
"semver": "~7.0.0"
"semver": "^7.5.3"
},
"engines": {
"node": ">=8.10.0"
}
},
"node_modules/simple-update-notifier/node_modules/semver": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
"integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
"node": ">=10"
}
},
"node_modules/statuses": {
@ -1134,9 +1225,9 @@
}
},
"node_modules/ua-parser-js": {
"version": "1.0.36",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.36.tgz",
"integrity": "sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw==",
"version": "1.0.37",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz",
"integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==",
"funding": [
{
"type": "opencollective",
@ -1236,11 +1327,11 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"axios": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz",
"integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
"version": "1.6.8",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
"integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
"requires": {
"follow-redirects": "^1.15.0",
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@ -1257,12 +1348,12 @@
"dev": true
},
"body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"requires": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
@ -1270,7 +1361,7 @@
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
"raw-body": "2.5.1",
"raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
}
@ -1299,12 +1390,15 @@
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"set-function-length": "^1.2.1"
}
},
"chalk": {
@ -1372,9 +1466,9 @@
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
},
"cookie": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
},
"cookie-signature": {
"version": "1.0.6",
@ -1389,6 +1483,16 @@
"ms": "2.0.0"
}
},
"define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"requires": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"gopd": "^1.0.1"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@ -1410,9 +1514,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"ejs": {
"version": "3.1.9",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
"integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
"integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
"requires": {
"jake": "^10.8.5"
}
@ -1422,6 +1526,19 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
"requires": {
"get-intrinsic": "^1.2.4"
}
},
"es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@ -1433,16 +1550,16 @@
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"express": {
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
"integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
"version": "4.19.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.1",
"body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.5.0",
"cookie": "0.6.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
@ -1520,9 +1637,9 @@
}
},
"follow-redirects": {
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q=="
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
},
"form-data": {
"version": "4.0.0",
@ -1552,19 +1669,20 @@
"optional": true
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
},
"get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
}
},
"glob-parent": {
@ -1576,12 +1694,12 @@
"is-glob": "^4.0.1"
}
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"requires": {
"function-bind": "^1.1.1"
"get-intrinsic": "^1.1.3"
}
},
"has-flag": {
@ -1589,16 +1707,32 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"has-property-descriptors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"requires": {
"es-define-property": "^1.0.0"
}
},
"has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
},
"has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"requires": {
"function-bind": "^1.1.2"
}
},
"http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
@ -1728,30 +1862,30 @@
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"nodemon": {
"version": "2.0.22",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
"integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz",
"integrity": "sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==",
"dev": true,
"requires": {
"chokidar": "^3.5.2",
"debug": "^3.2.7",
"debug": "^4",
"ignore-by-default": "^1.0.1",
"minimatch": "^3.1.2",
"pstree.remy": "^1.1.8",
"semver": "^5.7.1",
"simple-update-notifier": "^1.0.7",
"semver": "^7.5.3",
"simple-update-notifier": "^2.0.0",
"supports-color": "^5.5.0",
"touch": "^3.1.0",
"undefsafe": "^2.0.5"
},
"dependencies": {
"debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"has-flag": {
@ -1761,9 +1895,9 @@
"dev": true
},
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"supports-color": {
@ -1793,9 +1927,9 @@
"dev": true
},
"object-inspect": {
"version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
},
"on-finished": {
"version": "2.4.1",
@ -1855,9 +1989,9 @@
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
"integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"requires": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@ -1885,9 +2019,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"version": "7.6.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
"dev": true
},
"send": {
@ -1928,36 +2062,42 @@
"send": "0.18.0"
}
},
"set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"requires": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2"
}
},
"setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
"call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
}
},
"simple-update-notifier": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
"integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
"integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
"dev": true,
"requires": {
"semver": "~7.0.0"
},
"dependencies": {
"semver": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
"integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
"dev": true
}
"semver": "^7.5.3"
}
},
"statuses": {
@ -2006,9 +2146,9 @@
}
},
"ua-parser-js": {
"version": "1.0.36",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.36.tgz",
"integrity": "sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw=="
"version": "1.0.37",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz",
"integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ=="
},
"undefsafe": {
"version": "2.0.5",

View file

@ -12,12 +12,12 @@
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^1.3.5",
"ejs": "^3.1.9",
"express": "^4.18.2",
"ua-parser-js": "^1.0.33"
"axios": "^1.6.8",
"ejs": "^3.1.10",
"express": "^4.19.2",
"ua-parser-js": "^1.0.37"
},
"devDependencies": {
"nodemon": "^2.0.20"
"nodemon": "^3.1.0"
}
}

BIN
public/images/XP-1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 MiB

BIN
public/images/XP-2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
public/images/mc-weird.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View file

@ -10,13 +10,27 @@
<!-- <script async src="https://api.countapi.xyz/hit/firepup650.repl.co/cheese"></script> -->
<div id="preloads">
<link rel="preload" href="/images/cheese.png" as="image">
<link rel="preload" href="/images/purple-cheese.png" as="image">
</div>
</head>
<body>
<h5 hidden id='Maintenance' class="center"></h5>
<p class="center rainbow" id="bc"></p>
<input class="center" type="checkbox" name="checkbox1" id="check" onclick="return cheeseTheme();">
<label for="check">
<span class="center force-color">But what if it was purple?</span>
</label>
<img alt="Bouncing cheese" id="cheese" src="/images/cheese.png" style="position: fixed; z-index: -1;" class="no-special">
<script>
function cheeseTheme() {
var checkbox = document.getElementById("check");
if(!checkbox.checked) {
document.getElementById("cheese").src = "/images/cheese.png"
document.getElementById("cheese").alt = "Cheese"
} else {
document.getElementById("cheese").src = "/images/purple-cheese.png"
document.getElementById("cheese").alt = "Purple Cheese"
}
}
var vX = 2;
var ovX = 2;
var ovY = 2;

View file

@ -0,0 +1,161 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>FP650 - CountAPI spec clone</title>
<link href="/countapi.css" rel="stylesheet" type="text/css" />
<link href="/atom-one-dark.min.css" rel="stylesheet" type="text/css" />
<!-- <script async src="https://api.countapi.xyz/hit/firepup650.repl.co/visits"></script> -->
<!-- <script async src="https://api.countapi.xyz/hit/firepup650.repl.co/countapi-spec-clone"></script> -->
</head>
<body>
<section class="container">
<h1 id="api">API</h1>
<h2>Namespaces</h2>
<p>Namespaces are meant to avoid name collisions. You may specify a namespace during the creation of a key. Its recommend use the domain of the application as namespace to avoid collision with other websites.<br>If the namespace is not specified the key is assigned to the <code>default</code> namespace. If your key resides in the default namespace you don't need to specify it.</p>
<h2>Endpoints</h2>
<p>
All requests support <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" target="_blank">cross-origin resource sharing</a> (CORS) and SSL.<br>
You can use <a href="https://en.wikipedia.org/wiki/JSONP">JSONP</a> sending the callback parameter. JSONP requests will never fail, they will include the HTTP code in the response.<br>
Also a 1x1 GIF image is supported sending <code>?img</code>.
</p>
<p>Base API path: <a href="https://api.countapi.xyz" target="_blank">https://api.countapi.xyz</a></p>
<p>In the case of a server failure, the API will send:</p>
<pre class="fail">⇒ 500 { "error": "Error description" }</pre>
<h3 class="endpoint">/get/:namespace?/:key</h3>
<p>Get the value of a key. Optionally specify the namespace.</p>
<pre class="success"><a href="https://api.countapi.xyz/get/test" target="_blank">https://api.countapi.xyz/get/test</a>
⇒ 200 { "value": 42 }
<a href="https://api.countapi.xyz/get/mysite.com/test" target="_blank">https://api.countapi.xyz/get/mysite.com/test</a>
⇒ 200 { "value": 24 }</pre>
<pre class="fail"><a href="https://api.countapi.xyz/get/nonexisting" target="_blank">https://api.countapi.xyz/get/nonexisting</a>
⇒ 404 { "value": null }</pre>
<h3 class="endpoint">/set/:namespace?/:key?value=:value</h3>
<p>Set the value of a key. Optionally specify the namespace. The key <b>must</b> be created with <code>enable_reset</code> set to <code>1</code> (true).</p>
<p>This endpoint will return the previous value before the assignation.</p>
<pre class="success"><a href="https://api.countapi.xyz/set/test?value=69" target="_blank">https://api.countapi.xyz/set/test?value=69</a>
⇒ 200 { "old_value": 42, "value": 69 }
<a href="https://api.countapi.xyz/set/mysite.com/test?value=96" target="_blank">https://api.countapi.xyz/set/mysite.com/test?value=96</a>
⇒ 200 { "old_value": 24, "value": 96 }</pre>
<pre class="fail"><a href="https://api.countapi.xyz/set/resetdisabled?value=33" target="_blank">https://api.countapi.xyz/set/resetdisabled?value=33</a>
⇒ 403 { "old_value": 1234, "value": 1234 }
<a href="https://api.countapi.xyz/set/nonexisting?value=33" target="_blank">https://api.countapi.xyz/set/nonexisting?value=33</a>
⇒ 404 { "old_value": null, "value": null }</pre>
<h3 class="endpoint">/update/:namespace?/:key?amount=:amount</h3>
<p>Updates a key with <code>+/- amount</code>. Optionally specify the namespace. The <code>amount</code> <b>must</b> be within <code>update_lowerbound</code> and <code>update_upperbound</code> specified during the creation of the key.</p>
<pre class="success"><a href="https://api.countapi.xyz/update/test?amount=5" target="_blank">https://api.countapi.xyz/update/test?amount=5</a> (value was 42)
⇒ 200 { "value": 47 }
<a href="https://api.countapi.xyz/update/mysite.com/test?amount=-7" target="_blank">https://api.countapi.xyz/update/mysite.com/test?amount=-7</a> (value was 53)
⇒ 200 { "value": 46 }</pre>
<pre class="fail"><a href="https://api.countapi.xyz/update/outofrange?amount=3" target="_blank">https://api.countapi.xyz/update/outofrange?amount=3</a> (value was 47, update_upperbound=2)
⇒ 403 { "value": 47 }
<a href="https://api.countapi.xyz/update/nonexisting?amount=1" target="_blank">https://api.countapi.xyz/update/nonexisting?amount=1</a>
⇒ 404 { "value": null }</pre>
<h3 class="endpoint">/hit/:namespace?/:key</h3>
<p>An easier way to track incrementing by one keys. This endpoint will create a key if it doesn't exists and increment it by one on each subsequent request. Optionally specify a namespace.<br>The key created has the following properties:</p>
<ul>
<li><code>enable_reset</code> to <code>0</code> (false)</li>
<li><code>update_lowerbound</code> to <code>0</code></li>
<li><code>update_upperbound</code> to <code>1</code></li>
</ul>
<p>Effectively making the key only incrementable by one.</p>
<pre class="success"><a href="https://api.countapi.xyz/hit/mysite.com/visits" target="_blank">https://api.countapi.xyz/hit/mysite.com/visits</a> (value was 35)
⇒ 200 { "value": 36 }
<a href="https://api.countapi.xyz/hit/nonexisting" target="_blank">https://api.countapi.xyz/hit/nonexisting</a> (key is created)
⇒ 200 { "value": 1 }</pre>
<h3 class="endpoint">/create</h3>
<p>Creates a key.<br>All parameters are optional</p>
<table>
<thead>
<tr>
<th>name</th>
<th>default</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>key</td>
<td>New UUID</td>
<td>Name of the key</td>
</tr>
<tr>
<td>namespace</td>
<td>default</td>
<td>Namespace to store the key</td>
</tr>
<tr>
<td>value</td>
<td>0</td>
<td>The initial value stored</td>
</tr>
<tr>
<td>enable_reset</td>
<td>0</td>
<td>Allows the key to be resetted with <b>/set</b></td>
</tr>
<tr>
<td>update_lowerbound</td>
<td>-1</td>
<td>Restrict update to not subtract more than this number. This number <b>must</b> be negative or zero.</td>
</tr>
<tr>
<td>update_upperbound</td>
<td>1</td>
<td>Restrict update to not add more than this number. This number <b>must</b> be positive or zero.</td>
</tr>
</tbody>
</table>
<pre class="info">Note about <b>expiration</b>: Every time a key is updated its expiration is set to <b>6 months</b>. So don't worry, if you still using it, it won't expire.</pre>
<pre class="info" id="format">Keys and namespaces must have at least 3 characters and less or equal to 64. Keys and namespaces must match: <b>^[A-Za-z0-9_\-.]{3,64}$</b></pre>
<pre class="success"><a href="https://api.countapi.xyz/create" target="_blank">https://api.countapi.xyz/create</a>
⇒ 200 {"namespace":"default", "key":"6d5891ff-ebda-48fb-a760-8549d6a3bf3a", "value":0}
<a href="https://api.countapi.xyz/create?namespace=mysite.com&amp;value=42" target="_blank">https://api.countapi.xyz/create?namespace=mysite.com&amp;value=42</a>
⇒ 200 {"namespace":"mysite.com", "key":"33606dbe-4800-4228-b042-5c0fb8ec8f08", "value":42}
<a href="https://api.countapi.xyz/create?key=counter&amp;expiration=60" target="_blank">https://api.countapi.xyz/create?key=counter&amp;expiration=60</a>
⇒ 200 { "namespace": "default", "key":"counter", "value": 0 }</pre>
<pre class="fail"><a href="https://api.countapi.xyz/create?name=alreadycreated" target="_blank">https://api.countapi.xyz/create?name=alreadycreated</a> (the key already existed)
⇒ 409 { "namespace": null, "key": null, "value": null }</pre>
<h3 class="endpoint">/info/:namespace?/:key</h3>
<p>Get information about a key. Optionally specify the namespace.</p>
<pre class="success"><a href="https://api.countapi.xyz/info/test" target="_blank">https://api.countapi.xyz/info/test</a>
⇒ 200 {
"namespace": "default",
"key": "test",
"ttl": 321,
"value": 42,
"enable_reset": false,
"update_upperbound": 1,
"update_lowerbound": 1
}</pre>
<pre class="fail"><a href="https://api.countapi.xyz/info/nonexisting" target="_blank">https://api.countapi.xyz/info/nonexisting</a>
⇒ 404 {
"namespace": null,
"key": null,
"ttl": null,
"value": null,
"enable_reset": null,
"update_upperbound": null,
"update_lowerbound": null
}</pre>
<h3 class="endpoint">/stats</h3>
<p>Get some CountAPI stats</p>
<pre class="success"><a href="https://api.countapi.xyz/stats" target="_blank">https://api.countapi.xyz/stats</a>
⇒ 200 {
"keys_created": <span data-stat-id="keys_created">...</span>,
"keys_updated": <span data-stat-id="keys_updated">...</span>,
"requests": <span data-stat-id="requests">...</span>,
"version": "<span data-stat-id="version">...</span>"
}</pre>
</section>
</body>
</html>

87
public/pages/quotes.html Normal file
View file

@ -0,0 +1,87 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>FP650 - Quotes</title>
<link href="/style.css" rel="stylesheet" type="text/css" />
<link href="/styles/bounce.css" rel="stylesheet" type="text/css" />
<!-- <script async src="https://api.countapi.xyz/hit/firepup650.repl.co/visits"></script> -->
<!-- <script async src="https://api.countapi.xyz/hit/firepup650.repl.co/construction"></script> -->
</head>
<body>
<h5 hidden id='Maintenance' class="center"></h5>
<span class="center">
<h3 class="force-color">Firepup Quotes to be freely reused as needed by anyone for any reason</h3>
<span id="no-stop" class="force-color">I can't stop you</span> <button class="cyan copy-button" onclick="copy('no-stop')">Copy</button><br/>
<span id="access" class="force-color">I'll basically never say no to more access to more things... or more access to the same things</span> <button class="cyan copy-button" onclick="copy('access')">Copy</button><br/>
</span>
<script src="/script.js"></script>
<!-- Modified from https://www.geeksforgeeks.org/how-to-create-copy-to-clipboard-button/ /!-->
<script>
function copy(element) {
const elemText = document.getElementById(element).innerText
let text = `> ${elemText}
~ Firepup Sixfifty ([Source](https://mc.firepi.obl.ong:4443/quotes#:~:text=${encodeURIComponent(elemText).replaceAll("'", '%27')}))`
navigator.clipboard.writeText(text);
}
</script>
<!-- End Modified GeeksforGeeks code /!-->
<!-- Modified from https://codepen.io/nrrrdcore/pen/XbZBpq /!-->
<style>
.copy-button {
cursor: pointer;
&:before {
content: '';
display: none;
position: absolute;
z-index: 9998;
top: 35px;
left: 15px;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 5px solid rgba(0,0,0,.72);
}
&:after {
content: 'Copy to Clipboard';
display: none;
position: absolute;
z-index: 9999;
top: 30px;
left: 0px;
width: 114px;
height: 36px;
color: #fff;
font-size: 10px;
line-height: 36px;
text-align: center;
border-radius: 3px;
}
&:hover {
&:before, &:after {
display: block;
}
}
&:active, &:focus {
&:after {
content: 'Copied!';
}
}
}
</style>
<!-- End Modified codepen code (Julie Horvath) /!-->
</body>
</html>

View file

@ -0,0 +1,270 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>FP650 - Unfinished page</title>
<link href="/style.css" rel="stylesheet" type="text/css" />
<link href="/styles/bounce.css" rel="stylesheet" type="text/css" />
<!-- <script async src="https://api.countapi.xyz/hit/firepup650.repl.co/visits"></script> -->
<!-- <script async src="https://api.countapi.xyz/hit/firepup650.repl.co/construction"></script> -->
<style>
.cssload-cssload-wrap2 {
width: 169px;
height: 169px;
overflow: hidden;
}
.cssload-wrap {
position: absolute;
width: 113px;
height: 113px;
left: 50%;
top: 50%;
margin-top: -56px;
margin-left: -56px;
transform: scale(2);
-o-transform: scale(2);
-ms-transform: scale(2);
-webkit-transform: scale(2);
-moz-transform: scale(2);
}
.cssload-wrap .cssload-overlay {
position: absolute;
width: 100%;
height: 100%;
z-index: 100;
box-shadow: 0 0 28px 43px rgb(0,0,0) inset;
-o-box-shadow: 0 0 28px 43px rgb(0,0,0) inset;
-ms-box-shadow: 0 0 28px 43px rgb(0,0,0) inset;
-webkit-box-shadow: 0 0 28px 43px rgb(0,0,0) inset;
-moz-box-shadow: 0 0 28px 43px rgb(0,0,0) inset;
}
.cssload-wrap .cssload-cogWheel {
position: absolute;
top: 50%;
margin-top: -28px;
width: 56px;
height: 56px;
}
.cssload-wrap .cssload-cogWheel.cssload-one {
left: -7.25px;
animation: cssload-rotLeft 0.5s infinite linear;
-o-animation: cssload-rotLeft 0.5s infinite linear;
-ms-animation: cssload-rotLeft 0.5s infinite linear;
-webkit-animation: cssload-rotLeft 0.5s infinite linear;
-moz-animation: cssload-rotLeft 0.5s infinite linear;
}
.cssload-wrap .cssload-cogWheel.cssload-one .cssload-one:before {
border: none;
}
.cssload-wrap .cssload-cogWheel.cssload-two {
right: -7.25px;
margin-top: -27px;
transform: rotate(196deg);
-o-transform: rotate(196deg);
-ms-transform: rotate(196deg);
-webkit-transform: rotate(196deg);
-moz-transform: rotate(196deg);
animation: cssload-rotRight 0.5s infinite linear;
-o-animation: cssload-rotRight 0.5s infinite linear;
-ms-animation: cssload-rotRight 0.5s infinite linear;
-webkit-animation: cssload-rotRight 0.5s infinite linear;
-moz-animation: cssload-rotRight 0.5s infinite linear;
}
.cssload-wrap .cssload-cogWheel.cssload-two .cssload-one:before {
border: none;
}
.cssload-wrap .cssload-cogWheel .cssload-cog {
position: absolute;
width: 100%;
left: 0;
top: 50%;
}
.cssload-wrap .cssload-cogWheel .cssload-cog:after {
display: block;
position: absolute;
content: ' ';
border: 2px solid rgb(0,255,0);
border-left: none;
height: 10px;
width: 6px;
right: -10px;
top: -5px;
}
.cssload-wrap .cssload-cogWheel .cssload-cog:before {
display: block;
position: absolute;
content: ' ';
border-left: 2px solid rgb(0,255,0);
height: 11px;
width: 5px;
right: -7px;
top: -15px;
transform: rotate(-20deg);
-o-transform: rotate(-20deg);
-ms-transform: rotate(-20deg);
-webkit-transform: rotate(-20deg);
-moz-transform: rotate(-20deg);
}
.cssload-wrap .cssload-cogWheel .cssload-cog.cssload-one {
transform: rotate(-80deg);
-o-transform: rotate(-80deg);
-ms-transform: rotate(-80deg);
-webkit-transform: rotate(-80deg);
-moz-transform: rotate(-80deg);
}
.cssload-wrap .cssload-cogWheel .cssload-cog.cssload-two {
transform: rotate(-40deg);
-o-transform: rotate(-40deg);
-ms-transform: rotate(-40deg);
-webkit-transform: rotate(-40deg);
-moz-transform: rotate(-40deg);
}
.cssload-wrap .cssload-cogWheel .cssload-cog.cssload-three {
transform: rotate(0deg);
-o-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
}
.cssload-wrap .cssload-cogWheel .cssload-cog.cssload-four {
transform: rotate(40deg);
-o-transform: rotate(40deg);
-ms-transform: rotate(40deg);
-webkit-transform: rotate(40deg);
-moz-transform: rotate(40deg);
}
.cssload-wrap .cssload-cogWheel .cssload-cog.cssload-five {
transform: rotate(80deg);
-o-transform: rotate(80deg);
-ms-transform: rotate(80deg);
-webkit-transform: rotate(80deg);
-moz-transform: rotate(80deg);
}
@keyframes cssload-rotLeft {
from {
transform: rotate(-30deg);
}
to {
transform: rotate(10deg);
}
}
@-o-keyframes cssload-rotLeft {
from {
transform: rotate(-30deg);
}
to {
transform: rotate(10deg);
}
}
@-ms-keyframes cssload-rotLeft {
from {
transform: rotate(-30deg);
}
to {
transform: rotate(10deg);
}
}
@-webkit-keyframes cssload-rotLeft {
from {
transform: rotate(-30deg);
}
to {
transform: rotate(10deg);
}
}
@-moz-keyframes cssload-rotLeft {
from {
transform: rotate(-30deg);
}
to {
transform: rotate(10deg);
}
}
@keyframes cssload-rotRight {
from {
transform: rotate(-174deg);
}
to {
transform: rotate(-214deg);
}
}
@-o-keyframes cssload-rotRight {
from {
transform: rotate(-174deg);
}
to {
transform: rotate(-214deg);
}
}
@-ms-keyframes cssload-rotRight {
from {
transform: rotate(-174deg);
}
to {
transform: rotate(-214deg);
}
}
@-webkit-keyframes cssload-rotRight {
from {
transform: rotate(-174deg);
}
to {
transform: rotate(-214deg);
}
}
@-moz-keyframes cssload-rotRight {
from {
transform: rotate(-174deg);
}
to {
transform: rotate(-214deg);
}
}
</style>
</head>
<body>
<h5 hidden id='Maintenance' class="center"></h5>
<span class="center force-color">
<h3 id='Construction' class=center><span class="warning">Page under construction.</span></h3>
</span>
<div class="cssload-cssload-wrap2">
<div class="cssload-wrap">
<div class="cssload-overlay"></div>
<div class="cssload-cogWheel cssload-one">
<div class="cssload-cog cssload-one"></div>
<div class="cssload-cog cssload-two"></div>
<div class="cssload-cog cssload-three"></div>
<div class="cssload-cog cssload-four"></div>
<div class="cssload-cog cssload-five"></div>
<div class="cssload-center"></div>
</div>
<div class="cssload-cogWheel cssload-two">
<div class="cssload-cog cssload-one"></div>
<div class="cssload-cog cssload-two"></div>
<div class="cssload-cog cssload-three"></div>
<div class="cssload-cog cssload-four"></div>
<div class="cssload-cog cssload-five"></div>
<div class="cssload-center"></div>
</div>
</div>
</div>
<script src="/script.js"></script>
</body>
</html>

BIN
public/raw/TLJ-audio.zip Normal file

Binary file not shown.

BIN
public/raw/TLJ-mp3.zip Normal file

Binary file not shown.

BIN
public/raw/TLJ-wmv-LQ.zip Normal file

Binary file not shown.

BIN
public/raw/bombs.tar.gz Normal file

Binary file not shown.

353
public/raw/flagsv2.txt Normal file
View file

@ -0,0 +1,353 @@
flag-acceptable-exciting-datalogs=false
flag-action-code=true
flag-agent-usage-view=false
flag-ai-chat-empty-state-2=true
flag-ai-chat-log-ld-start=true
flag-ai-completions-v2=true
flag-ai-in-the-shell=true
flag-ai-infra-gw-chat-service-enabled=false
flag-ai-input-bar-2=true
flag-ai-modelfarm-gemini-access=false
flag-ai-modelfarm-sweet-mask=false
flag-ai-modelfarm-usage-gating=false
flag-ai-response-fade-in=false
flag-ai-ws-client-2=false
flag-alert-superficial-number=true
flag-allow=8
flag-analytics-mail=false
flag-analytics-v2=true
flag-anthropomorphized-jaguar=false
flag-anti-abuse-halo3odst=true
flag-antiabuse-asfd-enablemq=true
flag-antiabuse-asfd-haloreach=false
flag-antiabuse-asfd-stripewh=true
flag-antiabuse-banshee=true
flag-antiabuse-battlefield2042=false
flag-antiabuse-modernwarfare2=true
flag-antiabuse-phantomhourglass=true
flag-antiabuse-tearsofthekingdom=true
flag-antiabuse-timecrisis2=gpt-4o
flag-areobotany-blues=false
flag-artesian-flow=true
flag-autoscale-requests=true
flag-bamboo-metabolism=true
flag-beautiful-currents=false
flag-beta-template-replit-Clojure=
flag-beta-template-replit-Dart=
flag-beta-template-replit-Haskell=
flag-beta-template-replit-Ruby=
flag-beta-template-replit-Rust=
flag-big-white-cloud=true
flag-bill-gates=false
flag-blue-water-token=true
flag-bounties-pinned-bounty=0
flag-bounty-chat=true
flag-bounty-hunter-services-data={"1":{"isAvailable":true,"isUnlisted":false},"2":{"isAvailable":true,"isUnlisted":false},"3":{"isUnlisted":false,"isAvailable":true},"4":{"isAvailable":true,"isUnlisted":false},"5":{"isAvailable":true,"isUnlisted":false},"6":{"isAvailable":true,"isUnlisted":false},"7":{"isUnlisted":false,"isAvailable":true},"8":{"isUnlisted":true,"isAvailable":false},"9":{"isUnlisted":false,"isAvailable":true},"10":{"isUnlisted":true,"isAvailable":false},"11":{"isUnlisted":false,"isAvailable":true}}
flag-bronx-diving-bell=control
flag-buzzing-astrophage=true
flag-byte-ledger=false
flag-byte-ledger-visor=false
flag-cash-out=true
flag-cash-out-admin=true
flag-channel-request-priority=false
flag-chat-audio-notification=true
flag-chelsea-skimboard=true
flag-cloud-services-homepage=false
flag-clui-ctx-menu-rename-all=false
flag-cmd-bar-tool-descriptions=true
flag-code-repair=true
flag-code-search-latency-metrics=false
flag-code-suggestion-engine=false
flag-code-suggestion-markdown=false
flag-colored-tool-icons=true
flag-colored-tool-icons-ghostwriter-marketing=true
flag-compact-layout-gaps=false
flag-completely-different=true
flag-completely-different-clipboard=true
flag-completely-different-regulator=false
flag-completely-different-tree-cutting=true
flag-completely-different-tree-trigger=true
flag-container-retry-minimum-ms=0
flag-copy-stacks-mutation=true
flag-copy-unit-ui=true
flag-craft-ventures-hackathon-2024=true
flag-credit-credit=true
flag-credit-notifications=true
flag-crisp-bass=true
flag-crisp-remix=true
flag-crisp-start=true
flag-cron-email-notifications=true
flag-cron-push-notifications=false
flag-dashed-hosted-dev-url=true
flag-debugger-hover-variable=true
flag-default-advanced-porygon-model=gpt-4o
flag-default-layout-ai-pane=true
flag-default-porygon-model=gpt-3.5-turbo-1106
flag-delicious-discounts=false
flag-depl-intro-simp=false
flag-deployer-ubb-ingestion=false
flag-deployment-templates=true
flag-deployments=true
flag-deployments-custom-domain-v2=true
flag-deployments-keep-dev-deps=false
flag-desktop-integrated-devtools=true
flag-destroy-on-route-change=false
flag-dirigible-windmill=true
flag-doc-your-devs=false
flag-dot-dev-url=true
flag-draft-buffers=false
flag-draft-courses=true
flag-dragonite-chat-strategy=default
flag-edit-repl-info-forms=false
flag-editor-empty-state-2=true
flag-editor-git-conflict-markers=true
flag-editor-git-inline-diff=true
flag-editor-root-level-tooltips=true
flag-editor-rulers=true
flag-editor-selection-controls=true
flag-editor-visible-whitespace=true
flag-electric-stems=true
flag-electric-stems-free-beta=false
flag-email-domain-reputation-queue-rollout=false
flag-enable-onix-chat=true
flag-enable-pichu-tooltip=true
flag-enable-river-017=true
flag-enable-staleness-check=true
flag-enterprising-bat=true
flag-env-as-file=true
flag-envoy-autograph=false
flag-expt-youtube-tutorials-learn-page=true
flag-extension-suggestions=false
flag-extensions-enforce-scopes=false
flag-fallback-deployments-domain=replit.app
flag-filetree-git-status=true
flag-filetree-local-cache=true
flag-filetree-menu-ultra=true
flag-first-class-git=false
flag-full-context-agent=false
flag-funky-future=false
flag-gemini-access-modelfarm=false
flag-geo-signup-continent=true
flag-ghostwriter-alternate-debounce=false
flag-ghostwriter-chat-engine=gpt-3.5-turbo-0125
flag-ghostwriter-chat-engine-override=false
flag-ghostwriter-chat-intent-classifier-model=
flag-ghostwriter-chat-replit-docs-index=replit-docs
flag-ghostwriter-code-complete-for-all-users=false
flag-ghostwriter-code-complete-ghost-text-for-all=false
flag-ghostwriter-complete-engine=replit-repltuned-v1-5-3b
flag-ghostwriter-file-ctx=true
flag-ghostwriter-model-selection=true
flag-ghostwriter-neighboring-context=true
flag-ghostwriter-prompt-editor=true
flag-gigantic-events=true
flag-gigantic-events-display=true
flag-git-commit-view=true
flag-git-pane-branch-selector=true
flag-gitgud-gql-updates=true
flag-github-import-nix-modules=true
flag-github-repo-access-setting=false
flag-global-status-bar=false
flag-gw-charizard=true
flag-gw-charmander=true
flag-gw-magikarp-bounce-time=1500
flag-gw-new-ghost-text=true
flag-header-home=true
flag-http-dot-style-domain=false
flag-hyperextensions=false
flag-iap-apple-2=true
flag-iap-ghostwriter-trial-2=false
flag-iap-google-2=true
flag-iap-hacker-2=false
flag-iap-upselling-2=true
flag-idea-to-creation=off
flag-infinity-drive-beta=false
flag-ingest-egress=false
flag-inline-generate-2=true
flag-intertidal-property=false
flag-killswitch-bad-graphql=false
flag-killswitch-bounties-all-non-verified-apps-get-reviewed=false
flag-killswitch-bounties-no-public-applications=false
flag-killswitch-email-domain-reputation=true
flag-killswitch-email-normalization=true
flag-killswitch-ghostwriter=false
flag-killswitch-ghostwriter-chat=false
flag-killswitch-ghostwriter-reject-probability=0
flag-killswitch-github=false
flag-killswitch-mobile-datadog=false
flag-killswitch-mobile-notifications=true
flag-killswitch-pichu=false
flag-killswitch-product-gating=false
flag-killswitch-teams=false
flag-launching-new-courses=true
flag-ld-dev=off
flag-legacy-team-repo-features=false
flag-lion-city=false
flag-lsp-diagnostics-in-footer=false
flag-lsp-semantic-tokens=true
flag-lsp-status-in-ws=true
flag-lsp-userevents=true
flag-magic-insecticide=false
flag-maintain-pane-layout=false
flag-make-fetch-happen=false
flag-markprompt=false
flag-mb-ai4all=true
flag-mb-github-connect=true
flag-mb-github-integration-release=true
flag-mb-gw-chat-bridge=true
flag-mb-gw-upsell=true
flag-mb-my-repls-deployments-versioned=2.75.8
flag-mb-phablet=2.75.8
flag-mb-save-layout-state=true
flag-mb-spinny-screen=true
flag-mb-start-with-ai=99.99.99
flag-mb-usage-utopia-dev=true
flag-mb-web-start-with-ai=false
flag-mb-webview-everywhere=false
flag-mb-webview-everywhere-versioned=99.99.99
flag-midnight-hacker=true
flag-migrate-gh-creds=false
flag-mobile-operation-cycles-go-vroom=false
flag-mobile-show-seach-release=true
flag-mobile-show-switch-server-cta-release=true
flag-modal-panes=false
flag-monthly-annual-pricing=false
flag-more-friends=true
flag-morning-flash-bite=false
flag-multi-lsp-connections=false
flag-neon-databases=true
flag-neon-databases-discount=false
flag-new-bounty-search-sort=false
flag-new-create-repl-dialog=true
flag-new-dependencies-pane=true
flag-new-deployments-usage-ingestion=true
flag-new-url-bar=true
flag-nix-modules-tool=false
flag-no-more-parties-in-la=false
flag-no-soup-for-you=false
flag-no-workspace-notifications=false
flag-node-package-layer=false
flag-nokia-tokens=false
flag-notable-exotic-flash-memory=true
flag-notifications=true
flag-nudges-pane-linking=true
flag-null-diagnostics=true
flag-object-storage-flexible-buckets=false
flag-object-storage-pane=true
flag-object-storage-teams=true
flag-object-storage-usage-ingestion=true
flag-ocean-easy=true
flag-onboarding-improvements=true
flag-onboarding-name-form=true
flag-onboarding-survey=true
flag-onboarding-templates=python, html (old), node, next, python discord, personal portfolio
flag-open-telemetry-tracing=false
flag-open-with=true
flag-open-with-default=true
flag-optical-illusion=true
flag-org-joining=false
flag-output-userevents=false
flag-packages2=true
flag-palegreen-pleasing-lava=false
flag-pid2=false
flag-pid2-github-import=false
flag-pid2-lsp=false
flag-pid2-resource-monitoring=false
flag-pid2-shell=false
flag-pid2-shell-in-ai-chat=false
flag-pid2-shell-muxed=false
flag-pidgey-engine=gpt-3.5-turbo-0125
flag-piplup-agent=false
flag-popout-pane=true
flag-porygon-button=false
flag-porygon-type=plan-agent
flag-porygon-workflows=false
flag-postgres-db-god-mode=false
flag-postgresql-pane-inline-ai=false
flag-pretty-scrollbar=true
flag-pride-paper=true
flag-pro-dev-activation-create=false
flag-pro-dev-identify-server-side=true
flag-pro-reverse-trial=false
flag-pro-reverse-trial-duration=14
flag-pro-reverse-trial-entry-modal-dismiss=false
flag-pro-reverse-trial-hcaptcha=false
flag-pro-reverse-trial-sms=false
flag-pro-reverse-trial-yearly-billing=true
flag-problems-pane=false
flag-public-extension-store=true
flag-pyrompt-prompting=true
flag-python-package-layer=false
flag-redacted-rose=false
flag-regional-goval-tarpit=wesley
flag-repl-auth-sidebar=true
flag-repl-creation-june2024=C
flag-repl-creation-languages-category-id=2
flag-repl-creation-starter-app-category-id=1
flag-repl-privacy-toggle=false
flag-richard-whittington=false
flag-rooftop-polarbear=false
flag-scheduled-deployment-notifications=[]
flag-secrets-copying=true
flag-server-seance=false
flag-settings-command=true
flag-sicily-ocean=true
flag-simplified-mangos=true
flag-slippery-banana=true
flag-small-yellow-sun=true
flag-sms-verification=true
flag-soft-sun=true
flag-sparks-joy=true
flag-spider-philosophy=true
flag-square-of-truth=false
flag-staleness-timestamp=1715065200
flag-start-with-ai=true
flag-start-with-ai-fallback-message=true
flag-start-with-ai-to-porygon=false
flag-status-bar-branch=true
flag-storage-dynamic-resize-beta=true
flag-storage-utilization=true
flag-supply-eye=true
flag-system-dependencies-pane=true
flag-system-dependencies-search=true
flag-system-dependencies-search-23_05=false
flag-system-dependencies-search-unstable=false
flag-teams-edu-deprecation=true
flag-teams-edu-export=true
flag-teams-edu-export-student=true
flag-teams-for-the-team-being=false
flag-teams-overview-killswitch=false
flag-teeming-time=true
flag-teeming-time-presence=true
flag-template-layout-author=false
flag-template-layout-user=true
flag-territorial-borg=true
flag-test-ld-webhook=false
flag-threads-dropdown-menu=true
flag-toolchain-multiple-runners=false
flag-tools-schmools=true
flag-total-waves=false
flag-tropical-pink=false
flag-typed-update-event-operations=false
flag-ubb-limits=false
flag-unit-aware-share-links=true
flag-unit-aware-share-links-ui=true
flag-updated-problems=false
flag-upsell-wonderland=ai-upsell
flag-usage-consolidated-pill=true
flag-usage-dusty-basin=false
flag-use-annotation-subscriptions=true
flag-use-eval-server-for-firewalled-replit=true
flag-use-improved-free-tier=false
flag-user-layouts=false
flag-viktor=false
flag-village-bioreactor=true
flag-vnc-dash-url=true
flag-vnc-error-status=true
flag-warn-gh-creds=true
flag-webview-fallback-url=true
flag-webview-show-protocol=true
flag-work-flows=false
flag-ws-density-filetree=false
flag-yo-ho-ho=false
flag-zip-tie=true

449
public/raw/gatingv2.txt Normal file
View file

@ -0,0 +1,449 @@
authed_flag_gw_chat_engine=["gpt-3.5-turbo-1106","gpt-3.5-turbo-0125","gemini-pro"]
dot-style-domains=true
draft-buffers-wip=false
flag-acceptable-exciting-datalogs=false
flag-action-code=true
flag-agent-usage-view=false
flag-ai-chat-empty-state-2=true
flag-ai-chat-log-ld-start=true
flag-ai-completions-v2=true
flag-ai-in-the-shell=true
flag-ai-infra-gw-chat-service-enabled=false
flag-ai-input-bar-2=true
flag-ai-modelfarm-gemini-access=false
flag-ai-modelfarm-sweet-mask=false
flag-ai-modelfarm-usage-gating=false
flag-ai-response-fade-in=false
flag-ai-ws-client-2=false
flag-alert-superficial-number=true
flag-allow=8
flag-analytics-mail=false
flag-analytics-v2=true
flag-anthropomorphized-jaguar=false
flag-anti-abuse-halo3odst=true
flag-antiabuse-asfd-enablemq=true
flag-antiabuse-asfd-haloreach=false
flag-antiabuse-asfd-stripewh=true
flag-antiabuse-banshee=true
flag-antiabuse-battlefield2042=false
flag-antiabuse-modernwarfare2=true
flag-antiabuse-phantomhourglass=true
flag-antiabuse-tearsofthekingdom=true
flag-antiabuse-timecrisis2=gpt-4o
flag-areobotany-blues=false
flag-artesian-flow=true
flag-autoscale-requests=true
flag-bamboo-metabolism=true
flag-beautiful-currents=false
flag-beta-template-replit-Clojure=
flag-beta-template-replit-Dart=
flag-beta-template-replit-Haskell=
flag-beta-template-replit-Ruby=
flag-beta-template-replit-Rust=
flag-big-white-cloud=true
flag-bill-gates=false
flag-blue-water-token=true
flag-bounties-pinned-bounty=0
flag-bounty-chat=true
flag-bounty-hunter-services-data={"1":{"isAvailable":true,"isUnlisted":false},"2":{"isAvailable":true,"isUnlisted":false},"3":{"isUnlisted":false,"isAvailable":true},"4":{"isAvailable":true,"isUnlisted":false},"5":{"isAvailable":true,"isUnlisted":false},"6":{"isAvailable":true,"isUnlisted":false},"7":{"isUnlisted":false,"isAvailable":true},"8":{"isUnlisted":true,"isAvailable":false},"9":{"isUnlisted":false,"isAvailable":true},"10":{"isUnlisted":true,"isAvailable":false},"11":{"isUnlisted":false,"isAvailable":true}}
flag-bronx-diving-bell=control
flag-buzzing-astrophage=true
flag-byte-ledger=false
flag-byte-ledger-visor=false
flag-cash-out=true
flag-cash-out-admin=true
flag-channel-request-priority=false
flag-chat-audio-notification=true
flag-chelsea-skimboard=true
flag-cloud-services-homepage=false
flag-clui-ctx-menu-rename-all=false
flag-cmd-bar-tool-descriptions=true
flag-code-repair=true
flag-code-search-latency-metrics=false
flag-code-suggestion-engine=false
flag-code-suggestion-markdown=false
flag-colored-tool-icons=true
flag-colored-tool-icons-ghostwriter-marketing=true
flag-compact-layout-gaps=false
flag-completely-different=true
flag-completely-different-clipboard=true
flag-completely-different-regulator=false
flag-completely-different-tree-cutting=true
flag-completely-different-tree-trigger=true
flag-container-retry-minimum-ms=0
flag-copy-stacks-mutation=true
flag-copy-unit-ui=true
flag-craft-ventures-hackathon-2024=true
flag-credit-credit=true
flag-credit-notifications=true
flag-crisp-bass=true
flag-crisp-remix=true
flag-crisp-start=true
flag-cron-email-notifications=true
flag-cron-push-notifications=false
flag-dashed-hosted-dev-url=true
flag-debugger-hover-variable=true
flag-default-advanced-porygon-model=gpt-4o
flag-default-layout-ai-pane=true
flag-default-porygon-model=gpt-3.5-turbo-1106
flag-delicious-discounts=false
flag-depl-intro-simp=false
flag-deployer-ubb-ingestion=false
flag-deployment-templates=true
flag-deployments=true
flag-deployments-custom-domain-v2=true
flag-deployments-keep-dev-deps=false
flag-desktop-integrated-devtools=true
flag-destroy-on-route-change=false
flag-dirigible-windmill=true
flag-doc-your-devs=false
flag-dot-dev-url=true
flag-draft-buffers=false
flag-draft-courses=true
flag-dragonite-chat-strategy=default
flag-edit-repl-info-forms=false
flag-editor-empty-state-2=true
flag-editor-git-conflict-markers=true
flag-editor-git-inline-diff=true
flag-editor-root-level-tooltips=true
flag-editor-rulers=true
flag-editor-selection-controls=true
flag-editor-visible-whitespace=true
flag-electric-stems=true
flag-electric-stems-free-beta=false
flag-email-domain-reputation-queue-rollout=false
flag-enable-onix-chat=true
flag-enable-pichu-tooltip=true
flag-enable-river-017=true
flag-enable-staleness-check=true
flag-enterprising-bat=true
flag-env-as-file=true
flag-envoy-autograph=false
flag-expt-youtube-tutorials-learn-page=true
flag-extension-suggestions=false
flag-extensions-enforce-scopes=false
flag-fallback-deployments-domain=replit.app
flag-filetree-git-status=true
flag-filetree-local-cache=true
flag-filetree-menu-ultra=true
flag-first-class-git=false
flag-full-context-agent=false
flag-funky-future=false
flag-gemini-access-modelfarm=false
flag-geo-signup-continent=true
flag-ghostwriter-alternate-debounce=false
flag-ghostwriter-chat-engine=gpt-3.5-turbo-0125
flag-ghostwriter-chat-engine-override=false
flag-ghostwriter-chat-intent-classifier-model=
flag-ghostwriter-chat-replit-docs-index=replit-docs
flag-ghostwriter-code-complete-for-all-users=false
flag-ghostwriter-code-complete-ghost-text-for-all=false
flag-ghostwriter-complete-engine=replit-repltuned-v1-5-3b
flag-ghostwriter-file-ctx=true
flag-ghostwriter-model-selection=true
flag-ghostwriter-neighboring-context=true
flag-ghostwriter-prompt-editor=true
flag-gigantic-events=true
flag-gigantic-events-display=true
flag-git-commit-view=true
flag-git-pane-branch-selector=true
flag-gitgud-gql-updates=true
flag-github-import-nix-modules=true
flag-github-repo-access-setting=false
flag-global-status-bar=false
flag-gw-charizard=true
flag-gw-charmander=true
flag-gw-magikarp-bounce-time=1500
flag-gw-new-ghost-text=true
flag-header-home=true
flag-http-dot-style-domain=false
flag-hyperextensions=false
flag-iap-apple-2=true
flag-iap-ghostwriter-trial-2=false
flag-iap-google-2=true
flag-iap-hacker-2=false
flag-iap-upselling-2=true
flag-idea-to-creation=off
flag-infinity-drive-beta=false
flag-ingest-egress=false
flag-inline-generate-2=true
flag-intertidal-property=false
flag-killswitch-bad-graphql=false
flag-killswitch-bounties-all-non-verified-apps-get-reviewed=false
flag-killswitch-bounties-no-public-applications=false
flag-killswitch-email-domain-reputation=true
flag-killswitch-email-normalization=true
flag-killswitch-ghostwriter=false
flag-killswitch-ghostwriter-chat=false
flag-killswitch-ghostwriter-reject-probability=0
flag-killswitch-github=false
flag-killswitch-mobile-datadog=false
flag-killswitch-mobile-notifications=true
flag-killswitch-pichu=false
flag-killswitch-product-gating=false
flag-killswitch-teams=false
flag-launching-new-courses=true
flag-ld-dev=off
flag-legacy-team-repo-features=false
flag-lion-city=false
flag-lsp-diagnostics-in-footer=false
flag-lsp-semantic-tokens=true
flag-lsp-status-in-ws=true
flag-lsp-userevents=true
flag-magic-insecticide=false
flag-maintain-pane-layout=false
flag-make-fetch-happen=false
flag-markprompt=false
flag-mb-ai4all=true
flag-mb-github-connect=true
flag-mb-github-integration-release=true
flag-mb-gw-chat-bridge=true
flag-mb-gw-upsell=true
flag-mb-my-repls-deployments-versioned=2.75.8
flag-mb-phablet=2.75.8
flag-mb-save-layout-state=true
flag-mb-spinny-screen=true
flag-mb-start-with-ai=99.99.99
flag-mb-usage-utopia-dev=true
flag-mb-web-start-with-ai=false
flag-mb-webview-everywhere=false
flag-mb-webview-everywhere-versioned=99.99.99
flag-midnight-hacker=true
flag-migrate-gh-creds=false
flag-mobile-operation-cycles-go-vroom=false
flag-mobile-show-seach-release=true
flag-mobile-show-switch-server-cta-release=true
flag-modal-panes=false
flag-monthly-annual-pricing=false
flag-more-friends=true
flag-morning-flash-bite=false
flag-multi-lsp-connections=false
flag-neon-databases=true
flag-neon-databases-discount=false
flag-new-bounty-search-sort=false
flag-new-create-repl-dialog=true
flag-new-dependencies-pane=true
flag-new-deployments-usage-ingestion=true
flag-new-url-bar=true
flag-nix-modules-tool=false
flag-no-more-parties-in-la=false
flag-no-soup-for-you=false
flag-no-workspace-notifications=false
flag-node-package-layer=false
flag-nokia-tokens=false
flag-notable-exotic-flash-memory=true
flag-notifications=true
flag-nudges-pane-linking=true
flag-null-diagnostics=true
flag-object-storage-flexible-buckets=false
flag-object-storage-pane=true
flag-object-storage-teams=true
flag-object-storage-usage-ingestion=true
flag-ocean-easy=true
flag-onboarding-improvements=true
flag-onboarding-name-form=true
flag-onboarding-survey=true
flag-onboarding-templates=python, html (old), node, next, python discord, personal portfolio
flag-open-telemetry-tracing=false
flag-open-with=true
flag-open-with-default=true
flag-optical-illusion=true
flag-org-joining=false
flag-output-userevents=false
flag-packages2=true
flag-palegreen-pleasing-lava=false
flag-pid2=false
flag-pid2-github-import=false
flag-pid2-lsp=false
flag-pid2-resource-monitoring=false
flag-pid2-shell=false
flag-pid2-shell-in-ai-chat=false
flag-pid2-shell-muxed=false
flag-pidgey-engine=gpt-3.5-turbo-0125
flag-piplup-agent=false
flag-popout-pane=true
flag-porygon-button=false
flag-porygon-type=plan-agent
flag-porygon-workflows=false
flag-postgres-db-god-mode=false
flag-postgresql-pane-inline-ai=false
flag-pretty-scrollbar=true
flag-pride-paper=true
flag-pro-dev-activation-create=false
flag-pro-dev-identify-server-side=true
flag-pro-reverse-trial=false
flag-pro-reverse-trial-duration=14
flag-pro-reverse-trial-entry-modal-dismiss=false
flag-pro-reverse-trial-hcaptcha=false
flag-pro-reverse-trial-sms=false
flag-pro-reverse-trial-yearly-billing=true
flag-problems-pane=false
flag-public-extension-store=true
flag-pyrompt-prompting=true
flag-python-package-layer=false
flag-redacted-rose=false
flag-regional-goval-tarpit=wesley
flag-repl-auth-sidebar=true
flag-repl-creation-june2024=C
flag-repl-creation-languages-category-id=2
flag-repl-creation-starter-app-category-id=1
flag-repl-privacy-toggle=false
flag-richard-whittington=false
flag-rooftop-polarbear=false
flag-scheduled-deployment-notifications=[]
flag-secrets-copying=true
flag-server-seance=false
flag-settings-command=true
flag-sicily-ocean=true
flag-simplified-mangos=true
flag-slippery-banana=true
flag-small-yellow-sun=true
flag-sms-verification=true
flag-soft-sun=true
flag-sparks-joy=true
flag-spider-philosophy=true
flag-square-of-truth=false
flag-staleness-timestamp=1715065200
flag-start-with-ai=true
flag-start-with-ai-fallback-message=true
flag-start-with-ai-to-porygon=false
flag-status-bar-branch=true
flag-storage-dynamic-resize-beta=true
flag-storage-utilization=true
flag-supply-eye=true
flag-system-dependencies-pane=true
flag-system-dependencies-search=true
flag-system-dependencies-search-23_05=false
flag-system-dependencies-search-unstable=false
flag-teams-edu-deprecation=true
flag-teams-edu-export=true
flag-teams-edu-export-student=true
flag-teams-for-the-team-being=false
flag-teams-overview-killswitch=false
flag-teeming-time=true
flag-teeming-time-presence=true
flag-template-layout-author=false
flag-template-layout-user=true
flag-territorial-borg=true
flag-test-ld-webhook=false
flag-threads-dropdown-menu=true
flag-toolchain-multiple-runners=false
flag-tools-schmools=true
flag-total-waves=false
flag-tropical-pink=false
flag-typed-update-event-operations=false
flag-ubb-limits=false
flag-unit-aware-share-links=true
flag-unit-aware-share-links-ui=true
flag-updated-problems=false
flag-upsell-wonderland=ai-upsell
flag-usage-consolidated-pill=true
flag-usage-dusty-basin=false
flag-use-annotation-subscriptions=true
flag-use-eval-server-for-firewalled-replit=true
flag-use-improved-free-tier=false
flag-user-layouts=false
flag-viktor=false
flag-village-bioreactor=true
flag-vnc-dash-url=true
flag-vnc-error-status=true
flag-warn-gh-creds=true
flag-webview-fallback-url=true
flag-webview-show-protocol=true
flag-work-flows=false
flag-ws-density-filetree=false
flag-yo-ho-ho=false
flag-zip-tie=true
lore-lazy-transfer=false
migrate-apl-to-nix=true
migrate-babel-to-nix=true
migrate-bash-to-nix=true
migrate-basic-to-nix=true
migrate-bloop-to-nix=true
migrate-brainfuck-to-nix=true
migrate-c-to-nix=true
migrate-clojure-to-nix=true
migrate-coffeescript-to-nix=true
migrate-cpp-to-nix=true
migrate-cpp11-to-nix=true
migrate-crystal-to-nix=true
migrate-csharp-to-nix=true
migrate-dart-to-nix=true
migrate-deno-to-nix=true
migrate-django-to-nix=true
migrate-elisp-to-nix=true
migrate-elixir-to-nix=true
migrate-emoticon-to-nix=true
migrate-enzyme-to-nix=true
migrate-erlang-to-nix=true
migrate-express-to-nix=true
migrate-flow-to-nix=true
migrate-forth-to-nix=true
migrate-fsharp-to-nix=true
migrate-gatsbyjs-to-nix=true
migrate-gatsbyjsv2-to-nix=true
migrate-go-to-nix=true
migrate-haskell-to-nix=true
migrate-java-to-nix=true
migrate-java10-to-nix=true
migrate-java_maven-to-nix=true
migrate-java_swing-to-nix=true
migrate-javascript-to-nix=true
migrate-jest-to-nix=true
migrate-julia-to-nix=true
migrate-kaboom-to-nix=true
migrate-kotlin-to-nix=true
migrate-lolcode-to-nix=true
migrate-love2d-to-nix=true
migrate-lua-to-nix=true
migrate-nextjs-to-nix=true
migrate-nim-to-nix=true
migrate-nodejs-to-nix=true
migrate-nodejs_prybar-to-nix=true
migrate-nodejs_static-to-nix=true
migrate-ocaml-to-nix=true
migrate-perl6-to-nix=true
migrate-php-to-nix=true
migrate-php7-to-nix=true
migrate-php_cli-to-nix=true
migrate-php_server-to-nix=true
migrate-polygott-to-nix=true
migrate-pygame-to-nix=true
migrate-python-to-nix=true
migrate-python3-to-nix=true
migrate-python3_classroom-to-nix=true
migrate-python_turtle-to-nix=true
migrate-pyxel-to-nix=true
migrate-qbasic-to-nix=true
migrate-quil-to-nix=true
migrate-rails-to-nix=true
migrate-raku-to-nix=true
migrate-react_native-to-nix=true
migrate-reactjs-to-nix=true
migrate-reactre-to-nix=true
migrate-reactts-to-nix=true
migrate-reason-to-nix=true
migrate-reason_nodejs-to-nix=true
migrate-riddlejs-to-nix=true
migrate-rlang-to-nix=true
migrate-roy-to-nix=true
migrate-ruby-to-nix=true
migrate-rust-to-nix=true
migrate-scala-to-nix=true
migrate-scheme-to-nix=true
migrate-sinatra-to-nix=true
migrate-sqlite-to-nix=true
migrate-swift-to-nix=true
migrate-tcl-to-nix=true
migrate-testj-to-nix=true
migrate-tkinter-to-nix=true
migrate-typescript-to-nix=true
migrate-unlambda-to-nix=true
migrate-wasm-to-nix=true
migrate-web_project-to-nix=true
migrate2nix-enabled=false
migrate2nix-worker=true
nixified-migrate2nix=true
select-geo-continent=true
use-64gb-for-replitdev=true
use-eval-server=true

52
public/raw/mc-parse.js Normal file
View file

@ -0,0 +1,52 @@
function forExtraColor(part) {
let ret = "";
const colorMap = {"black": "0", "dark_blue": "1", "dark_green": "2", "dark_aqua": "3", "dark_red": "4", "dark_purple": "5", "gold": "6", "gray": "7", "dark_gray": "8", "blue": "9", "green": "a", "aqua": "b", "red": "c", "light_purple": "e", "white": "f"}
for (let index in part) {
if (!!part[index]["extra"]) ret += forExtraColor(part[index]["extra"]);
else {
let data = part[index];
let text = data["text"] != undefined? data["text"] : data[""];
if (data["bold"] == 1) ret += "§l";
if (!!data["color"]) ret += "§" + colorMap[data["color"]];
if (data["obfuscated"] == 1) ret += "§k";
if (data["strikethrough"] == 1) ret += "§m";
if (data["underline"] == 1) ret += "§n";
if (data["italic"] == 1) ret += "§o";
ret += text;
if (data["bold"] == 1 || !!data["color"] || data["obfuscated"] == 1 || data["strikethrough"] == 1 || data["underline"] == 1 || data["italic"] == 1) ret += "§r";
}
}
return ret;
}
function forExtra(part) {
let ret = "";
for (let index in part) {
if (!!part[index]["extra"]) ret += forExtra(part[index]["extra"]);
else {
let data = part[index];
let text = data["text"] != undefined? data["text"] : data[""];
ret += text;
}
}
return ret;
}
function parseMessage(message, color = true) {
let ret = "";
if (color) {
for (let label in message) {
if (label == "extra") ret += forExtraColor(message[label]);
}
} else {
for (let label in message) {
if (label == "extra") ret += forExtra(message[label]);
}
}
if (typeof message == "string") ret = message;
if (!ret) console.warn("Message parsing resulted in no output! Raw message follows.", message)
if (typeof message == "string") console.warn("Passing raw strings to this method is not recommended, and may result in ambigous behavior!")
return ret;
}
module.exports = { parseMessage }

BIN
public/raw/myhouse-2.zip Normal file

Binary file not shown.

BIN
public/raw/myhouse-3.zip Normal file

Binary file not shown.

BIN
public/raw/myhouse.zip Normal file

Binary file not shown.

1
public/styles/atom-one-dark.min.css vendored Normal file
View file

@ -0,0 +1 @@
.hljs{display:block;overflow-x:auto;padding:0.5em;color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta-string{color:#98c379}.hljs-built_in,.hljs-class .hljs-title{color:#e6c07b}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}.hljs-link{text-decoration:underline}

149
public/styles/countapi.css Normal file
View file

@ -0,0 +1,149 @@
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700");
* {
margin: 0;
padding: 0;
outline: none;
box-sizing: border-box;
color-scheme: dark;
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
body {
color: #a0a0a0;
}
a {
text-decoration: none;
color: #00aaff;
}
a:hover {
text-decoration: underline;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
.header {
padding: 3rem 4rem;
color: white;
text-align: center;
background-color: #7e1fa0;
background-image: linear-gradient(22deg, #7e1fa0, #155899);
box-shadow: inset 0 -2px 2px -2px rgba(0, 0, 0, 0.8);
}
.header .title {
text-shadow: 1px 1px 5px black;
}
.header .legend {
font-size: 1.15rem;
font-weight: normal;
margin-top: 0.4rem;
opacity: 0.7;
}
.container {
max-width: 960px;
margin: auto;
padding: 2rem 4rem;
font-size: 1.1rem;
word-wrap: break-word;
}
.container h1,
.container h2,
.container h3,
.container h4,
.container h5,
.container h6 {
margin-top: 2rem;
margin-bottom: 1rem;
font-weight: normal;
color: #0c57c3;
}
.container h1 {
border-bottom: 1px solid rgba(201, 201, 201, 0.33);
}
.container p {
margin-bottom: 1em;
}
.container ul {
margin-top: 0;
padding: 0.3rem 2.2rem;
}
.container code {
padding: 2px 4px;
background-color: #010101;
border-radius: 4px;
}
.container pre {
white-space: pre-wrap;
word-wrap: break-word;
padding: 10px 10px 10px 20px;
border-radius: 0 5px 5px 0;
font-size: 15px;
border-left: 8px solid #000000;
color: #a0a0a0;
margin-bottom: 1em;
}
.container pre.info {
border-color: #5087af;
background-color: #2f2f2f;
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.container pre.success {
border-color: #50af51;
background-color: #054f05;
}
.container pre.fail {
border-color: #af5050;
background-color: #4f0505;
}
.container pre, .container pre a, .container .endpoint {
font-family: Monaco, "Lucida Console", monospace;
}
.container table {
display: block;
width: 100%;
overflow: auto;
margin-bottom: 1em;
}
.container table th, .container table td {
padding: 0.5rem 1rem;
border: 1px solid #e9ebec;
min-width: 140px;
}
.container .highlight {
white-space: pre;
font-family: monospace;
font-size: 16px;
border-radius: 2px;
margin-bottom: 1em;
}
.container .highlight code {
background-color: rgba(239, 239, 239, 0.1);
}
.container .highlight * {
font-family: monospace;
}
footer {
padding-top: 1rem;
margin-top: 2rem;
border-top: solid 1px #eff0f1;
}
@media screen and (max-width: 768px) {
.container {
padding: 2rem 2rem;
}
}