Hey, check out this crazy news article that totally isn't a rickroll

Compare changes

Choose any two refs to compare.

+14
.gitlab-ci.yml
··· 7 7 # See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence 8 8 stages: 9 9 - test 10 + - build 10 11 sast: 11 12 stage: test 12 13 include: 13 14 - template: Security/SAST.gitlab-ci.yml 15 + 16 + build: 17 + image: docker:latest 18 + services: 19 + - docker:dind 20 + variables: 21 + DOCKER_DRIVER: overlay 22 + stage: build 23 + script: 24 + - docker build -t "corysanin/rickognito:latest" -t "$CI_REGISTRY_IMAGE:latest" -f ./Dockerfile . 25 + - "if [ ! -z ${DOCKER_PASSWORD+x} ]; then echo \"$DOCKER_PASSWORD\" | docker login -u \"$DOCKER_USERNAME\" --password-stdin; docker push \"corysanin/rickognito:latest\"; fi" 26 + - if [ ! -z ${CI_REGISTRY_PASSWORD+x} ]; then echo "$CI_REGISTRY_PASSWORD" | docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" --password-stdin; docker push "$CI_REGISTRY_IMAGE:latest"; fi 27 +
+13 -14
Dockerfile
··· 1 - FROM node:lts-alpine3.15 AS install 2 - 3 - WORKDIR /usr/src/app 1 + FROM node:lts-alpine AS baseimg 4 2 5 - COPY package*.json ./ 6 - 7 - ENV NPM_CONFIG_LOGLEVEL warn 8 - RUN npm ci --only=production 3 + FROM baseimg AS build-env 4 + WORKDIR /build 9 5 6 + COPY ./package*json ./ 7 + RUN npm ci 10 8 COPY . . 9 + RUN npm ci --only=production --omit=dev 11 10 12 - FROM node:lts-alpine3.15 13 11 12 + FROM baseimg AS deploy 14 13 WORKDIR /usr/src/app 15 - 16 - COPY --from=install /usr/src/app /usr/src/app/ 17 - 14 + HEALTHCHECK --timeout=3s \ 15 + CMD curl --fail http://localhost:8080/healthcheck || exit 1 16 + RUN apk add --no-cache curl 17 + COPY --from=build-env /build . 18 18 USER node 19 19 20 - CMD [ "npm", "start" ] 21 - 22 - EXPOSE 8080 20 + EXPOSE 8080 21 + CMD [ "node", "index.js"]
+11 -10
Web.js
··· 1 - const fs = require('fs'); 2 1 const path = require('path'); 3 2 const express = require('express'); 4 3 const exuseragent = require('express-useragent'); ··· 12 11 app.use(exuseragent.express()); 13 12 app.use('/assets/', express.static('assets')); 14 13 15 - app.get('/', (req, res) => { 14 + app.get('/', (_, res) => { 16 15 res.sendFile(path.join(__dirname, 'views', 'index.html')); 17 16 }); 18 17 19 - app.get('/*', (req, res) => { 18 + app.get('/healthcheck', (req, res) => { 19 + res.send('Healthy'); 20 + }); 21 + 22 + app.get('/*all', (req, res) => { 20 23 if (req.useragent.isBot) { 21 - let components = req.url.split('/'); 22 - let dest = ''; 23 - components.forEach(c => { 24 - dest = `${c}/${dest}`; 25 - }); 26 - dest = `https://${dest}`; 27 - res.redirect(dest); 24 + let components = req.url.substring(1).split('/').reverse(); 25 + if (components.length && !components[0]) { 26 + components.push(components.shift()); 27 + } 28 + res.redirect(`https://${components.join('/')}`); 28 29 } 29 30 else { 30 31 res.redirect('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
assets/images/rick.gif

This is a binary file and will not be displayed.

+10 -9
assets/js/url.js
··· 4 4 let output = document.getElementById('urloutput'); 5 5 let protocol = new RegExp('^[A-Za-z]+://'); 6 6 7 - input.addEventListener('change', (e) => { 7 + function oninput(e) { 8 8 let intext = e.currentTarget.value.replace(protocol, ''); 9 - let components = intext.split('/'); 10 - let out = ''; 11 - components.forEach(c => { 12 - out = `${c}/${out}`; 13 - }); 14 - out = `${url.protocol}//${url.hostname}/${out}`; 15 - output.value = out; 16 - }); 9 + let components = intext.split('/').reverse(); 10 + if (components.length && !components[0]) { 11 + components.push(components.shift()); 12 + } 13 + output.value = `${url.protocol}//${url.hostname}/${components.join('/')}`; 14 + } 15 + 16 + input.addEventListener('change', oninput); 17 + input.addEventListener('input', oninput); 17 18 });
+10
docker-compose.yml
··· 1 + version: '2' 2 + 3 + services: 4 + rickognito: 5 + container_name: rickognito 6 + build: 7 + context: ./ 8 + dockerfile: Dockerfile 9 + ports: 10 + - 8080:8080
+2 -2
index.js
··· 1 - const WormWeb = require('./Web.js'); 1 + const Web = require('./Web.js'); 2 2 3 - const web = new WormWeb(); 3 + const web = new Web(); 4 4 process.on('SIGTERM', () => { 5 5 web.close(); 6 6 });
+781 -459
package-lock.json
··· 1 1 { 2 2 "name": "rickognito", 3 - "version": "0.0.1", 3 + "version": "0.0.7", 4 4 "lockfileVersion": 2, 5 5 "requires": true, 6 6 "packages": { 7 7 "": { 8 8 "name": "rickognito", 9 - "version": "0.0.1", 9 + "version": "0.0.7", 10 10 "license": "MIT", 11 11 "dependencies": { 12 - "express": "^4.18.1", 13 - "express-useragent": "^1.0.15" 12 + "express": "5.1.0", 13 + "express-useragent": "1.0.15" 14 14 } 15 15 }, 16 16 "node_modules/accepts": { 17 - "version": "1.3.8", 18 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 19 - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 17 + "version": "2.0.0", 18 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", 19 + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", 20 + "license": "MIT", 20 21 "dependencies": { 21 - "mime-types": "~2.1.34", 22 - "negotiator": "0.6.3" 22 + "mime-types": "^3.0.0", 23 + "negotiator": "^1.0.0" 23 24 }, 24 25 "engines": { 25 26 "node": ">= 0.6" 26 27 } 27 28 }, 28 - "node_modules/array-flatten": { 29 - "version": "1.1.1", 30 - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 31 - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 32 - }, 33 29 "node_modules/body-parser": { 34 - "version": "1.20.0", 35 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", 36 - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", 30 + "version": "2.2.0", 31 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", 32 + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", 33 + "license": "MIT", 37 34 "dependencies": { 38 - "bytes": "3.1.2", 39 - "content-type": "~1.0.4", 40 - "debug": "2.6.9", 41 - "depd": "2.0.0", 42 - "destroy": "1.2.0", 43 - "http-errors": "2.0.0", 44 - "iconv-lite": "0.4.24", 45 - "on-finished": "2.4.1", 46 - "qs": "6.10.3", 47 - "raw-body": "2.5.1", 48 - "type-is": "~1.6.18", 49 - "unpipe": "1.0.0" 35 + "bytes": "^3.1.2", 36 + "content-type": "^1.0.5", 37 + "debug": "^4.4.0", 38 + "http-errors": "^2.0.0", 39 + "iconv-lite": "^0.6.3", 40 + "on-finished": "^2.4.1", 41 + "qs": "^6.14.0", 42 + "raw-body": "^3.0.0", 43 + "type-is": "^2.0.0" 50 44 }, 51 45 "engines": { 52 - "node": ">= 0.8", 53 - "npm": "1.2.8000 || >= 1.4.16" 46 + "node": ">=18" 54 47 } 55 48 }, 56 49 "node_modules/bytes": { 57 50 "version": "3.1.2", 58 51 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 59 52 "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 53 + "license": "MIT", 60 54 "engines": { 61 55 "node": ">= 0.8" 62 56 } 63 57 }, 64 - "node_modules/call-bind": { 58 + "node_modules/call-bind-apply-helpers": { 65 59 "version": "1.0.2", 66 - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 67 - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 60 + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 61 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 62 + "license": "MIT", 63 + "dependencies": { 64 + "es-errors": "^1.3.0", 65 + "function-bind": "^1.1.2" 66 + }, 67 + "engines": { 68 + "node": ">= 0.4" 69 + } 70 + }, 71 + "node_modules/call-bound": { 72 + "version": "1.0.4", 73 + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", 74 + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 75 + "license": "MIT", 68 76 "dependencies": { 69 - "function-bind": "^1.1.1", 70 - "get-intrinsic": "^1.0.2" 77 + "call-bind-apply-helpers": "^1.0.2", 78 + "get-intrinsic": "^1.3.0" 79 + }, 80 + "engines": { 81 + "node": ">= 0.4" 71 82 }, 72 83 "funding": { 73 84 "url": "https://github.com/sponsors/ljharb" 74 85 } 75 86 }, 76 87 "node_modules/content-disposition": { 77 - "version": "0.5.4", 78 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 79 - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 88 + "version": "1.0.0", 89 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", 90 + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", 91 + "license": "MIT", 80 92 "dependencies": { 81 93 "safe-buffer": "5.2.1" 82 94 }, ··· 85 97 } 86 98 }, 87 99 "node_modules/content-type": { 88 - "version": "1.0.4", 89 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 90 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 100 + "version": "1.0.5", 101 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", 102 + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", 103 + "license": "MIT", 91 104 "engines": { 92 105 "node": ">= 0.6" 93 106 } 94 107 }, 95 108 "node_modules/cookie": { 96 - "version": "0.5.0", 97 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 98 - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 109 + "version": "0.7.2", 110 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 111 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 112 + "license": "MIT", 99 113 "engines": { 100 114 "node": ">= 0.6" 101 115 } 102 116 }, 103 117 "node_modules/cookie-signature": { 104 - "version": "1.0.6", 105 - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 106 - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 118 + "version": "1.2.2", 119 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", 120 + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", 121 + "license": "MIT", 122 + "engines": { 123 + "node": ">=6.6.0" 124 + } 107 125 }, 108 126 "node_modules/debug": { 109 - "version": "2.6.9", 110 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 111 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 127 + "version": "4.4.1", 128 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 129 + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 130 + "license": "MIT", 112 131 "dependencies": { 113 - "ms": "2.0.0" 132 + "ms": "^2.1.3" 133 + }, 134 + "engines": { 135 + "node": ">=6.0" 136 + }, 137 + "peerDependenciesMeta": { 138 + "supports-color": { 139 + "optional": true 140 + } 114 141 } 115 142 }, 116 143 "node_modules/depd": { 117 144 "version": "2.0.0", 118 145 "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 119 146 "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 147 + "license": "MIT", 120 148 "engines": { 121 149 "node": ">= 0.8" 122 150 } 123 151 }, 124 - "node_modules/destroy": { 125 - "version": "1.2.0", 126 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 127 - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", 152 + "node_modules/dunder-proto": { 153 + "version": "1.0.1", 154 + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 155 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 156 + "license": "MIT", 157 + "dependencies": { 158 + "call-bind-apply-helpers": "^1.0.1", 159 + "es-errors": "^1.3.0", 160 + "gopd": "^1.2.0" 161 + }, 128 162 "engines": { 129 - "node": ">= 0.8", 130 - "npm": "1.2.8000 || >= 1.4.16" 163 + "node": ">= 0.4" 131 164 } 132 165 }, 133 166 "node_modules/ee-first": { 134 167 "version": "1.1.1", 135 168 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 136 - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 169 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", 170 + "license": "MIT" 137 171 }, 138 172 "node_modules/encodeurl": { 139 - "version": "1.0.2", 140 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 141 - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 173 + "version": "2.0.0", 174 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", 175 + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", 176 + "license": "MIT", 142 177 "engines": { 143 178 "node": ">= 0.8" 144 179 } 145 180 }, 181 + "node_modules/es-define-property": { 182 + "version": "1.0.1", 183 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 184 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", 185 + "license": "MIT", 186 + "engines": { 187 + "node": ">= 0.4" 188 + } 189 + }, 190 + "node_modules/es-errors": { 191 + "version": "1.3.0", 192 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 193 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 194 + "license": "MIT", 195 + "engines": { 196 + "node": ">= 0.4" 197 + } 198 + }, 199 + "node_modules/es-object-atoms": { 200 + "version": "1.1.1", 201 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 202 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 203 + "license": "MIT", 204 + "dependencies": { 205 + "es-errors": "^1.3.0" 206 + }, 207 + "engines": { 208 + "node": ">= 0.4" 209 + } 210 + }, 146 211 "node_modules/escape-html": { 147 212 "version": "1.0.3", 148 213 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 149 - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 214 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", 215 + "license": "MIT" 150 216 }, 151 217 "node_modules/etag": { 152 218 "version": "1.8.1", 153 219 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 154 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 220 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 221 + "license": "MIT", 155 222 "engines": { 156 223 "node": ">= 0.6" 157 224 } 158 225 }, 159 226 "node_modules/express": { 160 - "version": "4.18.1", 161 - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", 162 - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", 227 + "version": "5.1.0", 228 + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", 229 + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", 230 + "license": "MIT", 163 231 "dependencies": { 164 - "accepts": "~1.3.8", 165 - "array-flatten": "1.1.1", 166 - "body-parser": "1.20.0", 167 - "content-disposition": "0.5.4", 168 - "content-type": "~1.0.4", 169 - "cookie": "0.5.0", 170 - "cookie-signature": "1.0.6", 171 - "debug": "2.6.9", 172 - "depd": "2.0.0", 173 - "encodeurl": "~1.0.2", 174 - "escape-html": "~1.0.3", 175 - "etag": "~1.8.1", 176 - "finalhandler": "1.2.0", 177 - "fresh": "0.5.2", 178 - "http-errors": "2.0.0", 179 - "merge-descriptors": "1.0.1", 180 - "methods": "~1.1.2", 181 - "on-finished": "2.4.1", 182 - "parseurl": "~1.3.3", 183 - "path-to-regexp": "0.1.7", 184 - "proxy-addr": "~2.0.7", 185 - "qs": "6.10.3", 186 - "range-parser": "~1.2.1", 187 - "safe-buffer": "5.2.1", 188 - "send": "0.18.0", 189 - "serve-static": "1.15.0", 190 - "setprototypeof": "1.2.0", 191 - "statuses": "2.0.1", 192 - "type-is": "~1.6.18", 193 - "utils-merge": "1.0.1", 194 - "vary": "~1.1.2" 232 + "accepts": "^2.0.0", 233 + "body-parser": "^2.2.0", 234 + "content-disposition": "^1.0.0", 235 + "content-type": "^1.0.5", 236 + "cookie": "^0.7.1", 237 + "cookie-signature": "^1.2.1", 238 + "debug": "^4.4.0", 239 + "encodeurl": "^2.0.0", 240 + "escape-html": "^1.0.3", 241 + "etag": "^1.8.1", 242 + "finalhandler": "^2.1.0", 243 + "fresh": "^2.0.0", 244 + "http-errors": "^2.0.0", 245 + "merge-descriptors": "^2.0.0", 246 + "mime-types": "^3.0.0", 247 + "on-finished": "^2.4.1", 248 + "once": "^1.4.0", 249 + "parseurl": "^1.3.3", 250 + "proxy-addr": "^2.0.7", 251 + "qs": "^6.14.0", 252 + "range-parser": "^1.2.1", 253 + "router": "^2.2.0", 254 + "send": "^1.1.0", 255 + "serve-static": "^2.2.0", 256 + "statuses": "^2.0.1", 257 + "type-is": "^2.0.1", 258 + "vary": "^1.1.2" 195 259 }, 196 260 "engines": { 197 - "node": ">= 0.10.0" 261 + "node": ">= 18" 262 + }, 263 + "funding": { 264 + "type": "opencollective", 265 + "url": "https://opencollective.com/express" 198 266 } 199 267 }, 200 268 "node_modules/express-useragent": { ··· 206 274 } 207 275 }, 208 276 "node_modules/finalhandler": { 209 - "version": "1.2.0", 210 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 211 - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 277 + "version": "2.1.0", 278 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", 279 + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", 280 + "license": "MIT", 212 281 "dependencies": { 213 - "debug": "2.6.9", 214 - "encodeurl": "~1.0.2", 215 - "escape-html": "~1.0.3", 216 - "on-finished": "2.4.1", 217 - "parseurl": "~1.3.3", 218 - "statuses": "2.0.1", 219 - "unpipe": "~1.0.0" 282 + "debug": "^4.4.0", 283 + "encodeurl": "^2.0.0", 284 + "escape-html": "^1.0.3", 285 + "on-finished": "^2.4.1", 286 + "parseurl": "^1.3.3", 287 + "statuses": "^2.0.1" 220 288 }, 221 289 "engines": { 222 290 "node": ">= 0.8" ··· 231 299 } 232 300 }, 233 301 "node_modules/fresh": { 234 - "version": "0.5.2", 235 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 236 - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 302 + "version": "2.0.0", 303 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", 304 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", 305 + "license": "MIT", 237 306 "engines": { 238 - "node": ">= 0.6" 307 + "node": ">= 0.8" 239 308 } 240 309 }, 241 310 "node_modules/function-bind": { 242 - "version": "1.1.1", 243 - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 244 - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 311 + "version": "1.1.2", 312 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 313 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 314 + "license": "MIT", 315 + "funding": { 316 + "url": "https://github.com/sponsors/ljharb" 317 + } 245 318 }, 246 319 "node_modules/get-intrinsic": { 247 - "version": "1.1.1", 248 - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 249 - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 320 + "version": "1.3.0", 321 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 322 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 323 + "license": "MIT", 250 324 "dependencies": { 251 - "function-bind": "^1.1.1", 252 - "has": "^1.0.3", 253 - "has-symbols": "^1.0.1" 325 + "call-bind-apply-helpers": "^1.0.2", 326 + "es-define-property": "^1.0.1", 327 + "es-errors": "^1.3.0", 328 + "es-object-atoms": "^1.1.1", 329 + "function-bind": "^1.1.2", 330 + "get-proto": "^1.0.1", 331 + "gopd": "^1.2.0", 332 + "has-symbols": "^1.1.0", 333 + "hasown": "^2.0.2", 334 + "math-intrinsics": "^1.1.0" 335 + }, 336 + "engines": { 337 + "node": ">= 0.4" 254 338 }, 255 339 "funding": { 256 340 "url": "https://github.com/sponsors/ljharb" 257 341 } 258 342 }, 259 - "node_modules/has": { 260 - "version": "1.0.3", 261 - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 262 - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 343 + "node_modules/get-proto": { 344 + "version": "1.0.1", 345 + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 346 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 347 + "license": "MIT", 263 348 "dependencies": { 264 - "function-bind": "^1.1.1" 349 + "dunder-proto": "^1.0.1", 350 + "es-object-atoms": "^1.0.0" 265 351 }, 266 352 "engines": { 267 - "node": ">= 0.4.0" 353 + "node": ">= 0.4" 354 + } 355 + }, 356 + "node_modules/gopd": { 357 + "version": "1.2.0", 358 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 359 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", 360 + "license": "MIT", 361 + "engines": { 362 + "node": ">= 0.4" 363 + }, 364 + "funding": { 365 + "url": "https://github.com/sponsors/ljharb" 268 366 } 269 367 }, 270 368 "node_modules/has-symbols": { 271 - "version": "1.0.3", 272 - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 273 - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 369 + "version": "1.1.0", 370 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 371 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", 372 + "license": "MIT", 274 373 "engines": { 275 374 "node": ">= 0.4" 276 375 }, ··· 278 377 "url": "https://github.com/sponsors/ljharb" 279 378 } 280 379 }, 380 + "node_modules/hasown": { 381 + "version": "2.0.2", 382 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 383 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 384 + "license": "MIT", 385 + "dependencies": { 386 + "function-bind": "^1.1.2" 387 + }, 388 + "engines": { 389 + "node": ">= 0.4" 390 + } 391 + }, 281 392 "node_modules/http-errors": { 282 393 "version": "2.0.0", 283 394 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 284 395 "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 396 + "license": "MIT", 285 397 "dependencies": { 286 398 "depd": "2.0.0", 287 399 "inherits": "2.0.4", ··· 293 405 "node": ">= 0.8" 294 406 } 295 407 }, 408 + "node_modules/http-errors/node_modules/statuses": { 409 + "version": "2.0.1", 410 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 411 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", 412 + "license": "MIT", 413 + "engines": { 414 + "node": ">= 0.8" 415 + } 416 + }, 296 417 "node_modules/iconv-lite": { 297 - "version": "0.4.24", 298 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 299 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 418 + "version": "0.6.3", 419 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 420 + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 421 + "license": "MIT", 300 422 "dependencies": { 301 - "safer-buffer": ">= 2.1.2 < 3" 423 + "safer-buffer": ">= 2.1.2 < 3.0.0" 302 424 }, 303 425 "engines": { 304 426 "node": ">=0.10.0" ··· 307 429 "node_modules/inherits": { 308 430 "version": "2.0.4", 309 431 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 310 - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 432 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 433 + "license": "ISC" 311 434 }, 312 435 "node_modules/ipaddr.js": { 313 436 "version": "1.9.1", ··· 317 440 "node": ">= 0.10" 318 441 } 319 442 }, 443 + "node_modules/is-promise": { 444 + "version": "4.0.0", 445 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", 446 + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", 447 + "license": "MIT" 448 + }, 449 + "node_modules/math-intrinsics": { 450 + "version": "1.1.0", 451 + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 452 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", 453 + "license": "MIT", 454 + "engines": { 455 + "node": ">= 0.4" 456 + } 457 + }, 320 458 "node_modules/media-typer": { 321 - "version": "0.3.0", 322 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 323 - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 459 + "version": "1.1.0", 460 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 461 + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", 462 + "license": "MIT", 324 463 "engines": { 325 - "node": ">= 0.6" 464 + "node": ">= 0.8" 326 465 } 327 466 }, 328 467 "node_modules/merge-descriptors": { 329 - "version": "1.0.1", 330 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 331 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 332 - }, 333 - "node_modules/methods": { 334 - "version": "1.1.2", 335 - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 336 - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", 468 + "version": "2.0.0", 469 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", 470 + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", 471 + "license": "MIT", 337 472 "engines": { 338 - "node": ">= 0.6" 339 - } 340 - }, 341 - "node_modules/mime": { 342 - "version": "1.6.0", 343 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 344 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 345 - "bin": { 346 - "mime": "cli.js" 473 + "node": ">=18" 347 474 }, 348 - "engines": { 349 - "node": ">=4" 475 + "funding": { 476 + "url": "https://github.com/sponsors/sindresorhus" 350 477 } 351 478 }, 352 479 "node_modules/mime-db": { 353 - "version": "1.52.0", 354 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 355 - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 480 + "version": "1.54.0", 481 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 482 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 483 + "license": "MIT", 356 484 "engines": { 357 485 "node": ">= 0.6" 358 486 } 359 487 }, 360 488 "node_modules/mime-types": { 361 - "version": "2.1.35", 362 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 363 - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 489 + "version": "3.0.1", 490 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", 491 + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", 492 + "license": "MIT", 364 493 "dependencies": { 365 - "mime-db": "1.52.0" 494 + "mime-db": "^1.54.0" 366 495 }, 367 496 "engines": { 368 497 "node": ">= 0.6" 369 498 } 370 499 }, 371 500 "node_modules/ms": { 372 - "version": "2.0.0", 373 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 374 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 501 + "version": "2.1.3", 502 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 503 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 504 + "license": "MIT" 375 505 }, 376 506 "node_modules/negotiator": { 377 - "version": "0.6.3", 378 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 379 - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 507 + "version": "1.0.0", 508 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", 509 + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", 510 + "license": "MIT", 380 511 "engines": { 381 512 "node": ">= 0.6" 382 513 } 383 514 }, 384 515 "node_modules/object-inspect": { 385 - "version": "1.12.0", 386 - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", 387 - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 516 + "version": "1.13.4", 517 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", 518 + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", 519 + "license": "MIT", 520 + "engines": { 521 + "node": ">= 0.4" 522 + }, 388 523 "funding": { 389 524 "url": "https://github.com/sponsors/ljharb" 390 525 } ··· 393 528 "version": "2.4.1", 394 529 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 395 530 "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 531 + "license": "MIT", 396 532 "dependencies": { 397 533 "ee-first": "1.1.1" 398 534 }, 399 535 "engines": { 400 536 "node": ">= 0.8" 537 + } 538 + }, 539 + "node_modules/once": { 540 + "version": "1.4.0", 541 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 542 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 543 + "license": "ISC", 544 + "dependencies": { 545 + "wrappy": "1" 401 546 } 402 547 }, 403 548 "node_modules/parseurl": { 404 549 "version": "1.3.3", 405 550 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 406 551 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 552 + "license": "MIT", 407 553 "engines": { 408 554 "node": ">= 0.8" 409 555 } 410 556 }, 411 557 "node_modules/path-to-regexp": { 412 - "version": "0.1.7", 413 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 414 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 558 + "version": "8.2.0", 559 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", 560 + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", 561 + "license": "MIT", 562 + "engines": { 563 + "node": ">=16" 564 + } 415 565 }, 416 566 "node_modules/proxy-addr": { 417 567 "version": "2.0.7", ··· 426 576 } 427 577 }, 428 578 "node_modules/qs": { 429 - "version": "6.10.3", 430 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 431 - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 579 + "version": "6.14.0", 580 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", 581 + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", 582 + "license": "BSD-3-Clause", 432 583 "dependencies": { 433 - "side-channel": "^1.0.4" 584 + "side-channel": "^1.1.0" 434 585 }, 435 586 "engines": { 436 587 "node": ">=0.6" ··· 443 594 "version": "1.2.1", 444 595 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 445 596 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 597 + "license": "MIT", 446 598 "engines": { 447 599 "node": ">= 0.6" 448 600 } 449 601 }, 450 602 "node_modules/raw-body": { 451 - "version": "2.5.1", 452 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 453 - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 603 + "version": "3.0.0", 604 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", 605 + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", 606 + "license": "MIT", 454 607 "dependencies": { 455 608 "bytes": "3.1.2", 456 609 "http-errors": "2.0.0", 457 - "iconv-lite": "0.4.24", 610 + "iconv-lite": "0.6.3", 458 611 "unpipe": "1.0.0" 459 612 }, 460 613 "engines": { 461 614 "node": ">= 0.8" 462 615 } 463 616 }, 617 + "node_modules/router": { 618 + "version": "2.2.0", 619 + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", 620 + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", 621 + "license": "MIT", 622 + "dependencies": { 623 + "debug": "^4.4.0", 624 + "depd": "^2.0.0", 625 + "is-promise": "^4.0.0", 626 + "parseurl": "^1.3.3", 627 + "path-to-regexp": "^8.0.0" 628 + }, 629 + "engines": { 630 + "node": ">= 18" 631 + } 632 + }, 464 633 "node_modules/safe-buffer": { 465 634 "version": "5.2.1", 466 635 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ··· 478 647 "type": "consulting", 479 648 "url": "https://feross.org/support" 480 649 } 481 - ] 650 + ], 651 + "license": "MIT" 482 652 }, 483 653 "node_modules/safer-buffer": { 484 654 "version": "2.1.2", 485 655 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 486 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 656 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 657 + "license": "MIT" 487 658 }, 488 659 "node_modules/send": { 489 - "version": "0.18.0", 490 - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 491 - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 660 + "version": "1.2.0", 661 + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", 662 + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", 663 + "license": "MIT", 492 664 "dependencies": { 493 - "debug": "2.6.9", 494 - "depd": "2.0.0", 495 - "destroy": "1.2.0", 496 - "encodeurl": "~1.0.2", 497 - "escape-html": "~1.0.3", 498 - "etag": "~1.8.1", 499 - "fresh": "0.5.2", 500 - "http-errors": "2.0.0", 501 - "mime": "1.6.0", 502 - "ms": "2.1.3", 503 - "on-finished": "2.4.1", 504 - "range-parser": "~1.2.1", 505 - "statuses": "2.0.1" 665 + "debug": "^4.3.5", 666 + "encodeurl": "^2.0.0", 667 + "escape-html": "^1.0.3", 668 + "etag": "^1.8.1", 669 + "fresh": "^2.0.0", 670 + "http-errors": "^2.0.0", 671 + "mime-types": "^3.0.1", 672 + "ms": "^2.1.3", 673 + "on-finished": "^2.4.1", 674 + "range-parser": "^1.2.1", 675 + "statuses": "^2.0.1" 506 676 }, 507 677 "engines": { 508 - "node": ">= 0.8.0" 678 + "node": ">= 18" 509 679 } 510 680 }, 511 - "node_modules/send/node_modules/ms": { 512 - "version": "2.1.3", 513 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 514 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 515 - }, 516 681 "node_modules/serve-static": { 517 - "version": "1.15.0", 518 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 519 - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 682 + "version": "2.2.0", 683 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", 684 + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", 685 + "license": "MIT", 520 686 "dependencies": { 521 - "encodeurl": "~1.0.2", 522 - "escape-html": "~1.0.3", 523 - "parseurl": "~1.3.3", 524 - "send": "0.18.0" 687 + "encodeurl": "^2.0.0", 688 + "escape-html": "^1.0.3", 689 + "parseurl": "^1.3.3", 690 + "send": "^1.2.0" 525 691 }, 526 692 "engines": { 527 - "node": ">= 0.8.0" 693 + "node": ">= 18" 528 694 } 529 695 }, 530 696 "node_modules/setprototypeof": { 531 697 "version": "1.2.0", 532 698 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 533 - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 699 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", 700 + "license": "ISC" 534 701 }, 535 702 "node_modules/side-channel": { 536 - "version": "1.0.4", 537 - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 538 - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 703 + "version": "1.1.0", 704 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", 705 + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 706 + "license": "MIT", 539 707 "dependencies": { 540 - "call-bind": "^1.0.0", 541 - "get-intrinsic": "^1.0.2", 542 - "object-inspect": "^1.9.0" 708 + "es-errors": "^1.3.0", 709 + "object-inspect": "^1.13.3", 710 + "side-channel-list": "^1.0.0", 711 + "side-channel-map": "^1.0.1", 712 + "side-channel-weakmap": "^1.0.2" 713 + }, 714 + "engines": { 715 + "node": ">= 0.4" 716 + }, 717 + "funding": { 718 + "url": "https://github.com/sponsors/ljharb" 719 + } 720 + }, 721 + "node_modules/side-channel-list": { 722 + "version": "1.0.0", 723 + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", 724 + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", 725 + "license": "MIT", 726 + "dependencies": { 727 + "es-errors": "^1.3.0", 728 + "object-inspect": "^1.13.3" 729 + }, 730 + "engines": { 731 + "node": ">= 0.4" 732 + }, 733 + "funding": { 734 + "url": "https://github.com/sponsors/ljharb" 735 + } 736 + }, 737 + "node_modules/side-channel-map": { 738 + "version": "1.0.1", 739 + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", 740 + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 741 + "license": "MIT", 742 + "dependencies": { 743 + "call-bound": "^1.0.2", 744 + "es-errors": "^1.3.0", 745 + "get-intrinsic": "^1.2.5", 746 + "object-inspect": "^1.13.3" 747 + }, 748 + "engines": { 749 + "node": ">= 0.4" 750 + }, 751 + "funding": { 752 + "url": "https://github.com/sponsors/ljharb" 753 + } 754 + }, 755 + "node_modules/side-channel-weakmap": { 756 + "version": "1.0.2", 757 + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", 758 + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 759 + "license": "MIT", 760 + "dependencies": { 761 + "call-bound": "^1.0.2", 762 + "es-errors": "^1.3.0", 763 + "get-intrinsic": "^1.2.5", 764 + "object-inspect": "^1.13.3", 765 + "side-channel-map": "^1.0.1" 766 + }, 767 + "engines": { 768 + "node": ">= 0.4" 543 769 }, 544 770 "funding": { 545 771 "url": "https://github.com/sponsors/ljharb" 546 772 } 547 773 }, 548 774 "node_modules/statuses": { 549 - "version": "2.0.1", 550 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 551 - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", 775 + "version": "2.0.2", 776 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", 777 + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", 778 + "license": "MIT", 552 779 "engines": { 553 780 "node": ">= 0.8" 554 781 } ··· 557 784 "version": "1.0.1", 558 785 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 559 786 "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 787 + "license": "MIT", 560 788 "engines": { 561 789 "node": ">=0.6" 562 790 } 563 791 }, 564 792 "node_modules/type-is": { 565 - "version": "1.6.18", 566 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 567 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 793 + "version": "2.0.1", 794 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", 795 + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 796 + "license": "MIT", 568 797 "dependencies": { 569 - "media-typer": "0.3.0", 570 - "mime-types": "~2.1.24" 798 + "content-type": "^1.0.5", 799 + "media-typer": "^1.1.0", 800 + "mime-types": "^3.0.0" 571 801 }, 572 802 "engines": { 573 803 "node": ">= 0.6" ··· 576 806 "node_modules/unpipe": { 577 807 "version": "1.0.0", 578 808 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 579 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 809 + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 810 + "license": "MIT", 580 811 "engines": { 581 812 "node": ">= 0.8" 582 813 } 583 814 }, 584 - "node_modules/utils-merge": { 585 - "version": "1.0.1", 586 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 587 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 588 - "engines": { 589 - "node": ">= 0.4.0" 590 - } 591 - }, 592 815 "node_modules/vary": { 593 816 "version": "1.1.2", 594 817 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", ··· 596 819 "engines": { 597 820 "node": ">= 0.8" 598 821 } 822 + }, 823 + "node_modules/wrappy": { 824 + "version": "1.0.2", 825 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 826 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 827 + "license": "ISC" 599 828 } 600 829 }, 601 830 "dependencies": { 602 831 "accepts": { 603 - "version": "1.3.8", 604 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 605 - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 832 + "version": "2.0.0", 833 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", 834 + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", 606 835 "requires": { 607 - "mime-types": "~2.1.34", 608 - "negotiator": "0.6.3" 836 + "mime-types": "^3.0.0", 837 + "negotiator": "^1.0.0" 609 838 } 610 - }, 611 - "array-flatten": { 612 - "version": "1.1.1", 613 - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 614 - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 615 839 }, 616 840 "body-parser": { 617 - "version": "1.20.0", 618 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", 619 - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", 841 + "version": "2.2.0", 842 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", 843 + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", 620 844 "requires": { 621 - "bytes": "3.1.2", 622 - "content-type": "~1.0.4", 623 - "debug": "2.6.9", 624 - "depd": "2.0.0", 625 - "destroy": "1.2.0", 626 - "http-errors": "2.0.0", 627 - "iconv-lite": "0.4.24", 628 - "on-finished": "2.4.1", 629 - "qs": "6.10.3", 630 - "raw-body": "2.5.1", 631 - "type-is": "~1.6.18", 632 - "unpipe": "1.0.0" 845 + "bytes": "^3.1.2", 846 + "content-type": "^1.0.5", 847 + "debug": "^4.4.0", 848 + "http-errors": "^2.0.0", 849 + "iconv-lite": "^0.6.3", 850 + "on-finished": "^2.4.1", 851 + "qs": "^6.14.0", 852 + "raw-body": "^3.0.0", 853 + "type-is": "^2.0.0" 633 854 } 634 855 }, 635 856 "bytes": { ··· 637 858 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 638 859 "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 639 860 }, 640 - "call-bind": { 861 + "call-bind-apply-helpers": { 641 862 "version": "1.0.2", 642 - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 643 - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 863 + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 864 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 865 + "requires": { 866 + "es-errors": "^1.3.0", 867 + "function-bind": "^1.1.2" 868 + } 869 + }, 870 + "call-bound": { 871 + "version": "1.0.4", 872 + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", 873 + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 644 874 "requires": { 645 - "function-bind": "^1.1.1", 646 - "get-intrinsic": "^1.0.2" 875 + "call-bind-apply-helpers": "^1.0.2", 876 + "get-intrinsic": "^1.3.0" 647 877 } 648 878 }, 649 879 "content-disposition": { 650 - "version": "0.5.4", 651 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 652 - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 880 + "version": "1.0.0", 881 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", 882 + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", 653 883 "requires": { 654 884 "safe-buffer": "5.2.1" 655 885 } 656 886 }, 657 887 "content-type": { 658 - "version": "1.0.4", 659 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 660 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 888 + "version": "1.0.5", 889 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", 890 + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" 661 891 }, 662 892 "cookie": { 663 - "version": "0.5.0", 664 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 665 - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 893 + "version": "0.7.2", 894 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 895 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" 666 896 }, 667 897 "cookie-signature": { 668 - "version": "1.0.6", 669 - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 670 - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 898 + "version": "1.2.2", 899 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", 900 + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==" 671 901 }, 672 902 "debug": { 673 - "version": "2.6.9", 674 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 675 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 903 + "version": "4.4.1", 904 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 905 + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 676 906 "requires": { 677 - "ms": "2.0.0" 907 + "ms": "^2.1.3" 678 908 } 679 909 }, 680 910 "depd": { ··· 682 912 "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 683 913 "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 684 914 }, 685 - "destroy": { 686 - "version": "1.2.0", 687 - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 688 - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" 915 + "dunder-proto": { 916 + "version": "1.0.1", 917 + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 918 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 919 + "requires": { 920 + "call-bind-apply-helpers": "^1.0.1", 921 + "es-errors": "^1.3.0", 922 + "gopd": "^1.2.0" 923 + } 689 924 }, 690 925 "ee-first": { 691 926 "version": "1.1.1", 692 927 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 693 - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 928 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 694 929 }, 695 930 "encodeurl": { 696 - "version": "1.0.2", 697 - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 698 - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 931 + "version": "2.0.0", 932 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", 933 + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" 934 + }, 935 + "es-define-property": { 936 + "version": "1.0.1", 937 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 938 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" 939 + }, 940 + "es-errors": { 941 + "version": "1.3.0", 942 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 943 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" 944 + }, 945 + "es-object-atoms": { 946 + "version": "1.1.1", 947 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 948 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 949 + "requires": { 950 + "es-errors": "^1.3.0" 951 + } 699 952 }, 700 953 "escape-html": { 701 954 "version": "1.0.3", 702 955 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 703 - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 956 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 704 957 }, 705 958 "etag": { 706 959 "version": "1.8.1", 707 960 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 708 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 961 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" 709 962 }, 710 963 "express": { 711 - "version": "4.18.1", 712 - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", 713 - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", 964 + "version": "5.1.0", 965 + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", 966 + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", 714 967 "requires": { 715 - "accepts": "~1.3.8", 716 - "array-flatten": "1.1.1", 717 - "body-parser": "1.20.0", 718 - "content-disposition": "0.5.4", 719 - "content-type": "~1.0.4", 720 - "cookie": "0.5.0", 721 - "cookie-signature": "1.0.6", 722 - "debug": "2.6.9", 723 - "depd": "2.0.0", 724 - "encodeurl": "~1.0.2", 725 - "escape-html": "~1.0.3", 726 - "etag": "~1.8.1", 727 - "finalhandler": "1.2.0", 728 - "fresh": "0.5.2", 729 - "http-errors": "2.0.0", 730 - "merge-descriptors": "1.0.1", 731 - "methods": "~1.1.2", 732 - "on-finished": "2.4.1", 733 - "parseurl": "~1.3.3", 734 - "path-to-regexp": "0.1.7", 735 - "proxy-addr": "~2.0.7", 736 - "qs": "6.10.3", 737 - "range-parser": "~1.2.1", 738 - "safe-buffer": "5.2.1", 739 - "send": "0.18.0", 740 - "serve-static": "1.15.0", 741 - "setprototypeof": "1.2.0", 742 - "statuses": "2.0.1", 743 - "type-is": "~1.6.18", 744 - "utils-merge": "1.0.1", 745 - "vary": "~1.1.2" 968 + "accepts": "^2.0.0", 969 + "body-parser": "^2.2.0", 970 + "content-disposition": "^1.0.0", 971 + "content-type": "^1.0.5", 972 + "cookie": "^0.7.1", 973 + "cookie-signature": "^1.2.1", 974 + "debug": "^4.4.0", 975 + "encodeurl": "^2.0.0", 976 + "escape-html": "^1.0.3", 977 + "etag": "^1.8.1", 978 + "finalhandler": "^2.1.0", 979 + "fresh": "^2.0.0", 980 + "http-errors": "^2.0.0", 981 + "merge-descriptors": "^2.0.0", 982 + "mime-types": "^3.0.0", 983 + "on-finished": "^2.4.1", 984 + "once": "^1.4.0", 985 + "parseurl": "^1.3.3", 986 + "proxy-addr": "^2.0.7", 987 + "qs": "^6.14.0", 988 + "range-parser": "^1.2.1", 989 + "router": "^2.2.0", 990 + "send": "^1.1.0", 991 + "serve-static": "^2.2.0", 992 + "statuses": "^2.0.1", 993 + "type-is": "^2.0.1", 994 + "vary": "^1.1.2" 746 995 } 747 996 }, 748 997 "express-useragent": { ··· 751 1000 "integrity": "sha512-eq5xMiYCYwFPoekffMjvEIk+NWdlQY9Y38OsTyl13IvA728vKT+q/CSERYWzcw93HGBJcIqMIsZC5CZGARPVdg==" 752 1001 }, 753 1002 "finalhandler": { 754 - "version": "1.2.0", 755 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 756 - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 1003 + "version": "2.1.0", 1004 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", 1005 + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", 757 1006 "requires": { 758 - "debug": "2.6.9", 759 - "encodeurl": "~1.0.2", 760 - "escape-html": "~1.0.3", 761 - "on-finished": "2.4.1", 762 - "parseurl": "~1.3.3", 763 - "statuses": "2.0.1", 764 - "unpipe": "~1.0.0" 1007 + "debug": "^4.4.0", 1008 + "encodeurl": "^2.0.0", 1009 + "escape-html": "^1.0.3", 1010 + "on-finished": "^2.4.1", 1011 + "parseurl": "^1.3.3", 1012 + "statuses": "^2.0.1" 765 1013 } 766 1014 }, 767 1015 "forwarded": { ··· 770 1018 "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 771 1019 }, 772 1020 "fresh": { 773 - "version": "0.5.2", 774 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 775 - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1021 + "version": "2.0.0", 1022 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", 1023 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==" 776 1024 }, 777 1025 "function-bind": { 778 - "version": "1.1.1", 779 - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 780 - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1026 + "version": "1.1.2", 1027 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 1028 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" 781 1029 }, 782 1030 "get-intrinsic": { 783 - "version": "1.1.1", 784 - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 785 - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 1031 + "version": "1.3.0", 1032 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 1033 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 786 1034 "requires": { 787 - "function-bind": "^1.1.1", 788 - "has": "^1.0.3", 789 - "has-symbols": "^1.0.1" 1035 + "call-bind-apply-helpers": "^1.0.2", 1036 + "es-define-property": "^1.0.1", 1037 + "es-errors": "^1.3.0", 1038 + "es-object-atoms": "^1.1.1", 1039 + "function-bind": "^1.1.2", 1040 + "get-proto": "^1.0.1", 1041 + "gopd": "^1.2.0", 1042 + "has-symbols": "^1.1.0", 1043 + "hasown": "^2.0.2", 1044 + "math-intrinsics": "^1.1.0" 790 1045 } 791 1046 }, 792 - "has": { 793 - "version": "1.0.3", 794 - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 795 - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1047 + "get-proto": { 1048 + "version": "1.0.1", 1049 + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 1050 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 796 1051 "requires": { 797 - "function-bind": "^1.1.1" 1052 + "dunder-proto": "^1.0.1", 1053 + "es-object-atoms": "^1.0.0" 798 1054 } 1055 + }, 1056 + "gopd": { 1057 + "version": "1.2.0", 1058 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 1059 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" 799 1060 }, 800 1061 "has-symbols": { 801 - "version": "1.0.3", 802 - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 803 - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" 1062 + "version": "1.1.0", 1063 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 1064 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" 1065 + }, 1066 + "hasown": { 1067 + "version": "2.0.2", 1068 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 1069 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 1070 + "requires": { 1071 + "function-bind": "^1.1.2" 1072 + } 804 1073 }, 805 1074 "http-errors": { 806 1075 "version": "2.0.0", ··· 812 1081 "setprototypeof": "1.2.0", 813 1082 "statuses": "2.0.1", 814 1083 "toidentifier": "1.0.1" 1084 + }, 1085 + "dependencies": { 1086 + "statuses": { 1087 + "version": "2.0.1", 1088 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 1089 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 1090 + } 815 1091 } 816 1092 }, 817 1093 "iconv-lite": { 818 - "version": "0.4.24", 819 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 820 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1094 + "version": "0.6.3", 1095 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 1096 + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 821 1097 "requires": { 822 - "safer-buffer": ">= 2.1.2 < 3" 1098 + "safer-buffer": ">= 2.1.2 < 3.0.0" 823 1099 } 824 1100 }, 825 1101 "inherits": { ··· 832 1108 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 833 1109 "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 834 1110 }, 1111 + "is-promise": { 1112 + "version": "4.0.0", 1113 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", 1114 + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" 1115 + }, 1116 + "math-intrinsics": { 1117 + "version": "1.1.0", 1118 + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 1119 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" 1120 + }, 835 1121 "media-typer": { 836 - "version": "0.3.0", 837 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 838 - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1122 + "version": "1.1.0", 1123 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 1124 + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" 839 1125 }, 840 1126 "merge-descriptors": { 841 - "version": "1.0.1", 842 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 843 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 844 - }, 845 - "methods": { 846 - "version": "1.1.2", 847 - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 848 - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 849 - }, 850 - "mime": { 851 - "version": "1.6.0", 852 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 853 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1127 + "version": "2.0.0", 1128 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", 1129 + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==" 854 1130 }, 855 1131 "mime-db": { 856 - "version": "1.52.0", 857 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 858 - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 1132 + "version": "1.54.0", 1133 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 1134 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==" 859 1135 }, 860 1136 "mime-types": { 861 - "version": "2.1.35", 862 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 863 - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1137 + "version": "3.0.1", 1138 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", 1139 + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", 864 1140 "requires": { 865 - "mime-db": "1.52.0" 1141 + "mime-db": "^1.54.0" 866 1142 } 867 1143 }, 868 1144 "ms": { 869 - "version": "2.0.0", 870 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 871 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1145 + "version": "2.1.3", 1146 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1147 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 872 1148 }, 873 1149 "negotiator": { 874 - "version": "0.6.3", 875 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 876 - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 1150 + "version": "1.0.0", 1151 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", 1152 + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==" 877 1153 }, 878 1154 "object-inspect": { 879 - "version": "1.12.0", 880 - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", 881 - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" 1155 + "version": "1.13.4", 1156 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", 1157 + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" 882 1158 }, 883 1159 "on-finished": { 884 1160 "version": "2.4.1", ··· 888 1164 "ee-first": "1.1.1" 889 1165 } 890 1166 }, 1167 + "once": { 1168 + "version": "1.4.0", 1169 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1170 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1171 + "requires": { 1172 + "wrappy": "1" 1173 + } 1174 + }, 891 1175 "parseurl": { 892 1176 "version": "1.3.3", 893 1177 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 894 1178 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 895 1179 }, 896 1180 "path-to-regexp": { 897 - "version": "0.1.7", 898 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 899 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1181 + "version": "8.2.0", 1182 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", 1183 + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==" 900 1184 }, 901 1185 "proxy-addr": { 902 1186 "version": "2.0.7", ··· 908 1192 } 909 1193 }, 910 1194 "qs": { 911 - "version": "6.10.3", 912 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 913 - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 1195 + "version": "6.14.0", 1196 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", 1197 + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", 914 1198 "requires": { 915 - "side-channel": "^1.0.4" 1199 + "side-channel": "^1.1.0" 916 1200 } 917 1201 }, 918 1202 "range-parser": { ··· 921 1205 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 922 1206 }, 923 1207 "raw-body": { 924 - "version": "2.5.1", 925 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 926 - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 1208 + "version": "3.0.0", 1209 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", 1210 + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", 927 1211 "requires": { 928 1212 "bytes": "3.1.2", 929 1213 "http-errors": "2.0.0", 930 - "iconv-lite": "0.4.24", 1214 + "iconv-lite": "0.6.3", 931 1215 "unpipe": "1.0.0" 932 1216 } 933 1217 }, 1218 + "router": { 1219 + "version": "2.2.0", 1220 + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", 1221 + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", 1222 + "requires": { 1223 + "debug": "^4.4.0", 1224 + "depd": "^2.0.0", 1225 + "is-promise": "^4.0.0", 1226 + "parseurl": "^1.3.3", 1227 + "path-to-regexp": "^8.0.0" 1228 + } 1229 + }, 934 1230 "safe-buffer": { 935 1231 "version": "5.2.1", 936 1232 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ··· 942 1238 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 943 1239 }, 944 1240 "send": { 945 - "version": "0.18.0", 946 - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 947 - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 1241 + "version": "1.2.0", 1242 + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", 1243 + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", 948 1244 "requires": { 949 - "debug": "2.6.9", 950 - "depd": "2.0.0", 951 - "destroy": "1.2.0", 952 - "encodeurl": "~1.0.2", 953 - "escape-html": "~1.0.3", 954 - "etag": "~1.8.1", 955 - "fresh": "0.5.2", 956 - "http-errors": "2.0.0", 957 - "mime": "1.6.0", 958 - "ms": "2.1.3", 959 - "on-finished": "2.4.1", 960 - "range-parser": "~1.2.1", 961 - "statuses": "2.0.1" 962 - }, 963 - "dependencies": { 964 - "ms": { 965 - "version": "2.1.3", 966 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 967 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 968 - } 1245 + "debug": "^4.3.5", 1246 + "encodeurl": "^2.0.0", 1247 + "escape-html": "^1.0.3", 1248 + "etag": "^1.8.1", 1249 + "fresh": "^2.0.0", 1250 + "http-errors": "^2.0.0", 1251 + "mime-types": "^3.0.1", 1252 + "ms": "^2.1.3", 1253 + "on-finished": "^2.4.1", 1254 + "range-parser": "^1.2.1", 1255 + "statuses": "^2.0.1" 969 1256 } 970 1257 }, 971 1258 "serve-static": { 972 - "version": "1.15.0", 973 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 974 - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 1259 + "version": "2.2.0", 1260 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", 1261 + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", 975 1262 "requires": { 976 - "encodeurl": "~1.0.2", 977 - "escape-html": "~1.0.3", 978 - "parseurl": "~1.3.3", 979 - "send": "0.18.0" 1263 + "encodeurl": "^2.0.0", 1264 + "escape-html": "^1.0.3", 1265 + "parseurl": "^1.3.3", 1266 + "send": "^1.2.0" 980 1267 } 981 1268 }, 982 1269 "setprototypeof": { ··· 985 1272 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 986 1273 }, 987 1274 "side-channel": { 988 - "version": "1.0.4", 989 - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 990 - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1275 + "version": "1.1.0", 1276 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", 1277 + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 1278 + "requires": { 1279 + "es-errors": "^1.3.0", 1280 + "object-inspect": "^1.13.3", 1281 + "side-channel-list": "^1.0.0", 1282 + "side-channel-map": "^1.0.1", 1283 + "side-channel-weakmap": "^1.0.2" 1284 + } 1285 + }, 1286 + "side-channel-list": { 1287 + "version": "1.0.0", 1288 + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", 1289 + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", 1290 + "requires": { 1291 + "es-errors": "^1.3.0", 1292 + "object-inspect": "^1.13.3" 1293 + } 1294 + }, 1295 + "side-channel-map": { 1296 + "version": "1.0.1", 1297 + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", 1298 + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 1299 + "requires": { 1300 + "call-bound": "^1.0.2", 1301 + "es-errors": "^1.3.0", 1302 + "get-intrinsic": "^1.2.5", 1303 + "object-inspect": "^1.13.3" 1304 + } 1305 + }, 1306 + "side-channel-weakmap": { 1307 + "version": "1.0.2", 1308 + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", 1309 + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 991 1310 "requires": { 992 - "call-bind": "^1.0.0", 993 - "get-intrinsic": "^1.0.2", 994 - "object-inspect": "^1.9.0" 1311 + "call-bound": "^1.0.2", 1312 + "es-errors": "^1.3.0", 1313 + "get-intrinsic": "^1.2.5", 1314 + "object-inspect": "^1.13.3", 1315 + "side-channel-map": "^1.0.1" 995 1316 } 996 1317 }, 997 1318 "statuses": { 998 - "version": "2.0.1", 999 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 1000 - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 1319 + "version": "2.0.2", 1320 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", 1321 + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==" 1001 1322 }, 1002 1323 "toidentifier": { 1003 1324 "version": "1.0.1", ··· 1005 1326 "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 1006 1327 }, 1007 1328 "type-is": { 1008 - "version": "1.6.18", 1009 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1010 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1329 + "version": "2.0.1", 1330 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", 1331 + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 1011 1332 "requires": { 1012 - "media-typer": "0.3.0", 1013 - "mime-types": "~2.1.24" 1333 + "content-type": "^1.0.5", 1334 + "media-typer": "^1.1.0", 1335 + "mime-types": "^3.0.0" 1014 1336 } 1015 1337 }, 1016 1338 "unpipe": { 1017 1339 "version": "1.0.0", 1018 1340 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1019 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1020 - }, 1021 - "utils-merge": { 1022 - "version": "1.0.1", 1023 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1024 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1341 + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" 1025 1342 }, 1026 1343 "vary": { 1027 1344 "version": "1.1.2", 1028 1345 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1029 1346 "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1347 + }, 1348 + "wrappy": { 1349 + "version": "1.0.2", 1350 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1351 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1030 1352 } 1031 1353 } 1032 1354 }
+6 -3
package.json
··· 1 1 { 2 2 "name": "rickognito", 3 - "version": "0.0.1", 3 + "version": "0.0.7", 4 4 "description": "Disguise a rickroll", 5 5 "main": "index.js", 6 + "scripts": { 7 + "start": "node --use_strict index.js" 8 + }, 6 9 "repository": { 7 10 "type": "git", 8 11 "url": "git+ssh://git@gitlab.com/sanin.dev/rickognito.git" ··· 14 17 }, 15 18 "homepage": "https://gitlab.com/sanin.dev/rickognito#readme", 16 19 "dependencies": { 17 - "express": "^4.18.1", 18 - "express-useragent": "^1.0.15" 20 + "express": "5.1.0", 21 + "express-useragent": "1.0.15" 19 22 } 20 23 }
+6
readme.md
··· 1 + # Rickognito 2 + ![Rickognito](/assets/images/rick.gif "Rickognito") 3 + 4 + A web server that directs link preview bots to a webpage of your choosing while directing humans to [Never Gonna Give You Up](https://www.youtube.com/watch?v=qdtOhtjWaOE). 5 + 6 + Try it out at [aggregationnews.com](https://aggregationnews.com/).
+6
views/index.html
··· 18 18 <body> 19 19 <div id="main"> 20 20 <div id="container" class="panel"> 21 + <p> 22 + <img src="/assets/images/rick.gif" width="192" height="144" /> 23 + </p> 21 24 <label for="urlinput">Mask URL:</label> 22 25 <input name="in" type="text" id="urlinput" /> 23 26 24 27 <label for="urloutput">Disguised URL:</label> 25 28 <input type="text" readonly id="urloutput" /> 29 + <p> 30 + <a href="https://gitlab.com/sanin.dev/rickognito">Source Code</a> 31 + </p> 26 32 </div> 27 33 </div> 28 34 <script src="/assets/js/url.js" defer></script>