From 06b59b585ac9af7be106b9c1271d251ba20f6630 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 7 Sep 2022 13:11:12 -0700 Subject: clean up --- db/models/users.js | 18 ++ index.js | 79 +----- lib/mail.js | 144 ++-------- lib/upload.js | 68 +++-- package.json | 8 +- pnpm-lock.yaml | 793 +++++++---------------------------------------------- routes/info.js | 1 + startup.js | 25 -- 8 files changed, 203 insertions(+), 933 deletions(-) delete mode 100644 startup.js diff --git a/db/models/users.js b/db/models/users.js index c17805e4..cfd31cb7 100644 --- a/db/models/users.js +++ b/db/models/users.js @@ -20,6 +20,24 @@ const attributes = { comment: null, field: "address" }, + profile: { + type: DataTypes.BOOLEAN, + allowNull: true, + defaultValue: false, + primaryKey: false, + autoIncrement: false, + comment: null, + field: "profile" + }, + banner: { + type: DataTypes.BOOLEAN, + allowNull: true, + defaultValue: false, + primaryKey: false, + autoIncrement: false, + comment: null, + field: "banner" + }, admin: { type: DataTypes.BOOLEAN, allowNull: true, diff --git a/index.js b/index.js index d942cebe..06734322 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ import app from "./app"; import persist from "./lib/persist"; import config from "./config/index"; import store from "./lib/store"; -import { l } from "./lib/logging"; +import { l, err } from "./lib/logging"; import "./db"; import "./lib/sockets"; @@ -10,82 +10,25 @@ import "./lib/webhooks"; import "./lib/passport"; import "./lib/upload"; import "./lib/sync"; +import "./lib/rates"; +import "./lib/notifications"; +import "./lib/mail"; + import "./routes/assets"; import "./routes/info"; import "./routes/users"; +import "./routes/invoices"; +import "./routes/payments"; if (config.bitcoin) store.networks.push("bitcoin"); if (config.liquid) store.networks.push("liquid"); if (config.lna) store.networks.push("lightning"); - -import "./lib/rates"; -import "./lib/notifications"; - -// if (config.imap) import("./lib/mail"); // if (config.lnurl) import("./routes/lnurl"); -// if (config.mailgun) import("./routes/funding"); -// -import "./routes/invoices"; -import "./routes/payments"; -// import "./routes/swaps"; - -// Scope based Route Handling -// import referralsRouter from './routes/referrals'; +let host = process.env.HOST || "0.0.0.0"; +let port = process.env.PORT || 3119; -// app.use("/referrals", referralsRouter); - -// import adminRouter from './routes/admin'; -// app.use("/admin", adminAuth, adminRouter); - -import "./startup"; - -app.post("/email", async (req, res) => { - try { - let file = persist("data/emails.json"); - file.emails = [...file.emails, req.body]; - - try { - // Require: - var postmark = require("postmark"); - - // Send an email: - var client = new postmark.ServerClient(config.postmark); - - await client.sendEmail({ - From: "support@coinos.io", - To: "support@coinos.io", - Subject: req.body.subject || "Email Signup", - HtmlBody: JSON.stringify(req.body), - TextBody: JSON.stringify(req.body), - MessageStream: "outbound" - }); - - res.send({ ok: true }); - } catch (e) { - console.log("problem sending email", e); - res.code(500).send(e.message); - } - } catch (e) { - console.log(e); - res.code(500).send(e.message); - } -}); - -app.listen({ port: process.env.PORT || 3119, host: "0.0.0.0" }, function( - err, - address -) { - if (err) { - console.log(err); - app.log.error(err); - process.exit(1); - } +app.listen({ host, port }, (e, address) => { + e && err(e) && process.exit(1); l(`CoinOS Server listening on ${address}`); }); - -process.on("SIGINT", process.exit); - -process.on("uncaughtException", function(exception) { - console.log(exception); -}); diff --git a/lib/mail.js b/lib/mail.js index 537614d2..a146d128 100644 --- a/lib/mail.js +++ b/lib/mail.js @@ -1,132 +1,34 @@ -import { emit } from "$lib/sockets"; import app from "$app"; import config from "$config"; -import fs from "fs"; -import Imap from "imap"; -import { inspect } from "util"; import persist from "./persist"; const emails = persist("data/emails.json"); -import { rates } from "./store"; -let imap = new Imap(config.imap); -function openInbox(cb) { - imap.openBox("INBOX", true, cb); -} +app.post("/email", async (req, res) => { + try { + let file = persist("data/emails.json"); + file.emails = [...file.emails, req.body]; -app.post("/contact-sil", (req, res) => { - const mailgun = require("mailgun-js")(config.mailgun); - let data = { - subject: "Contact form", - text: JSON.stringify(req.body), - from: "server@coinos.io", - to: "testsil@coinos.io" - }; + try { + var postmark = await import("postmark"); - mailgun.messages().send(data); - res.send(req.body); -}); - -app.post("/contact", (req, res) => { - const mailgun = require("mailgun-js")(config.mailgun); - let data = { - subject: "Contact form", - text: JSON.stringify(req.body), - from: "server@coinos.io", - to: "contact@coinos.io" - }; - - mailgun.messages().send(data); - res.send(req.body); -}); + var client = new postmark.ServerClient(config.postmark); -imap.once("ready", function() { - openInbox(function(err, box) { - if (err) throw err; - setInterval(() => { - let f = imap.seq.fetch(`${box.messages.total - 5}:*`, { - bodies: ["TEXT"], - struct: true + await client.sendEmail({ + From: "support@coinos.io", + To: "support@coinos.io", + Subject: req.body.subject || "Email Signup", + HtmlBody: JSON.stringify(req.body), + TextBody: JSON.stringify(req.body), + MessageStream: "outbound" }); - f.on("message", function(msg, seqno) { - const prefix = "(#" + seqno + ") "; - msg.on("body", function(stream, info) { - let buffer = ""; - stream.on("data", function(chunk) { - //stream.pipe(fs.createWriteStream('msg-' + seqno + '-body.txt', {flags:'a+'}); - buffer += chunk.toString("utf8"); - }); - stream.once("end", async function() { - let accounts = config.imap.accounts; - let a = Object.keys(accounts).find(a => buffer.includes(a)); - let user_id = accounts[a]; - - if (!emails[seqno] && user_id) { - let cad = parseFloat( - buffer - .replace(/.*\$(.*)\.\d\d \(CAD\).*/gms, "$1") - .replace(",", "") - ); - emails[seqno] = cad; - - try { - await db.transaction(async transaction => { - const account = await db.Account.findOne({ - where: { - user_id, - asset: config.liquid.btcasset, - pubkey: null - }, - include: { - model: db.User, - as: "user" - }, - lock: transaction.LOCK.UPDATE, - transaction - }); - - let { user } = account; - - let rate = store.rates["CAD"] * 1.02; - let amount = Math.round((cad / rate) * 100000000); - - await account.increment({ balance: amount }, { transaction }); - - let payment = await db.Payment.create({ - account_id: account.id, - user_id: account.user_id, - hash: `Interac deposit: ${cad} CAD`, - amount, - currency: "CAD", - rate, - received: true, - tip: 0, - confirmed: true, - address: "", - network: "COINOS" - }); - payment = payment.get({ plain: true }); - payment.account = account.get({ plain: true }); - - emit(user.username, "account", account); - emit(user.username, "payment", payment); - - l("interac deposit detected for", user.username, cad, amount); - }); - } catch (e) { - console.log(e); - } - } - }); - }); - msg.once("end", function() { - // console.log(prefix + 'Finished'); - }); - - imap.seq.addFlags(seqno, ["Seen"]); - }); - }, 10000); - }); + res.send({ ok: true }); + } catch (e) { + console.log("problem sending email", e); + res.code(500).send(e.message); + } + } catch (e) { + console.log(e); + res.code(500).send(e.message); + } }); - -imap.connect(); diff --git a/lib/upload.js b/lib/upload.js index 4deaa130..ceead928 100644 --- a/lib/upload.js +++ b/lib/upload.js @@ -1,30 +1,48 @@ -import { auth } from "./passport"; import app from "$app"; -import multer from "multer"; - -const storage = multer.diskStorage({ - destination: (req, file, cb) => { - cb(null, "uploads"); - }, - filename: async (req, file, cb) => { - const parts = file.originalname.split("."); - const ext = parts.length > 1 ? parts[parts.length - 1] : "bin"; - cb(null, `${req.user.username}-${file.fieldname}.${ext}`); - } -}); +import { auth } from "./passport"; +import fastifyMultipart from "@fastify/multipart"; +import fastifyStatic from "@fastify/static"; +import { fileTypeFromStream } from "file-type"; +import pump from "pump"; +import Clone from "readable-stream-clone"; +import fs from "fs"; +import path from "path"; -export const upload = multer({ - storage, - onFileUploadStart: (file, req, res) => { - console.log("CHECKING SIZE"); - const maxSize = 32 * 1000 * 1000; - if (req.files.file.length > maxSize) { - return false; - } - } +app.register(fastifyMultipart); + +app.register(fastifyStatic, { + root: path.join("/app/uploads"), + prefix: "/public/" }); -app.post("/profile", auth, upload.single("squirt"), async (req, res) => { - let { filename } = req.file; - res.send({ filename }); +app.post("/upload/:type", auth, async function(req, res) { + try { + let { type } = req.params; + if (!["banner", "profile"].includes(type)) + throw new Error("invalid upload"); + + let data = await req.file(); + let s1 = new Clone(data.file); + let s2 = new Clone(data.file); + + let [format, ext] = (await fileTypeFromStream(s1)).mime.split("/"); + + if (format !== "image" && !["jpg", "jpeg", "png"].includes(ext)) + throw new Error("unsupported file type"); + + let name = `${req.user.username}-${type}.png`; + let path = `/app/uploads/${name}`; + + await new Promise(resolve => + s2.pipe(fs.createWriteStream(path).on("finish", resolve)) + ); + + req.user[type] = true; + await req.user.save(); + + res.send(name); + } catch (e) { + console.log(e); + return res.status(500).send(e); + } }); diff --git a/package.json b/package.json index 70ee5bb8..763a682c 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,10 @@ "debug": "DEBUG=debug nodemon index.js" }, "dependencies": { + "@fastify/multipart": "^7.1.2", "@fastify/passport": "^2.2.0", "@fastify/secure-session": "^5.2.0", + "@fastify/static": "^6.5.0", "@fastify/websocket": "^7.0.1", "@sequelize/core": "7.0.0-alpha.10", "async-mutex": "^0.2.4", @@ -38,14 +40,12 @@ "http-proxy-middleware": "^0.20.0", "imap": "^0.8.19", "jsonwebtoken": "^8.5.1", - "knex": "^0.95.6", "lightning": "5", "liquidjs-lib": "6.0.2-liquid.8", "lnurl": "0.19", "long": "^4.0.0", "mailgun-js": "^0.22.0", "mariadb": "^2.4.0", - "multer": "^1.4.2", "mysql": "^2.18.1", "mysql2": "^2.2.5", "node-fetch": "^2.6.1", @@ -58,9 +58,9 @@ "pino-pretty": "^7.0.0", "pm2": "^5.2.0", "postmark": "^3.0.11", + "pump": "^3.0.0", "query-string": "^6.13.1", - "sequelize": "^5.21.3", - "sqlite3": "^5.0.2", + "readable-stream-clone": "^0.0.7", "tiny-secp256k1": "^2.1.2", "uuid": "8", "web-push": "^3.4.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8f2a697..3bcc83b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,8 +1,10 @@ lockfileVersion: 5.4 specifiers: + '@fastify/multipart': ^7.1.2 '@fastify/passport': ^2.2.0 '@fastify/secure-session': ^5.2.0 + '@fastify/static': ^6.5.0 '@fastify/websocket': ^7.0.1 '@sequelize/core': 7.0.0-alpha.10 async-mutex: ^0.2.4 @@ -30,14 +32,12 @@ specifiers: http-proxy-middleware: ^0.20.0 imap: ^0.8.19 jsonwebtoken: ^8.5.1 - knex: ^0.95.6 lightning: '5' liquidjs-lib: 6.0.2-liquid.8 lnurl: '0.19' long: ^4.0.0 mailgun-js: ^0.22.0 mariadb: ^2.4.0 - multer: ^1.4.2 mysql: ^2.18.1 mysql2: ^2.2.5 node-fetch: ^2.6.1 @@ -51,9 +51,9 @@ specifiers: pm2: ^5.2.0 postmark: ^3.0.11 prettier: ^1.19.1 + pump: ^3.0.0 query-string: ^6.13.1 - sequelize: ^5.21.3 - sqlite3: ^5.0.2 + readable-stream-clone: ^0.0.7 tiny-secp256k1: ^2.1.2 uuid: '8' web-push: ^3.4.4 @@ -62,10 +62,12 @@ specifiers: zeromq: 6.0.0-beta.6 dependencies: + '@fastify/multipart': 7.1.2 '@fastify/passport': 2.2.0 '@fastify/secure-session': 5.2.0 + '@fastify/static': 6.5.0 '@fastify/websocket': 7.0.1 - '@sequelize/core': 7.0.0-alpha.10_z5l6k2ymvrhe2jtlk3taqnzt7e + '@sequelize/core': 7.0.0-alpha.10_mariadb@2.5.4+mysql2@2.3.0 async-mutex: 0.2.6 axios: 0.21.4 bcrypt: 5.0.1 @@ -91,14 +93,12 @@ dependencies: http-proxy-middleware: 0.20.0 imap: 0.8.19 jsonwebtoken: 8.5.1 - knex: 0.95.11_gbnmrixtkvoqbw4s5yc7xwlchq lightning: 5.21.0 liquidjs-lib: 6.0.2-liquid.8 lnurl: 0.19.0 long: 4.0.0 mailgun-js: 0.22.0 mariadb: 2.5.4 - multer: 1.4.3 mysql: 2.18.1 mysql2: 2.3.0 node-fetch: 2.6.5 @@ -111,9 +111,9 @@ dependencies: pino-pretty: 7.0.1 pm2: 5.2.0 postmark: 3.0.11 + pump: 3.0.0 query-string: 6.14.1 - sequelize: 5.22.4 - sqlite3: 5.0.2 + readable-stream-clone: 0.0.7 tiny-secp256k1: 2.1.2 uuid: 8.3.2 web-push: 3.4.5 @@ -126,6 +126,11 @@ devDependencies: packages: + /@fastify/accept-negotiator/1.0.0: + resolution: {integrity: sha512-4R/N2KfYeld7A5LGkai+iUFMahXcxxYbDp+XS2B1yuL3cdmZLJ9TlCnNzT3q5xFTqsYm0GPpinLUwfSwjcVjyA==} + engines: {node: '>=14'} + dev: false + /@fastify/ajv-compiler/3.2.0: resolution: {integrity: sha512-JrqgKmZoh1AJojDZk699DupQ9+tz5gSy7/w+5DrkXy5whM5IcqdV3SjG5qnOqgVJT1nPtUMDY0xYus2j6vwJiw==} dependencies: @@ -134,6 +139,13 @@ packages: fast-uri: 2.1.0 dev: false + /@fastify/busboy/1.1.0: + resolution: {integrity: sha512-Fv854f94v0CzIDllbY3i/0NJPNBRNLDawf3BTYVGCe9VrIIs3Wi7AFx24F9NzCxdf0wyx/x0Q9kEVnvDOPnlxA==} + engines: {node: '>=10.17.0'} + dependencies: + text-decoding: 1.0.0 + dev: false + /@fastify/cookie/7.4.0: resolution: {integrity: sha512-82MUHsZJY/Wl+rG2E+bnYxSifOtNRChm2M+8xnZHnKtYmyNfLvy/37ElCtqD3KzUyTycR+GE7v7uiDD/tY4TkA==} dependencies: @@ -162,6 +174,19 @@ packages: fastify-plugin: 3.0.1 dev: false + /@fastify/multipart/7.1.2: + resolution: {integrity: sha512-p/y1PfUhvIEVsK/52tT3xoVSoM/31p6eIVmjp2ZqUHQY8+ZLEb+eGwJKXZiV8jhcjPyMU67BsYy2em5e4vfJFA==} + dependencies: + '@fastify/busboy': 1.1.0 + '@fastify/deepmerge': 1.1.0 + '@fastify/error': 3.0.0 + end-of-stream: 1.4.4 + fastify-plugin: 4.2.1 + hexoid: 1.0.0 + secure-json-parse: 2.4.0 + stream-wormhole: 1.1.0 + dev: false + /@fastify/passport/2.2.0: resolution: {integrity: sha512-JbrtmJUotEgPf9FPpCpbMcVDghLbjziAkj7EnufEaRpMOZE3wkeVg0CzgnD+nrIGoHo6D31RCJMIZMvvLxb+ew==} dependencies: @@ -178,6 +203,20 @@ packages: sodium-native: 3.4.1 dev: false + /@fastify/static/6.5.0: + resolution: {integrity: sha512-WEk6iqgejA6ivjkvbJ47A+uMci225z5lZwLXCXZS3ZYR/kYje1gzzarkKKGL6TWpBw6smkOzxA7dfEoY0347Nw==} + dependencies: + '@fastify/accept-negotiator': 1.0.0 + content-disposition: 0.5.4 + fastify-plugin: 4.2.1 + glob: 8.0.3 + p-limit: 3.1.0 + readable-stream: 4.1.0 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: false + /@fastify/websocket/7.0.1: resolution: {integrity: sha512-LHOUKqRr1iV4w47sVQAT5IrVPsTiuEAqOS1QgtRymJYPeVfIC65LTxg22eoR7kyYW4W84oWJk0gtsBwUGhDEVg==} dependencies: @@ -394,7 +433,7 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@sequelize/core/7.0.0-alpha.10_z5l6k2ymvrhe2jtlk3taqnzt7e: + /@sequelize/core/7.0.0-alpha.10_mariadb@2.5.4+mysql2@2.3.0: resolution: {integrity: sha512-uikpWaCiIaijsgoa9cH+3jCQl8r+FaQPhoE8AOJYvPwxOx52E1JZnRPMXNnlpbFy3Xu0qekrc5LBJq7IR8UB0Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -440,7 +479,6 @@ packages: retry-as-promised: 5.0.0 semver: 7.3.5 sequelize-pool: 7.1.0 - sqlite3: 5.0.2 toposort-class: 1.0.1 uuid: 8.3.2 validator: 13.7.0 @@ -681,16 +719,6 @@ packages: ajv: 8.11.0 dev: false - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: false - optional: true - /ajv/8.11.0: resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} dependencies: @@ -745,10 +773,6 @@ packages: color-convert: 2.0.1 dev: false - /any-promise/1.3.0: - resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} - dev: false - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -757,10 +781,6 @@ packages: picomatch: 2.3.0 dev: false - /append-field/1.0.0: - resolution: {integrity: sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=} - dev: false - /aproba/1.2.0: resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} dev: false @@ -805,19 +825,6 @@ packages: safer-buffer: 2.1.2 dev: false - /asn1/0.2.4: - resolution: {integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==} - dependencies: - safer-buffer: 2.1.2 - dev: false - optional: true - - /assert-plus/1.0.0: - resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=} - engines: {node: '>=0.8'} - dev: false - optional: true - /ast-types/0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} @@ -889,16 +896,6 @@ packages: - supports-color dev: false - /aws-sign2/0.7.0: - resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=} - dev: false - optional: true - - /aws4/1.11.0: - resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} - dev: false - optional: true - /axios/0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: @@ -933,13 +930,6 @@ packages: safe-buffer: 5.2.1 dev: false - /bcrypt-pbkdf/1.0.2: - resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=} - dependencies: - tweetnacl: 0.14.5 - dev: false - optional: true - /bcrypt/5.0.1: resolution: {integrity: sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==} engines: {node: '>= 10.0.0'} @@ -1085,18 +1075,6 @@ packages: hasBin: true dev: false - /block-stream/0.0.9: - resolution: {integrity: sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=} - engines: {node: 0.4 || >=0.5.8} - dependencies: - inherits: 2.0.4 - dev: false - optional: true - - /bluebird/3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - dev: false - /bn.js/4.12.0: resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} dev: false @@ -1192,6 +1170,12 @@ packages: concat-map: 0.0.1 dev: false + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: false + /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -1244,14 +1228,6 @@ packages: resolution: {integrity: sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=} dev: false - /busboy/0.2.14: - resolution: {integrity: sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=} - engines: {node: '>=0.8.0'} - dependencies: - dicer: 0.2.5 - readable-stream: 1.1.14 - dev: false - /bytes/3.0.0: resolution: {integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=} engines: {node: '>= 0.8'} @@ -1297,11 +1273,6 @@ packages: engines: {node: '>=10'} dev: false - /caseless/0.12.0: - resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=} - dev: false - optional: true - /cbor/8.1.0: resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} engines: {node: '>=12.19'} @@ -1353,10 +1324,6 @@ packages: fsevents: 2.3.2 dev: false - /chownr/1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false - /chownr/2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -1408,13 +1375,6 @@ packages: mimic-response: 1.0.1 dev: false - /cls-bluebird/2.1.0: - resolution: {integrity: sha1-N+8eCAqP+1XC9BZPU28ZGeeWiu4=} - dependencies: - is-bluebird: 1.0.2 - shimmer: 1.2.1 - dev: false - /co/4.6.0: resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -1450,10 +1410,6 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: false - /colorette/1.2.1: - resolution: {integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==} - dev: false - /colorette/2.0.16: resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} dev: false @@ -1469,11 +1425,6 @@ packages: resolution: {integrity: sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==} dev: false - /commander/7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: false - /commander/8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -1505,16 +1456,6 @@ packages: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: false - /concat-stream/1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.7 - typedarray: 0.0.6 - dev: false - /configstore/5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} @@ -1584,11 +1525,6 @@ packages: engines: {node: '>= 0.6'} dev: false - /core-util-is/1.0.2: - resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} - dev: false - optional: true - /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: false @@ -1635,14 +1571,6 @@ packages: resolution: {integrity: sha1-lQL18BVKLVoioCPnn3HMk2+m728=} dev: false - /dashdash/1.14.1: - resolution: {integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=} - engines: {node: '>=0.10'} - dependencies: - assert-plus: 1.0.0 - dev: false - optional: true - /data-uri-to-buffer/1.2.0: resolution: {integrity: sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==} dev: false @@ -1828,14 +1756,6 @@ packages: hasBin: true dev: false - /dicer/0.2.5: - resolution: {integrity: sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=} - engines: {node: '>=0.8.0'} - dependencies: - readable-stream: 1.1.14 - streamsearch: 0.1.2 - dev: false - /dot-prop/5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -1860,14 +1780,6 @@ packages: resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} dev: false - /ecc-jsbn/0.1.2: - resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=} - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: false - optional: true - /ecdsa-sig-formatter/1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} dependencies: @@ -1987,11 +1899,6 @@ packages: source-map: 0.6.1 dev: false - /esm/3.2.25: - resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} - engines: {node: '>=6'} - dev: false - /esprima/3.1.3: resolution: {integrity: sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=} engines: {node: '>=4'} @@ -2154,12 +2061,6 @@ packages: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false - /extsprintf/1.3.0: - resolution: {integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=} - engines: {'0': node >=0.6.0} - dev: false - optional: true - /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: false @@ -2168,11 +2069,6 @@ packages: resolution: {integrity: sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA==} dev: false - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: false - optional: true - /fast-json-stringify/5.2.0: resolution: {integrity: sha512-u5jtrcAK9RINW15iuDKnsuuhqmqre4AmDMp3crRTjUMdAuHMpQUt3IfoMm5wlJm59b74PcajqOl3SjgnC5FPmw==} dependencies: @@ -2354,21 +2250,6 @@ packages: optional: true dev: false - /forever-agent/0.6.1: - resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=} - dev: false - optional: true - - /form-data/2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - optional: true - /form-data/2.5.1: resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} engines: {node: '>= 0.12'} @@ -2397,12 +2278,6 @@ packages: universalify: 0.1.2 dev: false - /fs-minipass/1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} - dependencies: - minipass: 2.9.0 - dev: false - /fs-minipass/2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -2411,7 +2286,7 @@ packages: dev: false /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: false /fsevents/2.3.2: @@ -2422,17 +2297,6 @@ packages: dev: false optional: true - /fstream/1.0.12: - resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} - engines: {node: '>=0.6'} - dependencies: - graceful-fs: 4.2.8 - inherits: 2.0.4 - mkdirp: 0.5.5 - rimraf: 2.7.1 - dev: false - optional: true - /ftp/0.3.10: resolution: {integrity: sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=} engines: {node: '>=0.8.0'} @@ -2518,17 +2382,6 @@ packages: - supports-color dev: false - /getopts/2.2.5: - resolution: {integrity: sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==} - dev: false - - /getpass/0.1.7: - resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=} - dependencies: - assert-plus: 1.0.0 - dev: false - optional: true - /git-node-fs/1.0.0_js-git@0.7.8: resolution: {integrity: sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=} peerDependencies: @@ -2562,6 +2415,17 @@ packages: path-is-absolute: 1.0.1 dev: false + /glob/8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.0 + once: 1.4.0 + dev: false + /global-dirs/3.0.0: resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} engines: {node: '>=10'} @@ -2592,22 +2456,6 @@ packages: resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} dev: false - /har-schema/2.0.0: - resolution: {integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=} - engines: {node: '>=4'} - dev: false - optional: true - - /har-validator/5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: false - optional: true - /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -2655,6 +2503,11 @@ packages: minimalistic-assert: 1.0.1 dev: false + /hexoid/1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} + dev: false + /hmac-drbg/1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} dependencies: @@ -2744,16 +2597,6 @@ packages: - debug dev: false - /http-signature/1.2.0: - resolution: {integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.1 - sshpk: 1.16.1 - dev: false - optional: true - /http_ece/1.1.0: resolution: {integrity: sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA==} engines: {node: '>=4'} @@ -2803,12 +2646,6 @@ packages: resolution: {integrity: sha1-SMptcvbGo68Aqa1K5odr44ieKwk=} dev: false - /ignore-walk/3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - dependencies: - minimatch: 3.0.4 - dev: false - /imap/0.8.19: resolution: {integrity: sha1-NniHOTSrCc6mukh0HyhNoq9Z2NU=} engines: {node: '>=0.8.0'} @@ -2843,7 +2680,7 @@ packages: dev: false /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -2866,11 +2703,6 @@ packages: engines: {node: '>=10'} dev: false - /interpret/2.2.0: - resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} - engines: {node: '>= 0.10'} - dev: false - /invoices/2.2.0: resolution: {integrity: sha512-uVe0WdHGdhkKubfrH1rSC/RpFREC7D0dh1IHxEgmUhV1lhn2+1UFVUxhri4dGyklBgIi+DNzE8q3665PF8z5Vw==} engines: {node: '>=12.20.0'} @@ -2899,11 +2731,6 @@ packages: binary-extensions: 2.2.0 dev: false - /is-bluebird/1.0.2: - resolution: {integrity: sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI=} - engines: {node: '>=0.10.0'} - dev: false - /is-ci/2.0.0: resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true @@ -2994,16 +2821,6 @@ packages: resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} dev: false - /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - dev: false - optional: true - - /isstream/0.1.2: - resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=} - dev: false - optional: true - /joycon/3.0.1: resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} engines: {node: '>=10'} @@ -3018,29 +2835,14 @@ packages: pako: 0.2.9 dev: false - /jsbn/0.1.1: - resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=} - dev: false - optional: true - /json-buffer/3.0.0: resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} dev: false - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: false - optional: true - /json-schema-traverse/1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: false - /json-schema/0.2.3: - resolution: {integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=} - dev: false - optional: true - /json-stringify-safe/5.0.1: resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} dev: false @@ -3068,17 +2870,6 @@ packages: semver: 5.7.1 dev: false - /jsprim/1.4.1: - resolution: {integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=} - engines: {'0': node >=0.6.0} - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.2.3 - verror: 1.10.0 - dev: false - optional: true - /jwa/1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: @@ -3115,48 +2906,6 @@ packages: json-buffer: 3.0.0 dev: false - /knex/0.95.11_gbnmrixtkvoqbw4s5yc7xwlchq: - resolution: {integrity: sha512-grDetD91O8VoQVCFqeWTgkzdq5406W6rggF/lK1hHuwzmjDs/0m9KxyncGdZbklTi7aUgHvw3+Cfy4x7FvpdaQ==} - engines: {node: '>=10'} - hasBin: true - peerDependencies: - mysql: '*' - mysql2: '*' - pg: '*' - sqlite3: '*' - tedious: '*' - peerDependenciesMeta: - mysql: - optional: true - mysql2: - optional: true - pg: - optional: true - sqlite3: - optional: true - tedious: - optional: true - dependencies: - colorette: 1.2.1 - commander: 7.2.0 - debug: 4.3.2 - escalade: 3.1.1 - esm: 3.2.25 - getopts: 2.2.5 - interpret: 2.2.0 - lodash: 4.17.21 - mysql: 2.18.1 - mysql2: 2.3.0 - pg-connection-string: 2.5.0 - rechoir: 0.7.0 - resolve-from: 5.0.0 - sqlite3: 5.0.2 - tarn: 3.0.1 - tildify: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: false - /latest-version/5.1.0: resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} engines: {node: '>=8'} @@ -3458,15 +3207,15 @@ packages: brace-expansion: 1.1.11 dev: false - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + /minimatch/5.1.0: + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 dev: false - /minipass/2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - dependencies: - safe-buffer: 5.2.1 - yallist: 3.1.1 + /minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} dev: false /minipass/3.1.5: @@ -3476,12 +3225,6 @@ packages: yallist: 4.0.0 dev: false - /minizlib/1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} - dependencies: - minipass: 2.9.0 - dev: false - /minizlib/2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -3490,13 +3233,6 @@ packages: yallist: 4.0.0 dev: false - /mkdirp/0.5.5: - resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} - hasBin: true - dependencies: - minimist: 1.2.5 - dev: false - /mkdirp/1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -3544,20 +3280,6 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: false - /multer/1.4.3: - resolution: {integrity: sha512-np0YLKncuZoTzufbkM6wEKp68EhWJXcU6fq6QqrSwkckd2LlMgd1UqhUJLj6NS/5sZ8dE8LYDWslsltJznnXlg==} - engines: {node: '>= 0.10.0'} - dependencies: - append-field: 1.0.0 - busboy: 0.2.14 - concat-stream: 1.6.2 - mkdirp: 0.5.5 - object-assign: 4.1.1 - on-finished: 2.3.0 - type-is: 1.6.18 - xtend: 4.0.2 - dev: false - /mute-stream/0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: false @@ -3609,18 +3331,6 @@ packages: - supports-color dev: false - /needle/2.9.1: - resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} - engines: {node: '>= 4.4.x'} - hasBin: true - dependencies: - debug: 3.2.7 - iconv-lite: 0.4.24 - sax: 1.2.4 - transitivePeerDependencies: - - supports-color - dev: false - /negotiator/0.6.2: resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} engines: {node: '>= 0.6'} @@ -3661,46 +3371,6 @@ packages: hasBin: true dev: false - /node-gyp/3.8.0: - resolution: {integrity: sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==} - engines: {node: '>= 0.8.0'} - hasBin: true - requiresBuild: true - dependencies: - fstream: 1.0.12 - glob: 7.2.0 - graceful-fs: 4.2.8 - mkdirp: 0.5.5 - nopt: 3.0.6 - npmlog: 4.1.2 - osenv: 0.1.5 - request: 2.88.2 - rimraf: 2.7.1 - semver: 5.3.0 - tar: 2.2.2 - which: 1.3.1 - dev: false - optional: true - - /node-pre-gyp/0.11.0: - resolution: {integrity: sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==} - deprecated: 'Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future' - hasBin: true - dependencies: - detect-libc: 1.0.3 - mkdirp: 0.5.5 - needle: 2.9.1 - nopt: 4.0.3 - npm-packlist: 1.4.8 - npmlog: 4.1.2 - rc: 1.2.8 - rimraf: 2.7.1 - semver: 5.7.1 - tar: 4.4.19 - transitivePeerDependencies: - - supports-color - dev: false - /nodemon/2.0.13: resolution: {integrity: sha512-UMXMpsZsv1UXUttCn6gv8eQPhn6DR4BW+txnL3IN5IHqrCwcrT/yWHfL35UsClGXknTH79r5xbu+6J1zNHuSyA==} engines: {node: '>=8.10.0'} @@ -3731,22 +3401,6 @@ packages: abbrev: 1.1.1 dev: false - /nopt/3.0.6: - resolution: {integrity: sha1-xkZdvwirzU2zWTF/eaxopkayj/k=} - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: false - optional: true - - /nopt/4.0.3: - resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==} - hasBin: true - dependencies: - abbrev: 1.1.1 - osenv: 0.1.5 - dev: false - /nopt/5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -3765,24 +3419,6 @@ packages: engines: {node: '>=8'} dev: false - /npm-bundled/1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - dependencies: - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-normalize-package-bin/1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - dev: false - - /npm-packlist/1.4.8: - resolution: {integrity: sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==} - dependencies: - ignore-walk: 3.0.4 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: false - /npmlog/4.1.2: resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} dependencies: @@ -3805,11 +3441,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /oauth-sign/0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: false - optional: true - /object-assign/4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} @@ -3843,7 +3474,7 @@ packages: dev: false /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: false @@ -3860,23 +3491,6 @@ packages: word-wrap: 1.2.3 dev: false - /os-homedir/1.0.2: - resolution: {integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=} - engines: {node: '>=0.10.0'} - dev: false - - /os-tmpdir/1.0.2: - resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} - engines: {node: '>=0.10.0'} - dev: false - - /osenv/0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - dev: false - /otplib/12.0.1: resolution: {integrity: sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg==} dependencies: @@ -3890,6 +3504,13 @@ packages: engines: {node: '>=6'} dev: false + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + /pac-proxy-agent/3.0.1: resolution: {integrity: sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==} dependencies: @@ -4026,11 +3647,6 @@ packages: engines: {node: '>=14.16'} dev: false - /performance-now/2.1.0: - resolution: {integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=} - dev: false - optional: true - /pg-connection-string/2.5.0: resolution: {integrity: sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==} dev: false @@ -4357,11 +3973,6 @@ packages: resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} dev: false - /psl/1.8.0: - resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} - dev: false - optional: true - /pstree.remy/1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} dev: false @@ -4402,12 +4013,6 @@ packages: side-channel: 1.0.4 dev: false - /qs/6.5.2: - resolution: {integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==} - engines: {node: '>=0.6'} - dev: false - optional: true - /qs/6.7.0: resolution: {integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==} engines: {node: '>=0.6'} @@ -4480,6 +4085,10 @@ packages: mute-stream: 0.0.8 dev: false + /readable-stream-clone/0.0.7: + resolution: {integrity: sha512-mdkQtdg5elliOR64xcHVMkghSHQGjpsdCFAs6fSe28wTaVypR0GywmK5ndKpOSQzzuNpSrzC12Rv9UEkDLX73A==} + dev: false + /readable-stream/1.1.14: resolution: {integrity: sha1-fPTFTvZI44EwhMY23SB54WbAgdk=} dependencies: @@ -4536,13 +4145,6 @@ packages: engines: {node: '>= 12.13.0'} dev: false - /rechoir/0.7.0: - resolution: {integrity: sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.20.0 - dev: false - /registry-auth-token/4.2.1: resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} engines: {node: '>=6.0.0'} @@ -4557,34 +4159,6 @@ packages: rc: 1.2.8 dev: false - /request/2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - dependencies: - aws-sign2: 0.7.0 - aws4: 1.11.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.2 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: false - optional: true - /require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -4609,11 +4183,6 @@ packages: resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=} dev: false - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: false - /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: @@ -4632,12 +4201,6 @@ packages: engines: {node: '>=4'} dev: false - /retry-as-promised/3.2.0: - resolution: {integrity: sha512-CybGs60B7oYU/qSQ6kuaFmRd9sTZ6oXSc0toqePvV74Ac6/IFZSI1ReFQmtCN+uvW1Mtqdwpvt/LGOiCBAY2Mg==} - dependencies: - any-promise: 1.3.0 - dev: false - /retry-as-promised/5.0.0: resolution: {integrity: sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==} dev: false @@ -4651,13 +4214,6 @@ packages: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: false - /rimraf/2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - dependencies: - glob: 7.2.0 - dev: false - /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -4826,39 +4382,11 @@ packages: resolution: {integrity: sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=} dev: false - /sequelize-pool/2.3.0: - resolution: {integrity: sha512-Ibz08vnXvkZ8LJTiUOxRcj1Ckdn7qafNZ2t59jYHMX1VIebTAOYefWdRYFt6z6+hy52WGthAHAoLc9hvk3onqA==} - engines: {node: '>= 6.0.0'} - dev: false - /sequelize-pool/7.1.0: resolution: {integrity: sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==} engines: {node: '>= 10.0.0'} dev: false - /sequelize/5.22.4: - resolution: {integrity: sha512-xFQQ38HPg7EyDRDA+NdzMSRWbo9m6Z/RxpjnkBl3ggyQG+jRrup48x0jaw4Ox42h56wFnXOBC2NZOkTJfZeWCw==} - engines: {node: '>=6.0.0'} - dependencies: - bluebird: 3.7.2 - cls-bluebird: 2.1.0 - debug: 4.3.2 - dottie: 2.0.2 - inflection: 1.12.0 - lodash: 4.17.21 - moment: 2.29.1 - moment-timezone: 0.5.33 - retry-as-promised: 3.2.0 - semver: 6.3.0 - sequelize-pool: 2.3.0 - toposort-class: 1.0.1 - uuid: 3.4.0 - validator: 10.11.0 - wkx: 0.4.8 - transitivePeerDependencies: - - supports-color - dev: false - /serve-static/1.14.1: resolution: {integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==} engines: {node: '>= 0.8.0'} @@ -5036,21 +4564,6 @@ packages: resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} dev: false - /sqlite3/5.0.2: - resolution: {integrity: sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==} - requiresBuild: true - peerDependenciesMeta: - node-gyp: - optional: true - dependencies: - node-addon-api: 3.2.1 - node-pre-gyp: 0.11.0 - optionalDependencies: - node-gyp: 3.8.0 - transitivePeerDependencies: - - supports-color - dev: false - /sqlstring/2.3.1: resolution: {integrity: sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=} engines: {node: '>= 0.6'} @@ -5061,23 +4574,6 @@ packages: engines: {node: '>= 0.6'} dev: false - /sshpk/1.16.1: - resolution: {integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - asn1: 0.2.4 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: false - optional: true - /statuses/1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -5088,9 +4584,9 @@ packages: engines: {node: '>= 0.8'} dev: false - /streamsearch/0.1.2: - resolution: {integrity: sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=} - engines: {node: '>=0.8.0'} + /stream-wormhole/1.1.0: + resolution: {integrity: sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==} + engines: {node: '>=4.0.0'} dev: false /strict-uri-encode/2.0.0: @@ -5190,29 +4686,6 @@ packages: dev: false optional: true - /tar/2.2.2: - resolution: {integrity: sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==} - deprecated: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap. - dependencies: - block-stream: 0.0.9 - fstream: 1.0.12 - inherits: 2.0.4 - dev: false - optional: true - - /tar/4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} - engines: {node: '>=4.5'} - dependencies: - chownr: 1.1.4 - fs-minipass: 1.2.7 - minipass: 2.9.0 - minizlib: 1.3.3 - mkdirp: 0.5.5 - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: false - /tar/6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} engines: {node: '>= 10'} @@ -5225,9 +4698,8 @@ packages: yallist: 4.0.0 dev: false - /tarn/3.0.1: - resolution: {integrity: sha512-6usSlV9KyHsspvwu2duKH+FMUhqJnAh6J5J/4MITl8s94iSUQTLkJggdiewKv4RyARQccnigV48Z+khiuVZDJw==} - engines: {node: '>=8.0.0'} + /text-decoding/1.0.0: + resolution: {integrity: sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==} dev: false /thirty-two/1.0.2: @@ -5245,11 +4717,6 @@ packages: resolution: {integrity: sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=} dev: false - /tildify/2.0.0: - resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} - engines: {node: '>=8'} - dev: false - /tiny-lru/8.0.2: resolution: {integrity: sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==} engines: {node: '>=6'} @@ -5322,15 +4789,6 @@ packages: nopt: 1.0.10 dev: false - /tough-cookie/2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - dependencies: - psl: 1.8.0 - punycode: 2.1.1 - dev: false - optional: true - /tr46/0.0.3: resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} dev: false @@ -5348,23 +4806,11 @@ packages: engines: {node: '>=0.6.x'} dev: false - /tunnel-agent/0.6.0: - resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} - dependencies: - safe-buffer: 5.2.1 - dev: false - optional: true - /tv4/1.3.0: resolution: {integrity: sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=} engines: {node: '>= 0.8.0'} dev: false - /tweetnacl/0.14.5: - resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=} - dev: false - optional: true - /tx2/1.0.4: resolution: {integrity: sha512-rU+y30nUY3PyIi+znvv74HzxlpULKwMPAyRK+YiCjvGkk3rY3fic3D6Z+avLpun3V5A6HFwPQ9JrBTMNEV/dxg==} dependencies: @@ -5403,10 +4849,6 @@ packages: is-typedarray: 1.0.0 dev: false - /typedarray/0.0.6: - resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} - dev: false - /typeforce/1.18.0: resolution: {integrity: sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==} dev: false @@ -5520,11 +4962,6 @@ packages: hasBin: true dev: false - /validator/10.11.0: - resolution: {integrity: sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==} - engines: {node: '>= 0.10'} - dev: false - /validator/13.7.0: resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} engines: {node: '>= 0.10'} @@ -5541,16 +4978,6 @@ packages: engines: {node: '>= 0.8'} dev: false - /verror/1.10.0: - resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} - engines: {'0': node >=0.6.0} - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: false - optional: true - /vizion/2.2.1: resolution: {integrity: sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==} engines: {node: '>=4.0'} @@ -5593,14 +5020,6 @@ packages: webidl-conversions: 3.0.1 dev: false - /which/1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - optional: true - /wide-align/1.1.3: resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} dependencies: @@ -5625,12 +5044,6 @@ packages: engines: {node: '>=4'} dev: false - /wkx/0.4.8: - resolution: {integrity: sha512-ikPXMM9IR/gy/LwiOSqWlSL3X/J5uk9EO2hHNRXS41eTLXaUFEVw9fn/593jW/tE5tedNg8YjT5HkCa4FqQZyQ==} - dependencies: - '@types/node': 18.7.14 - dev: false - /wkx/0.5.0: resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} dependencies: @@ -5652,7 +5065,7 @@ packages: dev: false /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: false /wretch/1.7.6: @@ -5716,11 +5129,6 @@ packages: resolution: {integrity: sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=} dev: false - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -5764,6 +5172,11 @@ packages: yargs-parser: 20.2.9 dev: false + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: false + /zeromq/6.0.0-beta.6: resolution: {integrity: sha512-wLf6M7pBHijl+BRltUL2VoDpgbQcOZetiX8UzycHL8CcYFxYnRrpoG5fi3UX3+Umavz1lk4/dGaQez8qiDgr/Q==} engines: {node: '>= 10.2'} diff --git a/routes/info.js b/routes/info.js index 1b92624b..b2832250 100644 --- a/routes/info.js +++ b/routes/info.js @@ -20,6 +20,7 @@ app.get("/info", async (req, res, next) => { const { clientVersion } = config; const info = { + fx: store.fx, nodes: store.networks, clientVersion }; diff --git a/startup.js b/startup.js deleted file mode 100644 index 807604e8..00000000 --- a/startup.js +++ /dev/null @@ -1,25 +0,0 @@ -// Can use this file to run custom scripts on startup - -/* -(async () => { - let invoice = await db.Invoice.findOne({ - where: { id: 47391 } - }); - - let payment = await db.Payment.findOne({ - where: { invoice_id: 47391 }, - - include: { - model: db.Account, - as: "account" - } - }); - - console.log(invoice.id, payment.id); - try { - await callWebhook(invoice, payment); - } catch (e) { - console.log("uh oh", e); - } -})(); -*/ -- cgit v1.2.3