├── .gitignore ├── package.json ├── README.md ├── LICENSE ├── app.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-hello-world", 3 | "version": "1.0.0", 4 | "description": "Express Hello World on Render", 5 | "main": "app.js", 6 | "repository": "https://github.com/render-examples/express-hello-world", 7 | "author": "Render Developers", 8 | "license": "MIT", 9 | "private": false, 10 | "scripts": { 11 | "start": "node app.js" 12 | }, 13 | "dependencies": { 14 | "express": "^5.0.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # README 2 | 3 | This is the [Express](https://expressjs.com) [Hello world](https://expressjs.com/en/starter/hello-world.html) example on [Render](https://render.com). 4 | 5 | The app in this repo is deployed at [https://express.onrender.com](https://express.onrender.com). 6 | 7 | ## Deployment 8 | 9 | See https://render.com/docs/deploy-node-express-app or follow the steps below: 10 | 11 | Create a new web service with the following values: 12 | * Build Command: `yarn` 13 | * Start Command: `node app.js` 14 | 15 | That's it! Your web service will be live on your Render URL as soon as the build finishes. 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2019, Render Developers 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | 10 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const app = express(); 3 | const port = process.env.PORT || 3001; 4 | 5 | app.get("/", (req, res) => res.type('html').send(html)); 6 | 7 | const server = app.listen(port, () => console.log(`Example app listening on port ${port}!`)); 8 | 9 | server.keepAliveTimeout = 120 * 1000; 10 | server.headersTimeout = 120 * 1000; 11 | 12 | const html = ` 13 | 14 | 15 | 16 | Hello from Render! 17 | 18 | 28 | 54 | 55 | 56 |
57 | Hello from Render! 58 |
59 | 60 | 61 | ` 62 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | accepts@^2.0.0: 6 | version "2.0.0" 7 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895" 8 | integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng== 9 | dependencies: 10 | mime-types "^3.0.0" 11 | negotiator "^1.0.0" 12 | 13 | array-flatten@3.0.0: 14 | version "3.0.0" 15 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-3.0.0.tgz#6428ca2ee52c7b823192ec600fa3ed2f157cd541" 16 | integrity sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA== 17 | 18 | body-parser@^2.0.1: 19 | version "2.0.1" 20 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.0.1.tgz#979de4a43468c5624403457fd6d45f797faffbaf" 21 | integrity sha512-PagxbjvuPH6tv0f/kdVbFGcb79D236SLcDTs6DrQ7GizJ88S1UWP4nMXFEo/I4fdhGRGabvFfFjVGm3M7U8JwA== 22 | dependencies: 23 | bytes "3.1.2" 24 | content-type "~1.0.5" 25 | debug "3.1.0" 26 | destroy "1.2.0" 27 | http-errors "2.0.0" 28 | iconv-lite "0.5.2" 29 | on-finished "2.4.1" 30 | qs "6.13.0" 31 | raw-body "^3.0.0" 32 | type-is "~1.6.18" 33 | unpipe "1.0.0" 34 | 35 | bytes@3.1.2: 36 | version "3.1.2" 37 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 38 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 39 | 40 | call-bind@^1.0.7: 41 | version "1.0.7" 42 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" 43 | integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== 44 | dependencies: 45 | es-define-property "^1.0.0" 46 | es-errors "^1.3.0" 47 | function-bind "^1.1.2" 48 | get-intrinsic "^1.2.4" 49 | set-function-length "^1.2.1" 50 | 51 | content-disposition@^1.0.0: 52 | version "1.0.0" 53 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.0.tgz#844426cb398f934caefcbb172200126bc7ceace2" 54 | integrity sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg== 55 | dependencies: 56 | safe-buffer "5.2.1" 57 | 58 | content-type@^1.0.5, content-type@~1.0.5: 59 | version "1.0.5" 60 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" 61 | integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== 62 | 63 | content-type@~1.0.4: 64 | version "1.0.4" 65 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 66 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 67 | 68 | cookie-signature@^1.2.1: 69 | version "1.2.1" 70 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.1.tgz#790dea2cce64638c7ae04d9fabed193bd7ccf3b4" 71 | integrity sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw== 72 | 73 | cookie@0.6.0: 74 | version "0.6.0" 75 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" 76 | integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== 77 | 78 | debug@2.6.9: 79 | version "2.6.9" 80 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 81 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 82 | dependencies: 83 | ms "2.0.0" 84 | 85 | debug@3.1.0: 86 | version "3.1.0" 87 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 88 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 89 | dependencies: 90 | ms "2.0.0" 91 | 92 | debug@4.3.6: 93 | version "4.3.6" 94 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" 95 | integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== 96 | dependencies: 97 | ms "2.1.2" 98 | 99 | debug@^4.3.5: 100 | version "4.3.7" 101 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" 102 | integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== 103 | dependencies: 104 | ms "^2.1.3" 105 | 106 | define-data-property@^1.1.4: 107 | version "1.1.4" 108 | resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" 109 | integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== 110 | dependencies: 111 | es-define-property "^1.0.0" 112 | es-errors "^1.3.0" 113 | gopd "^1.0.1" 114 | 115 | depd@2.0.0: 116 | version "2.0.0" 117 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 118 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 119 | 120 | destroy@1.2.0, destroy@^1.2.0: 121 | version "1.2.0" 122 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 123 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 124 | 125 | ee-first@1.1.1: 126 | version "1.1.1" 127 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 128 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 129 | 130 | encodeurl@^2.0.0, encodeurl@~2.0.0: 131 | version "2.0.0" 132 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" 133 | integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== 134 | 135 | encodeurl@~1.0.2: 136 | version "1.0.2" 137 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 138 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 139 | 140 | es-define-property@^1.0.0: 141 | version "1.0.0" 142 | resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" 143 | integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== 144 | dependencies: 145 | get-intrinsic "^1.2.4" 146 | 147 | es-errors@^1.3.0: 148 | version "1.3.0" 149 | resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" 150 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== 151 | 152 | escape-html@^1.0.3, escape-html@~1.0.3: 153 | version "1.0.3" 154 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 155 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 156 | 157 | etag@^1.8.1, etag@~1.8.1: 158 | version "1.8.1" 159 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 160 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 161 | 162 | express@^5.0.0: 163 | version "5.0.0" 164 | resolved "https://registry.yarnpkg.com/express/-/express-5.0.0.tgz#744f9ec86025a01aeca99e4300aa4fc050d493c7" 165 | integrity sha512-V4UkHQc+B7ldh1YC84HCXHwf60M4BOMvp9rkvTUWCK5apqDC1Esnbid4wm6nFyVuDy8XMfETsJw5lsIGBWyo0A== 166 | dependencies: 167 | accepts "^2.0.0" 168 | body-parser "^2.0.1" 169 | content-disposition "^1.0.0" 170 | content-type "~1.0.4" 171 | cookie "0.6.0" 172 | cookie-signature "^1.2.1" 173 | debug "4.3.6" 174 | depd "2.0.0" 175 | encodeurl "~2.0.0" 176 | escape-html "~1.0.3" 177 | etag "~1.8.1" 178 | finalhandler "^2.0.0" 179 | fresh "2.0.0" 180 | http-errors "2.0.0" 181 | merge-descriptors "^2.0.0" 182 | methods "~1.1.2" 183 | mime-types "^3.0.0" 184 | on-finished "2.4.1" 185 | once "1.4.0" 186 | parseurl "~1.3.3" 187 | proxy-addr "~2.0.7" 188 | qs "6.13.0" 189 | range-parser "~1.2.1" 190 | router "^2.0.0" 191 | safe-buffer "5.2.1" 192 | send "^1.1.0" 193 | serve-static "^2.1.0" 194 | setprototypeof "1.2.0" 195 | statuses "2.0.1" 196 | type-is "^2.0.0" 197 | utils-merge "1.0.1" 198 | vary "~1.1.2" 199 | 200 | finalhandler@^2.0.0: 201 | version "2.0.0" 202 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.0.0.tgz#9d3c79156dfa798069db7de7dd53bc37546f564b" 203 | integrity sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ== 204 | dependencies: 205 | debug "2.6.9" 206 | encodeurl "~1.0.2" 207 | escape-html "~1.0.3" 208 | on-finished "2.4.1" 209 | parseurl "~1.3.3" 210 | statuses "2.0.1" 211 | unpipe "~1.0.0" 212 | 213 | forwarded@0.2.0: 214 | version "0.2.0" 215 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 216 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 217 | 218 | fresh@2.0.0: 219 | version "2.0.0" 220 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" 221 | integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== 222 | 223 | fresh@^0.5.2: 224 | version "0.5.2" 225 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 226 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 227 | 228 | function-bind@^1.1.2: 229 | version "1.1.2" 230 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 231 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 232 | 233 | get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: 234 | version "1.2.4" 235 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" 236 | integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== 237 | dependencies: 238 | es-errors "^1.3.0" 239 | function-bind "^1.1.2" 240 | has-proto "^1.0.1" 241 | has-symbols "^1.0.3" 242 | hasown "^2.0.0" 243 | 244 | gopd@^1.0.1: 245 | version "1.0.1" 246 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 247 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 248 | dependencies: 249 | get-intrinsic "^1.1.3" 250 | 251 | has-property-descriptors@^1.0.2: 252 | version "1.0.2" 253 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" 254 | integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== 255 | dependencies: 256 | es-define-property "^1.0.0" 257 | 258 | has-proto@^1.0.1: 259 | version "1.0.3" 260 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" 261 | integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== 262 | 263 | has-symbols@^1.0.3: 264 | version "1.0.3" 265 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 266 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 267 | 268 | hasown@^2.0.0: 269 | version "2.0.2" 270 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 271 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 272 | dependencies: 273 | function-bind "^1.1.2" 274 | 275 | http-errors@2.0.0, http-errors@^2.0.0: 276 | version "2.0.0" 277 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 278 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 279 | dependencies: 280 | depd "2.0.0" 281 | inherits "2.0.4" 282 | setprototypeof "1.2.0" 283 | statuses "2.0.1" 284 | toidentifier "1.0.1" 285 | 286 | iconv-lite@0.5.2: 287 | version "0.5.2" 288 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8" 289 | integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag== 290 | dependencies: 291 | safer-buffer ">= 2.1.2 < 3" 292 | 293 | iconv-lite@0.6.3: 294 | version "0.6.3" 295 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" 296 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 297 | dependencies: 298 | safer-buffer ">= 2.1.2 < 3.0.0" 299 | 300 | inherits@2.0.4: 301 | version "2.0.4" 302 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 303 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 304 | 305 | ipaddr.js@1.9.1: 306 | version "1.9.1" 307 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 308 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 309 | 310 | is-promise@4.0.0: 311 | version "4.0.0" 312 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" 313 | integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== 314 | 315 | media-typer@0.3.0: 316 | version "0.3.0" 317 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 318 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 319 | 320 | media-typer@^1.1.0: 321 | version "1.1.0" 322 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" 323 | integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== 324 | 325 | merge-descriptors@^2.0.0: 326 | version "2.0.0" 327 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808" 328 | integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g== 329 | 330 | methods@~1.1.2: 331 | version "1.1.2" 332 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 333 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 334 | 335 | mime-db@1.40.0: 336 | version "1.40.0" 337 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" 338 | integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== 339 | 340 | mime-db@1.52.0: 341 | version "1.52.0" 342 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 343 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 344 | 345 | mime-db@^1.53.0: 346 | version "1.53.0" 347 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" 348 | integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== 349 | 350 | mime-types@^2.1.35: 351 | version "2.1.35" 352 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 353 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 354 | dependencies: 355 | mime-db "1.52.0" 356 | 357 | mime-types@^3.0.0: 358 | version "3.0.0" 359 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.0.tgz#148453a900475522d095a445355c074cca4f5217" 360 | integrity sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w== 361 | dependencies: 362 | mime-db "^1.53.0" 363 | 364 | mime-types@~2.1.24: 365 | version "2.1.24" 366 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" 367 | integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== 368 | dependencies: 369 | mime-db "1.40.0" 370 | 371 | ms@2.0.0: 372 | version "2.0.0" 373 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 374 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 375 | 376 | ms@2.1.2: 377 | version "2.1.2" 378 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 379 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 380 | 381 | ms@^2.1.3: 382 | version "2.1.3" 383 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 384 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 385 | 386 | negotiator@^1.0.0: 387 | version "1.0.0" 388 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" 389 | integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== 390 | 391 | object-inspect@^1.13.1: 392 | version "1.13.2" 393 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" 394 | integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== 395 | 396 | on-finished@2.4.1, on-finished@^2.4.1: 397 | version "2.4.1" 398 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 399 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 400 | dependencies: 401 | ee-first "1.1.1" 402 | 403 | once@1.4.0: 404 | version "1.4.0" 405 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 406 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 407 | dependencies: 408 | wrappy "1" 409 | 410 | parseurl@^1.3.3, parseurl@~1.3.3: 411 | version "1.3.3" 412 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 413 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 414 | 415 | path-to-regexp@^8.0.0: 416 | version "8.1.0" 417 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.1.0.tgz#4d687606ed0be8ed512ba802eb94d620cb1a86f0" 418 | integrity sha512-Bqn3vc8CMHty6zuD+tG23s6v2kwxslHEhTj4eYaVKGIEB+YX/2wd0/rgXLFD9G9id9KCtbVy/3ZgmvZjpa0UdQ== 419 | 420 | proxy-addr@~2.0.7: 421 | version "2.0.7" 422 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 423 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 424 | dependencies: 425 | forwarded "0.2.0" 426 | ipaddr.js "1.9.1" 427 | 428 | qs@6.13.0: 429 | version "6.13.0" 430 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" 431 | integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== 432 | dependencies: 433 | side-channel "^1.0.6" 434 | 435 | range-parser@^1.2.1, range-parser@~1.2.1: 436 | version "1.2.1" 437 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 438 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 439 | 440 | raw-body@^3.0.0: 441 | version "3.0.0" 442 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.0.tgz#25b3476f07a51600619dae3fe82ddc28a36e5e0f" 443 | integrity sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g== 444 | dependencies: 445 | bytes "3.1.2" 446 | http-errors "2.0.0" 447 | iconv-lite "0.6.3" 448 | unpipe "1.0.0" 449 | 450 | router@^2.0.0: 451 | version "2.0.0" 452 | resolved "https://registry.yarnpkg.com/router/-/router-2.0.0.tgz#8692720b95de83876870d7bc638dd3c7e1ae8a27" 453 | integrity sha512-dIM5zVoG8xhC6rnSN8uoAgFARwTE7BQs8YwHEvK0VCmfxQXMaOuA1uiR1IPwsW7JyK5iTt7Od/TC9StasS2NPQ== 454 | dependencies: 455 | array-flatten "3.0.0" 456 | is-promise "4.0.0" 457 | methods "~1.1.2" 458 | parseurl "~1.3.3" 459 | path-to-regexp "^8.0.0" 460 | setprototypeof "1.2.0" 461 | utils-merge "1.0.1" 462 | 463 | safe-buffer@5.2.1: 464 | version "5.2.1" 465 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 466 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 467 | 468 | "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": 469 | version "2.1.2" 470 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 471 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 472 | 473 | send@^1.0.0, send@^1.1.0: 474 | version "1.1.0" 475 | resolved "https://registry.yarnpkg.com/send/-/send-1.1.0.tgz#4efe6ff3bb2139b0e5b2648d8b18d4dec48fc9c5" 476 | integrity sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA== 477 | dependencies: 478 | debug "^4.3.5" 479 | destroy "^1.2.0" 480 | encodeurl "^2.0.0" 481 | escape-html "^1.0.3" 482 | etag "^1.8.1" 483 | fresh "^0.5.2" 484 | http-errors "^2.0.0" 485 | mime-types "^2.1.35" 486 | ms "^2.1.3" 487 | on-finished "^2.4.1" 488 | range-parser "^1.2.1" 489 | statuses "^2.0.1" 490 | 491 | serve-static@^2.1.0: 492 | version "2.1.0" 493 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.1.0.tgz#1b4eacbe93006b79054faa4d6d0a501d7f0e84e2" 494 | integrity sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA== 495 | dependencies: 496 | encodeurl "^2.0.0" 497 | escape-html "^1.0.3" 498 | parseurl "^1.3.3" 499 | send "^1.0.0" 500 | 501 | set-function-length@^1.2.1: 502 | version "1.2.2" 503 | resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" 504 | integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== 505 | dependencies: 506 | define-data-property "^1.1.4" 507 | es-errors "^1.3.0" 508 | function-bind "^1.1.2" 509 | get-intrinsic "^1.2.4" 510 | gopd "^1.0.1" 511 | has-property-descriptors "^1.0.2" 512 | 513 | setprototypeof@1.2.0: 514 | version "1.2.0" 515 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 516 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 517 | 518 | side-channel@^1.0.6: 519 | version "1.0.6" 520 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" 521 | integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== 522 | dependencies: 523 | call-bind "^1.0.7" 524 | es-errors "^1.3.0" 525 | get-intrinsic "^1.2.4" 526 | object-inspect "^1.13.1" 527 | 528 | statuses@2.0.1, statuses@^2.0.1: 529 | version "2.0.1" 530 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 531 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 532 | 533 | toidentifier@1.0.1: 534 | version "1.0.1" 535 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 536 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 537 | 538 | type-is@^2.0.0: 539 | version "2.0.0" 540 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.0.tgz#7d249c2e2af716665cc149575dadb8b3858653af" 541 | integrity sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw== 542 | dependencies: 543 | content-type "^1.0.5" 544 | media-typer "^1.1.0" 545 | mime-types "^3.0.0" 546 | 547 | type-is@~1.6.18: 548 | version "1.6.18" 549 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 550 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 551 | dependencies: 552 | media-typer "0.3.0" 553 | mime-types "~2.1.24" 554 | 555 | unpipe@1.0.0, unpipe@~1.0.0: 556 | version "1.0.0" 557 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 558 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 559 | 560 | utils-merge@1.0.1: 561 | version "1.0.1" 562 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 563 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 564 | 565 | vary@~1.1.2: 566 | version "1.1.2" 567 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 568 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 569 | 570 | wrappy@1: 571 | version "1.0.2" 572 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 573 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 574 | --------------------------------------------------------------------------------