From 9078abf4f1acab0c4d00cd7b55b864dada993fb0 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Tue, 2 May 2023 00:39:01 -0500 Subject: [PATCH] Timeout requests and stop processing further (#204) Fix https://github.com/matrix-org/matrix-public-archive/issues/148 Fix https://github.com/matrix-org/matrix-public-archive/issues/40 - Apply timeout middleware to all room directory and room routes - Stop messing with the response after we timeout. Fix https://github.com/matrix-org/matrix-public-archive/issues/148 - This also involves cancelling any `async/await` things like requests in the routes so we throw an abort error instead of continuing on. Fix https://github.com/matrix-org/matrix-public-archive/issues/40 - Also abort the route if we see that the user closed the request before we could respond to them - Bumps minimum supported Node.js version to v18 because we're now using the built-in native `fetch` in Node.js vs `node-fetch`. This gives us the custom `signal.reason` that we aborted with instead of a generic `AbortError`. - This also means we had to add some instrumentation for `fetch` which uses `undici` under the hood. Settled on some unofficial instrumentation: [`opentelemetry-instrumentation-fetch-node`](https://www.npmjs.com/package/opentelemetry-instrumentation-fetch-node) --- .github/workflows/tests.yaml | 2 +- Dockerfile | 2 +- README.md | 11 +- package-lock.json | 3987 +++++------------ package.json | 22 +- .../child-process-runner/child-fork-script.js | 2 +- .../run-in-child-process.js | 73 +- .../render-hydrogen-to-string.js | 26 +- ...-hydrogen-vm-render-script-to-page-html.js | 10 +- server/lib/errors/extended-error.js | 18 + server/lib/{ => errors}/rethrown-error.js | 18 +- .../lib/errors/route-timeout-abort-error.js | 9 + server/lib/{ => errors}/status-error.js | 0 .../user-closed-connection-abort-error.js | 9 + server/lib/fetch-endpoint.js | 8 +- server/lib/matrix-utils/ensure-room-joined.js | 9 +- .../fetch-events-from-timestamp-backwards.js | 4 +- server/lib/matrix-utils/fetch-public-rooms.js | 6 +- server/lib/matrix-utils/fetch-room-data.js | 45 +- .../get-messages-response-from-event-id.js | 11 +- server/lib/matrix-utils/timestamp-to-event.js | 5 +- .../lib/parse-via-servers-from-user-input.js | 2 +- server/middleware/timeout-middleware.js | 35 +- server/routes/install-routes.js | 9 +- server/routes/room-directory-routes.js | 13 +- server/routes/room-routes.js | 56 +- server/start-dev.js | 8 +- server/tracing/serialize-span.js | 8 +- server/tracing/tracing-middleware.js | 9 +- server/tracing/tracing.js | 6 + test/e2e-tests.js | 2 +- 31 files changed, 1559 insertions(+), 2866 deletions(-) create mode 100644 server/lib/errors/extended-error.js rename server/lib/{ => errors}/rethrown-error.js (81%) create mode 100644 server/lib/errors/route-timeout-abort-error.js rename server/lib/{ => errors}/status-error.js (100%) create mode 100644 server/lib/errors/user-closed-connection-abort-error.js diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 0796580..bc3de58 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -81,7 +81,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [18.x] services: # We need two homeservers that federate with each other to test with diff --git a/Dockerfile b/Dockerfile index 9f4682c..21c03c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # with error 243 issues are solved: # - https://github.com/npm/cli/issues/4996 # - https://github.com/npm/cli/issues/4769 -FROM node:16.14.2-buster-slim +FROM node:18.16.0-buster-slim # Pass through some GitHub CI variables which we use in the build (for version # files/tags) diff --git a/README.md b/README.md index 7cc74cb..517ee50 100644 --- a/README.md +++ b/README.md @@ -35,11 +35,16 @@ See the [FAQ page](docs/faq.md). ### Prerequisites -- [Node.js](https://nodejs.org/) v16 - - We only need v16 because it includes +- [Node.js](https://nodejs.org/) v18 + - We need v18 because it includes `fetch` by default. And [`node-fetch` doesn't + support `abortSignal.reason`](https://github.com/node-fetch/node-fetch/issues/1462) + yet. + - We need v16 because it includes [`require('crypto').webcrypto.subtle`](https://nodejs.org/docs/latest-v16.x/api/webcrypto.html#cryptosubtle) for [Matrix encryption (olm) which can't be disabled in - Hydrogen](https://github.com/vector-im/hydrogen-web/issues/579) yet. + Hydrogen](https://github.com/vector-im/hydrogen-web/issues/579) yet. And + [`abortSignal.reason` was introduced in + v16.14.0](https://nodejs.org/dist/latest-v18.x/docs/api/globals.html#abortsignalreason) (although we use `node-fetch` for now). - A Matrix homeserver that supports [MSC3030's](https://github.com/matrix-org/matrix-spec-proposals/pull/3030) `/timestamp_to_event` endpoint - [Synapse](https://matrix.org/docs/projects/server/synapse) 1.73.0+ diff --git a/package-lock.json b/package-lock.json index 50a28c3..5c13722 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,16 +9,16 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/api": "^1.1.0", - "@opentelemetry/auto-instrumentations-node": "^0.31.0", - "@opentelemetry/context-async-hooks": "^1.4.0", - "@opentelemetry/core": "^1.4.0", - "@opentelemetry/exporter-jaeger": "^1.3.1", - "@opentelemetry/instrumentation": "^0.30.0", - "@opentelemetry/propagator-ot-trace": "^0.26.0", - "@opentelemetry/resources": "^1.3.1", - "@opentelemetry/sdk-trace-base": "^1.3.1", - "@opentelemetry/semantic-conventions": "^1.3.1", + "@opentelemetry/api": "^1.4.1", + "@opentelemetry/auto-instrumentations-node": "^0.36.6", + "@opentelemetry/context-async-hooks": "^1.12.0", + "@opentelemetry/core": "^1.12.0", + "@opentelemetry/exporter-jaeger": "^1.12.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/propagator-ot-trace": "^0.26.2", + "@opentelemetry/resources": "^1.12.0", + "@opentelemetry/sdk-trace-base": "^1.12.0", + "@opentelemetry/semantic-conventions": "^1.12.0", "cors": "^2.8.5", "dompurify": "^2.3.9", "escape-string-regexp": "^4.0.0", @@ -28,7 +28,7 @@ "linkedom": "^0.14.17", "matrix-public-archive-shared": "file:./shared/", "nconf": "^0.11.3", - "node-fetch": "^2.6.7", + "opentelemetry-instrumentation-fetch-node": "^1.0.0", "url-join": "^4.0.1" }, "devDependencies": { @@ -478,38 +478,31 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@fastify/ajv-compiler": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.6" - } - }, - "node_modules/@fastify/error": { - "version": "2.0.0", - "license": "MIT" - }, "node_modules/@hapi/b64": { "version": "5.0.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", + "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/boom": { "version": "9.1.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/bourne": { "version": "2.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" }, "node_modules/@hapi/cryptiles": { "version": "5.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", + "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", "dependencies": { "@hapi/boom": "9.x.x" }, @@ -519,11 +512,13 @@ }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "node_modules/@hapi/iron": { "version": "6.0.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", + "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", @@ -534,7 +529,8 @@ }, "node_modules/@hapi/podium": { "version": "4.1.3", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", + "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", @@ -543,21 +539,24 @@ }, "node_modules/@hapi/teamwork": { "version": "5.1.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.1.tgz", + "integrity": "sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==", "engines": { "node": ">=12.0.0" } }, "node_modules/@hapi/topo": { "version": "5.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@hapi/validate": { "version": "1.1.3", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", + "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" @@ -661,158 +660,110 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.1.0", - "license": "Apache-2.0", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/api-metrics": { - "version": "0.29.2", - "license": "Apache-2.0", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.33.0.tgz", + "integrity": "sha512-78evfPRRRnJA6uZ3xuBuS3VZlXTO/LRs+Ff1iv3O/7DgibCtq9k27T6Zlj8yRdJDFmcjcbQrvC0/CpDpWHaZYA==", + "deprecated": "Please use @opentelemetry/api >= 1.3.0", "dependencies": { "@opentelemetry/api": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" } }, "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.31.0", - "license": "Apache-2.0", + "version": "0.36.6", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.36.6.tgz", + "integrity": "sha512-L2i7SfOFKCj472D00qNFQhacua8WodyAy9EJzd4K0Wa1tQDcO+JPcYQtIVy0A2bBmuuFZ+kUKEEFQKtZxolJTw==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/instrumentation-amqplib": "^0.30.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.32.0", - "@opentelemetry/instrumentation-aws-sdk": "^0.8.0", - "@opentelemetry/instrumentation-bunyan": "^0.29.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.29.0", - "@opentelemetry/instrumentation-connect": "^0.29.0", - "@opentelemetry/instrumentation-dns": "^0.29.0", - "@opentelemetry/instrumentation-express": "^0.30.0", - "@opentelemetry/instrumentation-fastify": "^0.28.0", - "@opentelemetry/instrumentation-generic-pool": "^0.29.0", - "@opentelemetry/instrumentation-graphql": "^0.29.0", - "@opentelemetry/instrumentation-grpc": "^0.29.2", - "@opentelemetry/instrumentation-hapi": "^0.29.0", - "@opentelemetry/instrumentation-http": "^0.29.2", - "@opentelemetry/instrumentation-ioredis": "^0.30.0", - "@opentelemetry/instrumentation-knex": "^0.29.0", - "@opentelemetry/instrumentation-koa": "^0.30.0", - "@opentelemetry/instrumentation-memcached": "^0.29.0", - "@opentelemetry/instrumentation-mongodb": "^0.31.0", - "@opentelemetry/instrumentation-mysql": "^0.30.0", - "@opentelemetry/instrumentation-mysql2": "^0.31.0", - "@opentelemetry/instrumentation-nestjs-core": "^0.30.0", - "@opentelemetry/instrumentation-net": "^0.29.0", - "@opentelemetry/instrumentation-pg": "^0.30.0", - "@opentelemetry/instrumentation-pino": "^0.30.0", - "@opentelemetry/instrumentation-redis": "^0.32.0", - "@opentelemetry/instrumentation-redis-4": "^0.31.0", - "@opentelemetry/instrumentation-restify": "^0.29.0", - "@opentelemetry/instrumentation-winston": "^0.29.0" + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/instrumentation-amqplib": "^0.32.3", + "@opentelemetry/instrumentation-aws-lambda": "^0.35.1", + "@opentelemetry/instrumentation-aws-sdk": "^0.34.1", + "@opentelemetry/instrumentation-bunyan": "^0.31.2", + "@opentelemetry/instrumentation-cassandra-driver": "^0.32.2", + "@opentelemetry/instrumentation-connect": "^0.31.2", + "@opentelemetry/instrumentation-dataloader": "^0.4.1", + "@opentelemetry/instrumentation-dns": "^0.31.3", + "@opentelemetry/instrumentation-express": "^0.32.2", + "@opentelemetry/instrumentation-fastify": "^0.31.2", + "@opentelemetry/instrumentation-fs": "^0.7.2", + "@opentelemetry/instrumentation-generic-pool": "^0.31.2", + "@opentelemetry/instrumentation-graphql": "^0.34.1", + "@opentelemetry/instrumentation-grpc": "^0.38.0", + "@opentelemetry/instrumentation-hapi": "^0.31.2", + "@opentelemetry/instrumentation-http": "^0.38.0", + "@opentelemetry/instrumentation-ioredis": "^0.34.1", + "@opentelemetry/instrumentation-knex": "^0.31.2", + "@opentelemetry/instrumentation-koa": "^0.34.4", + "@opentelemetry/instrumentation-lru-memoizer": "^0.32.2", + "@opentelemetry/instrumentation-memcached": "^0.31.2", + "@opentelemetry/instrumentation-mongodb": "^0.34.2", + "@opentelemetry/instrumentation-mongoose": "^0.32.2", + "@opentelemetry/instrumentation-mysql": "^0.33.1", + "@opentelemetry/instrumentation-mysql2": "^0.33.2", + "@opentelemetry/instrumentation-nestjs-core": "^0.32.3", + "@opentelemetry/instrumentation-net": "^0.31.2", + "@opentelemetry/instrumentation-pg": "^0.35.1", + "@opentelemetry/instrumentation-pino": "^0.33.2", + "@opentelemetry/instrumentation-redis": "^0.34.5", + "@opentelemetry/instrumentation-redis-4": "^0.34.4", + "@opentelemetry/instrumentation-restify": "^0.32.2", + "@opentelemetry/instrumentation-router": "^0.32.2", + "@opentelemetry/instrumentation-socket.io": "^0.33.2", + "@opentelemetry/instrumentation-tedious": "^0.5.2", + "@opentelemetry/instrumentation-winston": "^0.31.2" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/auto-instrumentations-node/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/auto-instrumentations-node/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.4.0", - "license": "Apache-2.0", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.12.0.tgz", + "integrity": "sha512-PmwAanPNWCyS9JYFzhzVzHgviLhc0UHjOwdth+hp3HgQQ9XZZNE635P8JhAUHZmbghW9/qQFafRWOS4VN9VVnQ==", "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" + "@opentelemetry/api": ">=1.0.0 <1.5.0" } }, "node_modules/@opentelemetry/core": { - "version": "1.4.0", - "license": "Apache-2.0", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.12.0.tgz", + "integrity": "sha512-4DWYNb3dLs2mSCGl65jY3aEgbvPWSHVQV/dmDWiYeWUrMakZQFcymqZOSUNZO0uDrEJoxMu8O5tZktX6UKFwag==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.4.0" + "@opentelemetry/semantic-conventions": "1.12.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" - } - }, - "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.4.0", - "license": "Apache-2.0", - "engines": { - "node": ">=14" + "@opentelemetry/api": ">=1.0.0 <1.5.0" } }, "node_modules/@opentelemetry/exporter-jaeger": { - "version": "1.3.1", - "license": "Apache-2.0", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.12.0.tgz", + "integrity": "sha512-MGWslvok6tlNCHexHGnfXrSyobBqUDh4YOLENt2MeQ/F974SyVG4e73TD/CDM+227/rRM587hJ8dQBzvwUac/g==", "dependencies": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/sdk-trace-base": "1.3.1", - "@opentelemetry/semantic-conventions": "1.3.1", + "@opentelemetry/core": "1.12.0", + "@opentelemetry/sdk-trace-base": "1.12.0", + "@opentelemetry/semantic-conventions": "1.12.0", "jaeger-client": "^3.15.0" }, - "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/exporter-jaeger/node_modules/@opentelemetry/core": { - "version": "1.3.1", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.3.1" - }, - "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.30.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.30.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, "engines": { "node": ">=14" }, @@ -820,286 +771,154 @@ "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@opentelemetry/instrumentation-amqplib": { - "version": "0.30.0", - "license": "Apache-2.0", + "node_modules/@opentelemetry/instrumentation": { + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.38.0.tgz", + "integrity": "sha512-wr1WkIbzHGV+oz6SCme88D2c+zNG23COkCjcida8b3jIzX2lJafOpEHPDcbBF38F8ChkRSj/tVnx1wnYAXZvbA==", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/amqplib": "^0.5.17" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-amqplib/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", + "require-in-the-middle": "^6.0.0", "semver": "^7.3.2", "shimmer": "^1.2.1" }, + "engines": { + "node": ">=14" + }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-amqplib/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", + "node_modules/@opentelemetry/instrumentation-amqplib": { + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.32.3.tgz", + "integrity": "sha512-DCyyaY856bleplmt5Z+Fnw0xhGFRLrSunAghWC+g2xC15cAUWpdR2GKc5dYqYZrDHOEjvGjpA/LRObGLMmeYAg==", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.32.0", - "license": "Apache-2.0", + "version": "0.35.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.35.1.tgz", + "integrity": "sha512-IeNX7l2KHnSbGXMRwHp9qHLQnIDrPvcfjONK5/i+euSJMDevsREM6Q+nQthj03HNSWrTfWjd5I/AXUGMssai8A==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/propagator-aws-xray": "^1.1.0", - "@opentelemetry/resources": "^1.0.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/propagator-aws-xray": "^1.2.0", + "@opentelemetry/resources": "^1.8.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/aws-lambda": "8.10.81" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-aws-sdk": { - "version": "0.8.0", - "license": "Apache-2.0", + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.34.1.tgz", + "integrity": "sha512-pyU8JYJ04WyYjlz8dEcOAfdri73mnXOcAUsmk0y/uYoFZi3zATiqf0rmXIrRVOcPQhEuifUMAy+ixsghz2uu/A==", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/propagation-utils": "^0.28.0", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/propagation-utils": "^0.29.3", "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-aws-sdk/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-aws-sdk/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.31.2.tgz", + "integrity": "sha512-De35vwLh9MJRs9nMRP+o25AIr3EGteonjtW8hcHxt79gb+6b4sWXZyihLJZtsE7NY7sW1H6FPB5ZAminqVTMCQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@types/bunyan": "1.8.7" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-bunyan/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.32.2.tgz", + "integrity": "sha512-NAojU/C9bETR+tK4QJqca+lJzT5cQ/cCDlpTs+9WJP6ebeZ5euD2S3Zuk1DVLcG2CP8bUKFdsAWKCZxxbvqUNA==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-cassandra-driver/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-cassandra-driver/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.31.2.tgz", + "integrity": "sha512-gSxNxijf0OZXAKzK/iIitYs8BS7dd0Pavw4JuZCfdPWSVMwv9zuwngo72A8pvQugyva5fYhDjN3RsJcETnVt7A==", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/connect": "3.4.35" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-connect/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", + "node_modules/@opentelemetry/instrumentation-dataloader": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.4.1.tgz", + "integrity": "sha512-YvGn30D+gaO8jkbHBHOY5N7O60akjoVx8ChqbVskbGHLekCVXer4S2C/wLCx32HFzS0JVKCGNioYzrjevu873Q==", "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-connect/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@opentelemetry/instrumentation": "^0.38.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-dns": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.31.3.tgz", + "integrity": "sha512-/Sgv5wju8CE6aPsKluU09/OhhDGhLVvSs0Ope1zk2IThJzOecep48IX/yRPQ3b3fBl62ebo3Nlwo2mJFenzPBg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "semver": "^7.3.2" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-dns/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-dns/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -1111,298 +930,137 @@ } }, "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.30.0", - "license": "Apache-2.0", + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.32.2.tgz", + "integrity": "sha512-mK+Xt8QWmmjjeJEQb4DfFZzCN5dWA+7za2Y5UCBKxbF1J6uUJBMDIZ1YBLW3yaEfilfDDm5CRWEwYkPMr8+aWQ==", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/express": "4.17.13" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.28.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.31.2.tgz", + "integrity": "sha512-j0vEGOuDUf5nXQnEm8v0Ah6nt+CoKO5a4qnsh4ksCETBLtvU7FMi3THOjxD3WQaa5cBXHstOlU1ISt7ybEltqQ==", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "fastify": "^3.19.2" + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-fastify/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", + "node_modules/@opentelemetry/instrumentation-fs": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.7.2.tgz", + "integrity": "sha512-Fw0vfHEV2B36quUpTIVfUVITOb88b9bTyrhpC3nkC6qT6ibaIBq380O8ahc5CGvqO9OO128KSeiLbeNQdFt2Nw==", "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-fastify/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-generic-pool": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.31.2.tgz", + "integrity": "sha512-IIBDtIFdHybLnEjbqVGb22c0R5heUNHruq36AHYtmynjMrH1vpQMN9PM6zvak0QDAxg5siuXkc3HVuAYl24Jcw==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/generic-pool": "^3.1.9" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-generic-pool/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-generic-pool/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.34.1.tgz", + "integrity": "sha512-6dz6fz0qDObBxMDYFX8lmSzJzRWOLhWHV9+x3jbV/I1rftNCcVqRjxjUIkmv29WcH/kH1AzQFZEUqciMeBOEBg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "graphql": "^15.5.1" + "@opentelemetry/instrumentation": "^0.38.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-graphql/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-graphql/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.29.2", - "license": "Apache-2.0", + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.38.0.tgz", + "integrity": "sha512-9mmCqzt+bZ6ejqvk8myzgaMInLUrablWbDMGQbyio9k4z9TDRnMNdCsbJrDWEJll3kcqDEUECBiH/t+BqnMmXQ==", "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "@opentelemetry/instrumentation": "0.29.2", - "@opentelemetry/semantic-conventions": "1.3.1" + "@opentelemetry/instrumentation": "0.38.0", + "@opentelemetry/semantic-conventions": "1.12.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.31.2.tgz", + "integrity": "sha512-Hn9eoqC6SQ8YlCEiYbtnQ/b3QNApiP3HOETAM8B4B3DUd1+XWBqze62+KAwSqgUIL5d9Q3029VRp5pMJ2r+jYw==", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/hapi__hapi": "20.0.9" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-hapi/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.29.2", - "license": "Apache-2.0", + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.38.0.tgz", + "integrity": "sha512-9kpRVnG6oVvt3/WYCzrHwW+s69BW4ap38NWFJLFB+Mcq1wmAcNSoBYUM7j2AfJB4w4y3A6r6mYgnusnxdmPYYg==", "dependencies": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/instrumentation": "0.29.2", - "@opentelemetry/semantic-conventions": "1.3.1", + "@opentelemetry/core": "1.12.0", + "@opentelemetry/instrumentation": "0.38.0", + "@opentelemetry/semantic-conventions": "1.12.0", "semver": "^7.3.5" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.3.1", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.3.1" - }, - "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -1414,625 +1072,315 @@ } }, "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.30.0", - "license": "Apache-2.0", + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.34.1.tgz", + "integrity": "sha512-dY1EuQlhOuWu6Lb8DsAqyMzoVAo9fiXwUFLesjKX3m3H2MgXuVCwMU43mgLadYTOxrLh6nPAauCeedu9v9u8vw==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/redis-common": "^0.35.0", "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/ioredis": "4.26.6" + "@types/ioredis4": "npm:@types/ioredis@^4.28.10" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-ioredis/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-knex": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.31.2.tgz", + "integrity": "sha512-0h67HjafjGUXEAVvVTCJQ6Fh6Gf6tbTfnAwd2/D+Fo1yK4Kf2ApZ6btDMscir7OZ/jXoDLLDUgmTOrWekROXHw==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-knex/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-knex/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.30.0", - "license": "Apache-2.0", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.34.4.tgz", + "integrity": "sha512-vdjlJfs7F+9K9k9OPYVQk7r1u+AL74h/UFS8epXgMuyMBxYqVhArV4k0Y72L7ItvW+4WlOAr4xoby+457oSQOA==", "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/koa": "2.13.4", + "@types/koa": "2.13.6", "@types/koa__router": "8.0.7" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-koa/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", + "node_modules/@opentelemetry/instrumentation-lru-memoizer": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.32.2.tgz", + "integrity": "sha512-wtLld4CnPD0Dt5hSHoFO9sm7C8J4Kg1NEOzcPwpUiasHPibFs51A0ebGm6N4E2rtYJdEOaQ04p7rUOcUiDQ8rw==", "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-koa/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@opentelemetry/instrumentation": "^0.38.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-memcached": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.31.2.tgz", + "integrity": "sha512-ZROkZJMP3/8qo4Vm/31db1xqabi7Uv/oKe3qXJDnjL0jsOIB5Edo+0xQTii5P4f0A4nQIuhISVnI4L3aQhkBGQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/memcached": "^2.2.6" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-memcached/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-memcached/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.31.0", - "license": "Apache-2.0", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.34.2.tgz", + "integrity": "sha512-7Ie0zMykMMRX4hkMOmEgD+WOTHxDJsXQi5RtWgYnEPW4Sp0Mr436XvmWgYxm4zNwrG3iFHEyRf14Y5DjbdCxKQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/mongodb": "3.6.20" + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-mongodb/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", + "node_modules/@opentelemetry/instrumentation-mongoose": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.32.2.tgz", + "integrity": "sha512-lmIm5ULUgki7XrDL7Nn1g3ESx1Dn9b1gR4ZTCtsx4xcLO3NzeDEpnMf8kRa4/LXJotDtwm+awsY8V/TgEjgSiQ==", "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mongodb/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.30.0", - "license": "Apache-2.0", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.33.1.tgz", + "integrity": "sha512-vjOI6FvzTppsqxdZoabXNpriOo2BQdX1vMH5oZBDLEReO3+ArWiXDUQQe+7V0+DPkdXqK6n0lTq7S5rgdNmYeg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/mysql": "2.15.19" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mysql/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.31.0", - "license": "Apache-2.0", + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.33.2.tgz", + "integrity": "sha512-9QZkg+00WoXK8pl5ioV+ZdlIlt+Te+V4uy/DP9cnCMBEPg3E8FmXAugr/zlRmivPUKP0JOZSD22vBdEUZ1j9lg==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mysql2/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mysql2/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.30.0", - "license": "Apache-2.0", + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.32.3.tgz", + "integrity": "sha512-6rfI0+k/UJeabaJM172kuabTTKcthz5P3WPp0PXETvZ7uQwauZlxyrnIwoU6iE3ugTsFl1ep4VZuPwNAEIPKnQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-net": { - "version": "0.29.0", - "license": "Apache-2.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.31.2.tgz", + "integrity": "sha512-v3IDyBlUonogKLXr/EQYY2HqO8rAR/ZUw+wK9ij+G4nhS2eKXEZx5qdGK911wEe5I4Fb38lYkGTUN1DmG6I75A==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-net/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-net/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.30.0", - "license": "Apache-2.0", + "version": "0.35.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.35.1.tgz", + "integrity": "sha512-YIundM45xHY/gHJRD3j5/AlrY052XfR38+en1l8C1YFdLc4CHOoapQyItzpEWXvzpNhhiIYfvCa/3czKCKscCQ==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/pg": "8.6.1", "@types/pg-pool": "2.0.3" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-pg/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation-pino": { - "version": "0.30.0", - "license": "Apache-2.0", + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.33.2.tgz", + "integrity": "sha512-eOhdOlU6WvTRGKSMxEmyfMuTVfHmuk7p2QPJrrBptmJW6Y40oxGua+XlKNizTmXGrjcE+pZGFEzqz25queEBOA==", "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "pino": "7.10.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-pino/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-pino/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-redis": { - "version": "0.32.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/redis": "2.8.31" - }, - "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-redis-4": { - "version": "0.31.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-redis-4/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-redis/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-redis/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-restify": { - "version": "0.29.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/restify": "4.3.8" - }, - "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-restify/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-restify/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-winston": { - "version": "0.29.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.29.2" - }, - "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-winston/node_modules/@opentelemetry/instrumentation": { - "version": "0.29.2", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-winston/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-metrics": { - "version": "0.30.0", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api": "^1.0.0" + "@opentelemetry/instrumentation": "^0.38.0" }, "engines": { "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-redis": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.34.5.tgz", + "integrity": "sha512-gTpl604SyIhJmfHkJOgaI+enVPg/IjFBg40EbECh5/xZUlkmMzh+WXiARovWCwsSl5LMLDpoyj16EC1kVxnOWw==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/redis-common": "^0.35.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-redis-4": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.34.4.tgz", + "integrity": "sha512-Cp6eR9qMPseVyHaNZjXn9Fk4912zVoL12CcPzM5jhu0ovZLJ6syqSlk3GzfpwG8x3NVjQ7eKINedJ//a/ucoFA==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/redis-common": "^0.35.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-restify": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.32.2.tgz", + "integrity": "sha512-Mbz6DTApAUlYf1li172WOaCRKbj9lnc46RdaDCdI3t/g+dEzCrPMpEEme76pNxQGKPlBQnyMXY2cbtFtdCKiEg==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-router": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.32.2.tgz", + "integrity": "sha512-5BwkaZe5z/S+vq/HxVxrqngxt9Ccp0+7KhUm6kbv6esU4WUsuaYrxXtyyu53woeaHiJQHvNsEtUWdG/SsD+1hw==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-socket.io": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.33.2.tgz", + "integrity": "sha512-R3O4SQwN+X+KUS1p6kPa57gfY7FHKCYOygd/oRGtqqXx8pxa5F1j/gnbZ6fiDIpievpcjDaD5bEVDJCxAWs5Yg==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + }, + "engines": { + "node": ">=14.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-tedious": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.5.2.tgz", + "integrity": "sha512-6nxLun5dq1WZ0nwtM/wr5hlxVCk13DAALD6M4u5k9jlti+ZAn2exjVYBfKPxJNFf/Wd/XUUOeOM8efCwFtnocA==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0", + "@types/tedious": "^4.0.6" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-winston": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.31.2.tgz", + "integrity": "sha512-bkCbSS6xXIVSJhcv5UNV86tjnOzyCv+CsFEEuDPPS3XYIUqPhgy653FweCOOGWTHe07m1gC73xXFvupK4v7CBw==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.38.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, "node_modules/@opentelemetry/instrumentation/node_modules/semver": { @@ -2049,114 +1397,105 @@ } }, "node_modules/@opentelemetry/propagation-utils": { - "version": "0.28.0", - "license": "Apache-2.0", + "version": "0.29.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.29.3.tgz", + "integrity": "sha512-s2UAULgJZu0sxJkJzMWu2Wc/3dTIe8HxPMr4yqj1h55VdKID5aqQuqPODI0G0sVis2q7ClfpHdDPJVFlPEbCdA==", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, "node_modules/@opentelemetry/propagator-aws-xray": { - "version": "1.1.0", - "license": "Apache-2.0", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.2.0.tgz", + "integrity": "sha512-KCNFXdv63c+dItes2pUPVd1QDPmfcx3AVwcgE28emSx6tPI71q11zpMTDAWKPU8J9GQAGXMDyGnRGhIgua40aw==", "dependencies": { "@opentelemetry/core": "^1.0.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, "node_modules/@opentelemetry/propagator-ot-trace": { - "version": "0.26.0", - "license": "Apache-2.0", + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-ot-trace/-/propagator-ot-trace-0.26.2.tgz", + "integrity": "sha512-yABHr8QIjJBFPuRivzMtwunRrcv+ZVaaosvfTmfEx6ZQQ66d5C8ddZsEDVsr7fdLQO8/FZuwOItxYWjie69dzA==", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@opentelemetry/resources": { - "version": "1.3.1", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/semantic-conventions": "1.3.1" - }, + "node_modules/@opentelemetry/redis-common": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.35.0.tgz", + "integrity": "sha512-VgA1RN3wsfx1J9rgVOHkMESV9mB/mrRBTr24KNHtBY4jl8goKe/lmV1Qjjs6EUP8F78E/YJhezQCx9EtBOVweg==", "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" + "node": ">=14" } }, - "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { - "version": "1.3.1", - "license": "Apache-2.0", + "node_modules/@opentelemetry/resources": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.12.0.tgz", + "integrity": "sha512-gunMKXG0hJrR0LXrqh7BVbziA/+iJBL3ZbXCXO64uY+SrExkwoyJkpiq9l5ismkGF/A20mDEV7tGwh+KyPw00Q==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.3.1" + "@opentelemetry/core": "1.12.0", + "@opentelemetry/semantic-conventions": "1.12.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" + "@opentelemetry/api": ">=1.0.0 <1.5.0" } }, "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.3.1", - "license": "Apache-2.0", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.12.0.tgz", + "integrity": "sha512-pfCOB3tNDlYVoWuz4D7Ji+Jmy9MHnATWHVpkERdCEiwUGEZ+4IvNPXUcPc37wJVmMpjGLeaWgPPrie0KIpWf1A==", "dependencies": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/resources": "1.3.1", - "@opentelemetry/semantic-conventions": "1.3.1" + "@opentelemetry/core": "1.12.0", + "@opentelemetry/resources": "1.12.0", + "@opentelemetry/semantic-conventions": "1.12.0" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { - "version": "1.3.1", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.3.1" - }, - "engines": { - "node": ">=8.12.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.2.0" + "@opentelemetry/api": ">=1.0.0 <1.5.0" } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.3.1", - "license": "Apache-2.0", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.12.0.tgz", + "integrity": "sha512-hO+bdeGOlJwqowUBoZF5LyP3ORUFOP1G0GRv8N45W/cztXbT2ZEXaAzfokRS9Xc9FWmYrDj32mF6SzH6wuoIyA==", "engines": { - "node": ">=8.12.0" + "node": ">=14" } }, "node_modules/@sideway/address": { "version": "4.1.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { - "version": "3.0.0", - "license": "BSD-3-Clause" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sindresorhus/is": { "version": "0.14.0", @@ -2179,63 +1518,51 @@ }, "node_modules/@types/accepts": { "version": "1.3.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/amqplib": { - "version": "0.5.17", - "license": "MIT", - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, "node_modules/@types/aws-lambda": { "version": "8.10.81", - "license": "MIT" - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.81.tgz", + "integrity": "sha512-C1rFKGVZ8KwqhwBOYlpoybTSRtxu2433ea6JaO3amc6ubEe08yQoFsPa9aU9YqvX7ppeZ25CnCtC4AH9mhtxsQ==" }, "node_modules/@types/body-parser": { "version": "1.19.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "node_modules/@types/bson": { - "version": "4.2.0", - "license": "MIT", - "dependencies": { - "bson": "*" - } - }, "node_modules/@types/bunyan": { "version": "1.8.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.7.tgz", + "integrity": "sha512-jaNt6xX5poSmXuDAkQrSqx2zkR66OrdRDuVnU8ldvn3k/Ci/7Sf5nooKspQWimDnw337Bzt/yirqSThTjvrHkg==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { "version": "3.4.35", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/content-disposition": { "version": "0.5.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", + "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==" }, "node_modules/@types/cookies": { "version": "0.7.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -2245,7 +1572,8 @@ }, "node_modules/@types/express": { "version": "4.17.13", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -2254,28 +1582,34 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.29", - "license": "MIT", + "version": "4.17.34", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", + "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", "dependencies": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "node_modules/@types/generic-pool": { - "version": "3.1.10", - "license": "MIT", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@types/generic-pool/-/generic-pool-3.8.1.tgz", + "integrity": "sha512-eaMAbZS0EfKvaP5PUZ/Cdf5uJBO2t6T3RdvQTKuMqUwGhNpCnPAsKWEMyV+mCeCQG3UiHrtgdzni8X6DmhxRaQ==", + "deprecated": "This is a stub types definition. generic-pool provides its own type definitions, so you do not need this installed.", "dependencies": { - "@types/node": "*" + "generic-pool": "*" } }, "node_modules/@types/hapi__catbox": { "version": "10.2.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/hapi__catbox/-/hapi__catbox-10.2.4.tgz", + "integrity": "sha512-A6ivRrXD5glmnJna1UAGw87QNZRp/vdFO9U4GS+WhOMWzHnw+oTGkMvg0g6y1930CbeheGOCm7A1qHsqH7AXqg==" }, "node_modules/@types/hapi__hapi": { "version": "20.0.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/hapi__hapi/-/hapi__hapi-20.0.9.tgz", + "integrity": "sha512-fGpKScknCKZityRXdZgpCLGbm41R1ppFgnKHerfZlqOOlCX/jI129S6ghgBqkqCE8m9A0CIu1h7Ch04lD9KOoA==", "dependencies": { "@hapi/boom": "^9.0.0", "@hapi/iron": "^6.0.0", @@ -2289,40 +1623,48 @@ }, "node_modules/@types/hapi__mimos": { "version": "4.1.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz", + "integrity": "sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ==", "dependencies": { "@types/mime-db": "*" } }, "node_modules/@types/hapi__shot": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/hapi__shot/-/hapi__shot-4.1.2.tgz", + "integrity": "sha512-8wWgLVP1TeGqgzZtCdt+F+k15DWQvLG1Yv6ZzPfb3D5WIo5/S+GGKtJBVo2uNEcqabP5Ifc71QnJTDnTmw1axA==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-assert": { "version": "1.5.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" }, "node_modules/@types/http-errors": { - "version": "1.8.2", - "license": "MIT" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==" }, - "node_modules/@types/ioredis": { - "version": "4.26.6", - "license": "MIT", + "node_modules/@types/ioredis4": { + "name": "@types/ioredis", + "version": "4.28.10", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz", + "integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/keygrip": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" }, "node_modules/@types/koa": { - "version": "2.13.4", - "license": "MIT", + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.6.tgz", + "integrity": "sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==", "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -2336,44 +1678,42 @@ }, "node_modules/@types/koa__router": { "version": "8.0.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-8.0.7.tgz", + "integrity": "sha512-OB3Ax75nmTP+WR9AgdzA42DI7YmBtiNKN2g1Wxl+d5Dyek9SWt740t+ukwXSmv/jMBCUPyV3YEI93vZHgdP7UQ==", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/koa-compose": { "version": "3.2.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/memcached": { "version": "2.2.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.7.tgz", + "integrity": "sha512-ImJbz1i8pl+OnyhYdIDnHe8jAuM8TOwM/7VsciqhYX3IL0jPPUToAtVxklfcWFGYckahEYZxhd9FS0z3MM1dpA==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/mime": { "version": "1.3.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "node_modules/@types/mime-db": { "version": "1.43.1", - "license": "MIT" - }, - "node_modules/@types/mongodb": { - "version": "3.6.20", - "license": "MIT", - "dependencies": { - "@types/bson": "*", - "@types/node": "*" - } + "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.1.tgz", + "integrity": "sha512-kGZJY+R+WnR5Rk+RPHUMERtb2qBRViIHCBdtUrY+NmwuGb8pQdfTqQiCKPrxpdoycl8KWm2DLdkpoSdt479XoQ==" }, "node_modules/@types/mysql": { "version": "2.15.19", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.19.tgz", + "integrity": "sha512-wSRg2QZv14CWcZXkgdvHbbV2ACufNy5EgI8mBBxnJIptchv7DBy/h53VMa2jDhyo0C9MO4iowE6z9vF8Ja1DkQ==", "dependencies": { "@types/node": "*" } @@ -2384,7 +1724,8 @@ }, "node_modules/@types/pg": { "version": "8.6.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", + "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -2393,39 +1734,45 @@ }, "node_modules/@types/pg-pool": { "version": "2.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.3.tgz", + "integrity": "sha512-fwK5WtG42Yb5RxAwxm3Cc2dJ39FlgcaNiXKvtTLAwtCn642X7dgel+w1+cLWwpSOFImR3YjsZtbkfjxbHtFAeg==", "dependencies": { "@types/pg": "*" } }, "node_modules/@types/qs": { "version": "6.9.7", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "node_modules/@types/range-parser": { "version": "1.2.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, - "node_modules/@types/redis": { - "version": "2.8.31", - "license": "MIT", + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/restify": { - "version": "4.3.8", - "license": "MIT", - "dependencies": { - "@types/bunyan": "*", + "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-static": { - "version": "1.13.10", - "license": "MIT", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/tedious": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.9.tgz", + "integrity": "sha512-ipwFvfy9b2m0gjHsIX0D6NAAwGCKokzf5zJqUZHUGt+7uWVlBIy6n2eyMgiKQ8ChLFVxic/zwQUhjLYNzbHDRA==", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -2439,10 +1786,6 @@ "dev": true, "license": "ISC" }, - "node_modules/abstract-logging": { - "version": "2.0.1", - "license": "MIT" - }, "node_modules/accepts": { "version": "1.3.8", "license": "MIT", @@ -2477,6 +1820,7 @@ }, "node_modules/ajv": { "version": "6.12.6", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -2544,10 +1888,6 @@ "node": ">= 8" } }, - "node_modules/archy": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/argparse": { "version": "2.0.1", "dev": true, @@ -2561,42 +1901,6 @@ "version": "1.5.2", "license": "MIT" }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/avvio": { - "version": "7.2.5", - "license": "MIT", - "dependencies": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1", - "queue-microtask": "^1.1.2" - } - }, - "node_modules/avvio/node_modules/debug": { - "version": "4.3.4", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/avvio/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, "node_modules/balanced-match": { "version": "1.0.2", "dev": true, @@ -2608,24 +1912,6 @@ "node": ">= 0.6.0" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/binary-extensions": { "version": "2.2.0", "dev": true, @@ -2704,38 +1990,6 @@ "dev": true, "license": "ISC" }, - "node_modules/bson": { - "version": "4.6.4", - "license": "Apache-2.0", - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/bufrw": { "version": "1.3.0", "dependencies": { @@ -3101,13 +2355,6 @@ "dev": true, "license": "MIT" }, - "node_modules/deepmerge": { - "version": "4.2.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/defer-to-connect": { "version": "1.1.3", "dev": true, @@ -3214,16 +2461,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/duplexify": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "license": "MIT" @@ -3241,6 +2478,7 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", + "dev": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -3681,12 +2919,9 @@ "node": ">= 0.10.0" } }, - "node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", + "dev": true, "license": "MIT" }, "node_modules/fast-diff": { @@ -3696,101 +2931,17 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "dev": true, "license": "MIT" }, - "node_modules/fast-json-stringify": { - "version": "2.7.13", - "license": "MIT", - "dependencies": { - "ajv": "^6.11.0", - "deepmerge": "^4.2.2", - "rfdc": "^1.2.0", - "string-similarity": "^4.0.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/fast-levenshtein": { "version": "2.0.6", "dev": true, "license": "MIT" }, - "node_modules/fast-redact": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "license": "MIT" - }, - "node_modules/fastify": { - "version": "3.29.0", - "license": "MIT", - "dependencies": { - "@fastify/ajv-compiler": "^1.0.0", - "@fastify/error": "^2.0.0", - "abstract-logging": "^2.0.0", - "avvio": "^7.1.2", - "fast-json-stringify": "^2.5.2", - "find-my-way": "^4.5.0", - "flatstr": "^1.0.12", - "light-my-request": "^4.2.0", - "pino": "^6.13.0", - "process-warning": "^1.0.0", - "proxy-addr": "^2.0.7", - "rfdc": "^1.1.4", - "secure-json-parse": "^2.0.0", - "semver": "^7.3.2", - "tiny-lru": "^8.0.1" - } - }, - "node_modules/fastify/node_modules/pino": { - "version": "6.14.0", - "license": "MIT", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/fastify/node_modules/pino-std-serializers": { - "version": "3.2.0", - "license": "MIT" - }, - "node_modules/fastify/node_modules/semver": { - "version": "7.3.7", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fastify/node_modules/sonic-boom": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, "node_modules/fastq": { "version": "1.13.0", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -3834,19 +2985,6 @@ "node": ">= 0.8" } }, - "node_modules/find-my-way": { - "version": "4.5.1", - "license": "MIT", - "dependencies": { - "fast-decode-uri-component": "^1.0.1", - "fast-deep-equal": "^3.1.3", - "safe-regex2": "^2.0.0", - "semver-store": "^0.3.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3882,10 +3020,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/flatstr": { - "version": "1.0.12", - "license": "MIT" - }, "node_modules/flatted": { "version": "3.2.5", "dev": true, @@ -3929,6 +3063,14 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "engines": { + "node": ">= 4" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "license": "ISC", @@ -4038,13 +3180,6 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "node_modules/graphql": { - "version": "15.8.0", - "license": "MIT", - "engines": { - "node": ">= 10.x" - } - }, "node_modules/growl": { "version": "1.10.5", "dev": true, @@ -4167,24 +3302,6 @@ "node": ">=0.10.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/ignore": { "version": "5.2.0", "dev": true, @@ -4415,13 +3532,14 @@ } }, "node_modules/joi": { - "version": "17.6.0", - "license": "BSD-3-Clause", + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, @@ -4453,6 +3571,7 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", + "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -4502,41 +3621,6 @@ "node": ">= 0.8.0" } }, - "node_modules/light-my-request": { - "version": "4.10.1", - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.1.0", - "cookie": "^0.5.0", - "process-warning": "^1.0.0", - "set-cookie-parser": "^2.4.1" - } - }, - "node_modules/light-my-request/node_modules/ajv": { - "version": "8.11.0", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/light-my-request/node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/light-my-request/node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/linkedom": { "version": "0.14.17", "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.14.17.tgz", @@ -4812,7 +3896,8 @@ }, "node_modules/module-details-from-path": { "version": "1.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" }, "node_modules/ms": { "version": "2.0.0", @@ -4861,24 +3946,6 @@ "node": ">= 0.6" } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/node-int64": { "version": "0.4.0", "license": "MIT" @@ -5004,10 +4071,6 @@ "core-js": "^3.6.5" } }, - "node_modules/on-exit-leak-free": { - "version": "0.2.0", - "license": "MIT" - }, "node_modules/on-finished": { "version": "2.3.0", "license": "MIT", @@ -5020,11 +4083,91 @@ }, "node_modules/once": { "version": "1.4.0", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" } }, + "node_modules/opentelemetry-instrumentation-fetch-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/opentelemetry-instrumentation-fetch-node/-/opentelemetry-instrumentation-fetch-node-1.0.0.tgz", + "integrity": "sha512-BebZwqHmXKg9FP1xkLcFmOOKQvaY+8NFYNfrF7tGDlHQmL9xp8yQs/Se6+0yOZzStUk82YgEEhCwgVydhsu9iQ==", + "dependencies": { + "@opentelemetry/api": "^1.2.0", + "@opentelemetry/api-metrics": "^0.33.0", + "@opentelemetry/instrumentation": "^0.33.0", + "@opentelemetry/semantic-conventions": "^1.7.0" + }, + "engines": { + "node": ">18.0.0" + } + }, + "node_modules/opentelemetry-instrumentation-fetch-node/node_modules/@opentelemetry/instrumentation": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.33.0.tgz", + "integrity": "sha512-8joPjKJ6TznNt04JbnzZG+m1j/4wm1OIrX7DEw/V5lyZ9/2fahIqG72jeZ26VKOZnLOpVzUUnU/dweURqBzT3Q==", + "dependencies": { + "@opentelemetry/api-metrics": "0.33.0", + "require-in-the-middle": "^5.0.3", + "semver": "^7.3.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/opentelemetry-instrumentation-fetch-node/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/opentelemetry-instrumentation-fetch-node/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/opentelemetry-instrumentation-fetch-node/node_modules/require-in-the-middle": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", + "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", + "dependencies": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/opentelemetry-instrumentation-fetch-node/node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/opentracing": { "version": "0.14.7", "license": "Apache-2.0", @@ -5151,18 +4294,21 @@ }, "node_modules/pg-int8": { "version": "1.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", "engines": { "node": ">=4.0.0" } }, "node_modules/pg-protocol": { - "version": "1.5.0", - "license": "MIT" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" }, "node_modules/pg-types": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -5191,38 +4337,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pino": { - "version": "7.10.0", - "license": "MIT", - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.0.0", - "on-exit-leak-free": "^0.2.0", - "pino-abstract-transport": "v0.5.0", - "pino-std-serializers": "^4.0.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.1.0", - "safe-stable-stringify": "^2.1.0", - "sonic-boom": "^2.2.1", - "thread-stream": "^0.15.1" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-abstract-transport": { - "version": "0.5.0", - "license": "MIT", - "dependencies": { - "duplexify": "^4.1.2", - "split2": "^4.0.0" - } - }, - "node_modules/pino-std-serializers": { - "version": "4.0.0", - "license": "MIT" - }, "node_modules/postcss": { "version": "8.4.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", @@ -5253,28 +4367,32 @@ }, "node_modules/postgres-array": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", "engines": { "node": ">=4" } }, "node_modules/postgres-bytea": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", "engines": { "node": ">=0.10.0" } }, "node_modules/postgres-date": { "version": "1.0.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", "engines": { "node": ">=0.10.0" } }, "node_modules/postgres-interval": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "dependencies": { "xtend": "^4.0.0" }, @@ -5330,10 +4448,6 @@ "node": ">= 0.6.0" } }, - "node_modules/process-warning": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/proxy-addr": { "version": "2.0.7", "license": "MIT", @@ -5361,6 +4475,7 @@ }, "node_modules/punycode": { "version": "2.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -5389,6 +4504,7 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "dev": true, "funding": [ { "type": "github", @@ -5405,10 +4521,6 @@ ], "license": "MIT" }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "license": "MIT" - }, "node_modules/randombytes": { "version": "2.1.0", "dev": true, @@ -5464,18 +4576,6 @@ "node": ">=0.10.0" } }, - "node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "3.6.0", "dev": true, @@ -5487,13 +4587,6 @@ "node": ">=8.10.0" } }, - "node_modules/real-require": { - "version": "0.1.0", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -5535,25 +4628,23 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-in-the-middle": { - "version": "5.1.0", - "license": "MIT", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz", + "integrity": "sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw==", "dependencies": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", - "resolve": "^1.12.0" + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=8.6.0" } }, "node_modules/require-in-the-middle/node_modules/debug": { "version": "4.3.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -5568,7 +4659,8 @@ }, "node_modules/require-in-the-middle/node_modules/ms": { "version": "2.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/resolve": { "version": "1.22.2", @@ -5603,25 +4695,15 @@ "lowercase-keys": "^1.0.0" } }, - "node_modules/ret": { - "version": "0.2.2", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/reusify": { "version": "1.0.4", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rfdc": { - "version": "1.3.0", - "license": "MIT" - }, "node_modules/rimraf": { "version": "3.0.2", "dev": true, @@ -5693,28 +4775,10 @@ ], "license": "MIT" }, - "node_modules/safe-regex2": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ret": "~0.2.0" - } - }, - "node_modules/safe-stable-stringify": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "license": "MIT" }, - "node_modules/secure-json-parse": { - "version": "2.4.0", - "license": "BSD-3-Clause" - }, "node_modules/secure-keys": { "version": "1.0.0", "license": "MIT" @@ -5738,10 +4802,6 @@ "node": ">=8" } }, - "node_modules/semver-store": { - "version": "0.3.0", - "license": "MIT" - }, "node_modules/send": { "version": "0.17.2", "license": "MIT", @@ -5789,10 +4849,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-cookie-parser": { - "version": "2.5.0", - "license": "MIT" - }, "node_modules/setprototypeof": { "version": "1.2.0", "license": "ISC" @@ -5825,13 +4881,6 @@ "dev": true, "license": "ISC" }, - "node_modules/sonic-boom": { - "version": "2.8.0", - "license": "MIT", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -5841,13 +4890,6 @@ "node": ">=0.10.0" } }, - "node_modules/split2": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, "node_modules/statuses": { "version": "1.5.0", "license": "MIT", @@ -5855,21 +4897,6 @@ "node": ">= 0.6" } }, - "node_modules/stream-shift": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-similarity": { - "version": "4.0.4", - "license": "ISC" - }, "node_modules/string-template": { "version": "0.2.1" }, @@ -5933,13 +4960,6 @@ "dev": true, "license": "MIT" }, - "node_modules/thread-stream": { - "version": "0.15.2", - "license": "MIT", - "dependencies": { - "real-require": "^0.1.0" - } - }, "node_modules/thriftrw": { "version": "3.12.0", "dependencies": { @@ -5954,13 +4974,6 @@ "node": ">= 0.10.x" } }, - "node_modules/tiny-lru": { - "version": "8.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "dev": true, @@ -5998,10 +5011,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, "node_modules/type-check": { "version": "0.4.0", "dev": true, @@ -6113,6 +5122,7 @@ }, "node_modules/uri-js": { "version": "4.4.1", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -6133,10 +5143,6 @@ "node": ">=4" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, "node_modules/utils-merge": { "version": "1.0.1", "license": "MIT", @@ -6206,18 +5212,6 @@ } } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "dev": true, @@ -6273,6 +5267,7 @@ }, "node_modules/wrappy": { "version": "1.0.2", + "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { @@ -6576,41 +5571,44 @@ "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==", "dev": true }, - "@fastify/ajv-compiler": { - "version": "1.1.0", - "requires": { - "ajv": "^6.12.6" - } - }, - "@fastify/error": { - "version": "2.0.0" - }, "@hapi/b64": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", + "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", "requires": { "@hapi/hoek": "9.x.x" } }, "@hapi/boom": { "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", "requires": { "@hapi/hoek": "9.x.x" } }, "@hapi/bourne": { - "version": "2.1.0" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" }, "@hapi/cryptiles": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", + "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", "requires": { "@hapi/boom": "9.x.x" } }, "@hapi/hoek": { - "version": "9.3.0" + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "@hapi/iron": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", + "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", "requires": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", @@ -6621,6 +5619,8 @@ }, "@hapi/podium": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", + "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", "requires": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", @@ -6628,16 +5628,22 @@ } }, "@hapi/teamwork": { - "version": "5.1.1" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.1.tgz", + "integrity": "sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==" }, "@hapi/topo": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@hapi/validate": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", + "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" @@ -6714,113 +5720,97 @@ } }, "@opentelemetry/api": { - "version": "1.1.0" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==" }, "@opentelemetry/api-metrics": { - "version": "0.29.2", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.33.0.tgz", + "integrity": "sha512-78evfPRRRnJA6uZ3xuBuS3VZlXTO/LRs+Ff1iv3O/7DgibCtq9k27T6Zlj8yRdJDFmcjcbQrvC0/CpDpWHaZYA==", "requires": { "@opentelemetry/api": "^1.0.0" } }, "@opentelemetry/auto-instrumentations-node": { - "version": "0.31.0", + "version": "0.36.6", + "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.36.6.tgz", + "integrity": "sha512-L2i7SfOFKCj472D00qNFQhacua8WodyAy9EJzd4K0Wa1tQDcO+JPcYQtIVy0A2bBmuuFZ+kUKEEFQKtZxolJTw==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/instrumentation-amqplib": "^0.30.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.32.0", - "@opentelemetry/instrumentation-aws-sdk": "^0.8.0", - "@opentelemetry/instrumentation-bunyan": "^0.29.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.29.0", - "@opentelemetry/instrumentation-connect": "^0.29.0", - "@opentelemetry/instrumentation-dns": "^0.29.0", - "@opentelemetry/instrumentation-express": "^0.30.0", - "@opentelemetry/instrumentation-fastify": "^0.28.0", - "@opentelemetry/instrumentation-generic-pool": "^0.29.0", - "@opentelemetry/instrumentation-graphql": "^0.29.0", - "@opentelemetry/instrumentation-grpc": "^0.29.2", - "@opentelemetry/instrumentation-hapi": "^0.29.0", - "@opentelemetry/instrumentation-http": "^0.29.2", - "@opentelemetry/instrumentation-ioredis": "^0.30.0", - "@opentelemetry/instrumentation-knex": "^0.29.0", - "@opentelemetry/instrumentation-koa": "^0.30.0", - "@opentelemetry/instrumentation-memcached": "^0.29.0", - "@opentelemetry/instrumentation-mongodb": "^0.31.0", - "@opentelemetry/instrumentation-mysql": "^0.30.0", - "@opentelemetry/instrumentation-mysql2": "^0.31.0", - "@opentelemetry/instrumentation-nestjs-core": "^0.30.0", - "@opentelemetry/instrumentation-net": "^0.29.0", - "@opentelemetry/instrumentation-pg": "^0.30.0", - "@opentelemetry/instrumentation-pino": "^0.30.0", - "@opentelemetry/instrumentation-redis": "^0.32.0", - "@opentelemetry/instrumentation-redis-4": "^0.31.0", - "@opentelemetry/instrumentation-restify": "^0.29.0", - "@opentelemetry/instrumentation-winston": "^0.29.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/instrumentation-amqplib": "^0.32.3", + "@opentelemetry/instrumentation-aws-lambda": "^0.35.1", + "@opentelemetry/instrumentation-aws-sdk": "^0.34.1", + "@opentelemetry/instrumentation-bunyan": "^0.31.2", + "@opentelemetry/instrumentation-cassandra-driver": "^0.32.2", + "@opentelemetry/instrumentation-connect": "^0.31.2", + "@opentelemetry/instrumentation-dataloader": "^0.4.1", + "@opentelemetry/instrumentation-dns": "^0.31.3", + "@opentelemetry/instrumentation-express": "^0.32.2", + "@opentelemetry/instrumentation-fastify": "^0.31.2", + "@opentelemetry/instrumentation-fs": "^0.7.2", + "@opentelemetry/instrumentation-generic-pool": "^0.31.2", + "@opentelemetry/instrumentation-graphql": "^0.34.1", + "@opentelemetry/instrumentation-grpc": "^0.38.0", + "@opentelemetry/instrumentation-hapi": "^0.31.2", + "@opentelemetry/instrumentation-http": "^0.38.0", + "@opentelemetry/instrumentation-ioredis": "^0.34.1", + "@opentelemetry/instrumentation-knex": "^0.31.2", + "@opentelemetry/instrumentation-koa": "^0.34.4", + "@opentelemetry/instrumentation-lru-memoizer": "^0.32.2", + "@opentelemetry/instrumentation-memcached": "^0.31.2", + "@opentelemetry/instrumentation-mongodb": "^0.34.2", + "@opentelemetry/instrumentation-mongoose": "^0.32.2", + "@opentelemetry/instrumentation-mysql": "^0.33.1", + "@opentelemetry/instrumentation-mysql2": "^0.33.2", + "@opentelemetry/instrumentation-nestjs-core": "^0.32.3", + "@opentelemetry/instrumentation-net": "^0.31.2", + "@opentelemetry/instrumentation-pg": "^0.35.1", + "@opentelemetry/instrumentation-pino": "^0.33.2", + "@opentelemetry/instrumentation-redis": "^0.34.5", + "@opentelemetry/instrumentation-redis-4": "^0.34.4", + "@opentelemetry/instrumentation-restify": "^0.32.2", + "@opentelemetry/instrumentation-router": "^0.32.2", + "@opentelemetry/instrumentation-socket.io": "^0.33.2", + "@opentelemetry/instrumentation-tedious": "^0.5.2", + "@opentelemetry/instrumentation-winston": "^0.31.2" } }, "@opentelemetry/context-async-hooks": { - "version": "1.4.0", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.12.0.tgz", + "integrity": "sha512-PmwAanPNWCyS9JYFzhzVzHgviLhc0UHjOwdth+hp3HgQQ9XZZNE635P8JhAUHZmbghW9/qQFafRWOS4VN9VVnQ==", "requires": {} }, "@opentelemetry/core": { - "version": "1.4.0", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.12.0.tgz", + "integrity": "sha512-4DWYNb3dLs2mSCGl65jY3aEgbvPWSHVQV/dmDWiYeWUrMakZQFcymqZOSUNZO0uDrEJoxMu8O5tZktX6UKFwag==", "requires": { - "@opentelemetry/semantic-conventions": "1.4.0" - }, - "dependencies": { - "@opentelemetry/semantic-conventions": { - "version": "1.4.0" - } + "@opentelemetry/semantic-conventions": "1.12.0" } }, "@opentelemetry/exporter-jaeger": { - "version": "1.3.1", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.12.0.tgz", + "integrity": "sha512-MGWslvok6tlNCHexHGnfXrSyobBqUDh4YOLENt2MeQ/F974SyVG4e73TD/CDM+227/rRM587hJ8dQBzvwUac/g==", "requires": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/sdk-trace-base": "1.3.1", - "@opentelemetry/semantic-conventions": "1.3.1", + "@opentelemetry/core": "1.12.0", + "@opentelemetry/sdk-trace-base": "1.12.0", + "@opentelemetry/semantic-conventions": "1.12.0", "jaeger-client": "^3.15.0" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.3.1", - "requires": { - "@opentelemetry/semantic-conventions": "1.3.1" - } - } } }, "@opentelemetry/instrumentation": { - "version": "0.30.0", + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.38.0.tgz", + "integrity": "sha512-wr1WkIbzHGV+oz6SCme88D2c+zNG23COkCjcida8b3jIzX2lJafOpEHPDcbBF38F8ChkRSj/tVnx1wnYAXZvbA==", "requires": { - "@opentelemetry/api-metrics": "0.30.0", - "require-in-the-middle": "^5.0.3", + "require-in-the-middle": "^6.0.0", "semver": "^7.3.2", "shimmer": "^1.2.1" }, "dependencies": { - "@opentelemetry/api-metrics": { - "version": "0.30.0", - "requires": { - "@opentelemetry/api": "^1.0.0" - } - }, "semver": { "version": "7.3.7", "requires": { @@ -6830,177 +5820,89 @@ } }, "@opentelemetry/instrumentation-amqplib": { - "version": "0.30.0", + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.32.3.tgz", + "integrity": "sha512-DCyyaY856bleplmt5Z+Fnw0xhGFRLrSunAghWC+g2xC15cAUWpdR2GKc5dYqYZrDHOEjvGjpA/LRObGLMmeYAg==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/amqplib": "^0.5.17" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" } }, "@opentelemetry/instrumentation-aws-lambda": { - "version": "0.32.0", + "version": "0.35.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.35.1.tgz", + "integrity": "sha512-IeNX7l2KHnSbGXMRwHp9qHLQnIDrPvcfjONK5/i+euSJMDevsREM6Q+nQthj03HNSWrTfWjd5I/AXUGMssai8A==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/propagator-aws-xray": "^1.1.0", - "@opentelemetry/resources": "^1.0.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/propagator-aws-xray": "^1.2.0", + "@opentelemetry/resources": "^1.8.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/aws-lambda": "8.10.81" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-aws-sdk": { - "version": "0.8.0", + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.34.1.tgz", + "integrity": "sha512-pyU8JYJ04WyYjlz8dEcOAfdri73mnXOcAUsmk0y/uYoFZi3zATiqf0rmXIrRVOcPQhEuifUMAy+ixsghz2uu/A==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/propagation-utils": "^0.28.0", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/propagation-utils": "^0.29.3", "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-bunyan": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.31.2.tgz", + "integrity": "sha512-De35vwLh9MJRs9nMRP+o25AIr3EGteonjtW8hcHxt79gb+6b4sWXZyihLJZtsE7NY7sW1H6FPB5ZAminqVTMCQ==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@types/bunyan": "1.8.7" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.29.0", + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.32.2.tgz", + "integrity": "sha512-NAojU/C9bETR+tK4QJqca+lJzT5cQ/cCDlpTs+9WJP6ebeZ5euD2S3Zuk1DVLcG2CP8bUKFdsAWKCZxxbvqUNA==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-connect": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.31.2.tgz", + "integrity": "sha512-gSxNxijf0OZXAKzK/iIitYs8BS7dd0Pavw4JuZCfdPWSVMwv9zuwngo72A8pvQugyva5fYhDjN3RsJcETnVt7A==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/connect": "3.4.35" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + } + }, + "@opentelemetry/instrumentation-dataloader": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.4.1.tgz", + "integrity": "sha512-YvGn30D+gaO8jkbHBHOY5N7O60akjoVx8ChqbVskbGHLekCVXer4S2C/wLCx32HFzS0JVKCGNioYzrjevu873Q==", + "requires": { + "@opentelemetry/instrumentation": "^0.38.0" } }, "@opentelemetry/instrumentation-dns": { - "version": "0.29.0", + "version": "0.31.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.31.3.tgz", + "integrity": "sha512-/Sgv5wju8CE6aPsKluU09/OhhDGhLVvSs0Ope1zk2IThJzOecep48IX/yRPQ3b3fBl62ebo3Nlwo2mJFenzPBg==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "semver": "^7.3.2" }, "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, "semver": { - "version": "7.3.7", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "requires": { "lru-cache": "^6.0.0" } @@ -7008,183 +5910,89 @@ } }, "@opentelemetry/instrumentation-express": { - "version": "0.30.0", + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.32.2.tgz", + "integrity": "sha512-mK+Xt8QWmmjjeJEQb4DfFZzCN5dWA+7za2Y5UCBKxbF1J6uUJBMDIZ1YBLW3yaEfilfDDm5CRWEwYkPMr8+aWQ==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/express": "4.17.13" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-fastify": { - "version": "0.28.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.31.2.tgz", + "integrity": "sha512-j0vEGOuDUf5nXQnEm8v0Ah6nt+CoKO5a4qnsh4ksCETBLtvU7FMi3THOjxD3WQaa5cBXHstOlU1ISt7ybEltqQ==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "fastify": "^3.19.2" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + } + }, + "@opentelemetry/instrumentation-fs": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.7.2.tgz", + "integrity": "sha512-Fw0vfHEV2B36quUpTIVfUVITOb88b9bTyrhpC3nkC6qT6ibaIBq380O8ahc5CGvqO9OO128KSeiLbeNQdFt2Nw==", + "requires": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" } }, "@opentelemetry/instrumentation-generic-pool": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.31.2.tgz", + "integrity": "sha512-IIBDtIFdHybLnEjbqVGb22c0R5heUNHruq36AHYtmynjMrH1vpQMN9PM6zvak0QDAxg5siuXkc3HVuAYl24Jcw==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/generic-pool": "^3.1.9" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-graphql": { - "version": "0.29.0", + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.34.1.tgz", + "integrity": "sha512-6dz6fz0qDObBxMDYFX8lmSzJzRWOLhWHV9+x3jbV/I1rftNCcVqRjxjUIkmv29WcH/kH1AzQFZEUqciMeBOEBg==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", - "graphql": "^15.5.1" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/instrumentation": "^0.38.0" } }, "@opentelemetry/instrumentation-grpc": { - "version": "0.29.2", + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.38.0.tgz", + "integrity": "sha512-9mmCqzt+bZ6ejqvk8myzgaMInLUrablWbDMGQbyio9k4z9TDRnMNdCsbJrDWEJll3kcqDEUECBiH/t+BqnMmXQ==", "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "@opentelemetry/instrumentation": "0.29.2", - "@opentelemetry/semantic-conventions": "1.3.1" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/instrumentation": "0.38.0", + "@opentelemetry/semantic-conventions": "1.12.0" } }, "@opentelemetry/instrumentation-hapi": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.31.2.tgz", + "integrity": "sha512-Hn9eoqC6SQ8YlCEiYbtnQ/b3QNApiP3HOETAM8B4B3DUd1+XWBqze62+KAwSqgUIL5d9Q3029VRp5pMJ2r+jYw==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/hapi__hapi": "20.0.9" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-http": { - "version": "0.29.2", + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.38.0.tgz", + "integrity": "sha512-9kpRVnG6oVvt3/WYCzrHwW+s69BW4ap38NWFJLFB+Mcq1wmAcNSoBYUM7j2AfJB4w4y3A6r6mYgnusnxdmPYYg==", "requires": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/instrumentation": "0.29.2", - "@opentelemetry/semantic-conventions": "1.3.1", + "@opentelemetry/core": "1.12.0", + "@opentelemetry/instrumentation": "0.38.0", + "@opentelemetry/semantic-conventions": "1.12.0", "semver": "^7.3.5" }, "dependencies": { - "@opentelemetry/core": { - "version": "1.3.1", - "requires": { - "@opentelemetry/semantic-conventions": "1.3.1" - } - }, - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, "semver": { - "version": "7.3.7", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "requires": { "lru-cache": "^6.0.0" } @@ -7192,436 +6000,263 @@ } }, "@opentelemetry/instrumentation-ioredis": { - "version": "0.30.0", + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.34.1.tgz", + "integrity": "sha512-dY1EuQlhOuWu6Lb8DsAqyMzoVAo9fiXwUFLesjKX3m3H2MgXuVCwMU43mgLadYTOxrLh6nPAauCeedu9v9u8vw==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/redis-common": "^0.35.0", "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/ioredis": "4.26.6" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@types/ioredis4": "npm:@types/ioredis@^4.28.10" } }, "@opentelemetry/instrumentation-knex": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.31.2.tgz", + "integrity": "sha512-0h67HjafjGUXEAVvVTCJQ6Fh6Gf6tbTfnAwd2/D+Fo1yK4Kf2ApZ6btDMscir7OZ/jXoDLLDUgmTOrWekROXHw==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-koa": { - "version": "0.30.0", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.34.4.tgz", + "integrity": "sha512-vdjlJfs7F+9K9k9OPYVQk7r1u+AL74h/UFS8epXgMuyMBxYqVhArV4k0Y72L7ItvW+4WlOAr4xoby+457oSQOA==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/koa": "2.13.4", + "@types/koa": "2.13.6", "@types/koa__router": "8.0.7" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + } + }, + "@opentelemetry/instrumentation-lru-memoizer": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.32.2.tgz", + "integrity": "sha512-wtLld4CnPD0Dt5hSHoFO9sm7C8J4Kg1NEOzcPwpUiasHPibFs51A0ebGm6N4E2rtYJdEOaQ04p7rUOcUiDQ8rw==", + "requires": { + "@opentelemetry/instrumentation": "^0.38.0" } }, "@opentelemetry/instrumentation-memcached": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.31.2.tgz", + "integrity": "sha512-ZROkZJMP3/8qo4Vm/31db1xqabi7Uv/oKe3qXJDnjL0jsOIB5Edo+0xQTii5P4f0A4nQIuhISVnI4L3aQhkBGQ==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/memcached": "^2.2.6" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-mongodb": { - "version": "0.31.0", + "version": "0.34.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.34.2.tgz", + "integrity": "sha512-7Ie0zMykMMRX4hkMOmEgD+WOTHxDJsXQi5RtWgYnEPW4Sp0Mr436XvmWgYxm4zNwrG3iFHEyRf14Y5DjbdCxKQ==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/mongodb": "3.6.20" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + } + }, + "@opentelemetry/instrumentation-mongoose": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.32.2.tgz", + "integrity": "sha512-lmIm5ULUgki7XrDL7Nn1g3ESx1Dn9b1gR4ZTCtsx4xcLO3NzeDEpnMf8kRa4/LXJotDtwm+awsY8V/TgEjgSiQ==", + "requires": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" } }, "@opentelemetry/instrumentation-mysql": { - "version": "0.30.0", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.33.1.tgz", + "integrity": "sha512-vjOI6FvzTppsqxdZoabXNpriOo2BQdX1vMH5oZBDLEReO3+ArWiXDUQQe+7V0+DPkdXqK6n0lTq7S5rgdNmYeg==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/mysql": "2.15.19" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-mysql2": { - "version": "0.31.0", + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.33.2.tgz", + "integrity": "sha512-9QZkg+00WoXK8pl5ioV+ZdlIlt+Te+V4uy/DP9cnCMBEPg3E8FmXAugr/zlRmivPUKP0JOZSD22vBdEUZ1j9lg==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-nestjs-core": { - "version": "0.30.0", + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.32.3.tgz", + "integrity": "sha512-6rfI0+k/UJeabaJM172kuabTTKcthz5P3WPp0PXETvZ7uQwauZlxyrnIwoU6iE3ugTsFl1ep4VZuPwNAEIPKnQ==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-net": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.31.2.tgz", + "integrity": "sha512-v3IDyBlUonogKLXr/EQYY2HqO8rAR/ZUw+wK9ij+G4nhS2eKXEZx5qdGK911wEe5I4Fb38lYkGTUN1DmG6I75A==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-pg": { - "version": "0.30.0", + "version": "0.35.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.35.1.tgz", + "integrity": "sha512-YIundM45xHY/gHJRD3j5/AlrY052XfR38+en1l8C1YFdLc4CHOoapQyItzpEWXvzpNhhiIYfvCa/3czKCKscCQ==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/pg": "8.6.1", "@types/pg-pool": "2.0.3" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-pino": { - "version": "0.30.0", + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.33.2.tgz", + "integrity": "sha512-eOhdOlU6WvTRGKSMxEmyfMuTVfHmuk7p2QPJrrBptmJW6Y40oxGua+XlKNizTmXGrjcE+pZGFEzqz25queEBOA==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", - "pino": "7.10.0", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/instrumentation": "^0.38.0" } }, "@opentelemetry/instrumentation-redis": { - "version": "0.32.0", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.34.5.tgz", + "integrity": "sha512-gTpl604SyIhJmfHkJOgaI+enVPg/IjFBg40EbECh5/xZUlkmMzh+WXiARovWCwsSl5LMLDpoyj16EC1kVxnOWw==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/redis": "2.8.31" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/redis-common": "^0.35.0", + "@opentelemetry/semantic-conventions": "^1.0.0" } }, "@opentelemetry/instrumentation-redis-4": { - "version": "0.31.0", + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.34.4.tgz", + "integrity": "sha512-Cp6eR9qMPseVyHaNZjXn9Fk4912zVoL12CcPzM5jhu0ovZLJ6syqSlk3GzfpwG8x3NVjQ7eKINedJ//a/ucoFA==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/redis-common": "^0.35.0", "@opentelemetry/semantic-conventions": "^1.0.0" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@opentelemetry/instrumentation-restify": { - "version": "0.29.0", + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.32.2.tgz", + "integrity": "sha512-Mbz6DTApAUlYf1li172WOaCRKbj9lnc46RdaDCdI3t/g+dEzCrPMpEEme76pNxQGKPlBQnyMXY2cbtFtdCKiEg==", "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.29.2", + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + } + }, + "@opentelemetry/instrumentation-router": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.32.2.tgz", + "integrity": "sha512-5BwkaZe5z/S+vq/HxVxrqngxt9Ccp0+7KhUm6kbv6esU4WUsuaYrxXtyyu53woeaHiJQHvNsEtUWdG/SsD+1hw==", + "requires": { + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + } + }, + "@opentelemetry/instrumentation-socket.io": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.33.2.tgz", + "integrity": "sha512-R3O4SQwN+X+KUS1p6kPa57gfY7FHKCYOygd/oRGtqqXx8pxa5F1j/gnbZ6fiDIpievpcjDaD5bEVDJCxAWs5Yg==", + "requires": { + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/semantic-conventions": "^1.0.0" + } + }, + "@opentelemetry/instrumentation-tedious": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.5.2.tgz", + "integrity": "sha512-6nxLun5dq1WZ0nwtM/wr5hlxVCk13DAALD6M4u5k9jlti+ZAn2exjVYBfKPxJNFf/Wd/XUUOeOM8efCwFtnocA==", + "requires": { + "@opentelemetry/instrumentation": "^0.38.0", "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/restify": "4.3.8" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@types/tedious": "^4.0.6" } }, "@opentelemetry/instrumentation-winston": { - "version": "0.29.0", + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.31.2.tgz", + "integrity": "sha512-bkCbSS6xXIVSJhcv5UNV86tjnOzyCv+CsFEEuDPPS3XYIUqPhgy653FweCOOGWTHe07m1gC73xXFvupK4v7CBw==", "requires": { - "@opentelemetry/instrumentation": "^0.29.2" - }, - "dependencies": { - "@opentelemetry/instrumentation": { - "version": "0.29.2", - "requires": { - "@opentelemetry/api-metrics": "0.29.2", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - } + "@opentelemetry/instrumentation": "^0.38.0" } }, "@opentelemetry/propagation-utils": { - "version": "0.28.0", + "version": "0.29.3", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.29.3.tgz", + "integrity": "sha512-s2UAULgJZu0sxJkJzMWu2Wc/3dTIe8HxPMr4yqj1h55VdKID5aqQuqPODI0G0sVis2q7ClfpHdDPJVFlPEbCdA==", "requires": {} }, "@opentelemetry/propagator-aws-xray": { - "version": "1.1.0", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.2.0.tgz", + "integrity": "sha512-KCNFXdv63c+dItes2pUPVd1QDPmfcx3AVwcgE28emSx6tPI71q11zpMTDAWKPU8J9GQAGXMDyGnRGhIgua40aw==", "requires": { "@opentelemetry/core": "^1.0.0" } }, "@opentelemetry/propagator-ot-trace": { - "version": "0.26.0", + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-ot-trace/-/propagator-ot-trace-0.26.2.tgz", + "integrity": "sha512-yABHr8QIjJBFPuRivzMtwunRrcv+ZVaaosvfTmfEx6ZQQ66d5C8ddZsEDVsr7fdLQO8/FZuwOItxYWjie69dzA==", "requires": {} }, + "@opentelemetry/redis-common": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.35.0.tgz", + "integrity": "sha512-VgA1RN3wsfx1J9rgVOHkMESV9mB/mrRBTr24KNHtBY4jl8goKe/lmV1Qjjs6EUP8F78E/YJhezQCx9EtBOVweg==" + }, "@opentelemetry/resources": { - "version": "1.3.1", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.12.0.tgz", + "integrity": "sha512-gunMKXG0hJrR0LXrqh7BVbziA/+iJBL3ZbXCXO64uY+SrExkwoyJkpiq9l5ismkGF/A20mDEV7tGwh+KyPw00Q==", "requires": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/semantic-conventions": "1.3.1" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.3.1", - "requires": { - "@opentelemetry/semantic-conventions": "1.3.1" - } - } + "@opentelemetry/core": "1.12.0", + "@opentelemetry/semantic-conventions": "1.12.0" } }, "@opentelemetry/sdk-trace-base": { - "version": "1.3.1", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.12.0.tgz", + "integrity": "sha512-pfCOB3tNDlYVoWuz4D7Ji+Jmy9MHnATWHVpkERdCEiwUGEZ+4IvNPXUcPc37wJVmMpjGLeaWgPPrie0KIpWf1A==", "requires": { - "@opentelemetry/core": "1.3.1", - "@opentelemetry/resources": "1.3.1", - "@opentelemetry/semantic-conventions": "1.3.1" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.3.1", - "requires": { - "@opentelemetry/semantic-conventions": "1.3.1" - } - } + "@opentelemetry/core": "1.12.0", + "@opentelemetry/resources": "1.12.0", + "@opentelemetry/semantic-conventions": "1.12.0" } }, "@opentelemetry/semantic-conventions": { - "version": "1.3.1" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.12.0.tgz", + "integrity": "sha512-hO+bdeGOlJwqowUBoZF5LyP3ORUFOP1G0GRv8N45W/cztXbT2ZEXaAzfokRS9Xc9FWmYrDj32mF6SzH6wuoIyA==" }, "@sideway/address": { "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@sideway/formula": { - "version": "3.0.0" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "@sideway/pinpoint": { - "version": "2.0.0" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { "version": "0.14.0", @@ -7636,53 +6271,51 @@ }, "@types/accepts": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "requires": { "@types/node": "*" } }, - "@types/amqplib": { - "version": "0.5.17", - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, "@types/aws-lambda": { - "version": "8.10.81" - }, - "@types/bluebird": { - "version": "3.5.36" + "version": "8.10.81", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.81.tgz", + "integrity": "sha512-C1rFKGVZ8KwqhwBOYlpoybTSRtxu2433ea6JaO3amc6ubEe08yQoFsPa9aU9YqvX7ppeZ25CnCtC4AH9mhtxsQ==" }, "@types/body-parser": { "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "requires": { "@types/connect": "*", "@types/node": "*" } }, - "@types/bson": { - "version": "4.2.0", - "requires": { - "bson": "*" - } - }, "@types/bunyan": { "version": "1.8.7", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.7.tgz", + "integrity": "sha512-jaNt6xX5poSmXuDAkQrSqx2zkR66OrdRDuVnU8ldvn3k/Ci/7Sf5nooKspQWimDnw337Bzt/yirqSThTjvrHkg==", "requires": { "@types/node": "*" } }, "@types/connect": { "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "requires": { "@types/node": "*" } }, "@types/content-disposition": { - "version": "0.5.5" + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", + "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==" }, "@types/cookies": { "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "requires": { "@types/connect": "*", "@types/express": "*", @@ -7692,6 +6325,8 @@ }, "@types/express": { "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -7700,24 +6335,33 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.29", + "version": "4.17.34", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", + "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", "requires": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "@types/generic-pool": { - "version": "3.1.10", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@types/generic-pool/-/generic-pool-3.8.1.tgz", + "integrity": "sha512-eaMAbZS0EfKvaP5PUZ/Cdf5uJBO2t6T3RdvQTKuMqUwGhNpCnPAsKWEMyV+mCeCQG3UiHrtgdzni8X6DmhxRaQ==", "requires": { - "@types/node": "*" + "generic-pool": "*" } }, "@types/hapi__catbox": { - "version": "10.2.4" + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@types/hapi__catbox/-/hapi__catbox-10.2.4.tgz", + "integrity": "sha512-A6ivRrXD5glmnJna1UAGw87QNZRp/vdFO9U4GS+WhOMWzHnw+oTGkMvg0g6y1930CbeheGOCm7A1qHsqH7AXqg==" }, "@types/hapi__hapi": { "version": "20.0.9", + "resolved": "https://registry.npmjs.org/@types/hapi__hapi/-/hapi__hapi-20.0.9.tgz", + "integrity": "sha512-fGpKScknCKZityRXdZgpCLGbm41R1ppFgnKHerfZlqOOlCX/jI129S6ghgBqkqCE8m9A0CIu1h7Ch04lD9KOoA==", "requires": { "@hapi/boom": "^9.0.0", "@hapi/iron": "^6.0.0", @@ -7731,33 +6375,47 @@ }, "@types/hapi__mimos": { "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz", + "integrity": "sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ==", "requires": { "@types/mime-db": "*" } }, "@types/hapi__shot": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/hapi__shot/-/hapi__shot-4.1.2.tgz", + "integrity": "sha512-8wWgLVP1TeGqgzZtCdt+F+k15DWQvLG1Yv6ZzPfb3D5WIo5/S+GGKtJBVo2uNEcqabP5Ifc71QnJTDnTmw1axA==", "requires": { "@types/node": "*" } }, "@types/http-assert": { - "version": "1.5.3" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" }, "@types/http-errors": { - "version": "1.8.2" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==" }, - "@types/ioredis": { - "version": "4.26.6", + "@types/ioredis4": { + "version": "npm:@types/ioredis@4.28.10", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz", + "integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==", "requires": { "@types/node": "*" } }, "@types/keygrip": { - "version": "1.0.2" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" }, "@types/koa": { - "version": "2.13.4", + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.6.tgz", + "integrity": "sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==", "requires": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -7771,37 +6429,42 @@ }, "@types/koa__router": { "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-8.0.7.tgz", + "integrity": "sha512-OB3Ax75nmTP+WR9AgdzA42DI7YmBtiNKN2g1Wxl+d5Dyek9SWt740t+ukwXSmv/jMBCUPyV3YEI93vZHgdP7UQ==", "requires": { "@types/koa": "*" } }, "@types/koa-compose": { "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", "requires": { "@types/koa": "*" } }, "@types/memcached": { "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.7.tgz", + "integrity": "sha512-ImJbz1i8pl+OnyhYdIDnHe8jAuM8TOwM/7VsciqhYX3IL0jPPUToAtVxklfcWFGYckahEYZxhd9FS0z3MM1dpA==", "requires": { "@types/node": "*" } }, "@types/mime": { - "version": "1.3.2" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/mime-db": { - "version": "1.43.1" - }, - "@types/mongodb": { - "version": "3.6.20", - "requires": { - "@types/bson": "*", - "@types/node": "*" - } + "version": "1.43.1", + "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.1.tgz", + "integrity": "sha512-kGZJY+R+WnR5Rk+RPHUMERtb2qBRViIHCBdtUrY+NmwuGb8pQdfTqQiCKPrxpdoycl8KWm2DLdkpoSdt479XoQ==" }, "@types/mysql": { "version": "2.15.19", + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.19.tgz", + "integrity": "sha512-wSRg2QZv14CWcZXkgdvHbbV2ACufNy5EgI8mBBxnJIptchv7DBy/h53VMa2jDhyo0C9MO4iowE6z9vF8Ja1DkQ==", "requires": { "@types/node": "*" } @@ -7811,6 +6474,8 @@ }, "@types/pg": { "version": "8.6.1", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", + "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", "requires": { "@types/node": "*", "pg-protocol": "*", @@ -7819,33 +6484,45 @@ }, "@types/pg-pool": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.3.tgz", + "integrity": "sha512-fwK5WtG42Yb5RxAwxm3Cc2dJ39FlgcaNiXKvtTLAwtCn642X7dgel+w1+cLWwpSOFImR3YjsZtbkfjxbHtFAeg==", "requires": { "@types/pg": "*" } }, "@types/qs": { - "version": "6.9.7" + "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" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, - "@types/redis": { - "version": "2.8.31", + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "requires": { - "@types/node": "*" - } - }, - "@types/restify": { - "version": "4.3.8", - "requires": { - "@types/bunyan": "*", + "@types/mime": "^1", "@types/node": "*" } }, "@types/serve-static": { - "version": "1.13.10", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/tedious": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.9.tgz", + "integrity": "sha512-ipwFvfy9b2m0gjHsIX0D6NAAwGCKokzf5zJqUZHUGt+7uWVlBIy6n2eyMgiKQ8ChLFVxic/zwQUhjLYNzbHDRA==", "requires": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -7857,9 +6534,6 @@ "version": "1.1.1", "dev": true }, - "abstract-logging": { - "version": "2.0.1" - }, "accepts": { "version": "1.3.8", "requires": { @@ -7882,6 +6556,7 @@ }, "ajv": { "version": "6.12.6", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7923,9 +6598,6 @@ "picomatch": "^2.0.4" } }, - "archy": { - "version": "1.0.0" - }, "argparse": { "version": "2.0.1", "dev": true @@ -7936,29 +6608,6 @@ "async": { "version": "1.5.2" }, - "atomic-sleep": { - "version": "1.0.0" - }, - "avvio": { - "version": "7.2.5", - "requires": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1", - "queue-microtask": "^1.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2" - } - } - }, "balanced-match": { "version": "1.0.2", "dev": true @@ -7966,9 +6615,6 @@ "base64-arraybuffer": { "version": "0.2.0" }, - "base64-js": { - "version": "1.5.1" - }, "binary-extensions": { "version": "2.2.0", "dev": true @@ -8026,19 +6672,6 @@ "version": "1.3.1", "dev": true }, - "bson": { - "version": "4.6.4", - "requires": { - "buffer": "^5.6.0" - } - }, - "buffer": { - "version": "5.7.1", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "bufrw": { "version": "1.3.0", "requires": { @@ -8273,9 +6906,6 @@ "version": "0.1.4", "dev": true }, - "deepmerge": { - "version": "4.2.2" - }, "defer-to-connect": { "version": "1.1.3", "dev": true @@ -8344,15 +6974,6 @@ "version": "0.1.4", "dev": true }, - "duplexify": { - "version": "4.1.2", - "requires": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, "ee-first": { "version": "1.1.1" }, @@ -8364,6 +6985,7 @@ }, "end-of-stream": { "version": "1.4.4", + "dev": true, "requires": { "once": "^1.4.0" } @@ -8666,90 +7288,25 @@ "vary": "~1.1.2" } }, - "fast-decode-uri-component": { - "version": "1.0.1" - }, "fast-deep-equal": { - "version": "3.1.3" + "version": "3.1.3", + "dev": true }, "fast-diff": { "version": "1.2.0", "dev": true }, "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "fast-json-stringify": { - "version": "2.7.13", - "requires": { - "ajv": "^6.11.0", - "deepmerge": "^4.2.2", - "rfdc": "^1.2.0", - "string-similarity": "^4.0.1" - } + "version": "2.1.0", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", "dev": true }, - "fast-redact": { - "version": "3.1.1" - }, - "fast-safe-stringify": { - "version": "2.1.1" - }, - "fastify": { - "version": "3.29.0", - "requires": { - "@fastify/ajv-compiler": "^1.0.0", - "@fastify/error": "^2.0.0", - "abstract-logging": "^2.0.0", - "avvio": "^7.1.2", - "fast-json-stringify": "^2.5.2", - "find-my-way": "^4.5.0", - "flatstr": "^1.0.12", - "light-my-request": "^4.2.0", - "pino": "^6.13.0", - "process-warning": "^1.0.0", - "proxy-addr": "^2.0.7", - "rfdc": "^1.1.4", - "secure-json-parse": "^2.0.0", - "semver": "^7.3.2", - "tiny-lru": "^8.0.1" - }, - "dependencies": { - "pino": { - "version": "6.14.0", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - } - }, - "pino-std-serializers": { - "version": "3.2.0" - }, - "semver": { - "version": "7.3.7", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "sonic-boom": { - "version": "1.4.1", - "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - } - } - }, "fastq": { "version": "1.13.0", + "dev": true, "requires": { "reusify": "^1.0.4" } @@ -8780,15 +7337,6 @@ "unpipe": "~1.0.0" } }, - "find-my-way": { - "version": "4.5.1", - "requires": { - "fast-decode-uri-component": "^1.0.1", - "fast-deep-equal": "^3.1.3", - "safe-regex2": "^2.0.0", - "semver-store": "^0.3.0" - } - }, "find-up": { "version": "5.0.0", "dev": true, @@ -8809,9 +7357,6 @@ "rimraf": "^3.0.2" } }, - "flatstr": { - "version": "1.0.12" - }, "flatted": { "version": "3.2.5", "dev": true @@ -8838,6 +7383,11 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==" + }, "get-caller-file": { "version": "2.0.5" }, @@ -8910,9 +7460,6 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "graphql": { - "version": "15.8.0" - }, "growl": { "version": "1.10.5", "dev": true @@ -8992,9 +7539,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "ieee754": { - "version": "1.2.1" - }, "ignore": { "version": "5.2.0", "dev": true @@ -9129,12 +7673,14 @@ } }, "joi": { - "version": "17.6.0", + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, @@ -9156,7 +7702,8 @@ "dev": true }, "json-schema-traverse": { - "version": "0.4.1" + "version": "0.4.1", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -9189,32 +7736,6 @@ "type-check": "~0.4.0" } }, - "light-my-request": { - "version": "4.10.1", - "requires": { - "ajv": "^8.1.0", - "cookie": "^0.5.0", - "process-warning": "^1.0.0", - "set-cookie-parser": "^2.4.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "cookie": { - "version": "0.5.0" - }, - "json-schema-traverse": { - "version": "1.0.0" - } - } - }, "linkedom": { "version": "0.14.17", "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.14.17.tgz", @@ -9381,7 +7902,9 @@ } }, "module-details-from-path": { - "version": "1.0.3" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" }, "ms": { "version": "2.0.0" @@ -9408,12 +7931,6 @@ "negotiator": { "version": "0.6.3" }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "node-int64": { "version": "0.4.0" }, @@ -9495,9 +8012,6 @@ "core-js": "^3.6.5" } }, - "on-exit-leak-free": { - "version": "0.2.0" - }, "on-finished": { "version": "2.3.0", "requires": { @@ -9506,10 +8020,66 @@ }, "once": { "version": "1.4.0", + "dev": true, "requires": { "wrappy": "1" } }, + "opentelemetry-instrumentation-fetch-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/opentelemetry-instrumentation-fetch-node/-/opentelemetry-instrumentation-fetch-node-1.0.0.tgz", + "integrity": "sha512-BebZwqHmXKg9FP1xkLcFmOOKQvaY+8NFYNfrF7tGDlHQmL9xp8yQs/Se6+0yOZzStUk82YgEEhCwgVydhsu9iQ==", + "requires": { + "@opentelemetry/api": "^1.2.0", + "@opentelemetry/api-metrics": "^0.33.0", + "@opentelemetry/instrumentation": "^0.33.0", + "@opentelemetry/semantic-conventions": "^1.7.0" + }, + "dependencies": { + "@opentelemetry/instrumentation": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.33.0.tgz", + "integrity": "sha512-8joPjKJ6TznNt04JbnzZG+m1j/4wm1OIrX7DEw/V5lyZ9/2fahIqG72jeZ26VKOZnLOpVzUUnU/dweURqBzT3Q==", + "requires": { + "@opentelemetry/api-metrics": "0.33.0", + "require-in-the-middle": "^5.0.3", + "semver": "^7.3.2", + "shimmer": "^1.2.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "require-in-the-middle": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", + "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", + "requires": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + } + }, + "semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "opentracing": { "version": "0.14.7" }, @@ -9584,13 +8154,19 @@ "version": "0.1.7" }, "pg-int8": { - "version": "1.0.1" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" }, "pg-protocol": { - "version": "1.5.0" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" }, "pg-types": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "requires": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -9609,32 +8185,6 @@ "version": "2.3.1", "dev": true }, - "pino": { - "version": "7.10.0", - "requires": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.0.0", - "on-exit-leak-free": "^0.2.0", - "pino-abstract-transport": "v0.5.0", - "pino-std-serializers": "^4.0.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.1.0", - "safe-stable-stringify": "^2.1.0", - "sonic-boom": "^2.2.1", - "thread-stream": "^0.15.1" - } - }, - "pino-abstract-transport": { - "version": "0.5.0", - "requires": { - "duplexify": "^4.1.2", - "split2": "^4.0.0" - } - }, - "pino-std-serializers": { - "version": "4.0.0" - }, "postcss": { "version": "8.4.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", @@ -9647,16 +8197,24 @@ } }, "postgres-array": { - "version": "2.0.0" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" }, "postgres-bytea": { - "version": "1.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==" }, "postgres-date": { - "version": "1.0.7" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" }, "postgres-interval": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "requires": { "xtend": "^4.0.0" } @@ -9685,9 +8243,6 @@ "process": { "version": "0.10.1" }, - "process-warning": { - "version": "1.0.0" - }, "proxy-addr": { "version": "2.0.7", "requires": { @@ -9708,7 +8263,8 @@ } }, "punycode": { - "version": "2.1.1" + "version": "2.1.1", + "dev": true }, "pupa": { "version": "2.1.1", @@ -9721,10 +8277,8 @@ "version": "6.9.6" }, "queue-microtask": { - "version": "1.2.3" - }, - "quick-format-unescaped": { - "version": "4.0.4" + "version": "1.2.3", + "dev": true }, "randombytes": { "version": "2.1.0", @@ -9765,14 +8319,6 @@ } } }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { "version": "3.6.0", "dev": true, @@ -9780,9 +8326,6 @@ "picomatch": "^2.2.1" } }, - "real-require": { - "version": "0.1.0" - }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -9806,25 +8349,28 @@ "require-directory": { "version": "2.1.1" }, - "require-from-string": { - "version": "2.0.2" - }, "require-in-the-middle": { - "version": "5.1.0", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz", + "integrity": "sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw==", "requires": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", - "resolve": "^1.12.0" + "resolve": "^1.22.1" }, "dependencies": { "debug": { "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } }, "ms": { - "version": "2.1.2" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -9851,14 +8397,9 @@ "lowercase-keys": "^1.0.0" } }, - "ret": { - "version": "0.2.2" - }, "reusify": { - "version": "1.0.4" - }, - "rfdc": { - "version": "1.3.0" + "version": "1.0.4", + "dev": true }, "rimraf": { "version": "3.0.2", @@ -9888,21 +8429,9 @@ "safe-buffer": { "version": "5.2.1" }, - "safe-regex2": { - "version": "2.0.0", - "requires": { - "ret": "~0.2.0" - } - }, - "safe-stable-stringify": { - "version": "2.3.1" - }, "safer-buffer": { "version": "2.1.2" }, - "secure-json-parse": { - "version": "2.4.0" - }, "secure-keys": { "version": "1.0.0" }, @@ -9917,9 +8446,6 @@ "semver": "^6.3.0" } }, - "semver-store": { - "version": "0.3.0" - }, "send": { "version": "0.17.2", "requires": { @@ -9959,9 +8485,6 @@ "send": "0.17.2" } }, - "set-cookie-parser": { - "version": "2.5.0" - }, "setprototypeof": { "version": "1.2.0" }, @@ -9983,36 +8506,15 @@ "version": "3.0.7", "dev": true }, - "sonic-boom": { - "version": "2.8.0", - "requires": { - "atomic-sleep": "^1.0.0" - } - }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, - "split2": { - "version": "4.1.0" - }, "statuses": { "version": "1.5.0" }, - "stream-shift": { - "version": "1.0.1" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-similarity": { - "version": "4.0.4" - }, "string-template": { "version": "0.2.1" }, @@ -10050,12 +8552,6 @@ "version": "0.2.0", "dev": true }, - "thread-stream": { - "version": "0.15.2", - "requires": { - "real-require": "^0.1.0" - } - }, "thriftrw": { "version": "3.12.0", "requires": { @@ -10064,9 +8560,6 @@ "long": "^2.4.0" } }, - "tiny-lru": { - "version": "8.0.2" - }, "to-readable-stream": { "version": "1.0.0", "dev": true @@ -10088,9 +8581,6 @@ "nopt": "~1.0.10" } }, - "tr46": { - "version": "0.0.3" - }, "type-check": { "version": "0.4.0", "dev": true, @@ -10164,6 +8654,7 @@ }, "uri-js": { "version": "4.4.1", + "dev": true, "requires": { "punycode": "^2.1.0" } @@ -10178,9 +8669,6 @@ "prepend-http": "^2.0.0" } }, - "util-deprecate": { - "version": "1.0.2" - }, "utils-merge": { "version": "1.0.1" }, @@ -10202,16 +8690,6 @@ "rollup": "^3.20.2" } }, - "webidl-conversions": { - "version": "3.0.1" - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "which": { "version": "2.0.2", "dev": true, @@ -10243,7 +8721,8 @@ } }, "wrappy": { - "version": "1.0.2" + "version": "1.0.2", + "dev": true }, "write-file-atomic": { "version": "3.0.3", diff --git a/package.json b/package.json index 2d8414f..66e78a4 100644 --- a/package.json +++ b/package.json @@ -36,16 +36,16 @@ "vite": "^4.3.1" }, "dependencies": { - "@opentelemetry/api": "^1.1.0", - "@opentelemetry/auto-instrumentations-node": "^0.31.0", - "@opentelemetry/context-async-hooks": "^1.4.0", - "@opentelemetry/core": "^1.4.0", - "@opentelemetry/exporter-jaeger": "^1.3.1", - "@opentelemetry/instrumentation": "^0.30.0", - "@opentelemetry/propagator-ot-trace": "^0.26.0", - "@opentelemetry/resources": "^1.3.1", - "@opentelemetry/sdk-trace-base": "^1.3.1", - "@opentelemetry/semantic-conventions": "^1.3.1", + "@opentelemetry/api": "^1.4.1", + "@opentelemetry/auto-instrumentations-node": "^0.36.6", + "@opentelemetry/context-async-hooks": "^1.12.0", + "@opentelemetry/core": "^1.12.0", + "@opentelemetry/exporter-jaeger": "^1.12.0", + "@opentelemetry/instrumentation": "^0.38.0", + "@opentelemetry/propagator-ot-trace": "^0.26.2", + "@opentelemetry/resources": "^1.12.0", + "@opentelemetry/sdk-trace-base": "^1.12.0", + "@opentelemetry/semantic-conventions": "^1.12.0", "cors": "^2.8.5", "dompurify": "^2.3.9", "escape-string-regexp": "^4.0.0", @@ -55,7 +55,7 @@ "linkedom": "^0.14.17", "matrix-public-archive-shared": "file:./shared/", "nconf": "^0.11.3", - "node-fetch": "^2.6.7", + "opentelemetry-instrumentation-fetch-node": "^1.0.0", "url-join": "^4.0.1" } } diff --git a/server/child-process-runner/child-fork-script.js b/server/child-process-runner/child-fork-script.js index 16c6578..08d2135 100644 --- a/server/child-process-runner/child-fork-script.js +++ b/server/child-process-runner/child-fork-script.js @@ -5,7 +5,7 @@ const assert = require('assert'); -const RethrownError = require('../lib/rethrown-error'); +const RethrownError = require('../lib/errors/rethrown-error'); // Serialize the error and send it back up to the parent process so we can // interact with it and know what happened when the process exits. diff --git a/server/child-process-runner/run-in-child-process.js b/server/child-process-runner/run-in-child-process.js index 2c1232c..89a0f44 100644 --- a/server/child-process-runner/run-in-child-process.js +++ b/server/child-process-runner/run-in-child-process.js @@ -12,7 +12,7 @@ const assert = require('assert'); const { fork } = require('child_process'); -const RethrownError = require('../lib/rethrown-error'); +const RethrownError = require('../lib/errors/rethrown-error'); const { traceFunction } = require('../tracing/trace-utilities'); const config = require('../lib/config'); @@ -26,6 +26,10 @@ if (!logOutputFromChildProcesses) { const resolvedChildForkScriptPath = require.resolve('./child-fork-script'); +class RunInChildProcessTimeoutAbortError extends RethrownError { + // ... +} + function assembleErrorAfterChildExitsWithErrors(exitCode, childErrors, childStdErr) { assert(childErrors); @@ -65,20 +69,56 @@ function assembleErrorAfterChildExitsWithErrors(exitCode, childErrors, childStdE return childErrorSummary; } -async function runInChildProcess(modulePath, runArguments, { timeout }) { +async function runInChildProcess( + modulePath, + runArguments, + { timeout, abortSignal: externalAbortSignal } +) { let abortTimeoutId; try { let childErrors = []; let childExitCode = '(not set yet)'; let childStdErr = ''; - const controller = new AbortController(); - const { signal } = controller; + const abortController = new AbortController(); + + // Stops the child process if it takes too long + if (timeout) { + abortTimeoutId = setTimeout(() => { + const childErrorSummary = assembleErrorAfterChildExitsWithErrors( + childExitCode, + childErrors, + childStdErr + ); + abortController.abort( + new RunInChildProcessTimeoutAbortError( + `Timed out while running ${modulePath} so we aborted the child process after ${timeout}ms. Any child errors? (${childErrors.length})`, + childErrorSummary + ) + ); + }, timeout); + } + + // Stop the child process if we get an external signal to stop (like if the whole + // express route that caused this call times out) + if (externalAbortSignal) { + if (externalAbortSignal.aborted) { + // Abort for good measure in case we sneak past this somehow + abortController.abort(externalAbortSignal.reason); + // Throw an error and exit early if we already aborted before we even started + throw externalAbortSignal.reason; + } + + externalAbortSignal.addEventListener('abort', () => { + abortController.abort(externalAbortSignal.reason); + }); + } + // We use a child_process because we want to be able to exit the process // after we receive the results. We use `fork` instead of `exec`/`spawn` so // that we can pass a module instead of running a command. const child = fork(resolvedChildForkScriptPath, [modulePath], { - signal, + signal: abortController.signal, // Default to silencing logs from the child process. We already have // proper instrumentation of any errors that might occur. // @@ -106,13 +146,6 @@ async function runInChildProcess(modulePath, runArguments, { timeout }) { // with argv. child.send(runArguments); - // Stops the child process if it takes too long - if (timeout) { - abortTimeoutId = setTimeout(() => { - controller.abort(); - }, timeout); - } - const returnedData = await new Promise((resolve, reject) => { let data = ''; // Collect the data passed back by the child @@ -151,18 +184,12 @@ async function runInChildProcess(modulePath, runArguments, { timeout }) { // When a problem occurs when spawning the process or gets aborted child.on('error', (err) => { + // We should be able to just `reject(err)` without any special-case handling + // here since ideally, we expect the error to be whatever `signal.reason` we + // aborted with but `child_process.fork(...)` doesn't seem play nicely, see + // https://github.com/nodejs/node/issues/47814 if (err.name === 'AbortError') { - const childErrorSummary = assembleErrorAfterChildExitsWithErrors( - childExitCode, - childErrors, - childStdErr - ); - reject( - new RethrownError( - `Timed out while running ${modulePath} so we aborted the child process after ${timeout}ms. Any child errors? (${childErrors.length})`, - childErrorSummary - ) - ); + reject(abortController.signal.reason || err); } else { reject(err); } diff --git a/server/hydrogen-render/render-hydrogen-to-string.js b/server/hydrogen-render/render-hydrogen-to-string.js index 9bfce01..260f161 100644 --- a/server/hydrogen-render/render-hydrogen-to-string.js +++ b/server/hydrogen-render/render-hydrogen-to-string.js @@ -7,7 +7,9 @@ // get our initial rendered HTML. const assert = require('assert'); -const RethrownError = require('../lib/rethrown-error'); +const RethrownError = require('../lib/errors/rethrown-error'); +const RouteTimeoutAbortError = require('../lib/errors/route-timeout-abort-error'); +const UserClosedConnectionAbortError = require('../lib/errors/user-closed-connection-abort-error'); const runInChildProcess = require('../child-process-runner/run-in-child-process'); const resolvedRenderHydrogenToStringUnsafeScriptPath = require.resolve( @@ -18,7 +20,7 @@ const resolvedRenderHydrogenToStringUnsafeScriptPath = require.resolve( // gone really wrong. const RENDER_TIMEOUT = 5000; -async function renderHydrogenToString(renderOptions) { +async function renderHydrogenToString({ renderOptions, abortSignal }) { assert(renderOptions); // We expect `config` but we should sanity check that we aren't leaking the access token @@ -48,17 +50,25 @@ async function renderHydrogenToString(renderOptions) { renderOptions, { timeout: RENDER_TIMEOUT, + abortSignal, } ); return hydrogenHtmlOutput; } catch (err) { - throw new RethrownError( - `Failed to render Hydrogen to string. In order to reproduce, feed in these arguments into \`renderHydrogenToString(...)\`:\n renderHydrogenToString arguments: ${JSON.stringify( - renderOptions - )}`, - err - ); + // No need to wrap these errors since the abort originates from outside of the + // render process. And makes it easier to detect without having to look for + // underlying causes. + if (err instanceof RouteTimeoutAbortError || err instanceof UserClosedConnectionAbortError) { + throw err; + } else { + throw new RethrownError( + `Failed to render Hydrogen to string. In order to reproduce, feed in these arguments into \`renderHydrogenToString(...)\`:\n renderHydrogenToString arguments: ${JSON.stringify( + renderOptions + )}`, + err + ); + } } } diff --git a/server/hydrogen-render/render-hydrogen-vm-render-script-to-page-html.js b/server/hydrogen-render/render-hydrogen-vm-render-script-to-page-html.js index 692e924..517f4b3 100644 --- a/server/hydrogen-render/render-hydrogen-vm-render-script-to-page-html.js +++ b/server/hydrogen-render/render-hydrogen-vm-render-script-to-page-html.js @@ -9,15 +9,19 @@ async function renderHydrogenVmRenderScriptToPageHtml({ pageOptions, vmRenderScriptFilePath, vmRenderContext, + abortSignal, }) { assert(vmRenderScriptFilePath); assert(vmRenderContext); assert(pageOptions); const hydrogenHtmlOutput = await renderHydrogenToString({ - vmRenderScriptFilePath, - vmRenderContext, - pageOptions, + renderOptions: { + vmRenderScriptFilePath, + vmRenderContext, + pageOptions, + }, + abortSignal, }); const pageHtml = renderPageHtml({ diff --git a/server/lib/errors/extended-error.js b/server/lib/errors/extended-error.js new file mode 100644 index 0000000..5337eb4 --- /dev/null +++ b/server/lib/errors/extended-error.js @@ -0,0 +1,18 @@ +'use strict'; + +// Standard error extender from @deployable/errors +// (https://github.com/deployable/deployable-errors) +class ExtendedError extends Error { + constructor(message) { + super(message); + this.name = this.constructor.name; + this.message = message; + if (typeof Error.captureStackTrace === 'function') { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = new Error(message).stack; + } + } +} + +module.exports = ExtendedError; diff --git a/server/lib/rethrown-error.js b/server/lib/errors/rethrown-error.js similarity index 81% rename from server/lib/rethrown-error.js rename to server/lib/errors/rethrown-error.js index cae581f..5073bf9 100644 --- a/server/lib/rethrown-error.js +++ b/server/lib/errors/rethrown-error.js @@ -1,20 +1,6 @@ 'use strict'; -// via https://stackoverflow.com/a/42755876/796832 - -// Standard error extender from @deployable/errors -class ExtendedError extends Error { - constructor(message) { - super(message); - this.name = this.constructor.name; - this.message = message; - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error(message).stack; - } - } -} +const ExtendedError = require('./extended-error'); // A way to create a new error with a custom message but keep the stack trace of // the original error. Useful to give more context and why the action was tried @@ -27,6 +13,8 @@ class ExtendedError extends Error { // from the config when this error occured. // // `new RethrownError('Failed to get the ratelimit key from the config', originalError)` (failed to read the disk) +// +// via https://stackoverflow.com/a/42755876/796832 class RethrownError extends ExtendedError { constructor(message, error) { super(message); diff --git a/server/lib/errors/route-timeout-abort-error.js b/server/lib/errors/route-timeout-abort-error.js new file mode 100644 index 0000000..3904c82 --- /dev/null +++ b/server/lib/errors/route-timeout-abort-error.js @@ -0,0 +1,9 @@ +'use strict'; + +const ExtendedError = require('./extended-error'); + +class RouteTimeoutAbortError extends ExtendedError { + // ... +} + +module.exports = RouteTimeoutAbortError; diff --git a/server/lib/status-error.js b/server/lib/errors/status-error.js similarity index 100% rename from server/lib/status-error.js rename to server/lib/errors/status-error.js diff --git a/server/lib/errors/user-closed-connection-abort-error.js b/server/lib/errors/user-closed-connection-abort-error.js new file mode 100644 index 0000000..b4eafe9 --- /dev/null +++ b/server/lib/errors/user-closed-connection-abort-error.js @@ -0,0 +1,9 @@ +'use strict'; + +const ExtendedError = require('./extended-error'); + +class UserClosedConnectionAbortError extends ExtendedError { + // ... +} + +module.exports = UserClosedConnectionAbortError; diff --git a/server/lib/fetch-endpoint.js b/server/lib/fetch-endpoint.js index e848e75..2fe2611 100644 --- a/server/lib/fetch-endpoint.js +++ b/server/lib/fetch-endpoint.js @@ -1,6 +1,6 @@ 'use strict'; -const fetch = require('node-fetch'); +const assert = require('assert'); class HTTPResponseError extends Error { constructor(response, responseText, ...args) { @@ -23,6 +23,10 @@ const checkResponseStatus = async (response) => { }; async function fetchEndpoint(endpoint, options = {}) { + // We chose `abortSignal` just because it's a less ambiguous name and obvious what + // it's used for. + assert(!options.signal, 'Use `options.abortSignal` instead of `options.signal`'); + const { method, accessToken } = options; const headers = options.headers || {}; @@ -34,6 +38,8 @@ async function fetchEndpoint(endpoint, options = {}) { method, headers, body: options.body, + // Abort signal to cancel the request + signal: options.abortSignal, }); await checkResponseStatus(res); diff --git a/server/lib/matrix-utils/ensure-room-joined.js b/server/lib/matrix-utils/ensure-room-joined.js index 6a57c57..fc92536 100644 --- a/server/lib/matrix-utils/ensure-room-joined.js +++ b/server/lib/matrix-utils/ensure-room-joined.js @@ -7,11 +7,15 @@ const { fetchEndpointAsJson } = require('../fetch-endpoint'); const getServerNameFromMatrixRoomIdOrAlias = require('./get-server-name-from-matrix-room-id-or-alias'); const config = require('../config'); -const StatusError = require('../status-error'); +const StatusError = require('../errors/status-error'); const matrixServerUrl = config.get('matrixServerUrl'); assert(matrixServerUrl); -async function ensureRoomJoined(accessToken, roomIdOrAlias, viaServers = new Set()) { +async function ensureRoomJoined( + accessToken, + roomIdOrAlias, + { viaServers = new Set(), abortSignal } = {} +) { // We use a `Set` to ensure that we don't have duplicate servers in the list assert(viaServers instanceof Set); @@ -38,6 +42,7 @@ async function ensureRoomJoined(accessToken, roomIdOrAlias, viaServers = new Set const { data: joinData } = await fetchEndpointAsJson(joinEndpoint, { method: 'POST', accessToken, + abortSignal, }); assert( joinData.room_id, diff --git a/server/lib/matrix-utils/fetch-events-from-timestamp-backwards.js b/server/lib/matrix-utils/fetch-events-from-timestamp-backwards.js index 515f132..196dabc 100644 --- a/server/lib/matrix-utils/fetch-events-from-timestamp-backwards.js +++ b/server/lib/matrix-utils/fetch-events-from-timestamp-backwards.js @@ -25,7 +25,7 @@ assert(matrixServerUrl); // - ❌ If we start from dayEnd and look forwards, we will find nothing // // Returns events in reverse-chronological order. -async function fetchEventsFromTimestampBackwards({ accessToken, roomId, ts, limit }) { +async function fetchEventsFromTimestampBackwards({ accessToken, roomId, ts, limit, abortSignal }) { assert(accessToken); assert(roomId); assert(ts); @@ -42,6 +42,7 @@ async function fetchEventsFromTimestampBackwards({ accessToken, roomId, ts, limi roomId, ts, direction: DIRECTION.backward, + abortSignal, }); eventIdForTimestamp = eventId; } catch (err) { @@ -70,6 +71,7 @@ async function fetchEventsFromTimestampBackwards({ accessToken, roomId, ts, limi // doesn't backfill in the forward direction) dir: DIRECTION.backward, limit, + abortSignal, }); const stateEventMap = {}; diff --git a/server/lib/matrix-utils/fetch-public-rooms.js b/server/lib/matrix-utils/fetch-public-rooms.js index b865247..bc9e7c5 100644 --- a/server/lib/matrix-utils/fetch-public-rooms.js +++ b/server/lib/matrix-utils/fetch-public-rooms.js @@ -10,7 +10,10 @@ const config = require('../config'); const matrixServerUrl = config.get('matrixServerUrl'); assert(matrixServerUrl); -async function fetchPublicRooms(accessToken, { server, searchTerm, paginationToken, limit } = {}) { +async function fetchPublicRooms( + accessToken, + { server, searchTerm, paginationToken, limit, abortSignal } = {} +) { assert(accessToken); let qs = new URLSearchParams(); @@ -34,6 +37,7 @@ async function fetchPublicRooms(accessToken, { server, searchTerm, paginationTok limit, }, accessToken, + abortSignal, }); // We only want to see public rooms in the archive diff --git a/server/lib/matrix-utils/fetch-room-data.js b/server/lib/matrix-utils/fetch-room-data.js index 055f50c..624b1c3 100644 --- a/server/lib/matrix-utils/fetch-room-data.js +++ b/server/lib/matrix-utils/fetch-room-data.js @@ -25,7 +25,11 @@ function getStateEndpointForRoomIdAndEventType(roomId, eventType) { // https://github.com/matrix-org/synapse/issues/15454 // // TODO: Remove this when we have MSC3999 (because it's the only usage) -const removeMe_fetchRoomCreateEventId = traceFunction(async function (matrixAccessToken, roomId) { +const removeMe_fetchRoomCreateEventId = traceFunction(async function ( + matrixAccessToken, + roomId, + { abortSignal } = {} +) { const { data } = await fetchEndpointAsJson( urlJoin( matrixServerUrl, @@ -33,6 +37,7 @@ const removeMe_fetchRoomCreateEventId = traceFunction(async function (matrixAcce ), { accessToken: matrixAccessToken, + abortSignal, } ); @@ -41,10 +46,15 @@ const removeMe_fetchRoomCreateEventId = traceFunction(async function (matrixAcce return roomCreateEventId; }); -const fetchRoomCreationInfo = traceFunction(async function (matrixAccessToken, roomId) { +const fetchRoomCreationInfo = traceFunction(async function ( + matrixAccessToken, + roomId, + { abortSignal } = {} +) { const [stateCreateResDataOutcome] = await Promise.allSettled([ fetchEndpointAsJson(getStateEndpointForRoomIdAndEventType(roomId, 'm.room.create'), { accessToken: matrixAccessToken, + abortSignal, }), ]); @@ -61,13 +71,18 @@ const fetchRoomCreationInfo = traceFunction(async function (matrixAccessToken, r return { roomCreationTs, predecessorRoomId, predecessorLastKnownEventId }; }); -const fetchPredecessorInfo = traceFunction(async function (matrixAccessToken, roomId) { +const fetchPredecessorInfo = traceFunction(async function ( + matrixAccessToken, + roomId, + { abortSignal } = {} +) { const [roomCreationInfoOutcome, statePredecessorResDataOutcome] = await Promise.allSettled([ - fetchRoomCreationInfo(matrixAccessToken, roomId), + fetchRoomCreationInfo(matrixAccessToken, roomId, { abortSignal }), fetchEndpointAsJson( getStateEndpointForRoomIdAndEventType(roomId, 'org.matrix.msc3946.room_predecessor'), { accessToken: matrixAccessToken, + abortSignal, } ), ]); @@ -99,10 +114,15 @@ const fetchPredecessorInfo = traceFunction(async function (matrixAccessToken, ro }; }); -const fetchSuccessorInfo = traceFunction(async function (matrixAccessToken, roomId) { +const fetchSuccessorInfo = traceFunction(async function ( + matrixAccessToken, + roomId, + { abortSignal } = {} +) { const [stateTombstoneResDataOutcome] = await Promise.allSettled([ fetchEndpointAsJson(getStateEndpointForRoomIdAndEventType(roomId, 'm.room.tombstone'), { accessToken: matrixAccessToken, + abortSignal, }), ]); @@ -121,7 +141,11 @@ const fetchSuccessorInfo = traceFunction(async function (matrixAccessToken, room }); // eslint-disable-next-line max-statements -const fetchRoomData = traceFunction(async function (matrixAccessToken, roomId) { +const fetchRoomData = traceFunction(async function ( + matrixAccessToken, + roomId, + { abortSignal } = {} +) { assert(matrixAccessToken); assert(roomId); @@ -136,24 +160,29 @@ const fetchRoomData = traceFunction(async function (matrixAccessToken, roomId) { ] = await Promise.allSettled([ fetchEndpointAsJson(getStateEndpointForRoomIdAndEventType(roomId, 'm.room.name'), { accessToken: matrixAccessToken, + abortSignal, }), fetchEndpointAsJson(getStateEndpointForRoomIdAndEventType(roomId, 'm.room.canonical_alias'), { accessToken: matrixAccessToken, + abortSignal, }), fetchEndpointAsJson(getStateEndpointForRoomIdAndEventType(roomId, 'm.room.avatar'), { accessToken: matrixAccessToken, + abortSignal, }), fetchEndpointAsJson( getStateEndpointForRoomIdAndEventType(roomId, 'm.room.history_visibility'), { accessToken: matrixAccessToken, + abortSignal, } ), fetchEndpointAsJson(getStateEndpointForRoomIdAndEventType(roomId, 'm.room.join_rules'), { accessToken: matrixAccessToken, + abortSignal, }), - fetchPredecessorInfo(matrixAccessToken, roomId), - fetchSuccessorInfo(matrixAccessToken, roomId), + fetchPredecessorInfo(matrixAccessToken, roomId, { abortSignal }), + fetchSuccessorInfo(matrixAccessToken, roomId, { abortSignal }), ]); let name; diff --git a/server/lib/matrix-utils/get-messages-response-from-event-id.js b/server/lib/matrix-utils/get-messages-response-from-event-id.js index d5d6c6b..7d636df 100644 --- a/server/lib/matrix-utils/get-messages-response-from-event-id.js +++ b/server/lib/matrix-utils/get-messages-response-from-event-id.js @@ -10,7 +10,14 @@ const config = require('../config'); const matrixServerUrl = config.get('matrixServerUrl'); assert(matrixServerUrl); -async function getMessagesResponseFromEventId({ accessToken, roomId, eventId, dir, limit }) { +async function getMessagesResponseFromEventId({ + accessToken, + roomId, + eventId, + dir, + limit, + abortSignal, +}) { // We only use this endpoint to get a pagination token we can use with // `/messages`. // @@ -31,6 +38,7 @@ async function getMessagesResponseFromEventId({ accessToken, roomId, eventId, di ); const { data: contextResData } = await fetchEndpointAsJson(contextEndpoint, { accessToken, + abortSignal, }); // We want to re-paginte over the same event so it's included in the response. @@ -56,6 +64,7 @@ async function getMessagesResponseFromEventId({ accessToken, roomId, eventId, di ); const { data: messageResData } = await fetchEndpointAsJson(messagesEndpoint, { accessToken, + abortSignal, }); return messageResData; diff --git a/server/lib/matrix-utils/timestamp-to-event.js b/server/lib/matrix-utils/timestamp-to-event.js index e52e143..3718b48 100644 --- a/server/lib/matrix-utils/timestamp-to-event.js +++ b/server/lib/matrix-utils/timestamp-to-event.js @@ -10,11 +10,13 @@ const config = require('../config'); const matrixServerUrl = config.get('matrixServerUrl'); assert(matrixServerUrl); -async function timestampToEvent({ accessToken, roomId, ts, direction }) { +async function timestampToEvent({ accessToken, roomId, ts, direction, abortSignal }) { assert(accessToken); assert(roomId); assert(ts); assert(direction); + // TODO: Handle `fromCausalEventId` -> `org.matrix.msc3999.event_id`: See MSC3999 + // (https://github.com/matrix-org/matrix-spec-proposals/pull/3999) const timestampToEventEndpoint = urlJoin( matrixServerUrl, @@ -24,6 +26,7 @@ async function timestampToEvent({ accessToken, roomId, ts, direction }) { ); const { data: timestampToEventResData } = await fetchEndpointAsJson(timestampToEventEndpoint, { accessToken, + abortSignal, }); return { diff --git a/server/lib/parse-via-servers-from-user-input.js b/server/lib/parse-via-servers-from-user-input.js index 631c6d5..572c471 100644 --- a/server/lib/parse-via-servers-from-user-input.js +++ b/server/lib/parse-via-servers-from-user-input.js @@ -1,6 +1,6 @@ 'use strict'; -const StatusError = require('../lib/status-error'); +const StatusError = require('./errors/status-error'); function parseViaServersFromUserInput(rawViaServers) { // `rawViaServers` could be an array, a single string, or undefined. Turn it into an diff --git a/server/middleware/timeout-middleware.js b/server/middleware/timeout-middleware.js index ce07468..ecec9a2 100644 --- a/server/middleware/timeout-middleware.js +++ b/server/middleware/timeout-middleware.js @@ -3,7 +3,10 @@ const assert = require('assert'); const urlJoin = require('url-join'); const asyncHandler = require('../lib/express-async-handler'); +const RouteTimeoutAbortError = require('../lib/errors/route-timeout-abort-error'); +const UserClosedConnectionAbortError = require('../lib/errors/user-closed-connection-abort-error'); const { getSerializableSpans, getActiveTraceId } = require('../tracing/tracing-middleware'); +const { SemanticAttributes } = require('@opentelemetry/semantic-conventions'); const sanitizeHtml = require('../lib/sanitize-html'); const renderPageHtml = require('../hydrogen-render/render-page-html'); @@ -16,16 +19,29 @@ assert(requestTimeoutMs); // Based off of the `connect-timeout` middleware, // https://github.com/expressjs/timeout/blob/f2f520f335f2f2ae255d4778e908e8d38e3a4e68/index.js async function timeoutMiddleware(req, res, next) { + req.abortController = new AbortController(); + req.abortSignal = req.abortController.signal; + const timeoutId = setTimeout(() => { + // Signal to downstream middlewares/routes that they should stop processing/fetching + // things since we timed out (downstream consumers need to respect `req.abortSignal`) + req.abortController.abort( + new RouteTimeoutAbortError( + `Timed out after ${requestTimeoutMs}ms while trying to respond to route ${req.originalUrl}` + ) + ); + const traceId = getActiveTraceId(); const serializableSpans = getSerializableSpans(); let humanReadableSpans; if (serializableSpans.length > 0) { humanReadableSpans = serializableSpans.map((serializableSpan) => { - const method = serializableSpan.attributes['http.method']; - const url = serializableSpan.attributes['http.url']; - const statusCode = serializableSpan.attributes['http.status_code']; + const method = serializableSpan.attributes[SemanticAttributes.HTTP_METHOD]; + const url = + serializableSpan.attributes[SemanticAttributes.HTTP_TARGET] || + serializableSpan.attributes[SemanticAttributes.HTTP_URL]; + const statusCode = serializableSpan.attributes[SemanticAttributes.HTTP_STATUS_CODE]; let durationString = `request is still running (${ Date.now() - serializableSpan.startTimeInMs @@ -93,9 +109,22 @@ async function timeoutMiddleware(req, res, next) { }, requestTimeoutMs); res.on('finish', function () { + // Clear the timeout if the response finishes naturally clearTimeout(timeoutId); }); + req.on('close', function () { + // Signal to downstream middlewares/routes that they should stop processing/fetching + // things since the user closed the connection before we sent a response (downstream + // consumers need to respect `req.abortSignal`) + // + // This is a bit adjacent to "timeouts" but fits easily enough here (this could be a + // separate middleware). + req.abortController.abort( + new UserClosedConnectionAbortError(`User closed connection before we could respond`) + ); + }); + next(); } diff --git a/server/routes/install-routes.js b/server/routes/install-routes.js index 06cf24b..01071a5 100644 --- a/server/routes/install-routes.js +++ b/server/routes/install-routes.js @@ -5,6 +5,7 @@ const express = require('express'); const cors = require('cors'); const asyncHandler = require('../lib/express-async-handler'); +const timeoutMiddleware = require('../middleware/timeout-middleware'); const { handleTracingMiddleware } = require('../tracing/tracing-middleware'); const getVersionTags = require('../lib/get-version-tags'); const preventClickjackingMiddleware = require('../middleware/prevent-clickjacking-middleware'); @@ -41,10 +42,14 @@ function installRoutes(app) { // Our own archive app styles and scripts app.use('/assets', express.static(path.join(__dirname, '../../dist/assets'))); - app.use('/', require('./room-directory-routes')); + app.use('/', timeoutMiddleware, require('./room-directory-routes')); // For room aliases (/r) or room ID's (/roomid) - app.use('/:entityDescriptor(r|roomid)/:roomIdOrAliasDirty', require('./room-routes')); + app.use( + '/:entityDescriptor(r|roomid)/:roomIdOrAliasDirty', + timeoutMiddleware, + require('./room-routes') + ); // Since everything after the hash (`#`) won't make it to the server, let's serve a 404 // page that will potentially redirect them to the correct place if they tried diff --git a/server/routes/room-directory-routes.js b/server/routes/room-directory-routes.js index 45041f2..d0180e0 100644 --- a/server/routes/room-directory-routes.js +++ b/server/routes/room-directory-routes.js @@ -6,6 +6,8 @@ const urlJoin = require('url-join'); const express = require('express'); const asyncHandler = require('../lib/express-async-handler'); +const RouteTimeoutAbortError = require('../lib/errors/route-timeout-abort-error'); +const UserClosedConnectionAbortError = require('../lib/errors/user-closed-connection-abort-error'); const identifyRoute = require('../middleware/identify-route-middleware'); const fetchPublicRooms = require('../lib/matrix-utils/fetch-public-rooms'); const renderHydrogenVmRenderScriptToPageHtml = require('../hydrogen-render/render-hydrogen-vm-render-script-to-page-html'); @@ -54,10 +56,18 @@ router.get( searchTerm, paginationToken, limit, + abortSignal: req.abortSignal, } )); } catch (err) { - roomFetchError = err; + if (err instanceof RouteTimeoutAbortError || err instanceof UserClosedConnectionAbortError) { + // Throw an error so we stop processing and assembling the page after we abort + throw err; + } else { + // Otherwise, this will be the error we will display on the page for the user to + // explain why we failed to fetch the rooms they wanted. + roomFetchError = err; + } } // We index the room directory unless the config says we shouldn't index anything @@ -98,6 +108,7 @@ router.get( matrixServerName, }, }, + abortSignal: req.abortSignal, }); setHeadersToPreloadAssets(res, pageOptions); diff --git a/server/routes/room-routes.js b/server/routes/room-routes.js index 0a49aca..4cc6d11 100644 --- a/server/routes/room-routes.js +++ b/server/routes/room-routes.js @@ -5,9 +5,8 @@ const path = require('path'); const urlJoin = require('url-join'); const express = require('express'); const asyncHandler = require('../lib/express-async-handler'); -const StatusError = require('../lib/status-error'); +const StatusError = require('../lib/errors/status-error'); -const timeoutMiddleware = require('../middleware/timeout-middleware'); const redirectToCorrectArchiveUrlIfBadSigil = require('../middleware/redirect-to-correct-archive-url-if-bad-sigil-middleware'); const identifyRoute = require('../middleware/identify-route-middleware'); @@ -179,11 +178,10 @@ router.get( // We have to wait for the room join to happen first before we can fetch // any of the additional room info or messages. - const roomId = await ensureRoomJoined( - matrixAccessToken, - roomIdOrAlias, - parseViaServersFromUserInput(req.query.via) - ); + const roomId = await ensureRoomJoined(matrixAccessToken, roomIdOrAlias, { + viaServers: parseViaServersFromUserInput(req.query.via), + abortSignal: req.abortSignal, + }); // Find the closest day to the current time with messages const { originServerTs } = await timestampToEvent({ @@ -191,6 +189,7 @@ router.get( roomId, ts: dateBeforeJoin, direction: DIRECTION.backward, + abortSignal: req.abortSignal, }); if (!originServerTs) { throw new StatusError(404, 'Unable to find day with history'); @@ -252,7 +251,10 @@ router.get( // We have to wait for the room join to happen first before we can use the jump to // date endpoint (or any other Matrix endpoint) const viaServers = parseViaServersFromUserInput(req.query.via); - const roomId = await ensureRoomJoined(matrixAccessToken, roomIdOrAlias, viaServers); + const roomId = await ensureRoomJoined(matrixAccessToken, roomIdOrAlias, { + viaServers, + abortSignal: req.abortSignal, + }); let ts; let fromCausalEventId; @@ -305,9 +307,14 @@ router.get( // currently just have this set in case some server has this implemented in // the future but there currently is no implementation (as of 2023-04-17) and // we can't have passing tests without a server implementation first. - 'org.matrix.msc3999.event_id': fromCausalEventId, + // + // TODO: This isn't implemented yet + fromCausalEventId, + abortSignal: req.abortSignal, + }), + removeMe_fetchRoomCreateEventId(matrixAccessToken, roomId, { + abortSignal: req.abortSignal, }), - removeMe_fetchRoomCreateEventId(matrixAccessToken, roomId), ]); // Without MSC3999, we currently only detect one kind of loop where the @@ -438,6 +445,7 @@ router.get( eventId: eventIdForClosestEvent, dir: DIRECTION.forward, limit: archiveMessageLimit, + abortSignal: req.abortSignal, }); if (!messageResData.chunk?.length) { @@ -571,7 +579,9 @@ router.get( predecessorRoomId, predecessorLastKnownEventId, predecessorViaServers, - } = await fetchPredecessorInfo(matrixAccessToken, roomId); + } = await fetchPredecessorInfo(matrixAccessToken, roomId, { + abortSignal: req.abortSignal, + }); if (!predecessorRoomId) { throw new StatusError( @@ -582,11 +592,16 @@ router.get( // We have to join the predecessor room before we can fetch the successor info // (this could be our first time seeing the room) - await ensureRoomJoined(matrixAccessToken, predecessorRoomId, viaServers); + await ensureRoomJoined(matrixAccessToken, predecessorRoomId, { + viaServers, + abortSignal: req.abortSignal, + }); const { successorRoomId: successorRoomIdForPredecessor, successorSetTs: successorSetTsForPredecessor, - } = await fetchSuccessorInfo(matrixAccessToken, predecessorRoomId); + } = await fetchSuccessorInfo(matrixAccessToken, predecessorRoomId, { + abortSignal: req.abortSignal, + }); let tombstoneEventId; if (!predecessorLastKnownEventId) { @@ -602,6 +617,7 @@ router.get( roomId: predecessorRoomId, ts: successorSetTsForPredecessor, direction: DIRECTION.backward, + abortSignal: req.abortSignal, })); } @@ -664,7 +680,9 @@ router.get( ); return; } else if (dir === DIRECTION.forward) { - const { successorRoomId } = await fetchSuccessorInfo(matrixAccessToken, roomId); + const { successorRoomId } = await fetchSuccessorInfo(matrixAccessToken, roomId, { + abortSignal: req.abortSignal, + }); if (successorRoomId) { // Jump to the successor room and continue at the first event of the room res.redirect( @@ -731,7 +749,6 @@ router.get( // https://github.com/pillarjs/path-to-regexp/issues/287 '/date/:yyyy(\\d{4})/:mm(\\d{2})/:dd(\\d{2}):time(T\\d\\d?:\\d\\d?((:\\d\\d?)?))?', identifyRoute('app-archive-room-date'), - timeoutMiddleware, // eslint-disable-next-line max-statements, complexity asyncHandler(async function (req, res) { const nowTs = Date.now(); @@ -777,12 +794,15 @@ router.get( // great way to get it (see // https://github.com/matrix-org/matrix-public-archive/issues/50). const viaServers = parseViaServersFromUserInput(req.query.via); - const roomId = await ensureRoomJoined(matrixAccessToken, roomIdOrAlias, viaServers); + const roomId = await ensureRoomJoined(matrixAccessToken, roomIdOrAlias, { + viaServers, + abortSignal: req.abortSignal, + }); // Do these in parallel to avoid the extra time in sequential round-trips // (we want to display the archive page faster) const [roomData, { events, stateEventMap }] = await Promise.all([ - fetchRoomData(matrixAccessToken, roomId), + fetchRoomData(matrixAccessToken, roomId, { abortSignal: req.abortSignal }), // We over-fetch messages outside of the range of the given day so that we // can display messages from surrounding days (currently only from days // before) so that the quiet rooms don't feel as desolate and broken. @@ -800,6 +820,7 @@ router.get( // (for example) are from the same day, let's redirect to a smaller hour range // to display. limit: archiveMessageLimit + 1, + abortSignal: req.abortSignal, }), ]); @@ -903,6 +924,7 @@ router.get( matrixServerUrl: matrixServerUrl, }, }, + abortSignal: req.abortSignal, }); setHeadersToPreloadAssets(res, pageOptions); diff --git a/server/start-dev.js b/server/start-dev.js index d25d4ff..a43053c 100644 --- a/server/start-dev.js +++ b/server/start-dev.js @@ -23,20 +23,20 @@ buildClient({ }); const nodeArgs = []; -if (process.argv.inspectNode) { +if (process.argv.includes('--inspectNode')) { nodeArgs.push('--inspect'); } -if (process.argv.traceWarningsNode) { +if (process.argv.includes('--traceWarningsNode')) { nodeArgs.push('--trace-warnings'); } // Pass through some args const args = []; -if (process.argv.tracing) { +if (process.argv.includes('--tracing')) { args.push('--tracing'); } -if (process.argv.logOutputFromChildProcesses) { +if (process.argv.includes('--logOutputFromChildProcesses')) { args.push('--logOutputFromChildProcesses'); } diff --git a/server/tracing/serialize-span.js b/server/tracing/serialize-span.js index c5bcbb0..a69fe53 100644 --- a/server/tracing/serialize-span.js +++ b/server/tracing/serialize-span.js @@ -4,8 +4,14 @@ const { hrTimeToMilliseconds, //hrTimeToMicroseconds } = require('@opentelemetry/core'); +const { SemanticAttributes } = require('@opentelemetry/semantic-conventions'); -const SAFE_ATTRIBUTES = ['http.method', 'http.url', 'http.status_code', 'http.target']; +const SAFE_ATTRIBUTES = [ + SemanticAttributes.HTTP_METHOD, + SemanticAttributes.HTTP_URL, + SemanticAttributes.HTTP_TARGET, + SemanticAttributes.HTTP_STATUS_CODE, +]; // Convert a `Span` object to a plain old JavaScript object with only the info // we care about and that is safe to share. We want something we can JSON diff --git a/server/tracing/tracing-middleware.js b/server/tracing/tracing-middleware.js index aed6bf7..23894ee 100644 --- a/server/tracing/tracing-middleware.js +++ b/server/tracing/tracing-middleware.js @@ -54,7 +54,14 @@ function getSerializableSpans() { // We only care about showing the external API HTTP requests to the user const filteredSpans = spans.filter((span) => { - return span.instrumentationLibrary.name === '@opentelemetry/instrumentation-http'; + return [ + // `http`/`https` requests + '@opentelemetry/instrumentation-http', + // Native `fetch` + 'opentelemetry-instrumentation-node-18-fetch', + // This will get `tcp.connect` calls which `fetch` does but not the full request lifecycle + //'@opentelemetry/instrumentation-net', + ].includes(span.instrumentationLibrary.name); }); const serializableSpans = filteredSpans.map((span) => serializeSpan(span)); diff --git a/server/tracing/tracing.js b/server/tracing/tracing.js index 73c371f..ac1f839 100644 --- a/server/tracing/tracing.js +++ b/server/tracing/tracing.js @@ -3,6 +3,7 @@ const assert = require('assert'); const { registerInstrumentations } = require('@opentelemetry/instrumentation'); const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node'); +const { FetchInstrumentation } = require('opentelemetry-instrumentation-fetch-node'); const { diag, DiagConsoleLogger, DiagLogLevel } = require('@opentelemetry/api'); const { JaegerExporter } = require('@opentelemetry/exporter-jaeger'); const { @@ -92,6 +93,11 @@ function startTracing() { }, }, }), + // We have to instrument `undici` to cover the native `fetch` API built-in to + // Node.js. We're using `opentelemetry-instrumentation-fetch-node` because there + // is no official instrumentation and `opentelemetry-instrumentation-undici` + // doesn't seem to work. + new FetchInstrumentation({}), ], }); diff --git a/test/e2e-tests.js b/test/e2e-tests.js index ebd63df..b6ea50c 100644 --- a/test/e2e-tests.js +++ b/test/e2e-tests.js @@ -11,7 +11,7 @@ const { parseHTML } = require('linkedom'); const { readFile } = require('fs').promises; const chalk = require('chalk'); -const RethrownError = require('../server/lib/rethrown-error'); +const RethrownError = require('../server/lib/errors/rethrown-error'); const MatrixPublicArchiveURLCreator = require('matrix-public-archive-shared/lib/url-creator'); const { fetchEndpointAsText, fetchEndpointAsJson } = require('../server/lib/fetch-endpoint'); const config = require('../server/lib/config');