From 793a810cebf8f9c6886dcb1d9ba19779e52eeda7 Mon Sep 17 00:00:00 2001 From: Joaquin Date: Tue, 15 Aug 2023 00:56:18 +0300 Subject: [PATCH] [Init] Add files --- app.js | 245 +++++++++ package-lock.json | 1200 +++++++++++++++++++++++++++++++++++++++++ package.json | 20 + pmailcli.clean.sh | 35 ++ pmailcli.fetchmail.sh | 47 ++ pmailcli.mkindex.sh | 62 +++ pmailcli.mkuser.sh | 12 + pmailcli.trust.sh | 10 + pmailcli.upload.sh | 17 + postmail.pdf | Bin 0 -> 119398 bytes 10 files changed, 1648 insertions(+) create mode 100644 app.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100755 pmailcli.clean.sh create mode 100755 pmailcli.fetchmail.sh create mode 100755 pmailcli.mkindex.sh create mode 100755 pmailcli.mkuser.sh create mode 100755 pmailcli.trust.sh create mode 100755 pmailcli.upload.sh create mode 100644 postmail.pdf diff --git a/app.js b/app.js new file mode 100644 index 0000000..dc6bee5 --- /dev/null +++ b/app.js @@ -0,0 +1,245 @@ +const http = require('http') +const https = require('https') +const express = require('express') +const fs = require('fs') +const url = require('url') +const crypto = require('crypto') + +const app = express() + +process.on('uncaughtException', (error, origin) => { + console.log('----- Uncaught exception -----') + console.log(error) + console.log('----- Exception origin -----') + console.log(origin) +}) + +process.on('unhandledRejection', (reason, promise) => { + console.log('----- Unhandled Rejection at -----') + console.log(promise) + console.log('----- Reason -----') + console.log(reason) +}) + + +if(!fs.existsSync('repo')) fs.mkdirSync('repo') +if(!fs.existsSync('repo/admin')) fs.mkdirSync('repo/admin') +if(!fs.existsSync('repo/admin/deposit')) fs.mkdirSync('repo/admin/deposit') +if(!fs.existsSync('repo/admin/pub')) fs.mkdirSync('repo/admin/pub') +if(!fs.existsSync('repo/admin/notices')) fs.mkdirSync('repo/admin/notices') +if(!fs.existsSync('repo/admin/notices/trusted')) fs.mkdirSync('repo/admin/notices/trusted') +if(!fs.existsSync('repo/admin/notices/purgatory')) fs.mkdirSync('repo/admin/notices/purgatory') +if(!fs.existsSync('repo/admin/notices/banlist')) fs.writeFileSync('repo/admin/notices/banlist', '') +if(!fs.existsSync('repo/admin/notices/ipbanlist')) fs.writeFileSync('repo/admin/notices/ipbanlist', '') +if(!fs.existsSync('repo/admin/notices/trustlist')) fs.writeFileSync('repo/admin/notices/trustlist', '') + +function inList(str, strlistx){ + var arr = strlistx.toString().split('\n') + + for(var i = 0; i < arr.length; i++){ + if(str === arr[i]){ + return 1 + } + } + + return 0 + +} + +app.get('/postmailping', (request, response) => { + response.writeHead(200) + response.end("postmailpong") +}) + +app.get('/getinfo', (request, response) => { + + //common pub files to use: "bio" - user's bio (text) + // "name" - user's complete (user)name, supports spaces and symbols + // "pgp" - user's public pgp key (armored) + // "pfp" - user's profile picture (in a PNG format) + // "at" - alternate addresses in JSON (email, phone, social media, etc) + // "status" - user's current status + // "site" - website + // "reusme" - resume + + var reqfile = "repo/" + request.query.user + "/pub/" + request.query.file + + if(fs.existsSync(reqfile)){ + response.download(reqfile) + }else{ + response.writeHead(404) + response.end() + } +}) + +app.get('/sendnotice', (request, response) => { + + var noticeIsValid = false + + if(request.query.user === null || request.query.sender === null || request.query.token === null || request.query.id === null){ + response.writeHead(404) + response.end() + } + if(request.query.user.length > 256 || request.query.sender.length > 256 || request.query.token.length > 256 || request.query.id.length > 256){ + response.writeHead(404) + response.end() + } + + var notice = { + 'user': request.query.user, + 'sender': request.query.sender, + 'token': request.query.token, + 'id': request.query.id + } + + var userFolder = "repo/" + notice.user + "/" + var purgatoryDir = userFolder + "/notices/purgatory/" + notice.sender + var trustedDir = userFolder + "/notices/trusted/" + var senderUser = notice.sender.split(':')[0] + var senderHost = notice.sender.split(':')[1] + var confReqArgs = "/checkrepo?user=" + senderUser + "&id=" + notice.id + "&token=" + notice.token + + var confirmationReqOpts = { //request for sender server to confirm authenticity + hostname: senderHost, + port: 27050, + path: confReqArgs, + method: 'GET', + rejectUnauthorized: false, + requestCert: true, + agent: false + } + + var trustlist = fs.readFileSync(userFolder + "/notices/trustlist") + var banlist = fs.readFileSync(userFolder + "/notices/banlist") + var ipbanlist = fs.readFileSync(userFolder + "/notices/ipbanlist") + + var confirmationReq = http.get(confirmationReqOpts, (confirmationRes) => { + + //Contact presumed sender's server to certify authenticity of message + + confirmationRes.on('data', function(chunk){ + var d = chunk + "\0" + if(d === "yes!\0"){ + console.log("VALID NOTICE" + JSON.stringify(notice)) + + //if sender confirmed authenticity of mail + noticeIsValid = true + + }else{ + console.log("INVALID NOTICE" + JSON.stringify(notice)) + noticeIsValid = false + response.writeHead(404) + response.end() + return + } + + if(noticeIsValid){ + if(inList(notice.sender, banlist) || inList(senderHost, ipbanlist)){ + + //IF BANNED + + response.writeHead(200) + response.end("ban") + console.log("USER BANNED, NOTICE NOT RECEIVED") + return //return false confirm, but do not store noticefile + } + + if(!inList(notice.sender, trustlist)){ + + //if not in the trust list + + if(!fs.existsSync(purgatoryDir)) + fs.mkdirSync(purgatoryDir) + + var noticeAmm = fs.readdirSync(purgatoryDir).length + + if(noticeAmm > 5){ //if more than 5 mails sent by user end up in purgatory + response.writeHead(200) + response.end('purglim') + console.log("PURGATORY LIMIT REACHED FOR " + notice.sender) + return //return false, but do not store noticefile + } + + var fileName = purgatoryDir + "/" + Math.floor(new Date() / 1000) + "~" + notice.sender + + fs.writeFileSync(fileName, JSON.stringify(notice)) + + response.writeHead(200) + response.end("ok") + return + } + + if(inList(notice.sender, trustlist)){ + + //IF TRUSTED + + if(!fs.existsSync(trustedDir)) + fs.mkdirSync(trustedDir) + + var filename = trustedDir + "/" + Math.floor(new Date() / 1000) + "~" + notice.sender + + fs.writeFileSync(filename, JSON.stringify(notice)) + + response.writeHead(200) + response.end("ok") + return + + } + } + }) + }) + + console.log("---") +}) + +app.get('/checkrepo', (request, response) => { + var fileName = "repo/" + request.query.user + "/deposit/" + request.query.id + var token = request.query.token + + if(fs.existsSync(fileName)){ + var authlist = fs.readFileSync(fileName + "/auth") + if(inList(token, authlist)){ + response.writeHead(200) + response.end('yes!') + return + } + } + + response.writeHead(200) + response.end('no') + return +}) + +app.get('/get', (request, response) => { + var fileName = "repo/" + request.query.user + "/deposit/" + request.query.id + var token = request.query.token + + if(fs.existsSync(fileName)){ + var authlist = fs.readFileSync(fileName + "/auth") + var actFileNameStr = fs.readFileSync(fileName + "/meta") + var actFileName = JSON.parse(actFileNameStr).filename + var persistStatus = JSON.parse(actFileNameStr).persist + if(inList(token, authlist)){ + console.log("serving file " + actFileName + "\n") + response.download(fileName + "/" + actFileName) + if(persistStatus !== 'true'){ + var newAuthlist = authlist.toString().replace(token + '\n', '') + fs.writeFileSync(fileName + "/auth", newAuthlist) + + if(newAuthlist.replace('\n', '') === "") + console.log("FILE " + request.query.id + " HAS BEEN DELIVERED TO EVERYONE") + + } + + return + } + } + + response.writeHead(200) + response.end('no') + return +}) + + +const server = http.createServer(app) +server.listen(27050) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..886fded --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1200 @@ +{ + "name": "postmail", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "postmail", + "version": "1.0.0", + "license": "0BSD", + "dependencies": { + "crypto": "^1.0.1", + "express": "^4.18.2", + "express-session": "^1.17.3", + "fs": "^0.0.1-security", + "http": "^0.0.1-security", + "https": "^1.0.0", + "url": "^0.11.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "dependencies": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", + "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/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==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + } + }, + "dependencies": { + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "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==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "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==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "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==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "requires": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + } + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", + "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "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==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "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==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "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==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "requires": { + "random-bytes": "~1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3444130 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "postmail", + "version": "1.0.0", + "description": "Notice-Based Simple Email Protocol", + "main": "app.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Puly4", + "license": "0BSD", + "dependencies": { + "crypto": "^1.0.1", + "express": "^4.18.2", + "express-session": "^1.17.3", + "fs": "^0.0.1-security", + "http": "^0.0.1-security", + "https": "^1.0.0", + "url": "^0.11.0" + } +} diff --git a/pmailcli.clean.sh b/pmailcli.clean.sh new file mode 100755 index 0000000..21460e7 --- /dev/null +++ b/pmailcli.clean.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +USERNAMEx="" + +read -p "User LOGIN: " USERNAMEx + +DEPOSIT="repo/$USERNAMEx/deposit/" + +for file in $(ls $DEPOSIT) +do + echo -ne "\n\n\n\n" + echo "---> Checking $file" + cat $DEPOSIT$file/meta | jq '.filename' + cat $DEPOSIT$file/meta | jq '.time' -r | date -d - + cat $DEPOSIT$file/meta | jq '.description' + echo -ne '\n' + + if [[ $(cat $DEPOSIT$file/auth) == '' ]]; + then + echo " :: FILE HAS BEEN SENT TO EVERYONE!" + ans="" + read -p " Delete File? [rm -rf $DEPOSIT$file] (y/n)" ans + if [[ $ans == 'y' ]]; + then + rm -rf $DEPOSIT$file + fi + else + echo " :: File still pending - Needs to be received by ::" + for line in $(cat $DEPOSIT$file/auth) + do + PERSON=$(echo $line | cut -d ':' -f 1-2) + echo " -> $PERSON" + done + fi +done diff --git a/pmailcli.fetchmail.sh b/pmailcli.fetchmail.sh new file mode 100755 index 0000000..8acc3c1 --- /dev/null +++ b/pmailcli.fetchmail.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +USERNAMEx="" + +read -p "Username LOGIN: " USERNAMEx + +NOTICEFOLDER="repo/${USERNAMEx}/notices/trusted/" + +MAILFOLDER="repo/${USERNAMEx}/mail/new/" + +for file in $(ls ${NOTICEFOLDER}) +do + mkdir ${MAILFOLDER}$file + mv ${NOTICEFOLDER}$file ${MAILFOLDER}$file/$file + NOTICEFILE="${MAILFOLDER}$file/$file" + MSGID=$(cat $NOTICEFILE | jq '.id' -r) + SENDERstr=$(cat $NOTICEFILE | jq '.sender' -r) + TOKEN=$(cat $NOTICEFILE | jq '.token' -r) + USERu=$(echo $SENDERstr | cut -d ':' -f 1) + SRVu=$(echo $SENDERstr | cut -d ':' -f 2) + + echo -ne "\n\n---> NEW MAIL BY $SENDER" + + #MAKE FETCH REQ + + curl -q http://$SRVu:27050/get\?id\=${MSGID}\&user\=${USERu}\&token\=${TOKEN} > ${MAILFOLDER}$file/index.pmail + echo "-> curl http://$SRVu:27050/get\?id\=${MSGID}\&user\=${USERu}\&token\=${TOKEN}" + + PMAILFILE="${MAILFOLDER}$file/index.pmail" + + MAILTITLE=$(cat $PMAILFILE | jq '.title' -r) + + echo -ne $MAILTITLE > ${MAILFOLDER}$file/MESSAGE + echo -ne "\n----------------------\n" >> ${MAILFOLDER}$file/MESSAGE + echo -ne "(${SENDERstr})\n\n" >> ${MAILFOLDER}$file/MESSAGE + + TEXTID=$(cat $PMAILFILE | jq '.message' -r) + + curl -q http://$SRVu:27050/get\?id\=${TEXTID}\&user\=${USERu}\&token\=${TOKEN} >> ${MAILFOLDER}$file/MESSAGE + echo "-> curl http://$SRVu:27050/get\?id\=${TEXTID}\&user\=${USERu}\&token\=${TOKEN}" + echo "MESSAGE DOWNLOADED SUCCESFULLY" + ATTS=$(cat ${MAILFOLDER}$file/index.pmail | jq '.attachements') + echo $ATTS > ${MAILFOLDER}$file/ATTACHEMENTS + + echo -ne "---------------RECEIVED MESSAGE SUCESFULLY----------------\n\n\n\n\n\n\n\n\n\n" + less ${MAILFOLDER}$file/MESSAGE +done diff --git a/pmailcli.mkindex.sh b/pmailcli.mkindex.sh new file mode 100755 index 0000000..dad0806 --- /dev/null +++ b/pmailcli.mkindex.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +INDEXFILE="" +ATTACHMENTS="" + +TITLE="" +USERNAMEx="" +SRVx="" +DESTu="" +read -p "Username LOGIN: " USERNAMEx +read -p "Server LOGIN: " SRVx +read -p "Send to (user:server.tld) -> " DESTu + +USERu=$(echo $DESTu | cut -f 1 -d ':') +SRVu=$(echo $DESTu | cut -f 2 -d ':') +echo "Generating Token..." +TOKEN=$(cat /dev/urandom | head -c 100 | sha256sum | head -c 20) + +TOKEN="${USERu}:${SRVu}:${TOKEN}" + +read -p "Mail Title: " TITLE + +echo "Write Mail Body Here" > buf.txt +nano buf.txt +mv buf.txt message + +MESSAGE="$(bash pmailcli.upload.sh $USERNAMEx ./message $TOKEN)" + +ATTACHEMENTS="{" + + +for file in $@ +do + echo $file + item="$(bash pmailcli.upload.sh $USERNAMEx $file $TOKEN)" + ATTACHEMENTS="$ATTACHEMENTS$item," +done + +ATTACHEMENTS=${ATTACHEMENTS::-1} +ATTACHEMENTS="$ATTACHEMENTS}" + +if [[ $ATTACHEMENTS == "}" ]]; +then + ATTACHEMENTS='""' +fi + +INDEXFILE="{\"title\":\"$TITLE\",$MESSAGE,\"attachements\":$ATTACHEMENTS}" + +echo $INDEXFILE > index.pmail + + +bash pmailcli.upload.sh $USERNAMEx index.pmail $TOKEN +MSGID=$(sha256sum index.pmail | cut -d ' ' -f 1) +rm index.pmail +rm message + + +echo -ne "\n\n\n+++++ RECEIVER'S CONCLUSION +++++\n\n --> " +curl http://$SRVu:27050/sendnotice\?id\=${MSGID}\&token\=${TOKEN}\&user\=${USERu}\&sender\=${USERNAMEx}:${SRVx} +echo -ne "\n\n+++++ END +++++\n\n" +echo "curl http://$SRVu:27050/sendnotice\?id\=${MSGID}\&token\=${TOKEN}\&user\=${USERu}\&sender\=${USERNAMEx}:${SRVx}" + diff --git a/pmailcli.mkuser.sh b/pmailcli.mkuser.sh new file mode 100755 index 0000000..020e7e0 --- /dev/null +++ b/pmailcli.mkuser.sh @@ -0,0 +1,12 @@ +#!/bin/bash +USER="" +read -p "Username: " USER +install -d repo/$USER/deposit +install -d repo/$USER/pub +install -d repo/$USER/notices/trusted +install -d repo/$USER/notices/purgatory +install -d repo/$USER/mail/new +install -d repo/$USER/mail/old +touch repo/$USER/notices/banlist +touch repo/$USER/notices/ipbanlist +touch repo/$USER/notices/trustlist diff --git a/pmailcli.trust.sh b/pmailcli.trust.sh new file mode 100755 index 0000000..8de13d2 --- /dev/null +++ b/pmailcli.trust.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +USER="" +ME="" + +read -p "User LOGIN: " ME +read -p "User to TrustList (user:srv.tld) -> " USER + +echo $USER >> repo/$ME/notices/trustlist +mv repo/$ME/notices/purgatory/$USER/* repo/$ME/notices/trusted/. diff --git a/pmailcli.upload.sh b/pmailcli.upload.sh new file mode 100755 index 0000000..a87953e --- /dev/null +++ b/pmailcli.upload.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +CHECKSUM=$(sha256sum $2 | cut -f 1 -d " ") +FILENAME=$(basename $2) +DESC="" +TIME=$(date +%s) + +read -p "Short file description ($FILENAME): " DESC + +mkdir repo/$1/deposit/$CHECKSUM +cp $2 repo/$1/deposit/$CHECKSUM/$FILENAME + +echo "{\"filename\":\"$FILENAME\",\"persist\":\"false\",\"description\":\"$DESC\",\"time\":\"$TIME\"}" > repo/$1/deposit/$CHECKSUM/meta + +echo $3 >> repo/$1/deposit/$CHECKSUM/auth + +echo "\"$FILENAME\":\"$CHECKSUM\"" diff --git a/postmail.pdf b/postmail.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3962d44761ea929739b9d610a42757cc169616b2 GIT binary patch literal 119398 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 q z@0~}*sD_i%O0C%?AclqRb44M3!$QeLMw{VAUtSG6i8G{CVQITuUpVrpwSm%P%@oH^ zFKPcE?VT#;pg;&pQ{k$UXFgs*GN{>ei}*5(n5Rg;iiH&-n~t0XKZ<_>pC-DOhtYn(XoSYA0tcRd(0~7Uv7 aR2E%{u1N*v;Y3n(BgmGZ~v=KBrv~)ih+Rz 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 m{A|$R24Uy`D literal 0 HcmV?d00001