├── .dockerignore ├── .gitignore ├── Dockerfile ├── LICENSE ├── package-lock.json ├── package.json ├── server.js ├── start.sh └── yarn.lock /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine 2 | 3 | RUN apk add nodejs yarn 4 | 5 | COPY package.json package.json 6 | COPY yarn.lock yarn.lock 7 | RUN yarn install 8 | 9 | COPY server.js server.js 10 | COPY start.sh start.sh 11 | EXPOSE 3000 12 | 13 | 14 | COPY --from=lubien/tired-proxy:2 /tired-proxy /tired-proxy 15 | 16 | CMD /start.sh 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2022, Fly.io Apps 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fastify-functions", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "fastify": "^3.29.0" 9 | } 10 | }, 11 | "node_modules/@fastify/ajv-compiler": { 12 | "version": "1.1.0", 13 | "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-1.1.0.tgz", 14 | "integrity": "sha512-gvCOUNpXsWrIQ3A4aXCLIdblL0tDq42BG/2Xw7oxbil9h11uow10ztS2GuFazNBfjbrsZ5nl+nPl5jDSjj5TSg==", 15 | "dependencies": { 16 | "ajv": "^6.12.6" 17 | } 18 | }, 19 | "node_modules/@fastify/error": { 20 | "version": "2.0.0", 21 | "resolved": "https://registry.npmjs.org/@fastify/error/-/error-2.0.0.tgz", 22 | "integrity": "sha512-wI3fpfDT0t7p8E6dA2eTECzzOd+bZsZCJ2Hcv+Onn2b7ZwK3RwD27uW2QDaMtQhAfWQQP+WNK7nKf0twLsBf9w==" 23 | }, 24 | "node_modules/abstract-logging": { 25 | "version": "2.0.1", 26 | "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", 27 | "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" 28 | }, 29 | "node_modules/ajv": { 30 | "version": "6.12.6", 31 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 32 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 33 | "dependencies": { 34 | "fast-deep-equal": "^3.1.1", 35 | "fast-json-stable-stringify": "^2.0.0", 36 | "json-schema-traverse": "^0.4.1", 37 | "uri-js": "^4.2.2" 38 | }, 39 | "funding": { 40 | "type": "github", 41 | "url": "https://github.com/sponsors/epoberezkin" 42 | } 43 | }, 44 | "node_modules/archy": { 45 | "version": "1.0.0", 46 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", 47 | "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" 48 | }, 49 | "node_modules/atomic-sleep": { 50 | "version": "1.0.0", 51 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 52 | "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", 53 | "engines": { 54 | "node": ">=8.0.0" 55 | } 56 | }, 57 | "node_modules/avvio": { 58 | "version": "7.2.5", 59 | "resolved": "https://registry.npmjs.org/avvio/-/avvio-7.2.5.tgz", 60 | "integrity": "sha512-AOhBxyLVdpOad3TujtC9kL/9r3HnTkxwQ5ggOsYrvvZP1cCFvzHWJd5XxZDFuTn+IN8vkKSG5SEJrd27vCSbeA==", 61 | "dependencies": { 62 | "archy": "^1.0.0", 63 | "debug": "^4.0.0", 64 | "fastq": "^1.6.1", 65 | "queue-microtask": "^1.1.2" 66 | } 67 | }, 68 | "node_modules/cookie": { 69 | "version": "0.5.0", 70 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 71 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 72 | "engines": { 73 | "node": ">= 0.6" 74 | } 75 | }, 76 | "node_modules/debug": { 77 | "version": "4.3.4", 78 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 79 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 80 | "dependencies": { 81 | "ms": "2.1.2" 82 | }, 83 | "engines": { 84 | "node": ">=6.0" 85 | }, 86 | "peerDependenciesMeta": { 87 | "supports-color": { 88 | "optional": true 89 | } 90 | } 91 | }, 92 | "node_modules/deepmerge": { 93 | "version": "4.2.2", 94 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 95 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 96 | "engines": { 97 | "node": ">=0.10.0" 98 | } 99 | }, 100 | "node_modules/fast-decode-uri-component": { 101 | "version": "1.0.1", 102 | "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", 103 | "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" 104 | }, 105 | "node_modules/fast-deep-equal": { 106 | "version": "3.1.3", 107 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 108 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 109 | }, 110 | "node_modules/fast-json-stable-stringify": { 111 | "version": "2.1.0", 112 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 113 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 114 | }, 115 | "node_modules/fast-json-stringify": { 116 | "version": "2.7.13", 117 | "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.13.tgz", 118 | "integrity": "sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==", 119 | "dependencies": { 120 | "ajv": "^6.11.0", 121 | "deepmerge": "^4.2.2", 122 | "rfdc": "^1.2.0", 123 | "string-similarity": "^4.0.1" 124 | }, 125 | "engines": { 126 | "node": ">= 10.0.0" 127 | } 128 | }, 129 | "node_modules/fast-redact": { 130 | "version": "3.1.1", 131 | "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.1.tgz", 132 | "integrity": "sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==", 133 | "engines": { 134 | "node": ">=6" 135 | } 136 | }, 137 | "node_modules/fast-safe-stringify": { 138 | "version": "2.1.1", 139 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", 140 | "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" 141 | }, 142 | "node_modules/fastify": { 143 | "version": "3.29.0", 144 | "resolved": "https://registry.npmjs.org/fastify/-/fastify-3.29.0.tgz", 145 | "integrity": "sha512-zXSiDTdHJCHcmDrSje1f1RfzTmUTjMtHnPhh6cdokgfHhloQ+gy0Du+KlEjwTbcNC3Djj4GAsBzl6KvfI9Ah2g==", 146 | "dependencies": { 147 | "@fastify/ajv-compiler": "^1.0.0", 148 | "@fastify/error": "^2.0.0", 149 | "abstract-logging": "^2.0.0", 150 | "avvio": "^7.1.2", 151 | "fast-json-stringify": "^2.5.2", 152 | "find-my-way": "^4.5.0", 153 | "flatstr": "^1.0.12", 154 | "light-my-request": "^4.2.0", 155 | "pino": "^6.13.0", 156 | "process-warning": "^1.0.0", 157 | "proxy-addr": "^2.0.7", 158 | "rfdc": "^1.1.4", 159 | "secure-json-parse": "^2.0.0", 160 | "semver": "^7.3.2", 161 | "tiny-lru": "^8.0.1" 162 | } 163 | }, 164 | "node_modules/fastq": { 165 | "version": "1.13.0", 166 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 167 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 168 | "dependencies": { 169 | "reusify": "^1.0.4" 170 | } 171 | }, 172 | "node_modules/find-my-way": { 173 | "version": "4.5.1", 174 | "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-4.5.1.tgz", 175 | "integrity": "sha512-kE0u7sGoUFbMXcOG/xpkmz4sRLCklERnBcg7Ftuu1iAxsfEt2S46RLJ3Sq7vshsEy2wJT2hZxE58XZK27qa8kg==", 176 | "dependencies": { 177 | "fast-decode-uri-component": "^1.0.1", 178 | "fast-deep-equal": "^3.1.3", 179 | "safe-regex2": "^2.0.0", 180 | "semver-store": "^0.3.0" 181 | }, 182 | "engines": { 183 | "node": ">=10" 184 | } 185 | }, 186 | "node_modules/flatstr": { 187 | "version": "1.0.12", 188 | "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", 189 | "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" 190 | }, 191 | "node_modules/forwarded": { 192 | "version": "0.2.0", 193 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 194 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 195 | "engines": { 196 | "node": ">= 0.6" 197 | } 198 | }, 199 | "node_modules/ipaddr.js": { 200 | "version": "1.9.1", 201 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 202 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 203 | "engines": { 204 | "node": ">= 0.10" 205 | } 206 | }, 207 | "node_modules/json-schema-traverse": { 208 | "version": "0.4.1", 209 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 210 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 211 | }, 212 | "node_modules/light-my-request": { 213 | "version": "4.10.1", 214 | "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-4.10.1.tgz", 215 | "integrity": "sha512-l+zWk0HXGhGzY7IYTZnYEqIpj3Mpcyk2f8+FkKUyREywvaiWCf2jyQVxpasKRsploY/nVpoqTlxx72CIeQNcIQ==", 216 | "dependencies": { 217 | "ajv": "^8.1.0", 218 | "cookie": "^0.5.0", 219 | "process-warning": "^1.0.0", 220 | "set-cookie-parser": "^2.4.1" 221 | } 222 | }, 223 | "node_modules/light-my-request/node_modules/ajv": { 224 | "version": "8.11.0", 225 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", 226 | "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", 227 | "dependencies": { 228 | "fast-deep-equal": "^3.1.1", 229 | "json-schema-traverse": "^1.0.0", 230 | "require-from-string": "^2.0.2", 231 | "uri-js": "^4.2.2" 232 | }, 233 | "funding": { 234 | "type": "github", 235 | "url": "https://github.com/sponsors/epoberezkin" 236 | } 237 | }, 238 | "node_modules/light-my-request/node_modules/json-schema-traverse": { 239 | "version": "1.0.0", 240 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 241 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 242 | }, 243 | "node_modules/lru-cache": { 244 | "version": "6.0.0", 245 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 246 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 247 | "dependencies": { 248 | "yallist": "^4.0.0" 249 | }, 250 | "engines": { 251 | "node": ">=10" 252 | } 253 | }, 254 | "node_modules/ms": { 255 | "version": "2.1.2", 256 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 257 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 258 | }, 259 | "node_modules/pino": { 260 | "version": "6.14.0", 261 | "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", 262 | "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", 263 | "dependencies": { 264 | "fast-redact": "^3.0.0", 265 | "fast-safe-stringify": "^2.0.8", 266 | "flatstr": "^1.0.12", 267 | "pino-std-serializers": "^3.1.0", 268 | "process-warning": "^1.0.0", 269 | "quick-format-unescaped": "^4.0.3", 270 | "sonic-boom": "^1.0.2" 271 | }, 272 | "bin": { 273 | "pino": "bin.js" 274 | } 275 | }, 276 | "node_modules/pino-std-serializers": { 277 | "version": "3.2.0", 278 | "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", 279 | "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" 280 | }, 281 | "node_modules/process-warning": { 282 | "version": "1.0.0", 283 | "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", 284 | "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" 285 | }, 286 | "node_modules/proxy-addr": { 287 | "version": "2.0.7", 288 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 289 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 290 | "dependencies": { 291 | "forwarded": "0.2.0", 292 | "ipaddr.js": "1.9.1" 293 | }, 294 | "engines": { 295 | "node": ">= 0.10" 296 | } 297 | }, 298 | "node_modules/punycode": { 299 | "version": "2.1.1", 300 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 301 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 302 | "engines": { 303 | "node": ">=6" 304 | } 305 | }, 306 | "node_modules/queue-microtask": { 307 | "version": "1.2.3", 308 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 309 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 310 | "funding": [ 311 | { 312 | "type": "github", 313 | "url": "https://github.com/sponsors/feross" 314 | }, 315 | { 316 | "type": "patreon", 317 | "url": "https://www.patreon.com/feross" 318 | }, 319 | { 320 | "type": "consulting", 321 | "url": "https://feross.org/support" 322 | } 323 | ] 324 | }, 325 | "node_modules/quick-format-unescaped": { 326 | "version": "4.0.4", 327 | "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", 328 | "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" 329 | }, 330 | "node_modules/require-from-string": { 331 | "version": "2.0.2", 332 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 333 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 334 | "engines": { 335 | "node": ">=0.10.0" 336 | } 337 | }, 338 | "node_modules/ret": { 339 | "version": "0.2.2", 340 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", 341 | "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", 342 | "engines": { 343 | "node": ">=4" 344 | } 345 | }, 346 | "node_modules/reusify": { 347 | "version": "1.0.4", 348 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 349 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 350 | "engines": { 351 | "iojs": ">=1.0.0", 352 | "node": ">=0.10.0" 353 | } 354 | }, 355 | "node_modules/rfdc": { 356 | "version": "1.3.0", 357 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", 358 | "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" 359 | }, 360 | "node_modules/safe-regex2": { 361 | "version": "2.0.0", 362 | "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", 363 | "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", 364 | "dependencies": { 365 | "ret": "~0.2.0" 366 | } 367 | }, 368 | "node_modules/secure-json-parse": { 369 | "version": "2.4.0", 370 | "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", 371 | "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" 372 | }, 373 | "node_modules/semver": { 374 | "version": "7.3.7", 375 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 376 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 377 | "dependencies": { 378 | "lru-cache": "^6.0.0" 379 | }, 380 | "bin": { 381 | "semver": "bin/semver.js" 382 | }, 383 | "engines": { 384 | "node": ">=10" 385 | } 386 | }, 387 | "node_modules/semver-store": { 388 | "version": "0.3.0", 389 | "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz", 390 | "integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==" 391 | }, 392 | "node_modules/set-cookie-parser": { 393 | "version": "2.4.8", 394 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", 395 | "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" 396 | }, 397 | "node_modules/sonic-boom": { 398 | "version": "1.4.1", 399 | "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", 400 | "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", 401 | "dependencies": { 402 | "atomic-sleep": "^1.0.0", 403 | "flatstr": "^1.0.12" 404 | } 405 | }, 406 | "node_modules/string-similarity": { 407 | "version": "4.0.4", 408 | "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", 409 | "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" 410 | }, 411 | "node_modules/tiny-lru": { 412 | "version": "8.0.2", 413 | "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-8.0.2.tgz", 414 | "integrity": "sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==", 415 | "engines": { 416 | "node": ">=6" 417 | } 418 | }, 419 | "node_modules/uri-js": { 420 | "version": "4.4.1", 421 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 422 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 423 | "dependencies": { 424 | "punycode": "^2.1.0" 425 | } 426 | }, 427 | "node_modules/yallist": { 428 | "version": "4.0.0", 429 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 430 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 431 | } 432 | }, 433 | "dependencies": { 434 | "@fastify/ajv-compiler": { 435 | "version": "1.1.0", 436 | "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-1.1.0.tgz", 437 | "integrity": "sha512-gvCOUNpXsWrIQ3A4aXCLIdblL0tDq42BG/2Xw7oxbil9h11uow10ztS2GuFazNBfjbrsZ5nl+nPl5jDSjj5TSg==", 438 | "requires": { 439 | "ajv": "^6.12.6" 440 | } 441 | }, 442 | "@fastify/error": { 443 | "version": "2.0.0", 444 | "resolved": "https://registry.npmjs.org/@fastify/error/-/error-2.0.0.tgz", 445 | "integrity": "sha512-wI3fpfDT0t7p8E6dA2eTECzzOd+bZsZCJ2Hcv+Onn2b7ZwK3RwD27uW2QDaMtQhAfWQQP+WNK7nKf0twLsBf9w==" 446 | }, 447 | "abstract-logging": { 448 | "version": "2.0.1", 449 | "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", 450 | "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" 451 | }, 452 | "ajv": { 453 | "version": "6.12.6", 454 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 455 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 456 | "requires": { 457 | "fast-deep-equal": "^3.1.1", 458 | "fast-json-stable-stringify": "^2.0.0", 459 | "json-schema-traverse": "^0.4.1", 460 | "uri-js": "^4.2.2" 461 | } 462 | }, 463 | "archy": { 464 | "version": "1.0.0", 465 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", 466 | "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" 467 | }, 468 | "atomic-sleep": { 469 | "version": "1.0.0", 470 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 471 | "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" 472 | }, 473 | "avvio": { 474 | "version": "7.2.5", 475 | "resolved": "https://registry.npmjs.org/avvio/-/avvio-7.2.5.tgz", 476 | "integrity": "sha512-AOhBxyLVdpOad3TujtC9kL/9r3HnTkxwQ5ggOsYrvvZP1cCFvzHWJd5XxZDFuTn+IN8vkKSG5SEJrd27vCSbeA==", 477 | "requires": { 478 | "archy": "^1.0.0", 479 | "debug": "^4.0.0", 480 | "fastq": "^1.6.1", 481 | "queue-microtask": "^1.1.2" 482 | } 483 | }, 484 | "cookie": { 485 | "version": "0.5.0", 486 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 487 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 488 | }, 489 | "debug": { 490 | "version": "4.3.4", 491 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 492 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 493 | "requires": { 494 | "ms": "2.1.2" 495 | } 496 | }, 497 | "deepmerge": { 498 | "version": "4.2.2", 499 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 500 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" 501 | }, 502 | "fast-decode-uri-component": { 503 | "version": "1.0.1", 504 | "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", 505 | "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" 506 | }, 507 | "fast-deep-equal": { 508 | "version": "3.1.3", 509 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 510 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 511 | }, 512 | "fast-json-stable-stringify": { 513 | "version": "2.1.0", 514 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 515 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 516 | }, 517 | "fast-json-stringify": { 518 | "version": "2.7.13", 519 | "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.13.tgz", 520 | "integrity": "sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==", 521 | "requires": { 522 | "ajv": "^6.11.0", 523 | "deepmerge": "^4.2.2", 524 | "rfdc": "^1.2.0", 525 | "string-similarity": "^4.0.1" 526 | } 527 | }, 528 | "fast-redact": { 529 | "version": "3.1.1", 530 | "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.1.tgz", 531 | "integrity": "sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==" 532 | }, 533 | "fast-safe-stringify": { 534 | "version": "2.1.1", 535 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", 536 | "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" 537 | }, 538 | "fastify": { 539 | "version": "3.29.0", 540 | "resolved": "https://registry.npmjs.org/fastify/-/fastify-3.29.0.tgz", 541 | "integrity": "sha512-zXSiDTdHJCHcmDrSje1f1RfzTmUTjMtHnPhh6cdokgfHhloQ+gy0Du+KlEjwTbcNC3Djj4GAsBzl6KvfI9Ah2g==", 542 | "requires": { 543 | "@fastify/ajv-compiler": "^1.0.0", 544 | "@fastify/error": "^2.0.0", 545 | "abstract-logging": "^2.0.0", 546 | "avvio": "^7.1.2", 547 | "fast-json-stringify": "^2.5.2", 548 | "find-my-way": "^4.5.0", 549 | "flatstr": "^1.0.12", 550 | "light-my-request": "^4.2.0", 551 | "pino": "^6.13.0", 552 | "process-warning": "^1.0.0", 553 | "proxy-addr": "^2.0.7", 554 | "rfdc": "^1.1.4", 555 | "secure-json-parse": "^2.0.0", 556 | "semver": "^7.3.2", 557 | "tiny-lru": "^8.0.1" 558 | } 559 | }, 560 | "fastq": { 561 | "version": "1.13.0", 562 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 563 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 564 | "requires": { 565 | "reusify": "^1.0.4" 566 | } 567 | }, 568 | "find-my-way": { 569 | "version": "4.5.1", 570 | "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-4.5.1.tgz", 571 | "integrity": "sha512-kE0u7sGoUFbMXcOG/xpkmz4sRLCklERnBcg7Ftuu1iAxsfEt2S46RLJ3Sq7vshsEy2wJT2hZxE58XZK27qa8kg==", 572 | "requires": { 573 | "fast-decode-uri-component": "^1.0.1", 574 | "fast-deep-equal": "^3.1.3", 575 | "safe-regex2": "^2.0.0", 576 | "semver-store": "^0.3.0" 577 | } 578 | }, 579 | "flatstr": { 580 | "version": "1.0.12", 581 | "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", 582 | "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" 583 | }, 584 | "forwarded": { 585 | "version": "0.2.0", 586 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 587 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 588 | }, 589 | "ipaddr.js": { 590 | "version": "1.9.1", 591 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 592 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 593 | }, 594 | "json-schema-traverse": { 595 | "version": "0.4.1", 596 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 597 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 598 | }, 599 | "light-my-request": { 600 | "version": "4.10.1", 601 | "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-4.10.1.tgz", 602 | "integrity": "sha512-l+zWk0HXGhGzY7IYTZnYEqIpj3Mpcyk2f8+FkKUyREywvaiWCf2jyQVxpasKRsploY/nVpoqTlxx72CIeQNcIQ==", 603 | "requires": { 604 | "ajv": "^8.1.0", 605 | "cookie": "^0.5.0", 606 | "process-warning": "^1.0.0", 607 | "set-cookie-parser": "^2.4.1" 608 | }, 609 | "dependencies": { 610 | "ajv": { 611 | "version": "8.11.0", 612 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", 613 | "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", 614 | "requires": { 615 | "fast-deep-equal": "^3.1.1", 616 | "json-schema-traverse": "^1.0.0", 617 | "require-from-string": "^2.0.2", 618 | "uri-js": "^4.2.2" 619 | } 620 | }, 621 | "json-schema-traverse": { 622 | "version": "1.0.0", 623 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 624 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 625 | } 626 | } 627 | }, 628 | "lru-cache": { 629 | "version": "6.0.0", 630 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 631 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 632 | "requires": { 633 | "yallist": "^4.0.0" 634 | } 635 | }, 636 | "ms": { 637 | "version": "2.1.2", 638 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 639 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 640 | }, 641 | "pino": { 642 | "version": "6.14.0", 643 | "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", 644 | "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", 645 | "requires": { 646 | "fast-redact": "^3.0.0", 647 | "fast-safe-stringify": "^2.0.8", 648 | "flatstr": "^1.0.12", 649 | "pino-std-serializers": "^3.1.0", 650 | "process-warning": "^1.0.0", 651 | "quick-format-unescaped": "^4.0.3", 652 | "sonic-boom": "^1.0.2" 653 | } 654 | }, 655 | "pino-std-serializers": { 656 | "version": "3.2.0", 657 | "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", 658 | "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" 659 | }, 660 | "process-warning": { 661 | "version": "1.0.0", 662 | "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", 663 | "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" 664 | }, 665 | "proxy-addr": { 666 | "version": "2.0.7", 667 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 668 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 669 | "requires": { 670 | "forwarded": "0.2.0", 671 | "ipaddr.js": "1.9.1" 672 | } 673 | }, 674 | "punycode": { 675 | "version": "2.1.1", 676 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 677 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 678 | }, 679 | "queue-microtask": { 680 | "version": "1.2.3", 681 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 682 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 683 | }, 684 | "quick-format-unescaped": { 685 | "version": "4.0.4", 686 | "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", 687 | "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" 688 | }, 689 | "require-from-string": { 690 | "version": "2.0.2", 691 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 692 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" 693 | }, 694 | "ret": { 695 | "version": "0.2.2", 696 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", 697 | "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" 698 | }, 699 | "reusify": { 700 | "version": "1.0.4", 701 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 702 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 703 | }, 704 | "rfdc": { 705 | "version": "1.3.0", 706 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", 707 | "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" 708 | }, 709 | "safe-regex2": { 710 | "version": "2.0.0", 711 | "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", 712 | "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", 713 | "requires": { 714 | "ret": "~0.2.0" 715 | } 716 | }, 717 | "secure-json-parse": { 718 | "version": "2.4.0", 719 | "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", 720 | "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" 721 | }, 722 | "semver": { 723 | "version": "7.3.7", 724 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 725 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 726 | "requires": { 727 | "lru-cache": "^6.0.0" 728 | } 729 | }, 730 | "semver-store": { 731 | "version": "0.3.0", 732 | "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz", 733 | "integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==" 734 | }, 735 | "set-cookie-parser": { 736 | "version": "2.4.8", 737 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", 738 | "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" 739 | }, 740 | "sonic-boom": { 741 | "version": "1.4.1", 742 | "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", 743 | "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", 744 | "requires": { 745 | "atomic-sleep": "^1.0.0", 746 | "flatstr": "^1.0.12" 747 | } 748 | }, 749 | "string-similarity": { 750 | "version": "4.0.4", 751 | "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", 752 | "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" 753 | }, 754 | "tiny-lru": { 755 | "version": "8.0.2", 756 | "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-8.0.2.tgz", 757 | "integrity": "sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==" 758 | }, 759 | "uri-js": { 760 | "version": "4.4.1", 761 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 762 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 763 | "requires": { 764 | "punycode": "^2.1.0" 765 | } 766 | }, 767 | "yallist": { 768 | "version": "4.0.0", 769 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 770 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 771 | } 772 | } 773 | } 774 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "fastify": "^3.29.0" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const fastify = require('fastify')({ logger: true }) 2 | 3 | fastify.get('/', async (request, reply) => { 4 | return { speed: 'ludicrous' } 5 | }) 6 | 7 | const start = async () => { 8 | try { 9 | await fastify.listen(3000, '0.0.0.0') 10 | } catch (err) { 11 | fastify.log.error(err) 12 | process.exit(1) 13 | } 14 | } 15 | start() 16 | 17 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TIME_TO_SHUTDOWN="${IDLE_TIME_TO_SHUTDOWN:-120}" 4 | node server & 5 | /tired-proxy --port 8080 --host http://localhost:3000 --time $TIME_TO_SHUTDOWN 6 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@fastify/ajv-compiler@^1.0.0": 6 | "integrity" "sha512-gvCOUNpXsWrIQ3A4aXCLIdblL0tDq42BG/2Xw7oxbil9h11uow10ztS2GuFazNBfjbrsZ5nl+nPl5jDSjj5TSg==" 7 | "resolved" "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-1.1.0.tgz" 8 | "version" "1.1.0" 9 | dependencies: 10 | "ajv" "^6.12.6" 11 | 12 | "@fastify/error@^2.0.0": 13 | "integrity" "sha512-wI3fpfDT0t7p8E6dA2eTECzzOd+bZsZCJ2Hcv+Onn2b7ZwK3RwD27uW2QDaMtQhAfWQQP+WNK7nKf0twLsBf9w==" 14 | "resolved" "https://registry.npmjs.org/@fastify/error/-/error-2.0.0.tgz" 15 | "version" "2.0.0" 16 | 17 | "abstract-logging@^2.0.0": 18 | "integrity" "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" 19 | "resolved" "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz" 20 | "version" "2.0.1" 21 | 22 | "ajv@^6.11.0", "ajv@^6.12.6": 23 | "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" 24 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 25 | "version" "6.12.6" 26 | dependencies: 27 | "fast-deep-equal" "^3.1.1" 28 | "fast-json-stable-stringify" "^2.0.0" 29 | "json-schema-traverse" "^0.4.1" 30 | "uri-js" "^4.2.2" 31 | 32 | "ajv@^8.1.0": 33 | "integrity" "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==" 34 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz" 35 | "version" "8.11.0" 36 | dependencies: 37 | "fast-deep-equal" "^3.1.1" 38 | "json-schema-traverse" "^1.0.0" 39 | "require-from-string" "^2.0.2" 40 | "uri-js" "^4.2.2" 41 | 42 | "archy@^1.0.0": 43 | "integrity" "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" 44 | "resolved" "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" 45 | "version" "1.0.0" 46 | 47 | "atomic-sleep@^1.0.0": 48 | "integrity" "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" 49 | "resolved" "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" 50 | "version" "1.0.0" 51 | 52 | "avvio@^7.1.2": 53 | "integrity" "sha512-AOhBxyLVdpOad3TujtC9kL/9r3HnTkxwQ5ggOsYrvvZP1cCFvzHWJd5XxZDFuTn+IN8vkKSG5SEJrd27vCSbeA==" 54 | "resolved" "https://registry.npmjs.org/avvio/-/avvio-7.2.5.tgz" 55 | "version" "7.2.5" 56 | dependencies: 57 | "archy" "^1.0.0" 58 | "debug" "^4.0.0" 59 | "fastq" "^1.6.1" 60 | "queue-microtask" "^1.1.2" 61 | 62 | "cookie@^0.5.0": 63 | "integrity" "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 64 | "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" 65 | "version" "0.5.0" 66 | 67 | "debug@^4.0.0": 68 | "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" 69 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" 70 | "version" "4.3.4" 71 | dependencies: 72 | "ms" "2.1.2" 73 | 74 | "deepmerge@^4.2.2": 75 | "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" 76 | "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" 77 | "version" "4.2.2" 78 | 79 | "fast-decode-uri-component@^1.0.1": 80 | "integrity" "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" 81 | "resolved" "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz" 82 | "version" "1.0.1" 83 | 84 | "fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": 85 | "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 86 | "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 87 | "version" "3.1.3" 88 | 89 | "fast-json-stable-stringify@^2.0.0": 90 | "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 91 | "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 92 | "version" "2.1.0" 93 | 94 | "fast-json-stringify@^2.5.2": 95 | "integrity" "sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==" 96 | "resolved" "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.13.tgz" 97 | "version" "2.7.13" 98 | dependencies: 99 | "ajv" "^6.11.0" 100 | "deepmerge" "^4.2.2" 101 | "rfdc" "^1.2.0" 102 | "string-similarity" "^4.0.1" 103 | 104 | "fast-redact@^3.0.0": 105 | "integrity" "sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==" 106 | "resolved" "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.1.tgz" 107 | "version" "3.1.1" 108 | 109 | "fast-safe-stringify@^2.0.8": 110 | "integrity" "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" 111 | "resolved" "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" 112 | "version" "2.1.1" 113 | 114 | "fastify@^3.29.0": 115 | "integrity" "sha512-zXSiDTdHJCHcmDrSje1f1RfzTmUTjMtHnPhh6cdokgfHhloQ+gy0Du+KlEjwTbcNC3Djj4GAsBzl6KvfI9Ah2g==" 116 | "resolved" "https://registry.npmjs.org/fastify/-/fastify-3.29.0.tgz" 117 | "version" "3.29.0" 118 | dependencies: 119 | "@fastify/ajv-compiler" "^1.0.0" 120 | "@fastify/error" "^2.0.0" 121 | "abstract-logging" "^2.0.0" 122 | "avvio" "^7.1.2" 123 | "fast-json-stringify" "^2.5.2" 124 | "find-my-way" "^4.5.0" 125 | "flatstr" "^1.0.12" 126 | "light-my-request" "^4.2.0" 127 | "pino" "^6.13.0" 128 | "process-warning" "^1.0.0" 129 | "proxy-addr" "^2.0.7" 130 | "rfdc" "^1.1.4" 131 | "secure-json-parse" "^2.0.0" 132 | "semver" "^7.3.2" 133 | "tiny-lru" "^8.0.1" 134 | 135 | "fastq@^1.6.1": 136 | "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" 137 | "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" 138 | "version" "1.13.0" 139 | dependencies: 140 | "reusify" "^1.0.4" 141 | 142 | "find-my-way@^4.5.0": 143 | "integrity" "sha512-kE0u7sGoUFbMXcOG/xpkmz4sRLCklERnBcg7Ftuu1iAxsfEt2S46RLJ3Sq7vshsEy2wJT2hZxE58XZK27qa8kg==" 144 | "resolved" "https://registry.npmjs.org/find-my-way/-/find-my-way-4.5.1.tgz" 145 | "version" "4.5.1" 146 | dependencies: 147 | "fast-decode-uri-component" "^1.0.1" 148 | "fast-deep-equal" "^3.1.3" 149 | "safe-regex2" "^2.0.0" 150 | "semver-store" "^0.3.0" 151 | 152 | "flatstr@^1.0.12": 153 | "integrity" "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" 154 | "resolved" "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz" 155 | "version" "1.0.12" 156 | 157 | "forwarded@0.2.0": 158 | "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 159 | "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" 160 | "version" "0.2.0" 161 | 162 | "ipaddr.js@1.9.1": 163 | "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 164 | "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" 165 | "version" "1.9.1" 166 | 167 | "json-schema-traverse@^0.4.1": 168 | "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 169 | "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 170 | "version" "0.4.1" 171 | 172 | "json-schema-traverse@^1.0.0": 173 | "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 174 | "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" 175 | "version" "1.0.0" 176 | 177 | "light-my-request@^4.2.0": 178 | "integrity" "sha512-l+zWk0HXGhGzY7IYTZnYEqIpj3Mpcyk2f8+FkKUyREywvaiWCf2jyQVxpasKRsploY/nVpoqTlxx72CIeQNcIQ==" 179 | "resolved" "https://registry.npmjs.org/light-my-request/-/light-my-request-4.10.1.tgz" 180 | "version" "4.10.1" 181 | dependencies: 182 | "ajv" "^8.1.0" 183 | "cookie" "^0.5.0" 184 | "process-warning" "^1.0.0" 185 | "set-cookie-parser" "^2.4.1" 186 | 187 | "lru-cache@^6.0.0": 188 | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" 189 | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 190 | "version" "6.0.0" 191 | dependencies: 192 | "yallist" "^4.0.0" 193 | 194 | "ms@2.1.2": 195 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 196 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 197 | "version" "2.1.2" 198 | 199 | "pino-std-serializers@^3.1.0": 200 | "integrity" "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" 201 | "resolved" "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz" 202 | "version" "3.2.0" 203 | 204 | "pino@^6.13.0": 205 | "integrity" "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==" 206 | "resolved" "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz" 207 | "version" "6.14.0" 208 | dependencies: 209 | "fast-redact" "^3.0.0" 210 | "fast-safe-stringify" "^2.0.8" 211 | "flatstr" "^1.0.12" 212 | "pino-std-serializers" "^3.1.0" 213 | "process-warning" "^1.0.0" 214 | "quick-format-unescaped" "^4.0.3" 215 | "sonic-boom" "^1.0.2" 216 | 217 | "process-warning@^1.0.0": 218 | "integrity" "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" 219 | "resolved" "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz" 220 | "version" "1.0.0" 221 | 222 | "proxy-addr@^2.0.7": 223 | "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" 224 | "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" 225 | "version" "2.0.7" 226 | dependencies: 227 | "forwarded" "0.2.0" 228 | "ipaddr.js" "1.9.1" 229 | 230 | "punycode@^2.1.0": 231 | "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 232 | "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 233 | "version" "2.1.1" 234 | 235 | "queue-microtask@^1.1.2": 236 | "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 237 | "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 238 | "version" "1.2.3" 239 | 240 | "quick-format-unescaped@^4.0.3": 241 | "integrity" "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" 242 | "resolved" "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" 243 | "version" "4.0.4" 244 | 245 | "require-from-string@^2.0.2": 246 | "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" 247 | "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" 248 | "version" "2.0.2" 249 | 250 | "ret@~0.2.0": 251 | "integrity" "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" 252 | "resolved" "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz" 253 | "version" "0.2.2" 254 | 255 | "reusify@^1.0.4": 256 | "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 257 | "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" 258 | "version" "1.0.4" 259 | 260 | "rfdc@^1.1.4", "rfdc@^1.2.0": 261 | "integrity" "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" 262 | "resolved" "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" 263 | "version" "1.3.0" 264 | 265 | "safe-regex2@^2.0.0": 266 | "integrity" "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==" 267 | "resolved" "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz" 268 | "version" "2.0.0" 269 | dependencies: 270 | "ret" "~0.2.0" 271 | 272 | "secure-json-parse@^2.0.0": 273 | "integrity" "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" 274 | "resolved" "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz" 275 | "version" "2.4.0" 276 | 277 | "semver-store@^0.3.0": 278 | "integrity" "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==" 279 | "resolved" "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz" 280 | "version" "0.3.0" 281 | 282 | "semver@^7.3.2": 283 | "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" 284 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" 285 | "version" "7.3.7" 286 | dependencies: 287 | "lru-cache" "^6.0.0" 288 | 289 | "set-cookie-parser@^2.4.1": 290 | "integrity" "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" 291 | "resolved" "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz" 292 | "version" "2.4.8" 293 | 294 | "sonic-boom@^1.0.2": 295 | "integrity" "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==" 296 | "resolved" "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz" 297 | "version" "1.4.1" 298 | dependencies: 299 | "atomic-sleep" "^1.0.0" 300 | "flatstr" "^1.0.12" 301 | 302 | "string-similarity@^4.0.1": 303 | "integrity" "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" 304 | "resolved" "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz" 305 | "version" "4.0.4" 306 | 307 | "tiny-lru@^8.0.1": 308 | "integrity" "sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==" 309 | "resolved" "https://registry.npmjs.org/tiny-lru/-/tiny-lru-8.0.2.tgz" 310 | "version" "8.0.2" 311 | 312 | "uri-js@^4.2.2": 313 | "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" 314 | "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 315 | "version" "4.4.1" 316 | dependencies: 317 | "punycode" "^2.1.0" 318 | 319 | "yallist@^4.0.0": 320 | "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 321 | "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 322 | "version" "4.0.0" 323 | --------------------------------------------------------------------------------