From be725b8712ee1e212232892b645b9ae2fa8b9f45 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 12:32:50 -0300 Subject: [PATCH 01/24] chore: added express instead of connect --- .../webapp/.npm/package/npm-shrinkwrap.json | 349 ++++++++++++++---- packages/webapp/connect.js | 7 +- packages/webapp/package.js | 3 +- packages/webapp/webapp_server.js | 14 +- 4 files changed, 298 insertions(+), 75 deletions(-) diff --git a/packages/webapp/.npm/package/npm-shrinkwrap.json b/packages/webapp/.npm/package/npm-shrinkwrap.json index 25b1ab0f61..af7a66a2fc 100644 --- a/packages/webapp/.npm/package/npm-shrinkwrap.json +++ b/packages/webapp/.npm/package/npm-shrinkwrap.json @@ -7,19 +7,41 @@ "integrity": "sha512-rwJApvgTsws9LHJwskPSVfe9zmXu/Ownhoq2hX4CcVTL+aWH6bZxW34ycXWAdEuX+c/oYxhmovlAMpoMGOxaSg==" }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "basic-auth-connect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", - "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=" + "integrity": "sha512-kiV+/DTgVro4aZifY/hwRwALBISViL5NP4aReaR2EVJEObpbUBHIkdJh/YpcoEiYt7nBodZ6U2ajZeZvSxUCCg==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==" + } + } }, "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "call-bind": { "version": "1.0.2", @@ -34,7 +56,19 @@ "compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==" + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } }, "connect": { "version": "3.7.0", @@ -48,6 +82,16 @@ } } }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", @@ -61,7 +105,7 @@ "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "cross-spawn": { "version": "7.0.3", @@ -74,24 +118,24 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "errorhandler": { "version": "1.5.1", @@ -101,18 +145,65 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -125,10 +216,15 @@ } } }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, "function-bind": { "version": "1.1.1", @@ -136,9 +232,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==" }, "get-stream": { "version": "6.0.1", @@ -151,25 +247,42 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -178,32 +291,47 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==" + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" }, "mimic-fn": { "version": "2.1.0", @@ -213,17 +341,17 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "npm-run-path": { "version": "4.0.1", @@ -231,14 +359,14 @@ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" }, "on-headers": { "version": "1.0.2", @@ -253,7 +381,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "parseurl": { "version": "1.3.3", @@ -265,15 +393,30 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "posix": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/posix/-/posix-4.2.0.tgz", + "integrity": "sha512-JbxfT0Fxy/SG10LSkKX1C75iULYfAJqYCwwmM6J0+zh2vl/bE51CqaqvSpdZWg7YAwiuDIoBI6j7in+n3GgXSw==" + }, "promise-polyfill": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz", - "integrity": "sha1-zQTv9G9clcOn0EVZHXm14+AfEtc=" + "integrity": "sha512-7rrONfyLkDEc7OJ5QBkqa4KI4EBhCd340xRuIUPGCfu13znS+vx+VDdrT9ODAJHlXm7w4lbxN3DRjyv58EuzDg==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" }, "qs": { "version": "6.10.1", @@ -285,27 +428,94 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==" + }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==" + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" } } }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "shebang-command": { "version": "2.0.0", @@ -323,14 +533,14 @@ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" }, "stream-to-string": { "version": "1.2.0", @@ -348,14 +558,19 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==" }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "useragent": { "version": "2.3.0", @@ -365,12 +580,12 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "which": { "version": "2.0.2", @@ -380,7 +595,7 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" } } } diff --git a/packages/webapp/connect.js b/packages/webapp/connect.js index 9b0b254dfc..0363a3ce77 100644 --- a/packages/webapp/connect.js +++ b/packages/webapp/connect.js @@ -1,8 +1,11 @@ import npmConnect from "connect"; - +import npmExpress from "express"; +export function express(args) { + return npmExpress.apply(this, args); +} export function connect(...connectArgs) { if (!Meteor._isFibersEnabled) { - return npmConnect.apply(this, connectArgs); + return npmExpress.apply(this, connectArgs); } const handlers = npmConnect.apply(this, connectArgs); diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 56e920fea2..ff6c30f845 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -7,6 +7,7 @@ Npm.depends({ 'basic-auth-connect': '1.0.0', 'cookie-parser': '1.4.5', connect: '3.7.0', + express: '4.18.2', compression: '1.7.4', errorhandler: '1.5.1', parseurl: '1.3.3', @@ -61,7 +62,7 @@ Package.onUse(function(api) { }); Package.onTest(function(api) { - api.use(['tinytest', 'ecmascript', 'webapp', 'http', 'underscore']); + api.use(['tinytest', 'ecmascript', 'webapp', 'http', 'underscore','fetch']); api.addFiles('webapp_tests.js', 'server'); api.addFiles('webapp_client_tests.js', 'client'); api.addFiles('socket_file_tests.js', 'server'); diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index ed239c9f96..a96dd01360 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -5,7 +5,7 @@ import { userInfo } from 'os'; import { join as pathJoin, dirname as pathDirname } from 'path'; import { parse as parseUrl } from 'url'; import { createHash } from 'crypto'; -import { connect } from './connect.js'; +import { connect, express } from './connect.js'; import compress from 'compression'; import cookieParser from 'cookie-parser'; import qs from 'qs'; @@ -37,6 +37,10 @@ WebAppInternals.NpmModules = { version: Npm.require('connect/package.json').version, module: connect, }, + express : { + version: Npm.require('express/package.json').version, + module: express, + } }; // Though we might prefer to use web.browser (modern) as the default @@ -1039,11 +1043,11 @@ function runWebAppServer() { WebAppInternals.reloadClientPrograms(); // webserver - var app = connect(); + var app = express(); // Packages and apps can add handlers that run before any other Meteor // handlers via WebApp.rawConnectHandlers. - var rawConnectHandlers = connect(); + var rawConnectHandlers = express(); app.use(rawConnectHandlers); // Auto-compress any json, javascript, or text. @@ -1133,7 +1137,7 @@ function runWebAppServer() { // Core Meteor packages like dynamic-import can add handlers before // other handlers added by package and application code. - app.use((WebAppInternals.meteorInternalHandlers = connect())); + app.use((WebAppInternals.meteorInternalHandlers = express())); /** * @name connectHandlersCallback(req, res, next) @@ -1174,7 +1178,7 @@ function runWebAppServer() { */ // Packages and apps can add handlers to this via WebApp.connectHandlers. // They are inserted before our default handler. - var packageAndAppHandlers = connect(); + var packageAndAppHandlers = express(); app.use(packageAndAppHandlers); var suppressConnectErrors = false; From d427749a2026ae6ee615d26041e91d601e26f76a Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:22:10 -0300 Subject: [PATCH 02/24] docs: added history about changes in webapp changes connect by express --- docs/history.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/history.md b/docs/history.md index ff70cad47b..ce58bbd2a8 100644 --- a/docs/history.md +++ b/docs/history.md @@ -66,6 +66,10 @@ * `webapp`: - `WebAppInternals.getBoilerplate` is now async. + - Changed engine from connect to express and changed api naming to match express. See below: + - `WebApp.connectHandlers.use(middleware)` is now `WebApp.expressHandlers.use(middleware)` + - `WebApp.rawConnectHandlers.use(middleware)` is now `WebApp.rawExpressHandlers.use(middleware)` + - `WebApp.connectApp` is now `WebApp.expressApp` #### Internal API changes From 08e91e74bc4599234cf66dd3ac61405b50c87782 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:22:45 -0300 Subject: [PATCH 03/24] docs: changes rawConnectHandlers by rawExpressHandlers --- guide/source/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/source/deployment.md b/guide/source/deployment.md index 25e0842c67..5a249dd2d4 100644 --- a/guide/source/deployment.md +++ b/guide/source/deployment.md @@ -99,7 +99,7 @@ If you are hosting a webfont as part of your application and serving it via a CD ```js import { WebApp } from 'meteor/webapp'; -WebApp.rawConnectHandlers.use(function(req, res, next) { +WebApp.rawExpressHandlers.use(function(req, res, next) { if (req._parsedUrl.pathname.match(/\.(ttf|ttc|otf|eot|woff|woff2|font\.css|css)$/)) { res.setHeader('Access-Control-Allow-Origin', /* your hostname, or just '*' */); } From 91af432db9c9366e1bd916cf656402dab45382e1 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:23:02 -0300 Subject: [PATCH 04/24] docs: changes connect by express in security.md --- guide/source/security.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guide/source/security.md b/guide/source/security.md index cde16b74e0..95b4f87bd9 100644 --- a/guide/source/security.md +++ b/guide/source/security.md @@ -480,7 +480,7 @@ By default, Helmet can be used to set various HTTP headers (see link above). The import helmet from "helmet"; // Within server side Meter.startup() -WebApp.connectHandlers.use(helmet()) +WebApp.expressHandlers.use(helmet()) ``` At a minimum, Meteor recommends users to set the following headers. Note that code examples shown below are specific to Helmet. @@ -500,7 +500,7 @@ By default, Meteor recommends unsafe inline scripts and styles are allowed, sinc import helmet from "helmet"; // Within server side Meter.startup() -WebApp.connectHandlers.use( +WebApp.expressHandlers.use( helmet.contentSecurityPolicy({ directives: { defaultSrc: ["'self'"], @@ -679,7 +679,7 @@ With Helmet, Frameguard sets the X-Frame-Options header. import helmet from "helmet"; // Within server side Meter.startup() -WebApp.connectHandlers.use(helmet.frameguard()); // defaults to sameorigin +WebApp.expressHandlers.use(helmet.frameguard()); // defaults to sameorigin ``` For more detail please read the following guide: [Frameguard](https://helmetjs.github.io/docs/frameguard/). From 2fe9d36b3c5180e7b9fc1ec3b01ee9cb15030e14 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:24:25 -0300 Subject: [PATCH 05/24] docs: changes connect docs by express docs --- docs/source/packages/webapp.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/source/packages/webapp.md b/docs/source/packages/webapp.md index a829dd21a1..3f694f2213 100644 --- a/docs/source/packages/webapp.md +++ b/docs/source/packages/webapp.md @@ -13,20 +13,20 @@ This package also allows you to add handlers for HTTP requests. This lets other services access your app's data through an HTTP API, allowing it to easily interoperate with tools and frameworks that don't yet support DDP. -`webapp` exposes the [connect](https://github.com/senchalabs/connect) API for -handling requests through `WebApp.connectHandlers`. +`webapp` exposes the [express](https://github.com/expressjs/express) API for +handling requests through `WebApp.expressHandlers`. Here's an example that will let you handle a specific URL: ```js // Listen to incoming HTTP requests (can only be used on the server). -WebApp.connectHandlers.use('/hello', (req, res, next) => { +WebApp.expressHandlers.use('/hello', (req, res, next) => { res.writeHead(200); res.end(`Hello world from: ${Meteor.release}`); }); ``` -{% apibox "WebApp.connectHandlers" %} -{% apibox "connectHandlersCallback(req, res, next)" %} +{% apibox "WebApp.expressHandlers" %} +{% apibox "expressHandlersCallback(req, res, next)" %} ### Serving a Static Landing Page @@ -62,14 +62,14 @@ Here's a sample _index.html_ you might use to get started: ``` -Then using the connectHandlers method described above serve up your static HTML on app-root/ page load as shown below. +Then using the expressHandlers method described above serve up your static HTML on app-root/ page load as shown below. ``` /* global WebApp Assets */ import crypto from 'crypto' import connectRoute from 'connect-route' -WebApp.connectHandlers.use(connectRoute(function (router) { +WebApp.expressHandlers.use(connectRoute(function (router) { router.get('/', function (req, res, next) { const buf = Assets.getText('index.html') From 3609a650dc7f57b5ec57cf9e8540cd40a8cb5395 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:24:47 -0300 Subject: [PATCH 06/24] chore: changes appcache-server.js connect by express --- packages/appcache/appcache-server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/appcache/appcache-server.js b/packages/appcache/appcache-server.js index 55822427d4..047e9f448b 100755 --- a/packages/appcache/appcache-server.js +++ b/packages/appcache/appcache-server.js @@ -63,7 +63,7 @@ WebApp.addHtmlAttributeHook(request => { manifest: "/app.manifest" } ); -WebApp.connectHandlers.use((req, res, next) => { +WebApp.expressHandlers.use((req, res, next) => { if (req.url !== '/app.manifest') { return next(); } From dd223a80f841b17b0e84e04e1a906fcc1d8be051 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:28:23 -0300 Subject: [PATCH 07/24] chore: update browser-policy-common to use rawExpressHandlers --- packages/browser-policy-common/browser-policy-common.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/browser-policy-common/browser-policy-common.js b/packages/browser-policy-common/browser-policy-common.js index f4c2afd4ec..2180debe53 100644 --- a/packages/browser-policy-common/browser-policy-common.js +++ b/packages/browser-policy-common/browser-policy-common.js @@ -10,7 +10,7 @@ BrowserPolicy._setRunningTest = function () { inTest = true; }; -WebApp.connectHandlers.use(function (req, res, next) { +WebApp.expressHandlers.use(function (req, res, next) { // Never set headers inside tests because they could break other tests. if (BrowserPolicy._runningTest()) return next(); @@ -28,13 +28,13 @@ WebApp.connectHandlers.use(function (req, res, next) { next(); }); -// We use `rawConnectHandlers` to set X-Content-Type-Options on all +// We use `rawExpressHandlers` to set X-Content-Type-Options on all // requests, including static files. -// XXX We should probably use `rawConnectHandlers` for X-Frame-Options +// XXX We should probably use `rawExpressHandlers` for X-Frame-Options // and Content-Security-Policy too, but let's make sure that doesn't // break anything first (e.g. the OAuth popup flow won't work well with // a CSP that disallows inline scripts). -WebApp.rawConnectHandlers.use(function (req, res, next) { +WebApp.rawExpressHandlers.use(function (req, res, next) { if (BrowserPolicy._runningTest()) return next(); From 8ec1f6be04238fc0a13f5685ebcfff2410517445 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:28:41 -0300 Subject: [PATCH 08/24] chore: update test_responder to use express --- packages/deprecated/http/test_responder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/deprecated/http/test_responder.js b/packages/deprecated/http/test_responder.js index 1bbe567a7c..9e9e4cab04 100644 --- a/packages/deprecated/http/test_responder.js +++ b/packages/deprecated/http/test_responder.js @@ -76,7 +76,7 @@ var respond = function(req, res) { }; var run_responder = function() { - WebApp.connectHandlers.stack.unshift( + WebApp.expressHandlers.stack.unshift( { route: TEST_RESPONDER_ROUTE, handle: respond }); }; From 44547aa9370822244d9f9b52a2223eb08a04ce98 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:29:32 -0300 Subject: [PATCH 09/24] chore: spiderable_server is now using express --- packages/deprecated/spiderable/spiderable_server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/deprecated/spiderable/spiderable_server.js b/packages/deprecated/spiderable/spiderable_server.js index cc76f61a25..cdfe13beb6 100644 --- a/packages/deprecated/spiderable/spiderable_server.js +++ b/packages/deprecated/spiderable/spiderable_server.js @@ -58,7 +58,7 @@ Spiderable._urlForPhantom = function (siteAbsoluteUrl, requestUrl) { var PHANTOM_SCRIPT = Assets.getText("phantom_script.js"); -WebApp.connectHandlers.use(function (req, res, next) { +WebApp.expressHandlers.use(function (req, res, next) { // _escaped_fragment_ comes from Google's AJAX crawling spec: // https://developers.google.com/webmasters/ajax-crawling/docs/specification if (/\?.*_escaped_fragment_=/.test(req.url) || From ad76faf92fafe5c3e72bbad9c0acd3d4c2cce3d7 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:29:54 -0300 Subject: [PATCH 10/24] chore: updated oauth_server to use expressHandler --- packages/oauth/oauth_server.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/oauth/oauth_server.js b/packages/oauth/oauth_server.js index ebf9873fcc..272ec551d2 100644 --- a/packages/oauth/oauth_server.js +++ b/packages/oauth/oauth_server.js @@ -205,9 +205,9 @@ const middleware = async (req, res, next) => { }; // Listen to incoming OAuth http requests -WebApp.connectHandlers.use('/_oauth', bodyParser.json()); -WebApp.connectHandlers.use('/_oauth', bodyParser.urlencoded({ extended: false })); -WebApp.connectHandlers.use(middleware); +WebApp.expressHandlers.use('/_oauth', bodyParser.json()); +WebApp.expressHandlers.use('/_oauth', bodyParser.urlencoded({ extended: false })); +WebApp.expressHandlers.use(middleware); OAuthTest.middleware = middleware; From 80a274bede408d79f0d968f7b9647954dc07b89f Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:30:18 -0300 Subject: [PATCH 11/24] chore: added packages in lock file --- .../webapp/.npm/package/npm-shrinkwrap.json | 124 +++++++++--------- 1 file changed, 65 insertions(+), 59 deletions(-) diff --git a/packages/webapp/.npm/package/npm-shrinkwrap.json b/packages/webapp/.npm/package/npm-shrinkwrap.json index af7a66a2fc..56f9e25aaf 100644 --- a/packages/webapp/.npm/package/npm-shrinkwrap.json +++ b/packages/webapp/.npm/package/npm-shrinkwrap.json @@ -1,6 +1,51 @@ { "lockfileVersion": 1, "dependencies": { + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==" + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==" + }, + "@types/express": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==" + }, + "@types/express-serve-static-core": { + "version": "4.17.32", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", + "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==" + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==" + }, "@vlasky/whomst": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/@vlasky/whomst/-/whomst-0.1.7.tgz", @@ -26,11 +71,6 @@ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" - }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -70,18 +110,6 @@ } } }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dependencies": { - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - } - } - }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -167,21 +195,11 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==" - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -196,18 +214,13 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" } } }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "parseurl": { "version": "1.3.3", @@ -254,14 +267,7 @@ "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - } - } + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" }, "human-signals": { "version": "2.1.0", @@ -364,9 +370,9 @@ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" }, "on-headers": { "version": "1.0.2", @@ -468,11 +474,21 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -490,11 +506,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -504,11 +515,6 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" } } }, @@ -538,9 +544,9 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "stream-to-string": { "version": "1.2.0", From d233c04571d1b143351914cb00d17c3995ddd2e3 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:30:35 -0300 Subject: [PATCH 12/24] chore: removed connect.js file --- packages/webapp/connect.js | 47 -------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 packages/webapp/connect.js diff --git a/packages/webapp/connect.js b/packages/webapp/connect.js deleted file mode 100644 index 0363a3ce77..0000000000 --- a/packages/webapp/connect.js +++ /dev/null @@ -1,47 +0,0 @@ -import npmConnect from "connect"; -import npmExpress from "express"; -export function express(args) { - return npmExpress.apply(this, args); -} -export function connect(...connectArgs) { - if (!Meteor._isFibersEnabled) { - return npmExpress.apply(this, connectArgs); - } - - const handlers = npmConnect.apply(this, connectArgs); - const originalUse = handlers.use; - - // Wrap the handlers.use method so that any provided handler functions - // always run in a Fiber. - handlers.use = function use(...useArgs) { - const { stack } = this; - const originalLength = stack.length; - const result = originalUse.apply(this, useArgs); - - // If we just added anything to the stack, wrap each new entry.handle - // with a function that calls Promise.asyncApply to ensure the - // original handler runs in a Fiber. - for (let i = originalLength; i < stack.length; ++i) { - const entry = stack[i]; - const originalHandle = entry.handle; - - if (originalHandle.length >= 4) { - // If the original handle had four (or more) parameters, the - // wrapper must also have four parameters, since connect uses - // handle.length to determine whether to pass the error as the first - // argument to the handle function. - entry.handle = function handle(err, req, res, next) { - return Promise.asyncApply(originalHandle, this, arguments); - }; - } else { - entry.handle = function handle(req, res, next) { - return Promise.asyncApply(originalHandle, this, arguments); - }; - } - } - - return result; - }; - - return handlers; -} From 929da0d8a3cb9b7de867f4e0d5051e62031f9cff Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:30:47 -0300 Subject: [PATCH 13/24] chore: remove connect from webapp --- packages/webapp/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.js b/packages/webapp/package.js index ff6c30f845..6e8bb83c1b 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -6,8 +6,8 @@ Package.describe({ Npm.depends({ 'basic-auth-connect': '1.0.0', 'cookie-parser': '1.4.5', - connect: '3.7.0', express: '4.18.2', + '@types/express': '4.17.15', compression: '1.7.4', errorhandler: '1.5.1', parseurl: '1.3.3', From f2f2c4e4147d5245230a8b2b7212427bed15cb96 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:32:46 -0300 Subject: [PATCH 14/24] docs: updated webapp readme --- packages/webapp/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/webapp/README.md b/packages/webapp/README.md index 3a2810ccb3..9046d285eb 100644 --- a/packages/webapp/README.md +++ b/packages/webapp/README.md @@ -13,8 +13,8 @@ page](https://github.com/meteor/meteor/tree/master/packages/webapp). ## Direct access to connect mongodb API The `webapp` package is implemented using the -[npm `connect` module](https://www.npmjs.com/package/connect). `webapp` exposes -the connect API for handling requests through `Webapp.connectHandlers`. See +[`express`](https://expressjs.com/). `webapp` exposes +the connect API for handling requests through `Webapp.expressHandlers`. See https://docs.meteor.com/#/full/webapp for more details If you'd like direct access to the connect module (for example, to use one of @@ -22,6 +22,6 @@ the middleware handlers that it defines), you can find it at `WebAppInternals.NpmModules.connect.module`. Its version can be read at `WebAppInternals.NpmModules.connect.version`. -The version of `connect` used may change incompatibly from version to version of +The version of `express` used may change incompatibly from version to version of Meteor (or we may even replace it with an entirely different implementation); use at your own risk. From 62066ac6c86f0613484081e3654c50f88bda5b86 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:32:58 -0300 Subject: [PATCH 15/24] types: updated webapp types --- packages/webapp/webapp.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/webapp/webapp.d.ts b/packages/webapp/webapp.d.ts index e13bb9ccf0..863eab4047 100644 --- a/packages/webapp/webapp.d.ts +++ b/packages/webapp/webapp.d.ts @@ -1,5 +1,5 @@ import * as http from 'http'; -import * as connect from 'connect'; +import e from '@types/express'; export interface StaticFiles { [key: string]: { @@ -23,10 +23,10 @@ export declare module WebApp { PUBLIC_SETTINGS: any; }; }; - var connectHandlers: connect.Server; - var rawConnectHandlers: connect.Server; + var expressHandlers: e.Handler; + var rawExpressHandlers: e.Handler; var httpServer: http.Server; - var connectApp: connect.Server; + var expressApp: e.Application; function suppressConnectErrors(): void; function onListening(callback: Function): void; From 7cd854b6afb2d522f2f3890a00036f57b04122e9 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:33:19 -0300 Subject: [PATCH 16/24] chore: update apollo skeleton with new express app --- tools/static-assets/skel-apollo/server/apollo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/static-assets/skel-apollo/server/apollo.js b/tools/static-assets/skel-apollo/server/apollo.js index 376f28f1c2..241572f867 100644 --- a/tools/static-assets/skel-apollo/server/apollo.js +++ b/tools/static-assets/skel-apollo/server/apollo.js @@ -22,7 +22,7 @@ const server = new ApolloServer({ export async function startApolloServer() { await server.start(); - const app = WebApp.connectHandlers; + const app = WebApp.expressHandlers; server.applyMiddleware({ app, From 560c1b383b711f3072e5cba02a2b8ef5e375c5d7 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:33:48 -0300 Subject: [PATCH 17/24] feat: added express to webserver --- packages/webapp/webapp_server.js | 33 +++++++++++++------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index a96dd01360..01da98a705 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -5,12 +5,11 @@ import { userInfo } from 'os'; import { join as pathJoin, dirname as pathDirname } from 'path'; import { parse as parseUrl } from 'url'; import { createHash } from 'crypto'; -import { connect, express } from './connect.js'; +import express from 'express'; import compress from 'compression'; import cookieParser from 'cookie-parser'; import qs from 'qs'; import parseRequest from 'parseurl'; -import basicAuth from 'basic-auth-connect'; import { lookup as lookupUserAgent } from 'useragent'; import { isModern } from 'meteor/modern-browsers'; import send from 'send'; @@ -29,14 +28,8 @@ export const WebAppInternals = {}; const hasOwn = Object.prototype.hasOwnProperty; -// backwards compat to 2.0 of connect -connect.basicAuth = basicAuth; WebAppInternals.NpmModules = { - connect: { - version: Npm.require('connect/package.json').version, - module: connect, - }, express : { version: Npm.require('express/package.json').version, module: express, @@ -1046,9 +1039,9 @@ function runWebAppServer() { var app = express(); // Packages and apps can add handlers that run before any other Meteor - // handlers via WebApp.rawConnectHandlers. - var rawConnectHandlers = express(); - app.use(rawConnectHandlers); + // handlers via WebApp.rawExpressHandlers. + var rawExpressHandlers = express(); + app.use(rawExpressHandlers); // Auto-compress any json, javascript, or text. app.use(compress({ filter: shouldCompress })); @@ -1140,10 +1133,10 @@ function runWebAppServer() { app.use((WebAppInternals.meteorInternalHandlers = express())); /** - * @name connectHandlersCallback(req, res, next) + * @name expressHandlersCallback(req, res, next) * @locus Server * @isprototype true - * @summary callback handler for `WebApp.connectHandlers` + * @summary callback handler for `WebApp.expressHandlers` * @param {Object} req * a Node.js * [IncomingMessage](https://nodejs.org/api/http.html#http_class_http_incomingmessage) @@ -1161,7 +1154,7 @@ function runWebAppServer() { */ /** - * @method connectHandlers + * @method expressHandlers * @memberof WebApp * @locus Server * @summary Register a handler for all HTTP requests. @@ -1171,12 +1164,12 @@ function runWebAppServer() { * * For example, `/hello` will match `/hello/world` and * `/hello.world`, but not `/hello_world`. - * @param {connectHandlersCallback} handler + * @param {expressHandlersCallback} handler * A handler function that will be called on HTTP requests. - * See `connectHandlersCallback` + * See `expressHandlersCallback` * */ - // Packages and apps can add handlers to this via WebApp.connectHandlers. + // Packages and apps can add handlers to this via WebApp.expressHandlers. // They are inserted before our default handler. var packageAndAppHandlers = express(); app.use(packageAndAppHandlers); @@ -1345,10 +1338,10 @@ function runWebAppServer() { // start up app _.extend(WebApp, { - connectHandlers: packageAndAppHandlers, - rawConnectHandlers: rawConnectHandlers, + expressHandlers: packageAndAppHandlers, + rawExpressHandlers: rawExpressHandlers, httpServer: httpServer, - connectApp: app, + expressApp: app, // For testing. suppressConnectErrors: function() { suppressConnectErrors = true; From ae3e31f977ed7cdce46a64ccdfa43a9c6ef6d6a6 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Fri, 13 Jan 2023 16:34:03 -0300 Subject: [PATCH 18/24] tests: adjusted test to match express npm modules --- packages/webapp/webapp_tests.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/webapp/webapp_tests.js b/packages/webapp/webapp_tests.js index a571290aa4..11b8d2bb58 100644 --- a/packages/webapp/webapp_tests.js +++ b/packages/webapp/webapp_tests.js @@ -340,8 +340,6 @@ __meteor_runtime_config__.WEBAPP_TEST_B = ''; Tinytest.add("webapp - npm modules", function (test) { // Make sure the version number looks like a version number. - test.matches(WebAppInternals.NpmModules.connect.version, /^3\.(\d+)\.(\d+)/); - test.equal(typeof(WebAppInternals.NpmModules.connect.module), 'function'); - test.equal(typeof(WebAppInternals.NpmModules.connect.module.basicAuth), - 'function'); + test.matches(WebAppInternals.NpmModules.express.version, /^4\.(\d+)\.(\d+)/); + test.equal(typeof(WebAppInternals.NpmModules.express.module), 'function'); }); From 2b91f52169ac57a34ca99e40d8c8e25c1f8a9286 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 16 Jan 2023 09:32:29 -0300 Subject: [PATCH 19/24] Update packages/webapp/webapp.d.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Radosław Miernik --- packages/webapp/webapp.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/webapp.d.ts b/packages/webapp/webapp.d.ts index 863eab4047..a58f3e6be6 100644 --- a/packages/webapp/webapp.d.ts +++ b/packages/webapp/webapp.d.ts @@ -1,5 +1,5 @@ import * as http from 'http'; -import e from '@types/express'; +import express from 'express'; export interface StaticFiles { [key: string]: { From 8296afc897e316804335941b08f141464b139ebc Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 16 Jan 2023 10:03:01 -0300 Subject: [PATCH 20/24] chore: addressed security comments --- packages/webapp/webapp_server.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index 01da98a705..721bf5f6d8 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -1038,6 +1038,11 @@ function runWebAppServer() { // webserver var app = express(); + // Security and performace headers + // these headers come from these docs: https://expressjs.com/en/api.html#app.settings.table + app.set('x-powered-by', false); + app.set('etag', false); + // Packages and apps can add handlers that run before any other Meteor // handlers via WebApp.rawExpressHandlers. var rawExpressHandlers = express(); From e4a3fb561a466f71f6d62e376c9fc391d87513f6 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 16 Jan 2023 19:44:43 -0300 Subject: [PATCH 21/24] chore: add raw handlers --- packages/webapp/webapp_server.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index 721bf5f6d8..a213d24913 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -1046,6 +1046,8 @@ function runWebAppServer() { // Packages and apps can add handlers that run before any other Meteor // handlers via WebApp.rawExpressHandlers. var rawExpressHandlers = express(); + rawExpressHandlers.set('x-powered-by', false); + rawExpressHandlers.set('etag', false); app.use(rawExpressHandlers); // Auto-compress any json, javascript, or text. @@ -1135,7 +1137,10 @@ function runWebAppServer() { // Core Meteor packages like dynamic-import can add handlers before // other handlers added by package and application code. - app.use((WebAppInternals.meteorInternalHandlers = express())); + const internalHandlers = express(); + internalHandlers.set('x-powered-by', false); + internalHandlers.set('etag', false); + app.use((WebAppInternals.meteorInternalHandlers = internalHandlers)); /** * @name expressHandlersCallback(req, res, next) @@ -1177,6 +1182,8 @@ function runWebAppServer() { // Packages and apps can add handlers to this via WebApp.expressHandlers. // They are inserted before our default handler. var packageAndAppHandlers = express(); + packageAndAppHandlers.set('x-powered-by', false); + packageAndAppHandlers.set('etag', false); app.use(packageAndAppHandlers); var suppressConnectErrors = false; From 829bf9feb2f0f23d1601a9c442262dc25650395e Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 18 Jan 2023 17:19:02 -0300 Subject: [PATCH 22/24] types: adressed wrong typings --- packages/webapp/webapp.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/webapp/webapp.d.ts b/packages/webapp/webapp.d.ts index a58f3e6be6..5579ec1e2f 100644 --- a/packages/webapp/webapp.d.ts +++ b/packages/webapp/webapp.d.ts @@ -23,10 +23,10 @@ export declare module WebApp { PUBLIC_SETTINGS: any; }; }; - var expressHandlers: e.Handler; - var rawExpressHandlers: e.Handler; + var expressHandlers: express.Handler; + var rawExpressHandlers: express.Handler; var httpServer: http.Server; - var expressApp: e.Application; + var expressApp: express.Application; function suppressConnectErrors(): void; function onListening(callback: Function): void; From 1b921ec3319704b9e0064019b86b3884557bacab Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 18 Jan 2023 17:23:46 -0300 Subject: [PATCH 23/24] chore: created abstraction on top of express creation --- packages/webapp/webapp_server.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index a213d24913..3097ad2e58 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -23,6 +23,14 @@ import whomst from '@vlasky/whomst'; var SHORT_SOCKET_TIMEOUT = 5 * 1000; var LONG_SOCKET_TIMEOUT = 120 * 1000; +const createExpressApp = () => { + const app = express(); + // Security and performace headers + // these headers come from these docs: https://expressjs.com/en/api.html#app.settings.table + app.set('x-powered-by', false); + app.set('etag', false); + return app; +} export const WebApp = {}; export const WebAppInternals = {}; @@ -1036,18 +1044,11 @@ function runWebAppServer() { WebAppInternals.reloadClientPrograms(); // webserver - var app = express(); - - // Security and performace headers - // these headers come from these docs: https://expressjs.com/en/api.html#app.settings.table - app.set('x-powered-by', false); - app.set('etag', false); + var app = createExpressApp() // Packages and apps can add handlers that run before any other Meteor // handlers via WebApp.rawExpressHandlers. - var rawExpressHandlers = express(); - rawExpressHandlers.set('x-powered-by', false); - rawExpressHandlers.set('etag', false); + var rawExpressHandlers = createExpressApp() app.use(rawExpressHandlers); // Auto-compress any json, javascript, or text. @@ -1137,10 +1138,7 @@ function runWebAppServer() { // Core Meteor packages like dynamic-import can add handlers before // other handlers added by package and application code. - const internalHandlers = express(); - internalHandlers.set('x-powered-by', false); - internalHandlers.set('etag', false); - app.use((WebAppInternals.meteorInternalHandlers = internalHandlers)); + app.use((WebAppInternals.meteorInternalHandlers = createExpressApp())); /** * @name expressHandlersCallback(req, res, next) From 1d3cfca40aabc91680f24672a66f8a3eeb43ec0f Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 18 Jan 2023 17:40:23 -0300 Subject: [PATCH 24/24] updated last express method --- packages/webapp/webapp_server.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index 3097ad2e58..5f309a59ef 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -1179,9 +1179,7 @@ function runWebAppServer() { */ // Packages and apps can add handlers to this via WebApp.expressHandlers. // They are inserted before our default handler. - var packageAndAppHandlers = express(); - packageAndAppHandlers.set('x-powered-by', false); - packageAndAppHandlers.set('etag', false); + var packageAndAppHandlers = createExpressApp() app.use(packageAndAppHandlers); var suppressConnectErrors = false;