├── .gitignore ├── controller ├── auth.controller.js └── posts.controller.js ├── database └── index.js ├── index.js ├── package-lock.json ├── package.json ├── qlsv.sql ├── routes ├── auth.router.js └── posts.router.js └── vercel.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .env -------------------------------------------------------------------------------- /controller/auth.controller.js: -------------------------------------------------------------------------------- 1 | const pool = require("../database/index") 2 | const bcrypt = require('bcrypt') 3 | const jwt = require('jsonwebtoken') 4 | 5 | const authController = { 6 | register: async (req, res) => { 7 | try { 8 | const { email, password, name } = req.body 9 | const [user, ] = await pool.query("select * from users where email = ?", [email]) 10 | if (user[0]) return res.json({ error: "Email already exists!" }) 11 | 12 | 13 | const hash = await bcrypt.hash(password, 10) 14 | 15 | const sql = "insert into users (email, password, name) values (?, ?, ?)" 16 | const [rows, fields] = await pool.query(sql, [email, hash, name]) 17 | 18 | if (rows.affectedRows) { 19 | return res.json({ message: "Ok" }) 20 | } else { 21 | return res.json({ error: "Error" }) 22 | } 23 | 24 | } catch (error) { 25 | console.log(error) 26 | res.json({ 27 | error: error.message 28 | }) 29 | } 30 | }, 31 | login: async (req, res) => { 32 | try { 33 | const { email, password } = req.body 34 | const [user, ] = await pool.query("select * from users where email = ?", [email]) 35 | if (!user[0]) return res.json({ error: "Invalid email!" }) 36 | 37 | const { password: hash, id, name } = user[0] 38 | 39 | const check = await bcrypt.compare(password, hash) 40 | 41 | if (check) { 42 | const accessToken = jwt.sign({ userId: id }, '3812932sjad34&*@', { expiresIn: '1h' }); 43 | return res.json({ 44 | accessToken, 45 | data: { 46 | userId: id, 47 | name, 48 | email 49 | } 50 | }) 51 | 52 | } 53 | 54 | return res.json({ error: "Wrong password!" }) 55 | 56 | } catch (error) { 57 | console.log(error) 58 | res.json({ 59 | error: error.message 60 | }) 61 | } 62 | }, 63 | } 64 | 65 | module.exports = authController -------------------------------------------------------------------------------- /controller/posts.controller.js: -------------------------------------------------------------------------------- 1 | const pool = require("../database/index") 2 | const postsController = { 3 | getAll: async (req, res) => { 4 | try { 5 | const [rows, fields] = await pool.query("select * from posts") 6 | res.json({ 7 | data: rows 8 | }) 9 | } catch (error) { 10 | console.log(error) 11 | res.json({ 12 | status: "error" 13 | }) 14 | } 15 | }, 16 | getById: async (req, res) => { 17 | try { 18 | const { id } = req.params 19 | const [rows, fields] = await pool.query("select * from posts where id = ?", [id]) 20 | res.json({ 21 | data: rows 22 | }) 23 | } catch (error) { 24 | console.log(error) 25 | res.json({ 26 | status: "error" 27 | }) 28 | } 29 | }, 30 | create: async (req, res) => { 31 | try { 32 | const { title, content } = req.body 33 | const sql = "insert into posts (title, content) values (?, ?)" 34 | const [rows, fields] = await pool.query(sql, [title, content]) 35 | res.json({ 36 | data: rows 37 | }) 38 | } catch (error) { 39 | console.log(error) 40 | res.json({ 41 | status: "error" 42 | }) 43 | } 44 | }, 45 | update: async (req, res) => { 46 | try { 47 | const { title, content } = req.body 48 | const { id } = req.params 49 | const sql = "update posts set title = ?, content = ? where id = ?" 50 | const [rows, fields] = await pool.query(sql, [title, content, id]) 51 | res.json({ 52 | data: rows 53 | }) 54 | } catch (error) { 55 | console.log(error) 56 | res.json({ 57 | status: "error" 58 | }) 59 | } 60 | }, 61 | delete: async (req, res) => { 62 | try { 63 | const { id } = req.params 64 | const [rows, fields] = await pool.query("delete from posts where id = ?", [id]) 65 | res.json({ 66 | data: rows 67 | }) 68 | } catch (error) { 69 | console.log(error) 70 | res.json({ 71 | status: "error" 72 | }) 73 | } 74 | } 75 | 76 | } 77 | 78 | module.exports = postsController -------------------------------------------------------------------------------- /database/index.js: -------------------------------------------------------------------------------- 1 | const mysql = require('mysql2') 2 | 3 | const pool = mysql.createPool({ 4 | host: process.env.DB_HOST, 5 | user: process.env.DB_USERNAME, 6 | password: process.env.DB_PASSWORD, 7 | database: process.env.DB_DBNAME, 8 | waitForConnections: true, 9 | connectionLimit: 10, 10 | queueLimit: 0 11 | }); 12 | 13 | pool.getConnection((err, conn) => { 14 | if(err) console.log(err) 15 | console.log("Connected successfully") 16 | }) 17 | 18 | module.exports = pool.promise() -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const express = require("express") 2 | const app = express() 3 | 4 | require('dotenv').config() 5 | 6 | app.use(express.urlencoded({extended: false})) 7 | app.use(express.json()) 8 | 9 | const postsRouter = require('./routes/posts.router') 10 | const authRouter = require('./routes/auth.router') 11 | 12 | app.use("/api/v1/posts", postsRouter) 13 | app.use("/api/v1/auth", authRouter) 14 | 15 | const PORT = process.env.PORT || 5000 16 | 17 | app.listen(PORT, () => { 18 | console.log("Server is running....") 19 | }) -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodejs-mysql-api", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "bcrypt": "^5.1.0", 9 | "dotenv": "^16.0.1", 10 | "express": "^4.18.1", 11 | "googleapis": "^105.0.0", 12 | "jsonwebtoken": "^9.0.0", 13 | "mysql2": "^2.3.3" 14 | } 15 | }, 16 | "node_modules/@mapbox/node-pre-gyp": { 17 | "version": "1.0.10", 18 | "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", 19 | "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", 20 | "dependencies": { 21 | "detect-libc": "^2.0.0", 22 | "https-proxy-agent": "^5.0.0", 23 | "make-dir": "^3.1.0", 24 | "node-fetch": "^2.6.7", 25 | "nopt": "^5.0.0", 26 | "npmlog": "^5.0.1", 27 | "rimraf": "^3.0.2", 28 | "semver": "^7.3.5", 29 | "tar": "^6.1.11" 30 | }, 31 | "bin": { 32 | "node-pre-gyp": "bin/node-pre-gyp" 33 | } 34 | }, 35 | "node_modules/abbrev": { 36 | "version": "1.1.1", 37 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 38 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" 39 | }, 40 | "node_modules/abort-controller": { 41 | "version": "3.0.0", 42 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 43 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 44 | "dependencies": { 45 | "event-target-shim": "^5.0.0" 46 | }, 47 | "engines": { 48 | "node": ">=6.5" 49 | } 50 | }, 51 | "node_modules/accepts": { 52 | "version": "1.3.8", 53 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 54 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 55 | "dependencies": { 56 | "mime-types": "~2.1.34", 57 | "negotiator": "0.6.3" 58 | }, 59 | "engines": { 60 | "node": ">= 0.6" 61 | } 62 | }, 63 | "node_modules/agent-base": { 64 | "version": "6.0.2", 65 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 66 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 67 | "dependencies": { 68 | "debug": "4" 69 | }, 70 | "engines": { 71 | "node": ">= 6.0.0" 72 | } 73 | }, 74 | "node_modules/agent-base/node_modules/debug": { 75 | "version": "4.3.4", 76 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 77 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 78 | "dependencies": { 79 | "ms": "2.1.2" 80 | }, 81 | "engines": { 82 | "node": ">=6.0" 83 | }, 84 | "peerDependenciesMeta": { 85 | "supports-color": { 86 | "optional": true 87 | } 88 | } 89 | }, 90 | "node_modules/agent-base/node_modules/ms": { 91 | "version": "2.1.2", 92 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 93 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 94 | }, 95 | "node_modules/ansi-regex": { 96 | "version": "5.0.1", 97 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 98 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 99 | "engines": { 100 | "node": ">=8" 101 | } 102 | }, 103 | "node_modules/aproba": { 104 | "version": "2.0.0", 105 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", 106 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" 107 | }, 108 | "node_modules/are-we-there-yet": { 109 | "version": "2.0.0", 110 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", 111 | "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", 112 | "dependencies": { 113 | "delegates": "^1.0.0", 114 | "readable-stream": "^3.6.0" 115 | }, 116 | "engines": { 117 | "node": ">=10" 118 | } 119 | }, 120 | "node_modules/array-flatten": { 121 | "version": "1.1.1", 122 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 123 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 124 | }, 125 | "node_modules/arrify": { 126 | "version": "2.0.1", 127 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 128 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", 129 | "engines": { 130 | "node": ">=8" 131 | } 132 | }, 133 | "node_modules/balanced-match": { 134 | "version": "1.0.2", 135 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 136 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 137 | }, 138 | "node_modules/base64-js": { 139 | "version": "1.5.1", 140 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 141 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 142 | "funding": [ 143 | { 144 | "type": "github", 145 | "url": "https://github.com/sponsors/feross" 146 | }, 147 | { 148 | "type": "patreon", 149 | "url": "https://www.patreon.com/feross" 150 | }, 151 | { 152 | "type": "consulting", 153 | "url": "https://feross.org/support" 154 | } 155 | ] 156 | }, 157 | "node_modules/bcrypt": { 158 | "version": "5.1.0", 159 | "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", 160 | "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", 161 | "hasInstallScript": true, 162 | "dependencies": { 163 | "@mapbox/node-pre-gyp": "^1.0.10", 164 | "node-addon-api": "^5.0.0" 165 | }, 166 | "engines": { 167 | "node": ">= 10.0.0" 168 | } 169 | }, 170 | "node_modules/bignumber.js": { 171 | "version": "9.1.0", 172 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", 173 | "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==", 174 | "engines": { 175 | "node": "*" 176 | } 177 | }, 178 | "node_modules/body-parser": { 179 | "version": "1.20.0", 180 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", 181 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", 182 | "dependencies": { 183 | "bytes": "3.1.2", 184 | "content-type": "~1.0.4", 185 | "debug": "2.6.9", 186 | "depd": "2.0.0", 187 | "destroy": "1.2.0", 188 | "http-errors": "2.0.0", 189 | "iconv-lite": "0.4.24", 190 | "on-finished": "2.4.1", 191 | "qs": "6.10.3", 192 | "raw-body": "2.5.1", 193 | "type-is": "~1.6.18", 194 | "unpipe": "1.0.0" 195 | }, 196 | "engines": { 197 | "node": ">= 0.8", 198 | "npm": "1.2.8000 || >= 1.4.16" 199 | } 200 | }, 201 | "node_modules/brace-expansion": { 202 | "version": "1.1.11", 203 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 204 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 205 | "dependencies": { 206 | "balanced-match": "^1.0.0", 207 | "concat-map": "0.0.1" 208 | } 209 | }, 210 | "node_modules/buffer-equal-constant-time": { 211 | "version": "1.0.1", 212 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 213 | "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" 214 | }, 215 | "node_modules/bytes": { 216 | "version": "3.1.2", 217 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 218 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 219 | "engines": { 220 | "node": ">= 0.8" 221 | } 222 | }, 223 | "node_modules/call-bind": { 224 | "version": "1.0.2", 225 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 226 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 227 | "dependencies": { 228 | "function-bind": "^1.1.1", 229 | "get-intrinsic": "^1.0.2" 230 | }, 231 | "funding": { 232 | "url": "https://github.com/sponsors/ljharb" 233 | } 234 | }, 235 | "node_modules/chownr": { 236 | "version": "2.0.0", 237 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", 238 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", 239 | "engines": { 240 | "node": ">=10" 241 | } 242 | }, 243 | "node_modules/color-support": { 244 | "version": "1.1.3", 245 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", 246 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", 247 | "bin": { 248 | "color-support": "bin.js" 249 | } 250 | }, 251 | "node_modules/concat-map": { 252 | "version": "0.0.1", 253 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 254 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 255 | }, 256 | "node_modules/console-control-strings": { 257 | "version": "1.1.0", 258 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 259 | "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" 260 | }, 261 | "node_modules/content-disposition": { 262 | "version": "0.5.4", 263 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 264 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 265 | "dependencies": { 266 | "safe-buffer": "5.2.1" 267 | }, 268 | "engines": { 269 | "node": ">= 0.6" 270 | } 271 | }, 272 | "node_modules/content-type": { 273 | "version": "1.0.4", 274 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 275 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 276 | "engines": { 277 | "node": ">= 0.6" 278 | } 279 | }, 280 | "node_modules/cookie": { 281 | "version": "0.5.0", 282 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 283 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 284 | "engines": { 285 | "node": ">= 0.6" 286 | } 287 | }, 288 | "node_modules/cookie-signature": { 289 | "version": "1.0.6", 290 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 291 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 292 | }, 293 | "node_modules/debug": { 294 | "version": "2.6.9", 295 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 296 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 297 | "dependencies": { 298 | "ms": "2.0.0" 299 | } 300 | }, 301 | "node_modules/delegates": { 302 | "version": "1.0.0", 303 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 304 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" 305 | }, 306 | "node_modules/denque": { 307 | "version": "2.1.0", 308 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", 309 | "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", 310 | "engines": { 311 | "node": ">=0.10" 312 | } 313 | }, 314 | "node_modules/depd": { 315 | "version": "2.0.0", 316 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 317 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 318 | "engines": { 319 | "node": ">= 0.8" 320 | } 321 | }, 322 | "node_modules/destroy": { 323 | "version": "1.2.0", 324 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 325 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", 326 | "engines": { 327 | "node": ">= 0.8", 328 | "npm": "1.2.8000 || >= 1.4.16" 329 | } 330 | }, 331 | "node_modules/detect-libc": { 332 | "version": "2.0.1", 333 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", 334 | "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", 335 | "engines": { 336 | "node": ">=8" 337 | } 338 | }, 339 | "node_modules/dotenv": { 340 | "version": "16.0.1", 341 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", 342 | "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", 343 | "engines": { 344 | "node": ">=12" 345 | } 346 | }, 347 | "node_modules/ecdsa-sig-formatter": { 348 | "version": "1.0.11", 349 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 350 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 351 | "dependencies": { 352 | "safe-buffer": "^5.0.1" 353 | } 354 | }, 355 | "node_modules/ee-first": { 356 | "version": "1.1.1", 357 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 358 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 359 | }, 360 | "node_modules/emoji-regex": { 361 | "version": "8.0.0", 362 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 363 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 364 | }, 365 | "node_modules/encodeurl": { 366 | "version": "1.0.2", 367 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 368 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", 369 | "engines": { 370 | "node": ">= 0.8" 371 | } 372 | }, 373 | "node_modules/escape-html": { 374 | "version": "1.0.3", 375 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 376 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 377 | }, 378 | "node_modules/etag": { 379 | "version": "1.8.1", 380 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 381 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 382 | "engines": { 383 | "node": ">= 0.6" 384 | } 385 | }, 386 | "node_modules/event-target-shim": { 387 | "version": "5.0.1", 388 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 389 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 390 | "engines": { 391 | "node": ">=6" 392 | } 393 | }, 394 | "node_modules/express": { 395 | "version": "4.18.1", 396 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", 397 | "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", 398 | "dependencies": { 399 | "accepts": "~1.3.8", 400 | "array-flatten": "1.1.1", 401 | "body-parser": "1.20.0", 402 | "content-disposition": "0.5.4", 403 | "content-type": "~1.0.4", 404 | "cookie": "0.5.0", 405 | "cookie-signature": "1.0.6", 406 | "debug": "2.6.9", 407 | "depd": "2.0.0", 408 | "encodeurl": "~1.0.2", 409 | "escape-html": "~1.0.3", 410 | "etag": "~1.8.1", 411 | "finalhandler": "1.2.0", 412 | "fresh": "0.5.2", 413 | "http-errors": "2.0.0", 414 | "merge-descriptors": "1.0.1", 415 | "methods": "~1.1.2", 416 | "on-finished": "2.4.1", 417 | "parseurl": "~1.3.3", 418 | "path-to-regexp": "0.1.7", 419 | "proxy-addr": "~2.0.7", 420 | "qs": "6.10.3", 421 | "range-parser": "~1.2.1", 422 | "safe-buffer": "5.2.1", 423 | "send": "0.18.0", 424 | "serve-static": "1.15.0", 425 | "setprototypeof": "1.2.0", 426 | "statuses": "2.0.1", 427 | "type-is": "~1.6.18", 428 | "utils-merge": "1.0.1", 429 | "vary": "~1.1.2" 430 | }, 431 | "engines": { 432 | "node": ">= 0.10.0" 433 | } 434 | }, 435 | "node_modules/extend": { 436 | "version": "3.0.2", 437 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 438 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 439 | }, 440 | "node_modules/fast-text-encoding": { 441 | "version": "1.0.4", 442 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.4.tgz", 443 | "integrity": "sha512-x6lDDm/tBAzX9kmsPcZsNbvDs3Zey3+scsxaZElS8xWLgUMAg/oFLeewfUz0mu1CblHhhsu15jGkraldkFh8KQ==" 444 | }, 445 | "node_modules/finalhandler": { 446 | "version": "1.2.0", 447 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 448 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 449 | "dependencies": { 450 | "debug": "2.6.9", 451 | "encodeurl": "~1.0.2", 452 | "escape-html": "~1.0.3", 453 | "on-finished": "2.4.1", 454 | "parseurl": "~1.3.3", 455 | "statuses": "2.0.1", 456 | "unpipe": "~1.0.0" 457 | }, 458 | "engines": { 459 | "node": ">= 0.8" 460 | } 461 | }, 462 | "node_modules/forwarded": { 463 | "version": "0.2.0", 464 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 465 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 466 | "engines": { 467 | "node": ">= 0.6" 468 | } 469 | }, 470 | "node_modules/fresh": { 471 | "version": "0.5.2", 472 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 473 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", 474 | "engines": { 475 | "node": ">= 0.6" 476 | } 477 | }, 478 | "node_modules/fs-minipass": { 479 | "version": "2.1.0", 480 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", 481 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 482 | "dependencies": { 483 | "minipass": "^3.0.0" 484 | }, 485 | "engines": { 486 | "node": ">= 8" 487 | } 488 | }, 489 | "node_modules/fs-minipass/node_modules/minipass": { 490 | "version": "3.3.6", 491 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 492 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 493 | "dependencies": { 494 | "yallist": "^4.0.0" 495 | }, 496 | "engines": { 497 | "node": ">=8" 498 | } 499 | }, 500 | "node_modules/fs.realpath": { 501 | "version": "1.0.0", 502 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 503 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 504 | }, 505 | "node_modules/function-bind": { 506 | "version": "1.1.1", 507 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 508 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 509 | }, 510 | "node_modules/gauge": { 511 | "version": "3.0.2", 512 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", 513 | "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", 514 | "dependencies": { 515 | "aproba": "^1.0.3 || ^2.0.0", 516 | "color-support": "^1.1.2", 517 | "console-control-strings": "^1.0.0", 518 | "has-unicode": "^2.0.1", 519 | "object-assign": "^4.1.1", 520 | "signal-exit": "^3.0.0", 521 | "string-width": "^4.2.3", 522 | "strip-ansi": "^6.0.1", 523 | "wide-align": "^1.1.2" 524 | }, 525 | "engines": { 526 | "node": ">=10" 527 | } 528 | }, 529 | "node_modules/gaxios": { 530 | "version": "5.0.1", 531 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.1.tgz", 532 | "integrity": "sha512-keK47BGKHyyOVQxgcUaSaFvr3ehZYAlvhvpHXy0YB2itzZef+GqZR8TBsfVRWghdwlKrYsn+8L8i3eblF7Oviw==", 533 | "dependencies": { 534 | "extend": "^3.0.2", 535 | "https-proxy-agent": "^5.0.0", 536 | "is-stream": "^2.0.0", 537 | "node-fetch": "^2.6.7" 538 | }, 539 | "engines": { 540 | "node": ">=12" 541 | } 542 | }, 543 | "node_modules/gcp-metadata": { 544 | "version": "5.0.0", 545 | "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.0.tgz", 546 | "integrity": "sha512-gfwuX3yA3nNsHSWUL4KG90UulNiq922Ukj3wLTrcnX33BB7PwB1o0ubR8KVvXu9nJH+P5w1j2SQSNNqto+H0DA==", 547 | "dependencies": { 548 | "gaxios": "^5.0.0", 549 | "json-bigint": "^1.0.0" 550 | }, 551 | "engines": { 552 | "node": ">=12" 553 | } 554 | }, 555 | "node_modules/generate-function": { 556 | "version": "2.3.1", 557 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", 558 | "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", 559 | "dependencies": { 560 | "is-property": "^1.0.2" 561 | } 562 | }, 563 | "node_modules/get-intrinsic": { 564 | "version": "1.1.2", 565 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", 566 | "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", 567 | "dependencies": { 568 | "function-bind": "^1.1.1", 569 | "has": "^1.0.3", 570 | "has-symbols": "^1.0.3" 571 | }, 572 | "funding": { 573 | "url": "https://github.com/sponsors/ljharb" 574 | } 575 | }, 576 | "node_modules/glob": { 577 | "version": "7.2.3", 578 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 579 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 580 | "dependencies": { 581 | "fs.realpath": "^1.0.0", 582 | "inflight": "^1.0.4", 583 | "inherits": "2", 584 | "minimatch": "^3.1.1", 585 | "once": "^1.3.0", 586 | "path-is-absolute": "^1.0.0" 587 | }, 588 | "engines": { 589 | "node": "*" 590 | }, 591 | "funding": { 592 | "url": "https://github.com/sponsors/isaacs" 593 | } 594 | }, 595 | "node_modules/google-auth-library": { 596 | "version": "8.1.1", 597 | "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.1.1.tgz", 598 | "integrity": "sha512-eG3pCfrLgVJe19KhAeZwW0m1LplNEo0FX1GboWf3hu18zD2jq8TUH2K8900AB2YRAuJ7A+1aSXDp1BODjwwRzg==", 599 | "dependencies": { 600 | "arrify": "^2.0.0", 601 | "base64-js": "^1.3.0", 602 | "ecdsa-sig-formatter": "^1.0.11", 603 | "fast-text-encoding": "^1.0.0", 604 | "gaxios": "^5.0.0", 605 | "gcp-metadata": "^5.0.0", 606 | "gtoken": "^6.0.0", 607 | "jws": "^4.0.0", 608 | "lru-cache": "^6.0.0" 609 | }, 610 | "engines": { 611 | "node": ">=12" 612 | } 613 | }, 614 | "node_modules/google-p12-pem": { 615 | "version": "4.0.0", 616 | "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.0.tgz", 617 | "integrity": "sha512-lRTMn5ElBdDixv4a86bixejPSRk1boRtUowNepeKEVvYiFlkLuAJUVpEz6PfObDHYEKnZWq/9a2zC98xu62A9w==", 618 | "dependencies": { 619 | "node-forge": "^1.3.1" 620 | }, 621 | "bin": { 622 | "gp12-pem": "build/src/bin/gp12-pem.js" 623 | }, 624 | "engines": { 625 | "node": ">=12.0.0" 626 | } 627 | }, 628 | "node_modules/googleapis": { 629 | "version": "105.0.0", 630 | "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-105.0.0.tgz", 631 | "integrity": "sha512-wH/jU/6QpqwsjTKj4vfKZz97ne7xT7BBbKwzQEwnbsG8iH9Seyw19P+AuLJcxNNrmgblwLqfr3LORg4Okat1BQ==", 632 | "dependencies": { 633 | "google-auth-library": "^8.0.2", 634 | "googleapis-common": "^6.0.0" 635 | }, 636 | "engines": { 637 | "node": ">=12.0.0" 638 | } 639 | }, 640 | "node_modules/googleapis-common": { 641 | "version": "6.0.0", 642 | "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.0.tgz", 643 | "integrity": "sha512-ieZouiuoyTHCckOgu7NU+n5UvA8kAzGTRRMQD+3bobCX9npnRvYDmTHZjM5lQLzf0cGz1xQ1ABCxGQ+xSsMkCw==", 644 | "dependencies": { 645 | "extend": "^3.0.2", 646 | "gaxios": "^4.0.0", 647 | "google-auth-library": "^8.0.2", 648 | "qs": "^6.7.0", 649 | "url-template": "^2.0.8", 650 | "uuid": "^8.0.0" 651 | }, 652 | "engines": { 653 | "node": ">=12.0.0" 654 | } 655 | }, 656 | "node_modules/googleapis-common/node_modules/gaxios": { 657 | "version": "4.3.3", 658 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", 659 | "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", 660 | "dependencies": { 661 | "abort-controller": "^3.0.0", 662 | "extend": "^3.0.2", 663 | "https-proxy-agent": "^5.0.0", 664 | "is-stream": "^2.0.0", 665 | "node-fetch": "^2.6.7" 666 | }, 667 | "engines": { 668 | "node": ">=10" 669 | } 670 | }, 671 | "node_modules/gtoken": { 672 | "version": "6.1.0", 673 | "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.0.tgz", 674 | "integrity": "sha512-WPZcFw34wh2LUvbCUWI70GDhOlO7qHpSvFHFqq7d3Wvsf8dIJedE0lnUdOmsKuC0NgflKmF0LxIF38vsGeHHiQ==", 675 | "dependencies": { 676 | "gaxios": "^4.0.0", 677 | "google-p12-pem": "^4.0.0", 678 | "jws": "^4.0.0" 679 | }, 680 | "engines": { 681 | "node": ">=12.0.0" 682 | } 683 | }, 684 | "node_modules/gtoken/node_modules/gaxios": { 685 | "version": "4.3.3", 686 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", 687 | "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", 688 | "dependencies": { 689 | "abort-controller": "^3.0.0", 690 | "extend": "^3.0.2", 691 | "https-proxy-agent": "^5.0.0", 692 | "is-stream": "^2.0.0", 693 | "node-fetch": "^2.6.7" 694 | }, 695 | "engines": { 696 | "node": ">=10" 697 | } 698 | }, 699 | "node_modules/has": { 700 | "version": "1.0.3", 701 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 702 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 703 | "dependencies": { 704 | "function-bind": "^1.1.1" 705 | }, 706 | "engines": { 707 | "node": ">= 0.4.0" 708 | } 709 | }, 710 | "node_modules/has-symbols": { 711 | "version": "1.0.3", 712 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 713 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 714 | "engines": { 715 | "node": ">= 0.4" 716 | }, 717 | "funding": { 718 | "url": "https://github.com/sponsors/ljharb" 719 | } 720 | }, 721 | "node_modules/has-unicode": { 722 | "version": "2.0.1", 723 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 724 | "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" 725 | }, 726 | "node_modules/http-errors": { 727 | "version": "2.0.0", 728 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 729 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 730 | "dependencies": { 731 | "depd": "2.0.0", 732 | "inherits": "2.0.4", 733 | "setprototypeof": "1.2.0", 734 | "statuses": "2.0.1", 735 | "toidentifier": "1.0.1" 736 | }, 737 | "engines": { 738 | "node": ">= 0.8" 739 | } 740 | }, 741 | "node_modules/https-proxy-agent": { 742 | "version": "5.0.1", 743 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 744 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 745 | "dependencies": { 746 | "agent-base": "6", 747 | "debug": "4" 748 | }, 749 | "engines": { 750 | "node": ">= 6" 751 | } 752 | }, 753 | "node_modules/https-proxy-agent/node_modules/debug": { 754 | "version": "4.3.4", 755 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 756 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 757 | "dependencies": { 758 | "ms": "2.1.2" 759 | }, 760 | "engines": { 761 | "node": ">=6.0" 762 | }, 763 | "peerDependenciesMeta": { 764 | "supports-color": { 765 | "optional": true 766 | } 767 | } 768 | }, 769 | "node_modules/https-proxy-agent/node_modules/ms": { 770 | "version": "2.1.2", 771 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 772 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 773 | }, 774 | "node_modules/iconv-lite": { 775 | "version": "0.4.24", 776 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 777 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 778 | "dependencies": { 779 | "safer-buffer": ">= 2.1.2 < 3" 780 | }, 781 | "engines": { 782 | "node": ">=0.10.0" 783 | } 784 | }, 785 | "node_modules/inflight": { 786 | "version": "1.0.6", 787 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 788 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 789 | "dependencies": { 790 | "once": "^1.3.0", 791 | "wrappy": "1" 792 | } 793 | }, 794 | "node_modules/inherits": { 795 | "version": "2.0.4", 796 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 797 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 798 | }, 799 | "node_modules/ipaddr.js": { 800 | "version": "1.9.1", 801 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 802 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 803 | "engines": { 804 | "node": ">= 0.10" 805 | } 806 | }, 807 | "node_modules/is-fullwidth-code-point": { 808 | "version": "3.0.0", 809 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 810 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 811 | "engines": { 812 | "node": ">=8" 813 | } 814 | }, 815 | "node_modules/is-property": { 816 | "version": "1.0.2", 817 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 818 | "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" 819 | }, 820 | "node_modules/is-stream": { 821 | "version": "2.0.1", 822 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 823 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 824 | "engines": { 825 | "node": ">=8" 826 | }, 827 | "funding": { 828 | "url": "https://github.com/sponsors/sindresorhus" 829 | } 830 | }, 831 | "node_modules/json-bigint": { 832 | "version": "1.0.0", 833 | "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 834 | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 835 | "dependencies": { 836 | "bignumber.js": "^9.0.0" 837 | } 838 | }, 839 | "node_modules/jsonwebtoken": { 840 | "version": "9.0.0", 841 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", 842 | "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", 843 | "dependencies": { 844 | "jws": "^3.2.2", 845 | "lodash": "^4.17.21", 846 | "ms": "^2.1.1", 847 | "semver": "^7.3.8" 848 | }, 849 | "engines": { 850 | "node": ">=12", 851 | "npm": ">=6" 852 | } 853 | }, 854 | "node_modules/jsonwebtoken/node_modules/jwa": { 855 | "version": "1.4.1", 856 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 857 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 858 | "dependencies": { 859 | "buffer-equal-constant-time": "1.0.1", 860 | "ecdsa-sig-formatter": "1.0.11", 861 | "safe-buffer": "^5.0.1" 862 | } 863 | }, 864 | "node_modules/jsonwebtoken/node_modules/jws": { 865 | "version": "3.2.2", 866 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 867 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 868 | "dependencies": { 869 | "jwa": "^1.4.1", 870 | "safe-buffer": "^5.0.1" 871 | } 872 | }, 873 | "node_modules/jsonwebtoken/node_modules/ms": { 874 | "version": "2.1.3", 875 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 876 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 877 | }, 878 | "node_modules/jwa": { 879 | "version": "2.0.0", 880 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", 881 | "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", 882 | "dependencies": { 883 | "buffer-equal-constant-time": "1.0.1", 884 | "ecdsa-sig-formatter": "1.0.11", 885 | "safe-buffer": "^5.0.1" 886 | } 887 | }, 888 | "node_modules/jws": { 889 | "version": "4.0.0", 890 | "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 891 | "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 892 | "dependencies": { 893 | "jwa": "^2.0.0", 894 | "safe-buffer": "^5.0.1" 895 | } 896 | }, 897 | "node_modules/lodash": { 898 | "version": "4.17.21", 899 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 900 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 901 | }, 902 | "node_modules/long": { 903 | "version": "4.0.0", 904 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 905 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 906 | }, 907 | "node_modules/lru-cache": { 908 | "version": "6.0.0", 909 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 910 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 911 | "dependencies": { 912 | "yallist": "^4.0.0" 913 | }, 914 | "engines": { 915 | "node": ">=10" 916 | } 917 | }, 918 | "node_modules/make-dir": { 919 | "version": "3.1.0", 920 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 921 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 922 | "dependencies": { 923 | "semver": "^6.0.0" 924 | }, 925 | "engines": { 926 | "node": ">=8" 927 | }, 928 | "funding": { 929 | "url": "https://github.com/sponsors/sindresorhus" 930 | } 931 | }, 932 | "node_modules/make-dir/node_modules/semver": { 933 | "version": "6.3.0", 934 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 935 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 936 | "bin": { 937 | "semver": "bin/semver.js" 938 | } 939 | }, 940 | "node_modules/media-typer": { 941 | "version": "0.3.0", 942 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 943 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", 944 | "engines": { 945 | "node": ">= 0.6" 946 | } 947 | }, 948 | "node_modules/merge-descriptors": { 949 | "version": "1.0.1", 950 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 951 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" 952 | }, 953 | "node_modules/methods": { 954 | "version": "1.1.2", 955 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 956 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", 957 | "engines": { 958 | "node": ">= 0.6" 959 | } 960 | }, 961 | "node_modules/mime": { 962 | "version": "1.6.0", 963 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 964 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 965 | "bin": { 966 | "mime": "cli.js" 967 | }, 968 | "engines": { 969 | "node": ">=4" 970 | } 971 | }, 972 | "node_modules/mime-db": { 973 | "version": "1.52.0", 974 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 975 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 976 | "engines": { 977 | "node": ">= 0.6" 978 | } 979 | }, 980 | "node_modules/mime-types": { 981 | "version": "2.1.35", 982 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 983 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 984 | "dependencies": { 985 | "mime-db": "1.52.0" 986 | }, 987 | "engines": { 988 | "node": ">= 0.6" 989 | } 990 | }, 991 | "node_modules/minimatch": { 992 | "version": "3.1.2", 993 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 994 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 995 | "dependencies": { 996 | "brace-expansion": "^1.1.7" 997 | }, 998 | "engines": { 999 | "node": "*" 1000 | } 1001 | }, 1002 | "node_modules/minipass": { 1003 | "version": "4.0.0", 1004 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", 1005 | "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", 1006 | "dependencies": { 1007 | "yallist": "^4.0.0" 1008 | }, 1009 | "engines": { 1010 | "node": ">=8" 1011 | } 1012 | }, 1013 | "node_modules/minizlib": { 1014 | "version": "2.1.2", 1015 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", 1016 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 1017 | "dependencies": { 1018 | "minipass": "^3.0.0", 1019 | "yallist": "^4.0.0" 1020 | }, 1021 | "engines": { 1022 | "node": ">= 8" 1023 | } 1024 | }, 1025 | "node_modules/minizlib/node_modules/minipass": { 1026 | "version": "3.3.6", 1027 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1028 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1029 | "dependencies": { 1030 | "yallist": "^4.0.0" 1031 | }, 1032 | "engines": { 1033 | "node": ">=8" 1034 | } 1035 | }, 1036 | "node_modules/mkdirp": { 1037 | "version": "1.0.4", 1038 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 1039 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", 1040 | "bin": { 1041 | "mkdirp": "bin/cmd.js" 1042 | }, 1043 | "engines": { 1044 | "node": ">=10" 1045 | } 1046 | }, 1047 | "node_modules/ms": { 1048 | "version": "2.0.0", 1049 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1050 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 1051 | }, 1052 | "node_modules/mysql2": { 1053 | "version": "2.3.3", 1054 | "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", 1055 | "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", 1056 | "dependencies": { 1057 | "denque": "^2.0.1", 1058 | "generate-function": "^2.3.1", 1059 | "iconv-lite": "^0.6.3", 1060 | "long": "^4.0.0", 1061 | "lru-cache": "^6.0.0", 1062 | "named-placeholders": "^1.1.2", 1063 | "seq-queue": "^0.0.5", 1064 | "sqlstring": "^2.3.2" 1065 | }, 1066 | "engines": { 1067 | "node": ">= 8.0" 1068 | } 1069 | }, 1070 | "node_modules/mysql2/node_modules/iconv-lite": { 1071 | "version": "0.6.3", 1072 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 1073 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 1074 | "dependencies": { 1075 | "safer-buffer": ">= 2.1.2 < 3.0.0" 1076 | }, 1077 | "engines": { 1078 | "node": ">=0.10.0" 1079 | } 1080 | }, 1081 | "node_modules/named-placeholders": { 1082 | "version": "1.1.2", 1083 | "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", 1084 | "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", 1085 | "dependencies": { 1086 | "lru-cache": "^4.1.3" 1087 | }, 1088 | "engines": { 1089 | "node": ">=6.0.0" 1090 | } 1091 | }, 1092 | "node_modules/named-placeholders/node_modules/lru-cache": { 1093 | "version": "4.1.5", 1094 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 1095 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 1096 | "dependencies": { 1097 | "pseudomap": "^1.0.2", 1098 | "yallist": "^2.1.2" 1099 | } 1100 | }, 1101 | "node_modules/named-placeholders/node_modules/yallist": { 1102 | "version": "2.1.2", 1103 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 1104 | "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" 1105 | }, 1106 | "node_modules/negotiator": { 1107 | "version": "0.6.3", 1108 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 1109 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 1110 | "engines": { 1111 | "node": ">= 0.6" 1112 | } 1113 | }, 1114 | "node_modules/node-addon-api": { 1115 | "version": "5.0.0", 1116 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", 1117 | "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==" 1118 | }, 1119 | "node_modules/node-fetch": { 1120 | "version": "2.6.7", 1121 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 1122 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 1123 | "dependencies": { 1124 | "whatwg-url": "^5.0.0" 1125 | }, 1126 | "engines": { 1127 | "node": "4.x || >=6.0.0" 1128 | }, 1129 | "peerDependencies": { 1130 | "encoding": "^0.1.0" 1131 | }, 1132 | "peerDependenciesMeta": { 1133 | "encoding": { 1134 | "optional": true 1135 | } 1136 | } 1137 | }, 1138 | "node_modules/node-forge": { 1139 | "version": "1.3.1", 1140 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 1141 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", 1142 | "engines": { 1143 | "node": ">= 6.13.0" 1144 | } 1145 | }, 1146 | "node_modules/nopt": { 1147 | "version": "5.0.0", 1148 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", 1149 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", 1150 | "dependencies": { 1151 | "abbrev": "1" 1152 | }, 1153 | "bin": { 1154 | "nopt": "bin/nopt.js" 1155 | }, 1156 | "engines": { 1157 | "node": ">=6" 1158 | } 1159 | }, 1160 | "node_modules/npmlog": { 1161 | "version": "5.0.1", 1162 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", 1163 | "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", 1164 | "dependencies": { 1165 | "are-we-there-yet": "^2.0.0", 1166 | "console-control-strings": "^1.1.0", 1167 | "gauge": "^3.0.0", 1168 | "set-blocking": "^2.0.0" 1169 | } 1170 | }, 1171 | "node_modules/object-assign": { 1172 | "version": "4.1.1", 1173 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1174 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1175 | "engines": { 1176 | "node": ">=0.10.0" 1177 | } 1178 | }, 1179 | "node_modules/object-inspect": { 1180 | "version": "1.12.2", 1181 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", 1182 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", 1183 | "funding": { 1184 | "url": "https://github.com/sponsors/ljharb" 1185 | } 1186 | }, 1187 | "node_modules/on-finished": { 1188 | "version": "2.4.1", 1189 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 1190 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 1191 | "dependencies": { 1192 | "ee-first": "1.1.1" 1193 | }, 1194 | "engines": { 1195 | "node": ">= 0.8" 1196 | } 1197 | }, 1198 | "node_modules/once": { 1199 | "version": "1.4.0", 1200 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1201 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1202 | "dependencies": { 1203 | "wrappy": "1" 1204 | } 1205 | }, 1206 | "node_modules/parseurl": { 1207 | "version": "1.3.3", 1208 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1209 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 1210 | "engines": { 1211 | "node": ">= 0.8" 1212 | } 1213 | }, 1214 | "node_modules/path-is-absolute": { 1215 | "version": "1.0.1", 1216 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1217 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1218 | "engines": { 1219 | "node": ">=0.10.0" 1220 | } 1221 | }, 1222 | "node_modules/path-to-regexp": { 1223 | "version": "0.1.7", 1224 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1225 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" 1226 | }, 1227 | "node_modules/proxy-addr": { 1228 | "version": "2.0.7", 1229 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1230 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1231 | "dependencies": { 1232 | "forwarded": "0.2.0", 1233 | "ipaddr.js": "1.9.1" 1234 | }, 1235 | "engines": { 1236 | "node": ">= 0.10" 1237 | } 1238 | }, 1239 | "node_modules/pseudomap": { 1240 | "version": "1.0.2", 1241 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1242 | "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" 1243 | }, 1244 | "node_modules/qs": { 1245 | "version": "6.10.3", 1246 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 1247 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 1248 | "dependencies": { 1249 | "side-channel": "^1.0.4" 1250 | }, 1251 | "engines": { 1252 | "node": ">=0.6" 1253 | }, 1254 | "funding": { 1255 | "url": "https://github.com/sponsors/ljharb" 1256 | } 1257 | }, 1258 | "node_modules/range-parser": { 1259 | "version": "1.2.1", 1260 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1261 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 1262 | "engines": { 1263 | "node": ">= 0.6" 1264 | } 1265 | }, 1266 | "node_modules/raw-body": { 1267 | "version": "2.5.1", 1268 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 1269 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 1270 | "dependencies": { 1271 | "bytes": "3.1.2", 1272 | "http-errors": "2.0.0", 1273 | "iconv-lite": "0.4.24", 1274 | "unpipe": "1.0.0" 1275 | }, 1276 | "engines": { 1277 | "node": ">= 0.8" 1278 | } 1279 | }, 1280 | "node_modules/readable-stream": { 1281 | "version": "3.6.0", 1282 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1283 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1284 | "dependencies": { 1285 | "inherits": "^2.0.3", 1286 | "string_decoder": "^1.1.1", 1287 | "util-deprecate": "^1.0.1" 1288 | }, 1289 | "engines": { 1290 | "node": ">= 6" 1291 | } 1292 | }, 1293 | "node_modules/rimraf": { 1294 | "version": "3.0.2", 1295 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1296 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1297 | "dependencies": { 1298 | "glob": "^7.1.3" 1299 | }, 1300 | "bin": { 1301 | "rimraf": "bin.js" 1302 | }, 1303 | "funding": { 1304 | "url": "https://github.com/sponsors/isaacs" 1305 | } 1306 | }, 1307 | "node_modules/safe-buffer": { 1308 | "version": "5.2.1", 1309 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1310 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1311 | "funding": [ 1312 | { 1313 | "type": "github", 1314 | "url": "https://github.com/sponsors/feross" 1315 | }, 1316 | { 1317 | "type": "patreon", 1318 | "url": "https://www.patreon.com/feross" 1319 | }, 1320 | { 1321 | "type": "consulting", 1322 | "url": "https://feross.org/support" 1323 | } 1324 | ] 1325 | }, 1326 | "node_modules/safer-buffer": { 1327 | "version": "2.1.2", 1328 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1329 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1330 | }, 1331 | "node_modules/semver": { 1332 | "version": "7.3.8", 1333 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", 1334 | "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", 1335 | "dependencies": { 1336 | "lru-cache": "^6.0.0" 1337 | }, 1338 | "bin": { 1339 | "semver": "bin/semver.js" 1340 | }, 1341 | "engines": { 1342 | "node": ">=10" 1343 | } 1344 | }, 1345 | "node_modules/send": { 1346 | "version": "0.18.0", 1347 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 1348 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 1349 | "dependencies": { 1350 | "debug": "2.6.9", 1351 | "depd": "2.0.0", 1352 | "destroy": "1.2.0", 1353 | "encodeurl": "~1.0.2", 1354 | "escape-html": "~1.0.3", 1355 | "etag": "~1.8.1", 1356 | "fresh": "0.5.2", 1357 | "http-errors": "2.0.0", 1358 | "mime": "1.6.0", 1359 | "ms": "2.1.3", 1360 | "on-finished": "2.4.1", 1361 | "range-parser": "~1.2.1", 1362 | "statuses": "2.0.1" 1363 | }, 1364 | "engines": { 1365 | "node": ">= 0.8.0" 1366 | } 1367 | }, 1368 | "node_modules/send/node_modules/ms": { 1369 | "version": "2.1.3", 1370 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1371 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1372 | }, 1373 | "node_modules/seq-queue": { 1374 | "version": "0.0.5", 1375 | "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", 1376 | "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" 1377 | }, 1378 | "node_modules/serve-static": { 1379 | "version": "1.15.0", 1380 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 1381 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 1382 | "dependencies": { 1383 | "encodeurl": "~1.0.2", 1384 | "escape-html": "~1.0.3", 1385 | "parseurl": "~1.3.3", 1386 | "send": "0.18.0" 1387 | }, 1388 | "engines": { 1389 | "node": ">= 0.8.0" 1390 | } 1391 | }, 1392 | "node_modules/set-blocking": { 1393 | "version": "2.0.0", 1394 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1395 | "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" 1396 | }, 1397 | "node_modules/setprototypeof": { 1398 | "version": "1.2.0", 1399 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 1400 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 1401 | }, 1402 | "node_modules/side-channel": { 1403 | "version": "1.0.4", 1404 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1405 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1406 | "dependencies": { 1407 | "call-bind": "^1.0.0", 1408 | "get-intrinsic": "^1.0.2", 1409 | "object-inspect": "^1.9.0" 1410 | }, 1411 | "funding": { 1412 | "url": "https://github.com/sponsors/ljharb" 1413 | } 1414 | }, 1415 | "node_modules/signal-exit": { 1416 | "version": "3.0.7", 1417 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 1418 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 1419 | }, 1420 | "node_modules/sqlstring": { 1421 | "version": "2.3.3", 1422 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", 1423 | "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", 1424 | "engines": { 1425 | "node": ">= 0.6" 1426 | } 1427 | }, 1428 | "node_modules/statuses": { 1429 | "version": "2.0.1", 1430 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 1431 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", 1432 | "engines": { 1433 | "node": ">= 0.8" 1434 | } 1435 | }, 1436 | "node_modules/string_decoder": { 1437 | "version": "1.3.0", 1438 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1439 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1440 | "dependencies": { 1441 | "safe-buffer": "~5.2.0" 1442 | } 1443 | }, 1444 | "node_modules/string-width": { 1445 | "version": "4.2.3", 1446 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1447 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1448 | "dependencies": { 1449 | "emoji-regex": "^8.0.0", 1450 | "is-fullwidth-code-point": "^3.0.0", 1451 | "strip-ansi": "^6.0.1" 1452 | }, 1453 | "engines": { 1454 | "node": ">=8" 1455 | } 1456 | }, 1457 | "node_modules/strip-ansi": { 1458 | "version": "6.0.1", 1459 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1460 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1461 | "dependencies": { 1462 | "ansi-regex": "^5.0.1" 1463 | }, 1464 | "engines": { 1465 | "node": ">=8" 1466 | } 1467 | }, 1468 | "node_modules/tar": { 1469 | "version": "6.1.13", 1470 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", 1471 | "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", 1472 | "dependencies": { 1473 | "chownr": "^2.0.0", 1474 | "fs-minipass": "^2.0.0", 1475 | "minipass": "^4.0.0", 1476 | "minizlib": "^2.1.1", 1477 | "mkdirp": "^1.0.3", 1478 | "yallist": "^4.0.0" 1479 | }, 1480 | "engines": { 1481 | "node": ">=10" 1482 | } 1483 | }, 1484 | "node_modules/toidentifier": { 1485 | "version": "1.0.1", 1486 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 1487 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 1488 | "engines": { 1489 | "node": ">=0.6" 1490 | } 1491 | }, 1492 | "node_modules/tr46": { 1493 | "version": "0.0.3", 1494 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 1495 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 1496 | }, 1497 | "node_modules/type-is": { 1498 | "version": "1.6.18", 1499 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1500 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1501 | "dependencies": { 1502 | "media-typer": "0.3.0", 1503 | "mime-types": "~2.1.24" 1504 | }, 1505 | "engines": { 1506 | "node": ">= 0.6" 1507 | } 1508 | }, 1509 | "node_modules/unpipe": { 1510 | "version": "1.0.0", 1511 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1512 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 1513 | "engines": { 1514 | "node": ">= 0.8" 1515 | } 1516 | }, 1517 | "node_modules/url-template": { 1518 | "version": "2.0.8", 1519 | "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", 1520 | "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" 1521 | }, 1522 | "node_modules/util-deprecate": { 1523 | "version": "1.0.2", 1524 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1525 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1526 | }, 1527 | "node_modules/utils-merge": { 1528 | "version": "1.0.1", 1529 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1530 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", 1531 | "engines": { 1532 | "node": ">= 0.4.0" 1533 | } 1534 | }, 1535 | "node_modules/uuid": { 1536 | "version": "8.3.2", 1537 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 1538 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", 1539 | "bin": { 1540 | "uuid": "dist/bin/uuid" 1541 | } 1542 | }, 1543 | "node_modules/vary": { 1544 | "version": "1.1.2", 1545 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1546 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 1547 | "engines": { 1548 | "node": ">= 0.8" 1549 | } 1550 | }, 1551 | "node_modules/webidl-conversions": { 1552 | "version": "3.0.1", 1553 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 1554 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 1555 | }, 1556 | "node_modules/whatwg-url": { 1557 | "version": "5.0.0", 1558 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 1559 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 1560 | "dependencies": { 1561 | "tr46": "~0.0.3", 1562 | "webidl-conversions": "^3.0.0" 1563 | } 1564 | }, 1565 | "node_modules/wide-align": { 1566 | "version": "1.1.5", 1567 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", 1568 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", 1569 | "dependencies": { 1570 | "string-width": "^1.0.2 || 2 || 3 || 4" 1571 | } 1572 | }, 1573 | "node_modules/wrappy": { 1574 | "version": "1.0.2", 1575 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1576 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1577 | }, 1578 | "node_modules/yallist": { 1579 | "version": "4.0.0", 1580 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1581 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1582 | } 1583 | }, 1584 | "dependencies": { 1585 | "@mapbox/node-pre-gyp": { 1586 | "version": "1.0.10", 1587 | "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", 1588 | "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", 1589 | "requires": { 1590 | "detect-libc": "^2.0.0", 1591 | "https-proxy-agent": "^5.0.0", 1592 | "make-dir": "^3.1.0", 1593 | "node-fetch": "^2.6.7", 1594 | "nopt": "^5.0.0", 1595 | "npmlog": "^5.0.1", 1596 | "rimraf": "^3.0.2", 1597 | "semver": "^7.3.5", 1598 | "tar": "^6.1.11" 1599 | } 1600 | }, 1601 | "abbrev": { 1602 | "version": "1.1.1", 1603 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 1604 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" 1605 | }, 1606 | "abort-controller": { 1607 | "version": "3.0.0", 1608 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 1609 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 1610 | "requires": { 1611 | "event-target-shim": "^5.0.0" 1612 | } 1613 | }, 1614 | "accepts": { 1615 | "version": "1.3.8", 1616 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 1617 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 1618 | "requires": { 1619 | "mime-types": "~2.1.34", 1620 | "negotiator": "0.6.3" 1621 | } 1622 | }, 1623 | "agent-base": { 1624 | "version": "6.0.2", 1625 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 1626 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 1627 | "requires": { 1628 | "debug": "4" 1629 | }, 1630 | "dependencies": { 1631 | "debug": { 1632 | "version": "4.3.4", 1633 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1634 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1635 | "requires": { 1636 | "ms": "2.1.2" 1637 | } 1638 | }, 1639 | "ms": { 1640 | "version": "2.1.2", 1641 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1642 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1643 | } 1644 | } 1645 | }, 1646 | "ansi-regex": { 1647 | "version": "5.0.1", 1648 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1649 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 1650 | }, 1651 | "aproba": { 1652 | "version": "2.0.0", 1653 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", 1654 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" 1655 | }, 1656 | "are-we-there-yet": { 1657 | "version": "2.0.0", 1658 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", 1659 | "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", 1660 | "requires": { 1661 | "delegates": "^1.0.0", 1662 | "readable-stream": "^3.6.0" 1663 | } 1664 | }, 1665 | "array-flatten": { 1666 | "version": "1.1.1", 1667 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 1668 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 1669 | }, 1670 | "arrify": { 1671 | "version": "2.0.1", 1672 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 1673 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" 1674 | }, 1675 | "balanced-match": { 1676 | "version": "1.0.2", 1677 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1678 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 1679 | }, 1680 | "base64-js": { 1681 | "version": "1.5.1", 1682 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1683 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 1684 | }, 1685 | "bcrypt": { 1686 | "version": "5.1.0", 1687 | "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", 1688 | "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", 1689 | "requires": { 1690 | "@mapbox/node-pre-gyp": "^1.0.10", 1691 | "node-addon-api": "^5.0.0" 1692 | } 1693 | }, 1694 | "bignumber.js": { 1695 | "version": "9.1.0", 1696 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", 1697 | "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==" 1698 | }, 1699 | "body-parser": { 1700 | "version": "1.20.0", 1701 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", 1702 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", 1703 | "requires": { 1704 | "bytes": "3.1.2", 1705 | "content-type": "~1.0.4", 1706 | "debug": "2.6.9", 1707 | "depd": "2.0.0", 1708 | "destroy": "1.2.0", 1709 | "http-errors": "2.0.0", 1710 | "iconv-lite": "0.4.24", 1711 | "on-finished": "2.4.1", 1712 | "qs": "6.10.3", 1713 | "raw-body": "2.5.1", 1714 | "type-is": "~1.6.18", 1715 | "unpipe": "1.0.0" 1716 | } 1717 | }, 1718 | "brace-expansion": { 1719 | "version": "1.1.11", 1720 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1721 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1722 | "requires": { 1723 | "balanced-match": "^1.0.0", 1724 | "concat-map": "0.0.1" 1725 | } 1726 | }, 1727 | "buffer-equal-constant-time": { 1728 | "version": "1.0.1", 1729 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 1730 | "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" 1731 | }, 1732 | "bytes": { 1733 | "version": "3.1.2", 1734 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 1735 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 1736 | }, 1737 | "call-bind": { 1738 | "version": "1.0.2", 1739 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1740 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1741 | "requires": { 1742 | "function-bind": "^1.1.1", 1743 | "get-intrinsic": "^1.0.2" 1744 | } 1745 | }, 1746 | "chownr": { 1747 | "version": "2.0.0", 1748 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", 1749 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" 1750 | }, 1751 | "color-support": { 1752 | "version": "1.1.3", 1753 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", 1754 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" 1755 | }, 1756 | "concat-map": { 1757 | "version": "0.0.1", 1758 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1759 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 1760 | }, 1761 | "console-control-strings": { 1762 | "version": "1.1.0", 1763 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 1764 | "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" 1765 | }, 1766 | "content-disposition": { 1767 | "version": "0.5.4", 1768 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 1769 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 1770 | "requires": { 1771 | "safe-buffer": "5.2.1" 1772 | } 1773 | }, 1774 | "content-type": { 1775 | "version": "1.0.4", 1776 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 1777 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 1778 | }, 1779 | "cookie": { 1780 | "version": "0.5.0", 1781 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 1782 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 1783 | }, 1784 | "cookie-signature": { 1785 | "version": "1.0.6", 1786 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 1787 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 1788 | }, 1789 | "debug": { 1790 | "version": "2.6.9", 1791 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1792 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1793 | "requires": { 1794 | "ms": "2.0.0" 1795 | } 1796 | }, 1797 | "delegates": { 1798 | "version": "1.0.0", 1799 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 1800 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" 1801 | }, 1802 | "denque": { 1803 | "version": "2.1.0", 1804 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", 1805 | "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" 1806 | }, 1807 | "depd": { 1808 | "version": "2.0.0", 1809 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 1810 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 1811 | }, 1812 | "destroy": { 1813 | "version": "1.2.0", 1814 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 1815 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" 1816 | }, 1817 | "detect-libc": { 1818 | "version": "2.0.1", 1819 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", 1820 | "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" 1821 | }, 1822 | "dotenv": { 1823 | "version": "16.0.1", 1824 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", 1825 | "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" 1826 | }, 1827 | "ecdsa-sig-formatter": { 1828 | "version": "1.0.11", 1829 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 1830 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 1831 | "requires": { 1832 | "safe-buffer": "^5.0.1" 1833 | } 1834 | }, 1835 | "ee-first": { 1836 | "version": "1.1.1", 1837 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 1838 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 1839 | }, 1840 | "emoji-regex": { 1841 | "version": "8.0.0", 1842 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1843 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1844 | }, 1845 | "encodeurl": { 1846 | "version": "1.0.2", 1847 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 1848 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" 1849 | }, 1850 | "escape-html": { 1851 | "version": "1.0.3", 1852 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 1853 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 1854 | }, 1855 | "etag": { 1856 | "version": "1.8.1", 1857 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 1858 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" 1859 | }, 1860 | "event-target-shim": { 1861 | "version": "5.0.1", 1862 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 1863 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 1864 | }, 1865 | "express": { 1866 | "version": "4.18.1", 1867 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", 1868 | "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", 1869 | "requires": { 1870 | "accepts": "~1.3.8", 1871 | "array-flatten": "1.1.1", 1872 | "body-parser": "1.20.0", 1873 | "content-disposition": "0.5.4", 1874 | "content-type": "~1.0.4", 1875 | "cookie": "0.5.0", 1876 | "cookie-signature": "1.0.6", 1877 | "debug": "2.6.9", 1878 | "depd": "2.0.0", 1879 | "encodeurl": "~1.0.2", 1880 | "escape-html": "~1.0.3", 1881 | "etag": "~1.8.1", 1882 | "finalhandler": "1.2.0", 1883 | "fresh": "0.5.2", 1884 | "http-errors": "2.0.0", 1885 | "merge-descriptors": "1.0.1", 1886 | "methods": "~1.1.2", 1887 | "on-finished": "2.4.1", 1888 | "parseurl": "~1.3.3", 1889 | "path-to-regexp": "0.1.7", 1890 | "proxy-addr": "~2.0.7", 1891 | "qs": "6.10.3", 1892 | "range-parser": "~1.2.1", 1893 | "safe-buffer": "5.2.1", 1894 | "send": "0.18.0", 1895 | "serve-static": "1.15.0", 1896 | "setprototypeof": "1.2.0", 1897 | "statuses": "2.0.1", 1898 | "type-is": "~1.6.18", 1899 | "utils-merge": "1.0.1", 1900 | "vary": "~1.1.2" 1901 | } 1902 | }, 1903 | "extend": { 1904 | "version": "3.0.2", 1905 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1906 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 1907 | }, 1908 | "fast-text-encoding": { 1909 | "version": "1.0.4", 1910 | "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.4.tgz", 1911 | "integrity": "sha512-x6lDDm/tBAzX9kmsPcZsNbvDs3Zey3+scsxaZElS8xWLgUMAg/oFLeewfUz0mu1CblHhhsu15jGkraldkFh8KQ==" 1912 | }, 1913 | "finalhandler": { 1914 | "version": "1.2.0", 1915 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 1916 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 1917 | "requires": { 1918 | "debug": "2.6.9", 1919 | "encodeurl": "~1.0.2", 1920 | "escape-html": "~1.0.3", 1921 | "on-finished": "2.4.1", 1922 | "parseurl": "~1.3.3", 1923 | "statuses": "2.0.1", 1924 | "unpipe": "~1.0.0" 1925 | } 1926 | }, 1927 | "forwarded": { 1928 | "version": "0.2.0", 1929 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 1930 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 1931 | }, 1932 | "fresh": { 1933 | "version": "0.5.2", 1934 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1935 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" 1936 | }, 1937 | "fs-minipass": { 1938 | "version": "2.1.0", 1939 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", 1940 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 1941 | "requires": { 1942 | "minipass": "^3.0.0" 1943 | }, 1944 | "dependencies": { 1945 | "minipass": { 1946 | "version": "3.3.6", 1947 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1948 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1949 | "requires": { 1950 | "yallist": "^4.0.0" 1951 | } 1952 | } 1953 | } 1954 | }, 1955 | "fs.realpath": { 1956 | "version": "1.0.0", 1957 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1958 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 1959 | }, 1960 | "function-bind": { 1961 | "version": "1.1.1", 1962 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1963 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1964 | }, 1965 | "gauge": { 1966 | "version": "3.0.2", 1967 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", 1968 | "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", 1969 | "requires": { 1970 | "aproba": "^1.0.3 || ^2.0.0", 1971 | "color-support": "^1.1.2", 1972 | "console-control-strings": "^1.0.0", 1973 | "has-unicode": "^2.0.1", 1974 | "object-assign": "^4.1.1", 1975 | "signal-exit": "^3.0.0", 1976 | "string-width": "^4.2.3", 1977 | "strip-ansi": "^6.0.1", 1978 | "wide-align": "^1.1.2" 1979 | } 1980 | }, 1981 | "gaxios": { 1982 | "version": "5.0.1", 1983 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.1.tgz", 1984 | "integrity": "sha512-keK47BGKHyyOVQxgcUaSaFvr3ehZYAlvhvpHXy0YB2itzZef+GqZR8TBsfVRWghdwlKrYsn+8L8i3eblF7Oviw==", 1985 | "requires": { 1986 | "extend": "^3.0.2", 1987 | "https-proxy-agent": "^5.0.0", 1988 | "is-stream": "^2.0.0", 1989 | "node-fetch": "^2.6.7" 1990 | } 1991 | }, 1992 | "gcp-metadata": { 1993 | "version": "5.0.0", 1994 | "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.0.tgz", 1995 | "integrity": "sha512-gfwuX3yA3nNsHSWUL4KG90UulNiq922Ukj3wLTrcnX33BB7PwB1o0ubR8KVvXu9nJH+P5w1j2SQSNNqto+H0DA==", 1996 | "requires": { 1997 | "gaxios": "^5.0.0", 1998 | "json-bigint": "^1.0.0" 1999 | } 2000 | }, 2001 | "generate-function": { 2002 | "version": "2.3.1", 2003 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", 2004 | "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", 2005 | "requires": { 2006 | "is-property": "^1.0.2" 2007 | } 2008 | }, 2009 | "get-intrinsic": { 2010 | "version": "1.1.2", 2011 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", 2012 | "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", 2013 | "requires": { 2014 | "function-bind": "^1.1.1", 2015 | "has": "^1.0.3", 2016 | "has-symbols": "^1.0.3" 2017 | } 2018 | }, 2019 | "glob": { 2020 | "version": "7.2.3", 2021 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 2022 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 2023 | "requires": { 2024 | "fs.realpath": "^1.0.0", 2025 | "inflight": "^1.0.4", 2026 | "inherits": "2", 2027 | "minimatch": "^3.1.1", 2028 | "once": "^1.3.0", 2029 | "path-is-absolute": "^1.0.0" 2030 | } 2031 | }, 2032 | "google-auth-library": { 2033 | "version": "8.1.1", 2034 | "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.1.1.tgz", 2035 | "integrity": "sha512-eG3pCfrLgVJe19KhAeZwW0m1LplNEo0FX1GboWf3hu18zD2jq8TUH2K8900AB2YRAuJ7A+1aSXDp1BODjwwRzg==", 2036 | "requires": { 2037 | "arrify": "^2.0.0", 2038 | "base64-js": "^1.3.0", 2039 | "ecdsa-sig-formatter": "^1.0.11", 2040 | "fast-text-encoding": "^1.0.0", 2041 | "gaxios": "^5.0.0", 2042 | "gcp-metadata": "^5.0.0", 2043 | "gtoken": "^6.0.0", 2044 | "jws": "^4.0.0", 2045 | "lru-cache": "^6.0.0" 2046 | } 2047 | }, 2048 | "google-p12-pem": { 2049 | "version": "4.0.0", 2050 | "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.0.tgz", 2051 | "integrity": "sha512-lRTMn5ElBdDixv4a86bixejPSRk1boRtUowNepeKEVvYiFlkLuAJUVpEz6PfObDHYEKnZWq/9a2zC98xu62A9w==", 2052 | "requires": { 2053 | "node-forge": "^1.3.1" 2054 | } 2055 | }, 2056 | "googleapis": { 2057 | "version": "105.0.0", 2058 | "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-105.0.0.tgz", 2059 | "integrity": "sha512-wH/jU/6QpqwsjTKj4vfKZz97ne7xT7BBbKwzQEwnbsG8iH9Seyw19P+AuLJcxNNrmgblwLqfr3LORg4Okat1BQ==", 2060 | "requires": { 2061 | "google-auth-library": "^8.0.2", 2062 | "googleapis-common": "^6.0.0" 2063 | } 2064 | }, 2065 | "googleapis-common": { 2066 | "version": "6.0.0", 2067 | "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.0.tgz", 2068 | "integrity": "sha512-ieZouiuoyTHCckOgu7NU+n5UvA8kAzGTRRMQD+3bobCX9npnRvYDmTHZjM5lQLzf0cGz1xQ1ABCxGQ+xSsMkCw==", 2069 | "requires": { 2070 | "extend": "^3.0.2", 2071 | "gaxios": "^4.0.0", 2072 | "google-auth-library": "^8.0.2", 2073 | "qs": "^6.7.0", 2074 | "url-template": "^2.0.8", 2075 | "uuid": "^8.0.0" 2076 | }, 2077 | "dependencies": { 2078 | "gaxios": { 2079 | "version": "4.3.3", 2080 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", 2081 | "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", 2082 | "requires": { 2083 | "abort-controller": "^3.0.0", 2084 | "extend": "^3.0.2", 2085 | "https-proxy-agent": "^5.0.0", 2086 | "is-stream": "^2.0.0", 2087 | "node-fetch": "^2.6.7" 2088 | } 2089 | } 2090 | } 2091 | }, 2092 | "gtoken": { 2093 | "version": "6.1.0", 2094 | "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.0.tgz", 2095 | "integrity": "sha512-WPZcFw34wh2LUvbCUWI70GDhOlO7qHpSvFHFqq7d3Wvsf8dIJedE0lnUdOmsKuC0NgflKmF0LxIF38vsGeHHiQ==", 2096 | "requires": { 2097 | "gaxios": "^4.0.0", 2098 | "google-p12-pem": "^4.0.0", 2099 | "jws": "^4.0.0" 2100 | }, 2101 | "dependencies": { 2102 | "gaxios": { 2103 | "version": "4.3.3", 2104 | "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", 2105 | "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", 2106 | "requires": { 2107 | "abort-controller": "^3.0.0", 2108 | "extend": "^3.0.2", 2109 | "https-proxy-agent": "^5.0.0", 2110 | "is-stream": "^2.0.0", 2111 | "node-fetch": "^2.6.7" 2112 | } 2113 | } 2114 | } 2115 | }, 2116 | "has": { 2117 | "version": "1.0.3", 2118 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2119 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2120 | "requires": { 2121 | "function-bind": "^1.1.1" 2122 | } 2123 | }, 2124 | "has-symbols": { 2125 | "version": "1.0.3", 2126 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 2127 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" 2128 | }, 2129 | "has-unicode": { 2130 | "version": "2.0.1", 2131 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 2132 | "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" 2133 | }, 2134 | "http-errors": { 2135 | "version": "2.0.0", 2136 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 2137 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 2138 | "requires": { 2139 | "depd": "2.0.0", 2140 | "inherits": "2.0.4", 2141 | "setprototypeof": "1.2.0", 2142 | "statuses": "2.0.1", 2143 | "toidentifier": "1.0.1" 2144 | } 2145 | }, 2146 | "https-proxy-agent": { 2147 | "version": "5.0.1", 2148 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 2149 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 2150 | "requires": { 2151 | "agent-base": "6", 2152 | "debug": "4" 2153 | }, 2154 | "dependencies": { 2155 | "debug": { 2156 | "version": "4.3.4", 2157 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 2158 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2159 | "requires": { 2160 | "ms": "2.1.2" 2161 | } 2162 | }, 2163 | "ms": { 2164 | "version": "2.1.2", 2165 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2166 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 2167 | } 2168 | } 2169 | }, 2170 | "iconv-lite": { 2171 | "version": "0.4.24", 2172 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 2173 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 2174 | "requires": { 2175 | "safer-buffer": ">= 2.1.2 < 3" 2176 | } 2177 | }, 2178 | "inflight": { 2179 | "version": "1.0.6", 2180 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2181 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 2182 | "requires": { 2183 | "once": "^1.3.0", 2184 | "wrappy": "1" 2185 | } 2186 | }, 2187 | "inherits": { 2188 | "version": "2.0.4", 2189 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2190 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 2191 | }, 2192 | "ipaddr.js": { 2193 | "version": "1.9.1", 2194 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 2195 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 2196 | }, 2197 | "is-fullwidth-code-point": { 2198 | "version": "3.0.0", 2199 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 2200 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 2201 | }, 2202 | "is-property": { 2203 | "version": "1.0.2", 2204 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 2205 | "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" 2206 | }, 2207 | "is-stream": { 2208 | "version": "2.0.1", 2209 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 2210 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 2211 | }, 2212 | "json-bigint": { 2213 | "version": "1.0.0", 2214 | "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 2215 | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 2216 | "requires": { 2217 | "bignumber.js": "^9.0.0" 2218 | } 2219 | }, 2220 | "jsonwebtoken": { 2221 | "version": "9.0.0", 2222 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", 2223 | "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", 2224 | "requires": { 2225 | "jws": "^3.2.2", 2226 | "lodash": "^4.17.21", 2227 | "ms": "^2.1.1", 2228 | "semver": "^7.3.8" 2229 | }, 2230 | "dependencies": { 2231 | "jwa": { 2232 | "version": "1.4.1", 2233 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 2234 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 2235 | "requires": { 2236 | "buffer-equal-constant-time": "1.0.1", 2237 | "ecdsa-sig-formatter": "1.0.11", 2238 | "safe-buffer": "^5.0.1" 2239 | } 2240 | }, 2241 | "jws": { 2242 | "version": "3.2.2", 2243 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 2244 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 2245 | "requires": { 2246 | "jwa": "^1.4.1", 2247 | "safe-buffer": "^5.0.1" 2248 | } 2249 | }, 2250 | "ms": { 2251 | "version": "2.1.3", 2252 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2253 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 2254 | } 2255 | } 2256 | }, 2257 | "jwa": { 2258 | "version": "2.0.0", 2259 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", 2260 | "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", 2261 | "requires": { 2262 | "buffer-equal-constant-time": "1.0.1", 2263 | "ecdsa-sig-formatter": "1.0.11", 2264 | "safe-buffer": "^5.0.1" 2265 | } 2266 | }, 2267 | "jws": { 2268 | "version": "4.0.0", 2269 | "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 2270 | "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 2271 | "requires": { 2272 | "jwa": "^2.0.0", 2273 | "safe-buffer": "^5.0.1" 2274 | } 2275 | }, 2276 | "lodash": { 2277 | "version": "4.17.21", 2278 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 2279 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 2280 | }, 2281 | "long": { 2282 | "version": "4.0.0", 2283 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 2284 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 2285 | }, 2286 | "lru-cache": { 2287 | "version": "6.0.0", 2288 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 2289 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 2290 | "requires": { 2291 | "yallist": "^4.0.0" 2292 | } 2293 | }, 2294 | "make-dir": { 2295 | "version": "3.1.0", 2296 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 2297 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 2298 | "requires": { 2299 | "semver": "^6.0.0" 2300 | }, 2301 | "dependencies": { 2302 | "semver": { 2303 | "version": "6.3.0", 2304 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2305 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 2306 | } 2307 | } 2308 | }, 2309 | "media-typer": { 2310 | "version": "0.3.0", 2311 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 2312 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" 2313 | }, 2314 | "merge-descriptors": { 2315 | "version": "1.0.1", 2316 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 2317 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" 2318 | }, 2319 | "methods": { 2320 | "version": "1.1.2", 2321 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 2322 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" 2323 | }, 2324 | "mime": { 2325 | "version": "1.6.0", 2326 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 2327 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 2328 | }, 2329 | "mime-db": { 2330 | "version": "1.52.0", 2331 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 2332 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 2333 | }, 2334 | "mime-types": { 2335 | "version": "2.1.35", 2336 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 2337 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 2338 | "requires": { 2339 | "mime-db": "1.52.0" 2340 | } 2341 | }, 2342 | "minimatch": { 2343 | "version": "3.1.2", 2344 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2345 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2346 | "requires": { 2347 | "brace-expansion": "^1.1.7" 2348 | } 2349 | }, 2350 | "minipass": { 2351 | "version": "4.0.0", 2352 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", 2353 | "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", 2354 | "requires": { 2355 | "yallist": "^4.0.0" 2356 | } 2357 | }, 2358 | "minizlib": { 2359 | "version": "2.1.2", 2360 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", 2361 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 2362 | "requires": { 2363 | "minipass": "^3.0.0", 2364 | "yallist": "^4.0.0" 2365 | }, 2366 | "dependencies": { 2367 | "minipass": { 2368 | "version": "3.3.6", 2369 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 2370 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 2371 | "requires": { 2372 | "yallist": "^4.0.0" 2373 | } 2374 | } 2375 | } 2376 | }, 2377 | "mkdirp": { 2378 | "version": "1.0.4", 2379 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 2380 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" 2381 | }, 2382 | "ms": { 2383 | "version": "2.0.0", 2384 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2385 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 2386 | }, 2387 | "mysql2": { 2388 | "version": "2.3.3", 2389 | "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", 2390 | "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", 2391 | "requires": { 2392 | "denque": "^2.0.1", 2393 | "generate-function": "^2.3.1", 2394 | "iconv-lite": "^0.6.3", 2395 | "long": "^4.0.0", 2396 | "lru-cache": "^6.0.0", 2397 | "named-placeholders": "^1.1.2", 2398 | "seq-queue": "^0.0.5", 2399 | "sqlstring": "^2.3.2" 2400 | }, 2401 | "dependencies": { 2402 | "iconv-lite": { 2403 | "version": "0.6.3", 2404 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 2405 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 2406 | "requires": { 2407 | "safer-buffer": ">= 2.1.2 < 3.0.0" 2408 | } 2409 | } 2410 | } 2411 | }, 2412 | "named-placeholders": { 2413 | "version": "1.1.2", 2414 | "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", 2415 | "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", 2416 | "requires": { 2417 | "lru-cache": "^4.1.3" 2418 | }, 2419 | "dependencies": { 2420 | "lru-cache": { 2421 | "version": "4.1.5", 2422 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 2423 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 2424 | "requires": { 2425 | "pseudomap": "^1.0.2", 2426 | "yallist": "^2.1.2" 2427 | } 2428 | }, 2429 | "yallist": { 2430 | "version": "2.1.2", 2431 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2432 | "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" 2433 | } 2434 | } 2435 | }, 2436 | "negotiator": { 2437 | "version": "0.6.3", 2438 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 2439 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 2440 | }, 2441 | "node-addon-api": { 2442 | "version": "5.0.0", 2443 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", 2444 | "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==" 2445 | }, 2446 | "node-fetch": { 2447 | "version": "2.6.7", 2448 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 2449 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 2450 | "requires": { 2451 | "whatwg-url": "^5.0.0" 2452 | } 2453 | }, 2454 | "node-forge": { 2455 | "version": "1.3.1", 2456 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 2457 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" 2458 | }, 2459 | "nopt": { 2460 | "version": "5.0.0", 2461 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", 2462 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", 2463 | "requires": { 2464 | "abbrev": "1" 2465 | } 2466 | }, 2467 | "npmlog": { 2468 | "version": "5.0.1", 2469 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", 2470 | "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", 2471 | "requires": { 2472 | "are-we-there-yet": "^2.0.0", 2473 | "console-control-strings": "^1.1.0", 2474 | "gauge": "^3.0.0", 2475 | "set-blocking": "^2.0.0" 2476 | } 2477 | }, 2478 | "object-assign": { 2479 | "version": "4.1.1", 2480 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2481 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 2482 | }, 2483 | "object-inspect": { 2484 | "version": "1.12.2", 2485 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", 2486 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" 2487 | }, 2488 | "on-finished": { 2489 | "version": "2.4.1", 2490 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 2491 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 2492 | "requires": { 2493 | "ee-first": "1.1.1" 2494 | } 2495 | }, 2496 | "once": { 2497 | "version": "1.4.0", 2498 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2499 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2500 | "requires": { 2501 | "wrappy": "1" 2502 | } 2503 | }, 2504 | "parseurl": { 2505 | "version": "1.3.3", 2506 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 2507 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 2508 | }, 2509 | "path-is-absolute": { 2510 | "version": "1.0.1", 2511 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2512 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 2513 | }, 2514 | "path-to-regexp": { 2515 | "version": "0.1.7", 2516 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 2517 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" 2518 | }, 2519 | "proxy-addr": { 2520 | "version": "2.0.7", 2521 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 2522 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 2523 | "requires": { 2524 | "forwarded": "0.2.0", 2525 | "ipaddr.js": "1.9.1" 2526 | } 2527 | }, 2528 | "pseudomap": { 2529 | "version": "1.0.2", 2530 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 2531 | "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" 2532 | }, 2533 | "qs": { 2534 | "version": "6.10.3", 2535 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 2536 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 2537 | "requires": { 2538 | "side-channel": "^1.0.4" 2539 | } 2540 | }, 2541 | "range-parser": { 2542 | "version": "1.2.1", 2543 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 2544 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 2545 | }, 2546 | "raw-body": { 2547 | "version": "2.5.1", 2548 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 2549 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 2550 | "requires": { 2551 | "bytes": "3.1.2", 2552 | "http-errors": "2.0.0", 2553 | "iconv-lite": "0.4.24", 2554 | "unpipe": "1.0.0" 2555 | } 2556 | }, 2557 | "readable-stream": { 2558 | "version": "3.6.0", 2559 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 2560 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 2561 | "requires": { 2562 | "inherits": "^2.0.3", 2563 | "string_decoder": "^1.1.1", 2564 | "util-deprecate": "^1.0.1" 2565 | } 2566 | }, 2567 | "rimraf": { 2568 | "version": "3.0.2", 2569 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2570 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2571 | "requires": { 2572 | "glob": "^7.1.3" 2573 | } 2574 | }, 2575 | "safe-buffer": { 2576 | "version": "5.2.1", 2577 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2578 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 2579 | }, 2580 | "safer-buffer": { 2581 | "version": "2.1.2", 2582 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2583 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 2584 | }, 2585 | "semver": { 2586 | "version": "7.3.8", 2587 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", 2588 | "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", 2589 | "requires": { 2590 | "lru-cache": "^6.0.0" 2591 | } 2592 | }, 2593 | "send": { 2594 | "version": "0.18.0", 2595 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 2596 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 2597 | "requires": { 2598 | "debug": "2.6.9", 2599 | "depd": "2.0.0", 2600 | "destroy": "1.2.0", 2601 | "encodeurl": "~1.0.2", 2602 | "escape-html": "~1.0.3", 2603 | "etag": "~1.8.1", 2604 | "fresh": "0.5.2", 2605 | "http-errors": "2.0.0", 2606 | "mime": "1.6.0", 2607 | "ms": "2.1.3", 2608 | "on-finished": "2.4.1", 2609 | "range-parser": "~1.2.1", 2610 | "statuses": "2.0.1" 2611 | }, 2612 | "dependencies": { 2613 | "ms": { 2614 | "version": "2.1.3", 2615 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2616 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 2617 | } 2618 | } 2619 | }, 2620 | "seq-queue": { 2621 | "version": "0.0.5", 2622 | "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", 2623 | "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" 2624 | }, 2625 | "serve-static": { 2626 | "version": "1.15.0", 2627 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 2628 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 2629 | "requires": { 2630 | "encodeurl": "~1.0.2", 2631 | "escape-html": "~1.0.3", 2632 | "parseurl": "~1.3.3", 2633 | "send": "0.18.0" 2634 | } 2635 | }, 2636 | "set-blocking": { 2637 | "version": "2.0.0", 2638 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2639 | "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" 2640 | }, 2641 | "setprototypeof": { 2642 | "version": "1.2.0", 2643 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 2644 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 2645 | }, 2646 | "side-channel": { 2647 | "version": "1.0.4", 2648 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 2649 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 2650 | "requires": { 2651 | "call-bind": "^1.0.0", 2652 | "get-intrinsic": "^1.0.2", 2653 | "object-inspect": "^1.9.0" 2654 | } 2655 | }, 2656 | "signal-exit": { 2657 | "version": "3.0.7", 2658 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 2659 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 2660 | }, 2661 | "sqlstring": { 2662 | "version": "2.3.3", 2663 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", 2664 | "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" 2665 | }, 2666 | "statuses": { 2667 | "version": "2.0.1", 2668 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 2669 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 2670 | }, 2671 | "string_decoder": { 2672 | "version": "1.3.0", 2673 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 2674 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 2675 | "requires": { 2676 | "safe-buffer": "~5.2.0" 2677 | } 2678 | }, 2679 | "string-width": { 2680 | "version": "4.2.3", 2681 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2682 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2683 | "requires": { 2684 | "emoji-regex": "^8.0.0", 2685 | "is-fullwidth-code-point": "^3.0.0", 2686 | "strip-ansi": "^6.0.1" 2687 | } 2688 | }, 2689 | "strip-ansi": { 2690 | "version": "6.0.1", 2691 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2692 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2693 | "requires": { 2694 | "ansi-regex": "^5.0.1" 2695 | } 2696 | }, 2697 | "tar": { 2698 | "version": "6.1.13", 2699 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", 2700 | "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", 2701 | "requires": { 2702 | "chownr": "^2.0.0", 2703 | "fs-minipass": "^2.0.0", 2704 | "minipass": "^4.0.0", 2705 | "minizlib": "^2.1.1", 2706 | "mkdirp": "^1.0.3", 2707 | "yallist": "^4.0.0" 2708 | } 2709 | }, 2710 | "toidentifier": { 2711 | "version": "1.0.1", 2712 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 2713 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 2714 | }, 2715 | "tr46": { 2716 | "version": "0.0.3", 2717 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 2718 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 2719 | }, 2720 | "type-is": { 2721 | "version": "1.6.18", 2722 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 2723 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 2724 | "requires": { 2725 | "media-typer": "0.3.0", 2726 | "mime-types": "~2.1.24" 2727 | } 2728 | }, 2729 | "unpipe": { 2730 | "version": "1.0.0", 2731 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 2732 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" 2733 | }, 2734 | "url-template": { 2735 | "version": "2.0.8", 2736 | "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", 2737 | "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" 2738 | }, 2739 | "util-deprecate": { 2740 | "version": "1.0.2", 2741 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2742 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 2743 | }, 2744 | "utils-merge": { 2745 | "version": "1.0.1", 2746 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 2747 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" 2748 | }, 2749 | "uuid": { 2750 | "version": "8.3.2", 2751 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 2752 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" 2753 | }, 2754 | "vary": { 2755 | "version": "1.1.2", 2756 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 2757 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 2758 | }, 2759 | "webidl-conversions": { 2760 | "version": "3.0.1", 2761 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 2762 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 2763 | }, 2764 | "whatwg-url": { 2765 | "version": "5.0.0", 2766 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 2767 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 2768 | "requires": { 2769 | "tr46": "~0.0.3", 2770 | "webidl-conversions": "^3.0.0" 2771 | } 2772 | }, 2773 | "wide-align": { 2774 | "version": "1.1.5", 2775 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", 2776 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", 2777 | "requires": { 2778 | "string-width": "^1.0.2 || 2 || 3 || 4" 2779 | } 2780 | }, 2781 | "wrappy": { 2782 | "version": "1.0.2", 2783 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2784 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 2785 | }, 2786 | "yallist": { 2787 | "version": "4.0.0", 2788 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2789 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 2790 | } 2791 | } 2792 | } 2793 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "test": "echo \"Error: no test specified\" && exit 1", 4 | "start": "node index.js" 5 | }, 6 | "dependencies": { 7 | "bcrypt": "^5.1.0", 8 | "dotenv": "^16.0.1", 9 | "express": "^4.18.1", 10 | "googleapis": "^105.0.0", 11 | "jsonwebtoken": "^9.0.0", 12 | "mysql2": "^2.3.3" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /qlsv.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 5.2.0 3 | -- https://www.phpmyadmin.net/ 4 | -- 5 | -- Host: 127.0.0.1 6 | -- Generation Time: Jan 24, 2023 at 04:09 PM 7 | -- Server version: 10.4.24-MariaDB 8 | -- PHP Version: 8.1.5 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | START TRANSACTION; 12 | SET time_zone = "+00:00"; 13 | 14 | 15 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 16 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 17 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 18 | /*!40101 SET NAMES utf8mb4 */; 19 | 20 | -- 21 | -- Database: `qlsv` 22 | -- 23 | 24 | -- -------------------------------------------------------- 25 | 26 | -- 27 | -- Table structure for table `posts` 28 | -- 29 | 30 | CREATE TABLE `posts` ( 31 | `id` int(11) NOT NULL, 32 | `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 33 | `content` text COLLATE utf8_unicode_ci NOT NULL 34 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 35 | 36 | -- 37 | -- Dumping data for table `posts` 38 | -- 39 | 40 | INSERT INTO `posts` (`id`, `title`, `content`) VALUES 41 | (1, 'Title 1', 'Content 1'), 42 | (3, 'Title 3', 'Content 3'); 43 | 44 | -- -------------------------------------------------------- 45 | 46 | -- 47 | -- Table structure for table `users` 48 | -- 49 | 50 | CREATE TABLE `users` ( 51 | `id` int(11) NOT NULL, 52 | `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 53 | `password` varchar(500) COLLATE utf8_unicode_ci NOT NULL, 54 | `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL 55 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 56 | 57 | -- 58 | -- Dumping data for table `users` 59 | -- 60 | 61 | INSERT INTO `users` (`id`, `email`, `password`, `name`) VALUES 62 | (3, 'test2@gmail.com', '$2b$10$g4lLJqz4GZFX0roLe8RhbOifL9C251qbFDmn8yb240NixhnxnxhPK', 'NHN2'), 63 | (4, 'test3@gmail.com', '$2b$10$W13dOOFtSX.l5lg05wfk2.Puqyu1WKZ5Ynr1BspmWC6/3yJ3Bg.1.', 'NHN3'); 64 | 65 | -- 66 | -- Indexes for dumped tables 67 | -- 68 | 69 | -- 70 | -- Indexes for table `posts` 71 | -- 72 | ALTER TABLE `posts` 73 | ADD PRIMARY KEY (`id`); 74 | 75 | -- 76 | -- Indexes for table `users` 77 | -- 78 | ALTER TABLE `users` 79 | ADD PRIMARY KEY (`id`); 80 | 81 | -- 82 | -- AUTO_INCREMENT for dumped tables 83 | -- 84 | 85 | -- 86 | -- AUTO_INCREMENT for table `posts` 87 | -- 88 | ALTER TABLE `posts` 89 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; 90 | 91 | -- 92 | -- AUTO_INCREMENT for table `users` 93 | -- 94 | ALTER TABLE `users` 95 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; 96 | COMMIT; 97 | 98 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 99 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 100 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 101 | -------------------------------------------------------------------------------- /routes/auth.router.js: -------------------------------------------------------------------------------- 1 | const express = require("express") 2 | const router = express.Router() 3 | 4 | const authController = require("../controller/auth.controller") 5 | 6 | router.post("/register", authController.register) 7 | router.post("/login", authController.login) 8 | 9 | module.exports = router -------------------------------------------------------------------------------- /routes/posts.router.js: -------------------------------------------------------------------------------- 1 | const express = require("express") 2 | const router = express.Router() 3 | 4 | const postsController = require("../controller/posts.controller") 5 | 6 | router.get("/", postsController.getAll) 7 | router.get("/:id", postsController.getById) 8 | router.post("/", postsController.create) 9 | router.put("/:id", postsController.update) 10 | router.delete("/:id", postsController.delete) 11 | 12 | module.exports = router -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [ 4 | { 5 | "src": "./index.js", 6 | "use": "@vercel/node" 7 | } 8 | ], 9 | "routes": [ 10 | { 11 | "src": "/(.*)", 12 | "dest": "/" 13 | } 14 | ] 15 | } --------------------------------------------------------------------------------