From 942b4bfa42f2c34a01d1b63025e307910667a991 Mon Sep 17 00:00:00 2001 From: Igor Savin Date: Thu, 14 Sep 2023 12:56:42 +0300 Subject: [PATCH] Update dependencies (#288) --- Dockerfile | 2 +- package-lock.json | 1152 ++++++++--------- package.json | 22 +- src/app.e2e.test.ts | 21 +- src/app.ts | 45 +- src/infrastructure/commonDiConfig.ts | 3 +- src/infrastructure/diConfig.ts | 3 +- src/infrastructure/healthchecks.ts | 41 +- .../users/datasources/UserDataSource.ts | 4 + src/modules/users/diConfig.ts | 3 +- src/plugins/jwtTokenPlugin.ts | 2 +- 11 files changed, 650 insertions(+), 648 deletions(-) diff --git a/Dockerfile b/Dockerfile index 97bba361..989fd0d2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # ---- Base Node ---- -FROM node:20.5.1-bookworm-slim as base +FROM node:20.6.1-bookworm-slim as base RUN set -ex;\ apt-get update -y; \ diff --git a/package-lock.json b/package-lock.json index 226ffca5..e1b9c32e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,18 +9,18 @@ "version": "1.0.0", "dependencies": { "@fastify/auth": "^4.3.0", - "@fastify/awilix": "^3.1.0", + "@fastify/awilix": "^3.2.0", "@fastify/cors": "^8.3.0", - "@fastify/helmet": "^11.0.0", - "@fastify/jwt": "^7.2.0", + "@fastify/helmet": "^11.1.0", + "@fastify/jwt": "^7.2.1", "@fastify/schedule": "^4.1.1", - "@fastify/swagger": "^8.9.0", + "@fastify/swagger": "^8.10.0", "@fastify/swagger-ui": "^1.9.3", - "@lokalise/fastify-extras": "^12.0.0", + "@lokalise/fastify-extras": "^14.1.0", "@lokalise/node-core": "^6.3.2", "@lokalise/zod-extras": "^2.0.0", "@message-queue-toolkit/amqp": "^3.5.0", - "@message-queue-toolkit/core": "^3.5.0", + "@message-queue-toolkit/core": "^3.6.0", "@prisma/client": "^5.2.0", "@prisma/instrumentation": "^5.2.0", "amqplib": "^0.10.3", @@ -28,7 +28,7 @@ "awilix-manager": "^3.1.0", "croner": "^7.0.1", "dotenv": "^16.3.1", - "fastify": "^4.22.2", + "fastify": "^4.23.2", "fastify-custom-healthcheck": "^3.1.0", "fastify-graceful-shutdown": "^3.5.1", "fastify-metrics": "^10.3.0", @@ -36,8 +36,8 @@ "fastify-type-provider-zod": "^1.1.9", "ioredis": "^5.3.2", "jsonwebtoken": "^9.0.2", - "layered-loader": "^11.0.1", - "newrelic": "10.6.2", + "layered-loader": "^12.3.0", + "newrelic": "11.1.0", "pino": "^8.15.1", "pino-pretty": "^10.2.0", "redis-semaphore": "^5.5.0", @@ -52,8 +52,8 @@ "@types/jsonwebtoken": "^9.0.2", "@types/newrelic": "^9.14.0", "@types/node": "^20.6.0", - "@typescript-eslint/eslint-plugin": "^6.6.0", - "@typescript-eslint/parser": "^6.6.0", + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", "@vitest/coverage-v8": "^0.34.4", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", @@ -239,50 +239,50 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-sdk/client-lambda": { - "version": "3.388.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.388.0.tgz", - "integrity": "sha512-Xqkp87s9S1hFURZqHCUqHuvV5NQw2jm9H53fJRZIFLFb1HRRbAKHKlKLASw5BgD1qq3TlMscHh8KRCM8a5vwPA==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.410.0.tgz", + "integrity": "sha512-zbcdA++4zE1ODRCmKkbZT4N0f4I5pVXLEP5uBtE0Bxgs1UyiHlqHFfjQprdW9CeaMmtTBHEBB6dDcKlGGOSU/w==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.388.0", - "@aws-sdk/credential-provider-node": "3.388.0", - "@aws-sdk/middleware-host-header": "3.387.0", - "@aws-sdk/middleware-logger": "3.387.0", - "@aws-sdk/middleware-recursion-detection": "3.387.0", - "@aws-sdk/middleware-signing": "3.387.0", - "@aws-sdk/middleware-user-agent": "3.387.0", - "@aws-sdk/types": "3.387.0", - "@aws-sdk/util-endpoints": "3.387.0", - "@aws-sdk/util-user-agent-browser": "3.387.0", - "@aws-sdk/util-user-agent-node": "3.387.0", - "@smithy/config-resolver": "^2.0.2", - "@smithy/eventstream-serde-browser": "^2.0.2", - "@smithy/eventstream-serde-config-resolver": "^2.0.2", - "@smithy/eventstream-serde-node": "^2.0.2", - "@smithy/fetch-http-handler": "^2.0.2", - "@smithy/hash-node": "^2.0.2", - "@smithy/invalid-dependency": "^2.0.2", - "@smithy/middleware-content-length": "^2.0.2", - "@smithy/middleware-endpoint": "^2.0.2", - "@smithy/middleware-retry": "^2.0.2", - "@smithy/middleware-serde": "^2.0.2", + "@aws-sdk/client-sts": "3.410.0", + "@aws-sdk/credential-provider-node": "3.410.0", + "@aws-sdk/middleware-host-header": "3.410.0", + "@aws-sdk/middleware-logger": "3.410.0", + "@aws-sdk/middleware-recursion-detection": "3.410.0", + "@aws-sdk/middleware-signing": "3.410.0", + "@aws-sdk/middleware-user-agent": "3.410.0", + "@aws-sdk/types": "3.410.0", + "@aws-sdk/util-endpoints": "3.410.0", + "@aws-sdk/util-user-agent-browser": "3.410.0", + "@aws-sdk/util-user-agent-node": "3.410.0", + "@smithy/config-resolver": "^2.0.7", + "@smithy/eventstream-serde-browser": "^2.0.6", + "@smithy/eventstream-serde-config-resolver": "^2.0.6", + "@smithy/eventstream-serde-node": "^2.0.6", + "@smithy/fetch-http-handler": "^2.1.2", + "@smithy/hash-node": "^2.0.6", + "@smithy/invalid-dependency": "^2.0.6", + "@smithy/middleware-content-length": "^2.0.8", + "@smithy/middleware-endpoint": "^2.0.6", + "@smithy/middleware-retry": "^2.0.9", + "@smithy/middleware-serde": "^2.0.6", "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.2", - "@smithy/node-http-handler": "^2.0.2", - "@smithy/protocol-http": "^2.0.2", - "@smithy/smithy-client": "^2.0.2", - "@smithy/types": "^2.1.0", - "@smithy/url-parser": "^2.0.2", + "@smithy/node-config-provider": "^2.0.9", + "@smithy/node-http-handler": "^2.1.2", + "@smithy/protocol-http": "^3.0.2", + "@smithy/smithy-client": "^2.1.3", + "@smithy/types": "^2.3.0", + "@smithy/url-parser": "^2.0.6", "@smithy/util-base64": "^2.0.0", "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.2", - "@smithy/util-defaults-mode-node": "^2.0.2", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.7", + "@smithy/util-defaults-mode-node": "^2.0.9", "@smithy/util-retry": "^2.0.0", - "@smithy/util-stream": "^2.0.2", + "@smithy/util-stream": "^2.0.9", "@smithy/util-utf8": "^2.0.0", - "@smithy/util-waiter": "^2.0.2", + "@smithy/util-waiter": "^2.0.6", "tslib": "^2.5.0" }, "engines": { @@ -290,40 +290,40 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.387.0.tgz", - "integrity": "sha512-E7uKSvbA0XMKSN5KLInf52hmMpe9/OKo6N9OPffGXdn3fNEQlvyQq3meUkqG7Is0ldgsQMz5EUBNtNybXzr3tQ==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.410.0.tgz", + "integrity": "sha512-MC9GrgwtlOuSL2WS3DRM3dQ/5y+49KSMMJRH6JiEcU5vE0dX/OtEcX+VfEwpi73x5pSfIjm7xnzjzOFx+sQBIg==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.387.0", - "@aws-sdk/middleware-logger": "3.387.0", - "@aws-sdk/middleware-recursion-detection": "3.387.0", - "@aws-sdk/middleware-user-agent": "3.387.0", - "@aws-sdk/types": "3.387.0", - "@aws-sdk/util-endpoints": "3.387.0", - "@aws-sdk/util-user-agent-browser": "3.387.0", - "@aws-sdk/util-user-agent-node": "3.387.0", - "@smithy/config-resolver": "^2.0.2", - "@smithy/fetch-http-handler": "^2.0.2", - "@smithy/hash-node": "^2.0.2", - "@smithy/invalid-dependency": "^2.0.2", - "@smithy/middleware-content-length": "^2.0.2", - "@smithy/middleware-endpoint": "^2.0.2", - "@smithy/middleware-retry": "^2.0.2", - "@smithy/middleware-serde": "^2.0.2", + "@aws-sdk/middleware-host-header": "3.410.0", + "@aws-sdk/middleware-logger": "3.410.0", + "@aws-sdk/middleware-recursion-detection": "3.410.0", + "@aws-sdk/middleware-user-agent": "3.410.0", + "@aws-sdk/types": "3.410.0", + "@aws-sdk/util-endpoints": "3.410.0", + "@aws-sdk/util-user-agent-browser": "3.410.0", + "@aws-sdk/util-user-agent-node": "3.410.0", + "@smithy/config-resolver": "^2.0.7", + "@smithy/fetch-http-handler": "^2.1.2", + "@smithy/hash-node": "^2.0.6", + "@smithy/invalid-dependency": "^2.0.6", + "@smithy/middleware-content-length": "^2.0.8", + "@smithy/middleware-endpoint": "^2.0.6", + "@smithy/middleware-retry": "^2.0.9", + "@smithy/middleware-serde": "^2.0.6", "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.2", - "@smithy/node-http-handler": "^2.0.2", - "@smithy/protocol-http": "^2.0.2", - "@smithy/smithy-client": "^2.0.2", - "@smithy/types": "^2.1.0", - "@smithy/url-parser": "^2.0.2", + "@smithy/node-config-provider": "^2.0.9", + "@smithy/node-http-handler": "^2.1.2", + "@smithy/protocol-http": "^3.0.2", + "@smithy/smithy-client": "^2.1.3", + "@smithy/types": "^2.3.0", + "@smithy/url-parser": "^2.0.6", "@smithy/util-base64": "^2.0.0", "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.2", - "@smithy/util-defaults-mode-node": "^2.0.2", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.7", + "@smithy/util-defaults-mode-node": "^2.0.9", "@smithy/util-retry": "^2.0.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" @@ -333,43 +333,43 @@ } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.388.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.388.0.tgz", - "integrity": "sha512-y9FAcAYHT8O6T/jqhgsIQUb4gLiSTKD3xtzudDvjmFi8gl0oRIY1npbeckSiK6k07VQugm2s64I0nDnDxtWsBg==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.410.0.tgz", + "integrity": "sha512-e6VMrBJtnTxxUXwDmkADGIvyppmDMFf4+cGGA68tVCUm1cFNlCI6M/67bVSIPN/WVKAAfhEL5O2vVXCM7aatYg==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/credential-provider-node": "3.388.0", - "@aws-sdk/middleware-host-header": "3.387.0", - "@aws-sdk/middleware-logger": "3.387.0", - "@aws-sdk/middleware-recursion-detection": "3.387.0", - "@aws-sdk/middleware-sdk-sts": "3.387.0", - "@aws-sdk/middleware-signing": "3.387.0", - "@aws-sdk/middleware-user-agent": "3.387.0", - "@aws-sdk/types": "3.387.0", - "@aws-sdk/util-endpoints": "3.387.0", - "@aws-sdk/util-user-agent-browser": "3.387.0", - "@aws-sdk/util-user-agent-node": "3.387.0", - "@smithy/config-resolver": "^2.0.2", - "@smithy/fetch-http-handler": "^2.0.2", - "@smithy/hash-node": "^2.0.2", - "@smithy/invalid-dependency": "^2.0.2", - "@smithy/middleware-content-length": "^2.0.2", - "@smithy/middleware-endpoint": "^2.0.2", - "@smithy/middleware-retry": "^2.0.2", - "@smithy/middleware-serde": "^2.0.2", + "@aws-sdk/credential-provider-node": "3.410.0", + "@aws-sdk/middleware-host-header": "3.410.0", + "@aws-sdk/middleware-logger": "3.410.0", + "@aws-sdk/middleware-recursion-detection": "3.410.0", + "@aws-sdk/middleware-sdk-sts": "3.410.0", + "@aws-sdk/middleware-signing": "3.410.0", + "@aws-sdk/middleware-user-agent": "3.410.0", + "@aws-sdk/types": "3.410.0", + "@aws-sdk/util-endpoints": "3.410.0", + "@aws-sdk/util-user-agent-browser": "3.410.0", + "@aws-sdk/util-user-agent-node": "3.410.0", + "@smithy/config-resolver": "^2.0.7", + "@smithy/fetch-http-handler": "^2.1.2", + "@smithy/hash-node": "^2.0.6", + "@smithy/invalid-dependency": "^2.0.6", + "@smithy/middleware-content-length": "^2.0.8", + "@smithy/middleware-endpoint": "^2.0.6", + "@smithy/middleware-retry": "^2.0.9", + "@smithy/middleware-serde": "^2.0.6", "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.2", - "@smithy/node-http-handler": "^2.0.2", - "@smithy/protocol-http": "^2.0.2", - "@smithy/smithy-client": "^2.0.2", - "@smithy/types": "^2.1.0", - "@smithy/url-parser": "^2.0.2", + "@smithy/node-config-provider": "^2.0.9", + "@smithy/node-http-handler": "^2.1.2", + "@smithy/protocol-http": "^3.0.2", + "@smithy/smithy-client": "^2.1.3", + "@smithy/types": "^2.3.0", + "@smithy/url-parser": "^2.0.6", "@smithy/util-base64": "^2.0.0", "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.2", - "@smithy/util-defaults-mode-node": "^2.0.2", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.7", + "@smithy/util-defaults-mode-node": "^2.0.9", "@smithy/util-retry": "^2.0.0", "@smithy/util-utf8": "^2.0.0", "fast-xml-parser": "4.2.5", @@ -380,13 +380,13 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.387.0.tgz", - "integrity": "sha512-PVqNk7XPIYe5CMYNvELkcALtkl/pIM8/uPtqEtTg+mgnZBeL4fAmgXZiZMahQo1DxP5t/JaK384f6JG+A0qDjA==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.410.0.tgz", + "integrity": "sha512-c7TB9LbN0PkFOsXI0lcRJnqPNOmc4VBvrHf8jP/BkTDg4YUoKQKOFd4d0SqzODmlZiAyoMQVZTR4ISZo95Zj4Q==", "dependencies": { - "@aws-sdk/types": "3.387.0", + "@aws-sdk/types": "3.410.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.1.0", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -394,19 +394,19 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.388.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.388.0.tgz", - "integrity": "sha512-3dg3A8AiZ5vXkSAYyyI3V/AW3Eo6KQJyE/glA+Nr2M0oAjT4z3vHhS3pf2B+hfKGZBTuKKgxusrrhrQABd/Diw==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.387.0", - "@aws-sdk/credential-provider-process": "3.387.0", - "@aws-sdk/credential-provider-sso": "3.388.0", - "@aws-sdk/credential-provider-web-identity": "3.387.0", - "@aws-sdk/types": "3.387.0", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.410.0.tgz", + "integrity": "sha512-D8rcr5bRCFD0f42MPQ7K6TWZq5d3pfqrKINL1/bpfkK5BJbvq1BGYmR88UC6CLpTRtZ1LHY2HgYG0fp/2zjjww==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.410.0", + "@aws-sdk/credential-provider-process": "3.410.0", + "@aws-sdk/credential-provider-sso": "3.410.0", + "@aws-sdk/credential-provider-web-identity": "3.410.0", + "@aws-sdk/types": "3.410.0", "@smithy/credential-provider-imds": "^2.0.0", "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.1.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -414,20 +414,20 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.388.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.388.0.tgz", - "integrity": "sha512-BqWAkIG08gj/wevpesaZhAjALjfUNVjseHQRk+DNUoHIfyibW7Ahf3q/GIPs11dA2o8ECwR9/fo68Sq+sK799A==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.387.0", - "@aws-sdk/credential-provider-ini": "3.388.0", - "@aws-sdk/credential-provider-process": "3.387.0", - "@aws-sdk/credential-provider-sso": "3.388.0", - "@aws-sdk/credential-provider-web-identity": "3.387.0", - "@aws-sdk/types": "3.387.0", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.410.0.tgz", + "integrity": "sha512-0wmVm33T/j1FS7MZ/j+WsPlgSc0YnCXnpbWSov1Mn6R86SHI2b2JhdIPRRE4XbGfyW2QGNUl2CwoZVaqhXeF5g==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.410.0", + "@aws-sdk/credential-provider-ini": "3.410.0", + "@aws-sdk/credential-provider-process": "3.410.0", + "@aws-sdk/credential-provider-sso": "3.410.0", + "@aws-sdk/credential-provider-web-identity": "3.410.0", + "@aws-sdk/types": "3.410.0", "@smithy/credential-provider-imds": "^2.0.0", "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.1.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -435,14 +435,14 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.387.0.tgz", - "integrity": "sha512-tQScLHmDlqkQN+mqw4s3cxepEUeHYDhFl5eH+J8puvPqWjXMYpCEdY79SAtWs6SZd4CWiZ0VLeYU6xQBZengbQ==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.410.0.tgz", + "integrity": "sha512-BMju1hlDCDNkkSZpKF5SQ8G0WCLRj6/Jvw9QmudLHJuVwYJXEW1r2AsVMg98OZ3hB9G+MAvHruHZIbMiNmUMXQ==", "dependencies": { - "@aws-sdk/types": "3.387.0", + "@aws-sdk/types": "3.410.0", "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.1.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -450,16 +450,16 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.388.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.388.0.tgz", - "integrity": "sha512-RH02+rntaO0UhnSBr42n+7q8HOztc+Dets/hh6cWovf3Yi9s9ghLgYLN9FXpSosfot3XkmT/HOCa+CphAmGN9A==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.410.0.tgz", + "integrity": "sha512-zEaoY/sY+KYTlQUkp9dvveAHf175b8RIt0DsQkDrRPtrg/RBHR00r5rFvz9+nrwsR8546RaBU7h/zzTaQGhmcA==", "dependencies": { - "@aws-sdk/client-sso": "3.387.0", - "@aws-sdk/token-providers": "3.388.0", - "@aws-sdk/types": "3.387.0", + "@aws-sdk/client-sso": "3.410.0", + "@aws-sdk/token-providers": "3.410.0", + "@aws-sdk/types": "3.410.0", "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.1.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -467,13 +467,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.387.0.tgz", - "integrity": "sha512-6ueMPl+J3KWv6ZaAWF4Z138QCuBVFZRVAgwbtP3BNqWrrs4Q6TPksOQJ79lRDMpv0EUoyVl04B6lldNlhN8RdA==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.410.0.tgz", + "integrity": "sha512-cE0l8LmEHdWbDkdPNgrfdYSgp4/cIVXrjUKI1QCATA729CrHZ/OQjB/maOBOrMHO9YTiggko887NkslVvwVB7w==", "dependencies": { - "@aws-sdk/types": "3.387.0", + "@aws-sdk/types": "3.410.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.1.0", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -481,13 +481,13 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.387.0.tgz", - "integrity": "sha512-EWm9PXSr8dSp7hnRth1U7OfelXQp9dLf1yS1kUL+UhppYDJpjhdP7ql3NI4xJKw8e76sP2FuJYEuzWnJHuWoyQ==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.410.0.tgz", + "integrity": "sha512-ED/OVcyITln5rrxnajZP+V0PN1nug+gSDHJDqdDo/oLy7eiDr/ZWn3nlWW7WcMplQ1/Jnb+hK0UetBp/25XooA==", "dependencies": { - "@aws-sdk/types": "3.387.0", - "@smithy/protocol-http": "^2.0.2", - "@smithy/types": "^2.1.0", + "@aws-sdk/types": "3.410.0", + "@smithy/protocol-http": "^3.0.2", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -495,12 +495,12 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.387.0.tgz", - "integrity": "sha512-FjAvJr1XyaInT81RxUwgifnbXoFJrRBFc64XeFJgFanGIQCWLYxRrK2HV9eBpao/AycbmuoHgLd/f0sa4hZFoQ==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.410.0.tgz", + "integrity": "sha512-YtmKYCVtBfScq3/UFJk+aSZOktKJBNZL9DaSc2aPcy/goCVsYDOkGwtHk0jIkC1JRSNCkVTqL7ya60sSr8zaQQ==", "dependencies": { - "@aws-sdk/types": "3.387.0", - "@smithy/types": "^2.1.0", + "@aws-sdk/types": "3.410.0", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -508,13 +508,13 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.387.0.tgz", - "integrity": "sha512-ZF45T785ru8OwvYZw6awD9Z76OwSMM1eZzj2eY+FDz1cHfkpLjxEiti2iIH1FxbyK7n9ZqDUx29lVlCv238YyQ==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.410.0.tgz", + "integrity": "sha512-KWaes5FLzRqj28vaIEE4Bimpga2E596WdPF2HaH6zsVMJddoRDsc3ZX9ZhLOGrXzIO1RqBd0QxbLrM0S/B2aOQ==", "dependencies": { - "@aws-sdk/types": "3.387.0", - "@smithy/protocol-http": "^2.0.2", - "@smithy/types": "^2.1.0", + "@aws-sdk/types": "3.410.0", + "@smithy/protocol-http": "^3.0.2", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -522,13 +522,13 @@ } }, "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.387.0.tgz", - "integrity": "sha512-7ZzRKOJ4V/JDQmKz9z+FjZqw59mrMATEMLR6ff0H0JHMX0Uk5IX8TQB058ss+ar14qeJ4UcteYzCqHNI0O1BHw==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.410.0.tgz", + "integrity": "sha512-YfBpctDocRR4CcROoDueJA7D+aMLBV8nTFfmVNdLLLgyuLZ/AUR11VQSu1lf9gQZKl8IpKE/BLf2fRE/qV1ZuA==", "dependencies": { - "@aws-sdk/middleware-signing": "3.387.0", - "@aws-sdk/types": "3.387.0", - "@smithy/types": "^2.1.0", + "@aws-sdk/middleware-signing": "3.410.0", + "@aws-sdk/types": "3.410.0", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -536,15 +536,15 @@ } }, "node_modules/@aws-sdk/middleware-signing": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.387.0.tgz", - "integrity": "sha512-oJXlE0MES8gxNLo137PPNNiOICQGOaETTvq3kBSJgb/gtEAxQajMIlaNT7s1wsjOAruFHt4975nCXuY4lpx7GQ==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.410.0.tgz", + "integrity": "sha512-KBAZ/eoAJUSJv5us2HsKwK2OszG2s9FEyKpEhgnHLcbbKzW873zHBH5GcOGEQu4AWArTy2ndzJu3FF+9/J9hJQ==", "dependencies": { - "@aws-sdk/types": "3.387.0", + "@aws-sdk/types": "3.410.0", "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^2.0.2", + "@smithy/protocol-http": "^3.0.2", "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.1.0", + "@smithy/types": "^2.3.0", "@smithy/util-middleware": "^2.0.0", "tslib": "^2.5.0" }, @@ -553,14 +553,14 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.387.0.tgz", - "integrity": "sha512-hTfFTwDtp86xS98BKa+RFuLfcvGftxwzrbZeisZV8hdb4ZhvNXjSxnvM3vetW0GUEnY9xHPSGyp2ERRTinPKFQ==", - "dependencies": { - "@aws-sdk/types": "3.387.0", - "@aws-sdk/util-endpoints": "3.387.0", - "@smithy/protocol-http": "^2.0.2", - "@smithy/types": "^2.1.0", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.410.0.tgz", + "integrity": "sha512-ZayDtLfvCZUohSxQc/49BfoU/y6bDHLfLdyyUJbJ54Sv8zQcrmdyKvCBFUZwE6tHQgAmv9/ZT18xECMl+xiONA==", + "dependencies": { + "@aws-sdk/types": "3.410.0", + "@aws-sdk/util-endpoints": "3.410.0", + "@smithy/protocol-http": "^3.0.2", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -568,42 +568,42 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.388.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.388.0.tgz", - "integrity": "sha512-2lo1gFJl624kfjo/YdU6zW+k6dEwhoqjNkDNbOZEFgS1KDofHe9GX8W4/ReKb0Ggho5/EcjzZ53/1CjkzUq4tA==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.410.0.tgz", + "integrity": "sha512-d5Nc0xydkH/X0LA1HDyhGY5sEv4LuADFk+QpDtT8ogLilcre+b1jpdY8Sih/gd1KoGS1H+d1tz2hSGwUHAbUbw==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.387.0", - "@aws-sdk/middleware-logger": "3.387.0", - "@aws-sdk/middleware-recursion-detection": "3.387.0", - "@aws-sdk/middleware-user-agent": "3.387.0", - "@aws-sdk/types": "3.387.0", - "@aws-sdk/util-endpoints": "3.387.0", - "@aws-sdk/util-user-agent-browser": "3.387.0", - "@aws-sdk/util-user-agent-node": "3.387.0", - "@smithy/config-resolver": "^2.0.2", - "@smithy/fetch-http-handler": "^2.0.2", - "@smithy/hash-node": "^2.0.2", - "@smithy/invalid-dependency": "^2.0.2", - "@smithy/middleware-content-length": "^2.0.2", - "@smithy/middleware-endpoint": "^2.0.2", - "@smithy/middleware-retry": "^2.0.2", - "@smithy/middleware-serde": "^2.0.2", + "@aws-sdk/middleware-host-header": "3.410.0", + "@aws-sdk/middleware-logger": "3.410.0", + "@aws-sdk/middleware-recursion-detection": "3.410.0", + "@aws-sdk/middleware-user-agent": "3.410.0", + "@aws-sdk/types": "3.410.0", + "@aws-sdk/util-endpoints": "3.410.0", + "@aws-sdk/util-user-agent-browser": "3.410.0", + "@aws-sdk/util-user-agent-node": "3.410.0", + "@smithy/config-resolver": "^2.0.7", + "@smithy/fetch-http-handler": "^2.1.2", + "@smithy/hash-node": "^2.0.6", + "@smithy/invalid-dependency": "^2.0.6", + "@smithy/middleware-content-length": "^2.0.8", + "@smithy/middleware-endpoint": "^2.0.6", + "@smithy/middleware-retry": "^2.0.9", + "@smithy/middleware-serde": "^2.0.6", "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.2", - "@smithy/node-http-handler": "^2.0.2", + "@smithy/node-config-provider": "^2.0.9", + "@smithy/node-http-handler": "^2.1.2", "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^2.0.2", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/smithy-client": "^2.0.2", - "@smithy/types": "^2.1.0", - "@smithy/url-parser": "^2.0.2", + "@smithy/protocol-http": "^3.0.2", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/smithy-client": "^2.1.3", + "@smithy/types": "^2.3.0", + "@smithy/url-parser": "^2.0.6", "@smithy/util-base64": "^2.0.0", "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.2", - "@smithy/util-defaults-mode-node": "^2.0.2", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.7", + "@smithy/util-defaults-mode-node": "^2.0.9", "@smithy/util-retry": "^2.0.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" @@ -613,11 +613,11 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.387.0.tgz", - "integrity": "sha512-YTjFabNwjTF+6yl88f0/tWff018qmmgMmjlw45s6sdVKueWxdxV68U7gepNLF2nhaQPZa6FDOBoA51NaviVs0Q==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.410.0.tgz", + "integrity": "sha512-D7iaUCszv/v04NDaZUmCmekamy6VD/lKozm/3gS9+dkfU6cC2CsNoUfPV8BlV6dPdw0oWgF91am3I1stdvfVrQ==", "dependencies": { - "@smithy/types": "^2.1.0", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -625,11 +625,11 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.387.0.tgz", - "integrity": "sha512-g7kvuCXehGXHHBw9PkSQdwVyDFmNUZLmfrRmqMyrMDG9QLQrxr4pyWcSaYgTE16yUzhQQOR+QSey+BL6W9/N6g==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.410.0.tgz", + "integrity": "sha512-iNiqJyC7N3+8zFwnXUqcWSxrZecVZLToo1iTQQdeYL2af1IcOtRgb7n8jpAI/hmXhBSx2+3RI+Y7pxyFo1vu+w==", "dependencies": { - "@aws-sdk/types": "3.387.0", + "@aws-sdk/types": "3.410.0", "tslib": "^2.5.0" }, "engines": { @@ -648,24 +648,24 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.387.0.tgz", - "integrity": "sha512-lpgSVvDqx+JjHZCTYs/yQSS7J71dPlJeAlvxc7bmx5m+vfwKe07HAnIs+929DngS0QbAp/VaXbTiMFsInLkO4Q==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.410.0.tgz", + "integrity": "sha512-i1G/XGpXGMRT2zEiAhi1xucJsfCWk8nNYjk/LbC0sA+7B9Huri96YAzVib12wkHPsJQvZxZC6CpQDIHWm4lXMA==", "dependencies": { - "@aws-sdk/types": "3.387.0", - "@smithy/types": "^2.1.0", + "@aws-sdk/types": "3.410.0", + "@smithy/types": "^2.3.0", "bowser": "^2.11.0", "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.387.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.387.0.tgz", - "integrity": "sha512-r9OVkcWpRYatjLhJacuHFgvO2T5s/Nu5DDbScMrkUD8b4aGIIqsrdZji0vZy9FCjsUFQMM92t9nt4SejrGjChA==", + "version": "3.410.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.410.0.tgz", + "integrity": "sha512-bK70t1jHRl8HrJXd4hEIwc5PBZ7U0w+81AKFnanIVKZwZedd6nLibUXDTK14z/Jp2GFcBqd4zkt2YLGkRt/U4A==", "dependencies": { - "@aws-sdk/types": "3.387.0", - "@smithy/node-config-provider": "^2.0.2", - "@smithy/types": "^2.1.0", + "@aws-sdk/types": "3.410.0", + "@smithy/node-config-provider": "^2.0.9", + "@smithy/types": "^2.3.0", "tslib": "^2.5.0" }, "engines": { @@ -801,9 +801,9 @@ "dev": true }, "node_modules/@bugsnag/browser": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.20.2.tgz", - "integrity": "sha512-4J4s53ZpYr3hHA+QjxUjOI6U+A8+XuUVH45UshE87Jp2Y4mV8ML2DovejqJS8J8yjdbnh2z1Wtg/v3WUNt4ayQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.21.0.tgz", + "integrity": "sha512-mJ6r6SXpts+hdSnDNmTR35lZ+95BthqXpgBrDwquDCoY++zQ4OuzrkA/HZYD/rfpdSpgb7lO+AAlD7qrd9IylA==", "dependencies": { "@bugsnag/core": "^7.19.0" } @@ -826,11 +826,11 @@ "integrity": "sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==" }, "node_modules/@bugsnag/js": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.20.2.tgz", - "integrity": "sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.21.0.tgz", + "integrity": "sha512-fFTR7cRBSlLtwa1wPTse92igZUEX2V95KyGGCXq2qb2F2w6hJ6oJDxA0BMPS8qqsciYXRjbfn8HX+TFgO1oErg==", "dependencies": { - "@bugsnag/browser": "^7.20.2", + "@bugsnag/browser": "^7.21.0", "@bugsnag/node": "^7.19.0" } }, @@ -852,35 +852,6 @@ "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==" }, - "node_modules/@chevrotain/cst-dts-gen": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.5.0.tgz", - "integrity": "sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==", - "dependencies": { - "@chevrotain/gast": "10.5.0", - "@chevrotain/types": "10.5.0", - "lodash": "4.17.21" - } - }, - "node_modules/@chevrotain/gast": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-10.5.0.tgz", - "integrity": "sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==", - "dependencies": { - "@chevrotain/types": "10.5.0", - "lodash": "4.17.21" - } - }, - "node_modules/@chevrotain/types": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-10.5.0.tgz", - "integrity": "sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==" - }, - "node_modules/@chevrotain/utils": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-10.5.0.tgz", - "integrity": "sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==" - }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -890,14 +861,14 @@ } }, "node_modules/@contrast/fn-inspect": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@contrast/fn-inspect/-/fn-inspect-3.3.1.tgz", - "integrity": "sha512-BqsC5YslFxX/jgUzjAFEqnI0ngXXmUAFHUrhLSJu7lFYwTB7U1bLCUcjsZVnaO2bh0QDrmGAL/W0pe1Eu7PIIQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@contrast/fn-inspect/-/fn-inspect-3.4.0.tgz", + "integrity": "sha512-Jw6dMFEIt/FXF1ihJri2GFNayeEKQ6r+WRjjWl7MdgMup2D4vCPu99ZV8eHSMqNNkj3BEzUNC91ZaJVB1XJmfg==", "hasInstallScript": true, "optional": true, "dependencies": { - "nan": "^2.16.0", - "node-gyp-build": "^4.4.0" + "nan": "^2.17.0", + "node-gyp-build": "^4.6.0" }, "engines": { "node": ">=12.13.0" @@ -1405,11 +1376,11 @@ } }, "node_modules/@fastify/awilix": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@fastify/awilix/-/awilix-3.1.0.tgz", - "integrity": "sha512-RN5JsoYX4yzlQJFWrypYwly6IOvUd37hbUlmO+v8+hREIbuvJQl4Hyl5khOTt407kn8aisbmuW/uUbZBNq5FxQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@fastify/awilix/-/awilix-3.2.0.tgz", + "integrity": "sha512-ykv20WIJHEfwdScMRxYXbdZ8b70/JgU+CHGqRTCDxwfJVEqIny7F+hk2U3GPO1zXbYvCxYTRaehSAsQTlicTMQ==", "dependencies": { - "awilix-manager": "^1.0.1", + "awilix-manager": "^3.0.0", "fastify-plugin": "^4.1.0" }, "peerDependencies": { @@ -1417,17 +1388,6 @@ "fastify": "^4.0.0" } }, - "node_modules/@fastify/awilix/node_modules/awilix-manager": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/awilix-manager/-/awilix-manager-1.2.0.tgz", - "integrity": "sha512-n+xROMSnA0E17pqbeoDkFJuG7xlds2tIaw8zxwMJ5yMl2oW6w0qvrlADDFIe6s4+sUYeAwjeatRcXMH+yfl0NA==", - "dependencies": { - "awilix": "^8.0.1" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/@fastify/cors": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-8.3.0.tgz", @@ -1456,18 +1416,18 @@ } }, "node_modules/@fastify/helmet": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@fastify/helmet/-/helmet-11.0.0.tgz", - "integrity": "sha512-YSFhJFR4Pk2azmTkX54f0Z/O7h5j4ruCQUlagf/Rw1P45u5/2u+F+I83DRyIKryM6prXl++X2yY0Ib0RXAlZ7Q==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@fastify/helmet/-/helmet-11.1.0.tgz", + "integrity": "sha512-vajWu4/6RlmY01Lcjyr7bx/mx0SBjP9H5PPMPSm/Nrsuc+k5QrsYm600h6ZaPuYdmogazatQ6FSqr/exotsMLw==", "dependencies": { "fastify-plugin": "^4.2.1", "helmet": "^7.0.0" } }, "node_modules/@fastify/jwt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@fastify/jwt/-/jwt-7.2.0.tgz", - "integrity": "sha512-ONKobJVfFKaqUU3OEWHnkV0HVyJFfa+kzj8gEODEskhIXcf0Y8Trzsjca/Rl54VOsa5QnSgkZEXUpvChd3eUdQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@fastify/jwt/-/jwt-7.2.1.tgz", + "integrity": "sha512-CAEL8UxIIn1Baxm6GIjH7j5VNUqAijeBWF3dvxLQd+RNDYCBnVt0RtK3JV4WbfOaMsKQ0IhrxrekroWwhXYOpw==", "dependencies": { "@fastify/error": "^3.0.0", "@lukeed/ms": "^2.0.0", @@ -1524,9 +1484,9 @@ } }, "node_modules/@fastify/swagger": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.9.0.tgz", - "integrity": "sha512-Y0gqpqDZBxbnr/OWmiFI1Ub8I0jPlCSa1LvRsmnf/IDSsleqXdPnIMnxMRuXA1NpQ8TtbEWoFFMlnuOX43uv3g==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.10.0.tgz", + "integrity": "sha512-0o6nd0qWpJbVSv/vbK4bzHSYe7l+PTGPqrQVwWIXVGd7CvXr585SBx+h8EgrMOY80bcOnGreqnjYFOV0osGP5A==", "dependencies": { "fastify-plugin": "^4.0.0", "json-schema-resolver": "^2.0.0", @@ -1820,12 +1780,12 @@ "dev": true }, "node_modules/@lokalise/fastify-extras": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@lokalise/fastify-extras/-/fastify-extras-12.0.0.tgz", - "integrity": "sha512-IvLr3HdB/1wVEIVNjli9u+IF4dHe7rOJcdrEyhbX+kdaYqdXLK87RBYgK7jmC9A0wvke7Nlb1X9R9n7une5KMw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@lokalise/fastify-extras/-/fastify-extras-14.1.0.tgz", + "integrity": "sha512-a8sFOs6yd/pvc8ErdoRd0fEcdHE+GI5giRhFewcN9G7aKsQzUrvAZg4MLHoF5jUa0VNaE3WrfdKchn7CD07TvA==", "dependencies": { "@amplitude/analytics-node": "^1.3.1", - "@bugsnag/js": "^7.20.2", + "@bugsnag/js": "^7.21.0", "@opentelemetry/api": "^1.4.1", "@opentelemetry/exporter-trace-otlp-grpc": "^0.41.0", "@opentelemetry/instrumentation": "^0.41.0", @@ -1833,20 +1793,20 @@ "@opentelemetry/sdk-trace-base": "^1.14.0", "@opentelemetry/sdk-trace-node": "^1.14.0", "@opentelemetry/semantic-conventions": "^1.14.0", - "@prisma/instrumentation": "^5.0.0", + "@prisma/instrumentation": "^5.2.0", "@splitsoftware/splitio": "^10.22.6", "fastify-metrics": "^10.3.0", - "fastify-plugin": "^4.5.0", - "tslib": "^2.6.0" + "fastify-plugin": "^4.5.1", + "tslib": "^2.6.2" }, "engines": { "node": ">=18" }, "peerDependencies": { "@fastify/request-context": "^5.0.0", - "fastify": "^4.18.0", - "newrelic": "^10.1.1", - "pino": "^8.14.1" + "fastify": "^4.22.2", + "newrelic": "^11.0.0", + "pino": "^8.15.0" } }, "node_modules/@lokalise/node-core": { @@ -1890,43 +1850,32 @@ "resolved": "https://registry.npmjs.org/@message-queue-toolkit/core/-/core-3.6.0.tgz", "integrity": "sha512-P1ZrCtXOPSs/BCsGsU3mYLbLv5dCNJ4QV0fprYyW6DPFFSBTNtGpDpmnRsFxlBA5ZcwFLJ3IlHYj6sLbqab0MQ==" }, - "node_modules/@mrleebo/prisma-ast": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mrleebo/prisma-ast/-/prisma-ast-0.5.2.tgz", - "integrity": "sha512-v2jwtrLt/x5/MaF7Sucsz/do8tDUmiq3KA+UYdyZfr3OQ2IGXUtpNSXmdlvyRM+vQ7Abn/FxpLW/qqhZGB9vhQ==", - "dependencies": { - "chevrotain": "^10.4.2" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@newrelic/aws-sdk": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@newrelic/aws-sdk/-/aws-sdk-6.0.0.tgz", - "integrity": "sha512-17DwEvyDS9pAkV5kBSGtm2oIQbII0qOSAXSlU51MLA0Vp/PxNDTCBBFVgpKbGyKpPfudIJMGvh4jAmlzH3xIng==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@newrelic/aws-sdk/-/aws-sdk-7.0.0.tgz", + "integrity": "sha512-/14Y9qYomDEzFrdXogqms2CGMI9hEJECzNBSqBLT53FY/uZh6SdI4Tr5u0sEOghjCdNyF2rseW7u63bAn09Pxw==", "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "peerDependencies": { - "newrelic": ">=8.7.0" + "newrelic": ">=10.0.0" } }, "node_modules/@newrelic/koa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@newrelic/koa/-/koa-7.2.0.tgz", - "integrity": "sha512-3y/CCOLJ6sEPTKyQAmBrBP5CfZ5ak8mWt+7mWjdbblOXQh20LEsrA/KQAh/ROcTh6rV8oxsubLZ3N13LIeIoVQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@newrelic/koa/-/koa-8.0.0.tgz", + "integrity": "sha512-aaqEVLnRk12DzChCGbWthVQR4PxomqeNVVxnBF3txfHCMhDL2rkOjjcu8VYVoLkhVXrNtY0M226sYN/uqzQ+bQ==", "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "peerDependencies": { "newrelic": ">=6.11.0" } }, "node_modules/@newrelic/native-metrics": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@newrelic/native-metrics/-/native-metrics-9.0.1.tgz", - "integrity": "sha512-ZMCd6xW9PWhrWvg8Ik0oFU+XGFLbqRujh15qu3+7FJRI8163RBOD6SS8tsU0ydG8+LlaPDZQp/ODD4LvBXu5UA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@newrelic/native-metrics/-/native-metrics-10.0.1.tgz", + "integrity": "sha512-XJlKF3mCiFS/tZj6C79gdRYj+vQQtFSxbL83MMOVK/N025UHk8Oo8lF1ir7GOWk+Ll2xH4WI/t7i9SqDouXX+g==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -1935,7 +1884,7 @@ "semver": "^7.5.2" }, "engines": { - "node": ">=14", + "node": ">=16", "npm": ">=6" } }, @@ -1985,9 +1934,13 @@ } }, "node_modules/@newrelic/security-agent/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } @@ -2013,11 +1966,11 @@ } }, "node_modules/@newrelic/superagent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@newrelic/superagent/-/superagent-6.0.0.tgz", - "integrity": "sha512-5nClQp9ACd4BvLusAgFHjjKLDgAaC+dKmIsRNOPC82LOLFaoOgxxtbecnDIJ0NWCKQS+WOdmXdgYutwH+e5dsA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@newrelic/superagent/-/superagent-7.0.0.tgz", + "integrity": "sha512-fNB4NC+pJYYrFZRLcXaTb4Z7XFEfHi7fVQ3O9Qh10m/9CBM2W+Qc/6yyK9M1liRfgUGo5NOILRdjA23SS7720A==", "engines": { - "node": ">=14.0" + "node": ">=16.0" }, "peerDependencies": { "newrelic": ">=6.11.0" @@ -2680,6 +2633,12 @@ "node": ">=14" } }, + "node_modules/@prisma/prisma-fmt-wasm": { + "version": "4.17.0-16.27eb2449f178cd9fe1a4b892d732cc4795f75085", + "resolved": "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-4.17.0-16.27eb2449f178cd9fe1a4b892d732cc4795f75085.tgz", + "integrity": "sha512-zYz3rFwPB82mVlHGknAPdnSY/a308dhPOblxQLcZgZTDRtDXOE1MgxoRAys+jekwR4/bm3+rZDPs1xsFMsPZig==", + "optional": true + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -2741,11 +2700,11 @@ "dev": true }, "node_modules/@smithy/abort-controller": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.3.tgz", - "integrity": "sha512-LbQ4fdsVuQC3/18Z/uia5wnk9fk8ikfHl3laYCEGhboEMJ/6oVk3zhydqljMxBCftHGUv7yUrTnZ6EAQhOf+PA==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.7.tgz", + "integrity": "sha512-rITz65zk8QA3GQ1OeoJ3/Q4+8j/HqubWU8TBqk57BMYTOX+P+LNMoVHPqzLHhE6qKot5muhThNCYvOKNt7ojJA==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2753,11 +2712,12 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.3.tgz", - "integrity": "sha512-E+fsc6BOzFOc6U6y9ogRH8Pw2HF1NVW14AAYy7l3OTXYWuYxHb/fzDZaA0FvD/dXyFoMy7AV1rYZsGzD4bMKzw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.8.tgz", + "integrity": "sha512-e7mwQteHjo9S1GK+TfzP3o7ujE2ZK30d6wkv5brKtabrZF7MBflj9CwUP2XYuOYebdWirHOtv8ZfkMrpcbJfYw==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/types": "^2.3.1", "@smithy/util-config-provider": "^2.0.0", "@smithy/util-middleware": "^2.0.0", "tslib": "^2.5.0" @@ -2767,14 +2727,14 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.3.tgz", - "integrity": "sha512-2e85iLgSuiGQ8BBFkot88kuv6sT5DHvkDO8FDvGwNunn2ybf24HhEkaWCMxK4pUeHtnA2dMa3hZbtfmJ7KJQig==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.10.tgz", + "integrity": "sha512-may2/gYlDip2rjlU1Z5fcCEWY0Fu3tSu/HykgZrLfb2/171P6OYuz7dGNKBOCS1W57vP4W5wmUhm0WGehrixig==", "dependencies": { - "@smithy/node-config-provider": "^2.0.3", - "@smithy/property-provider": "^2.0.3", - "@smithy/types": "^2.2.0", - "@smithy/url-parser": "^2.0.3", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/property-provider": "^2.0.8", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", "tslib": "^2.5.0" }, "engines": { @@ -2782,23 +2742,23 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.3.tgz", - "integrity": "sha512-3l/uKZBsV/6uMe2qXvh1C8ut/w6JHKgy7ic7N2QPR1SSuNWKNQBX0iVBqJpPtQz0UDeQYM4cNmwDBX+hw74EEw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.7.tgz", + "integrity": "sha512-sW3AhXZhmmhh0f11EOotmNNa0rjrKwnMYNKfbp3B/qigdw6foKcmFGX+HF3XGN7w7fFeEFuXr97Ok24gRj92Xg==", "dependencies": { "@aws-crypto/crc32": "3.0.0", - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "@smithy/util-hex-encoding": "^2.0.0", "tslib": "^2.5.0" } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.3.tgz", - "integrity": "sha512-RwQeTFnc6nOP6iGjdnMFgDG8QtneHKptrVZxjc+be4KIoXGPyF3QAourxnrClxTl+MACXYUaCg6bWCozqfHMOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.7.tgz", + "integrity": "sha512-5ZKW1tUe+LD1F6dSHs+nC0vRNmMMWDJWCsw44FkhivhOB4MliGfC1ZNeO45AHD749jfJT/zcGGr2ruQT9VbThA==", "dependencies": { - "@smithy/eventstream-serde-universal": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/eventstream-serde-universal": "^2.0.7", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2806,11 +2766,11 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.3.tgz", - "integrity": "sha512-J8QzPnarBiJaPw5DBsZ5O2GHjfPHhCmKV5iVzdcAFt0PD81UWNL9HMwAKx99mY5WWPCaFKvb1yBeN2g/v4uA2w==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.7.tgz", + "integrity": "sha512-0n4LPHZt6/RAHVkwzms6U2xibmizkSYLS9HzlT86WF29X56v7OTCkMF+pUFNYZamN7iRq1Z8PM48mQsBoJPaSA==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2818,12 +2778,12 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.3.tgz", - "integrity": "sha512-085r0AHMhwVF99rlAy8RVMhXMkxay4SdSwRdDUIe4MXQ6r2957BVpm3BcoxRpjcGgnoCldRc9tCRa0TclvUS5w==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.7.tgz", + "integrity": "sha512-ZkBvDIBlJ9eJx/+CC2AY8LxAndGO+Z2FOPPprmNNDbK9/pZzVLHWGwlpsPYnA9Pc0gfOu7isIJM1yPXiK70O3A==", "dependencies": { - "@smithy/eventstream-serde-universal": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/eventstream-serde-universal": "^2.0.7", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2831,12 +2791,12 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.3.tgz", - "integrity": "sha512-51nLy47MmU9Nb4dwlwsmP1XJViP72kuLtIqTeDeRSe5Ah4xfSP/df11roEhzUmE/rUYEkErj64RHkseeuFkCgg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.7.tgz", + "integrity": "sha512-CNYEzEPDIGbfvYYN7iajPY6sVZdtGvJzSbvqgH+EvismooFj8ahydGp8IKYPnd5ge5uwTATppJ2t8149tYkS7g==", "dependencies": { - "@smithy/eventstream-codec": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/eventstream-codec": "^2.0.7", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2844,23 +2804,23 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.0.3.tgz", - "integrity": "sha512-0if2hyn+tDkyK9Tg1bXpo3IMUaezz/FKlaUTwTey3m87hF8gb7a0nKaST4NURE2eUVimViGCB7SH3/i4wFXALg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.1.3.tgz", + "integrity": "sha512-kUg+Ey4mJeR/3+Ponuhb1rsmsfZRwjCLvC+WcPgeI+ittretEzuWAPN+9anD0HJEoApVjHpndzxPtlncbCUJDQ==", "dependencies": { - "@smithy/protocol-http": "^2.0.3", - "@smithy/querystring-builder": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/querystring-builder": "^2.0.7", + "@smithy/types": "^2.3.1", "@smithy/util-base64": "^2.0.0", "tslib": "^2.5.0" } }, "node_modules/@smithy/hash-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.3.tgz", - "integrity": "sha512-wtN9eiRKEiryXrPbWQ7Acu0D3Uk65+PowtTqOslViMZNcKNlYHsxOP1S9rb2klnzA3yY1WSPO1tG78pjhRlvrQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.7.tgz", + "integrity": "sha512-aB5lvIDP1v+ZUUS8ek3XW5xnZ6jUQ86JXqG7a5jMP6AbjAc3439mIbs6+f1EQ5MtYmrQCEtRRyvv5QofvotH0w==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" @@ -2870,11 +2830,11 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.3.tgz", - "integrity": "sha512-GtmVXD/s+OZlFG1o3HfUI55aBJZXX5/iznAQkgjRGf8prYoO8GvSZLDWHXJp91arybaJxYd133oJORGf4YxGAg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.7.tgz", + "integrity": "sha512-qVOZnHFPzQo4BS47/PANHX32Y69c0tJxKBkqTL795D/DKInqBwmBO/m1gS7v0ZQqmtCuoy2l87RflQfRY2xEIw==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" } }, @@ -2890,12 +2850,12 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.3.tgz", - "integrity": "sha512-2FiZ5vu2+iMRL8XWNaREUqqNHjtBubaY9Jb2b3huZ9EbgrXsJfCszK6PPidHTLe+B4T7AISqdF4ZSp9VPXuelg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.9.tgz", + "integrity": "sha512-2XVFsGqswxrIBi0w4Njwzb1zsbte26U513K+WPFm9z6SB/3WR5/VBVjTaTcamrXznTAqBjTwTL0Ysisv1dW0Rw==", "dependencies": { - "@smithy/protocol-http": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2903,13 +2863,13 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.0.3.tgz", - "integrity": "sha512-gNleUHhu5OKk/nrA6WbpLUk/Wk2hcyCvaw7sZiKMazs+zdzWb0kYzynRf675uCWolbvlw9BvkrVaSJo5TRz+Mg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.0.7.tgz", + "integrity": "sha512-4/L0wV7PzHEprJB0gazSTIwlW/2cCfwC9EHavUMhoCyl1tLer6CJwDbAMit1IMvwbHkwuKopueb8dFPHfpS2Pw==", "dependencies": { - "@smithy/middleware-serde": "^2.0.3", - "@smithy/types": "^2.2.0", - "@smithy/url-parser": "^2.0.3", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", "@smithy/util-middleware": "^2.0.0", "tslib": "^2.5.0" }, @@ -2918,13 +2878,14 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.3.tgz", - "integrity": "sha512-BpfaUwgOh8LpWP/x6KBb5IdBmd5+tEpTKIjDt7LWi3IVOYmRX5DjQo1eCEUqlKS1nxws/T7+/IyzvgBq8gF9rw==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.10.tgz", + "integrity": "sha512-VwAQOR5Rh/y9BzUgb5DzUk7qYBiMZu3pEQa5EwwAf/F7lpMuNildGrAxtDmsXk90490FJwa6LyFknXP3kO5BnA==", "dependencies": { - "@smithy/protocol-http": "^2.0.3", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/protocol-http": "^3.0.3", "@smithy/service-error-classification": "^2.0.0", - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "@smithy/util-middleware": "^2.0.0", "@smithy/util-retry": "^2.0.0", "tslib": "^2.5.0", @@ -2935,11 +2896,11 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.3.tgz", - "integrity": "sha512-5BxuOKL7pXqesvtunniDlvYQXVr7UJEF5nFVoK6+5chf5wplLA8IZWAn3NUcGq/f1u01w2m2q7atCoA6ftRLKA==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.7.tgz", + "integrity": "sha512-tOldis4PUNafdGErLZ+33p9Pf3MmTlLa176X321Z6ZaCf1XNEow9m3T5vXrcHErVAvjPG0mp3l54J94HnPc+rQ==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2958,13 +2919,13 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.0.3.tgz", - "integrity": "sha512-dYSVxOQMqtdmSOBW/J4RPvSYE4KKdGLgFHDJQGNsGo1d3y9IoNLwE32lT7doWwV0ryntlm4QZZwhfb3gISrTtA==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.0.10.tgz", + "integrity": "sha512-e5MiLH5Eu+BbYsmhZIkvUKCzite6JCBPL75PNjlRK2TWvSpfp19hNf2SiJIQbPalcFj5zlyBvtcEkF1sfYIdhg==", "dependencies": { - "@smithy/property-provider": "^2.0.3", - "@smithy/shared-ini-file-loader": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/property-provider": "^2.0.8", + "@smithy/shared-ini-file-loader": "^2.0.9", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2972,14 +2933,14 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.0.3.tgz", - "integrity": "sha512-wUO78aa0VVJVz54Lr1Nw6FYnkatbvh2saHgkT8fdtNWc7I/osaPMUJnRkBmTZZ5w+BIQ1rvr9dbGyYBTlRg2+Q==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.3.tgz", + "integrity": "sha512-TGkgpx68SqvbspVHaG3iwqP2mKYOT4whiq7Kv2X9v+InngL4MkpH3LQ0Dk7kbloahZr+hAOyb6s8D7T8TXRrzA==", "dependencies": { - "@smithy/abort-controller": "^2.0.3", - "@smithy/protocol-http": "^2.0.3", - "@smithy/querystring-builder": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/abort-controller": "^2.0.7", + "@smithy/protocol-http": "^3.0.3", + "@smithy/querystring-builder": "^2.0.7", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2987,11 +2948,11 @@ } }, "node_modules/@smithy/property-provider": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.3.tgz", - "integrity": "sha512-SHV1SINUNysJ5HyPrMLHLkdofgalk9+5FnQCB/985hqcUxstN616hPZ7ngOjLpdhKp0yu1ul/esE9Gd4qh1tgg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.8.tgz", + "integrity": "sha512-oaaP/i7bGG8XbxG9Kx4PZh83iJ2jo/vt8RmJdi9hmc8APBaW1HGDperVXDCyPQdVYXmiqrtxc/rPImyBma1G3A==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -2999,11 +2960,11 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-2.0.3.tgz", - "integrity": "sha512-yzBYloviSLOwo2RT62vBRCPtk8mc/O2RMJfynEahbX8ZnduHpKaajvx3IuGubhamIbesi7M5HBVecDehBnlb9Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.3.tgz", + "integrity": "sha512-UGfmQNdijlFV+UzgdRyfe05S5vLDdcdkvNcxhGvQ+Er7TjUkZSxjukQB9VXtT8oTHztgOMX74DDlPBsVzZR5Pg==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -3011,11 +2972,11 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.3.tgz", - "integrity": "sha512-HPSviVgGj9FT4jPdprkfSGF3nhFzpQMST1hOC1Oh6eaRB2KTQCsOZmS7U4IqGErVPafe6f/yRa1DV73B5gO50w==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.7.tgz", + "integrity": "sha512-RPHnqt4iH1Kwp1Zbf4gJI88hZiynEZjE5hEWJNBmKqCe1Q6v7HBLtaovTaiuYaMEmPyb2KxOi3lISAdT6uuPqw==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "@smithy/util-uri-escape": "^2.0.0", "tslib": "^2.5.0" }, @@ -3024,11 +2985,11 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.3.tgz", - "integrity": "sha512-AaiZ2osstDbmOTz5uY+96o0G1E7k1U7dCYrNT8FFcyffdhScTzG7fXr12f5peie2W0XFu2Ub+b6tQwFuZwPoBA==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.7.tgz", + "integrity": "sha512-Cwi/Hgs73nbLKfgH7dXAxzvDxyTrK+BLrlAd0KXU7xcBR94V132nvxoq39BMWckYAPmnMwxCwq8uusNH4Dnagw==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -3044,11 +3005,11 @@ } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.0.3.tgz", - "integrity": "sha512-1Vgco3K0rN5YG2OStoS2zUrBzdcFqgqp475rGdag206PCh7AHzmVSGXL6OpWPAqZl29WUqXfMP8tHOLG0H6vkA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.0.9.tgz", + "integrity": "sha512-vBLgJI+Qpz1TZ0W2kUBOmG2Q+geVEhiXE99UX02+UFag2WzOQ6frvV6rpadwJu0uwF02GG620NbiKGboqZ19YA==", "dependencies": { - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -3056,13 +3017,13 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.3.tgz", - "integrity": "sha512-AZ+951EAcNqas2RTq4xQvuX4uZqPV/zCcbs7ACqpuxcjYAFU2FKRPpQHqsDN0jbJwI3Scw75xhSKcGWFf2/Olg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.7.tgz", + "integrity": "sha512-qNCJpyhRWxT5RWmeSo/Zv+miQ60Y/D2JmPdFw7v2WpPVxVK7JDpqUbvq0QYE+dBGPX/uagAkE3NvJUcn0fTE3A==", "dependencies": { - "@smithy/eventstream-codec": "^2.0.3", + "@smithy/eventstream-codec": "^2.0.7", "@smithy/is-array-buffer": "^2.0.0", - "@smithy/types": "^2.2.0", + "@smithy/types": "^2.3.1", "@smithy/util-hex-encoding": "^2.0.0", "@smithy/util-middleware": "^2.0.0", "@smithy/util-uri-escape": "^2.0.0", @@ -3074,13 +3035,13 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.0.3.tgz", - "integrity": "sha512-YP0HakPOJgvX2wvPEAGH9GB3NfuQE8CmBhR13bWtqWuIErmJnInTiSQcLSc0QiXHclH/8Qlq+qjKCR7N/4wvtQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.4.tgz", + "integrity": "sha512-KRQvYYjEGqvmwnKSAZ8EL0hZvPxGQMYbAKS/AMGq2fuRmwAlinSVJ/fkIs65bZp2oYjcskd1ZgKcP+2UDjNPTQ==", "dependencies": { "@smithy/middleware-stack": "^2.0.0", - "@smithy/types": "^2.2.0", - "@smithy/util-stream": "^2.0.3", + "@smithy/types": "^2.3.1", + "@smithy/util-stream": "^2.0.10", "tslib": "^2.5.0" }, "engines": { @@ -3088,9 +3049,9 @@ } }, "node_modules/@smithy/types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.2.0.tgz", - "integrity": "sha512-Ahpt9KvD0mWeWiyaGo5EBE7KOByLl3jl4CD9Ps/r8qySgzVzo/4qsa+vvstOU3ZEriALmrPqUKIhqHt0Rn+m6g==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.3.1.tgz", + "integrity": "sha512-cS48e4Yawb6pGakj7DBJUIPFIkqnUWyXTe2ndPRNagD73b6kEJqTc8bhTyfUve0A+sijK256UKE0J1juAfCeDA==", "dependencies": { "tslib": "^2.5.0" }, @@ -3099,12 +3060,12 @@ } }, "node_modules/@smithy/url-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.3.tgz", - "integrity": "sha512-O7NlbDL4kh+th6qwtL7wNRcPCuOXFRWJzWKywfB/Nv56N1F8KiK0KbPn1z7MU5du/0LgjAMvhkg0mVDyiMCnqw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.7.tgz", + "integrity": "sha512-SwMl1Lq3yFR2hzhwWYKg04uJHpfcXWMBPycm4Z8GkLI6Dw7rJNDApEbMtujlYw6pVP2WKbrpaGHjQ9MdP92kMQ==", "dependencies": { - "@smithy/querystring-parser": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/querystring-parser": "^2.0.7", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" } }, @@ -3129,9 +3090,9 @@ } }, "node_modules/@smithy/util-body-length-node": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.0.0.tgz", - "integrity": "sha512-ZV7Z/WHTMxHJe/xL/56qZwSUcl63/5aaPAGjkfynJm4poILjdD4GmFI+V+YWabh2WJIjwTKZ5PNsuvPQKt93Mg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz", + "integrity": "sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==", "dependencies": { "tslib": "^2.5.0" }, @@ -3163,12 +3124,12 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.3.tgz", - "integrity": "sha512-t9cirP55wYeSfDjjvPHSjNiuZj3wc9W3W3fjLXaVzuKKlKX98B9Vj7QM9WHJnFjJdsrYEwolLA8GVdqZeHOkHg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.8.tgz", + "integrity": "sha512-8znx01mkmfKxhiSB2bOF5eMutuCLMd8m2Kh0ulRp8vgzhwRLDJoU6aHSEUoNptbuTAtiFf4u0gpkYC2XfbWwuA==", "dependencies": { - "@smithy/property-provider": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/property-provider": "^2.0.8", + "@smithy/types": "^2.3.1", "bowser": "^2.11.0", "tslib": "^2.5.0" }, @@ -3177,15 +3138,15 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.3.tgz", - "integrity": "sha512-Gca+fL0h+tl8cbvoLDMWCVzs1CL4jWLWvz/I6MCYZzaEAKkmd1qO4kPzBeGaI6hGA/IbrlWCFg7L+MTPzLwzfg==", - "dependencies": { - "@smithy/config-resolver": "^2.0.3", - "@smithy/credential-provider-imds": "^2.0.3", - "@smithy/node-config-provider": "^2.0.3", - "@smithy/property-provider": "^2.0.3", - "@smithy/types": "^2.2.0", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.10.tgz", + "integrity": "sha512-QUcUckL4ZqDFVwLnh7zStRUnXtTC6hcJZ4FmMqnxlPcL33Rko0sMQwrMDnMdzF3rS3wvqugAaq3zzop1HCluvw==", + "dependencies": { + "@smithy/config-resolver": "^2.0.8", + "@smithy/credential-provider-imds": "^2.0.10", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/property-provider": "^2.0.8", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -3227,13 +3188,13 @@ } }, "node_modules/@smithy/util-stream": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.3.tgz", - "integrity": "sha512-+8n2vIyp6o9KHGey0PoGatcDthwVb7C/EzWfqojXrHhZOXy6l+hnWlfoF8zVerKYH2CUtravdJKRTy7vdkOXfQ==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.10.tgz", + "integrity": "sha512-2EgK5cBiv9OaDmhSXmsZY8ZByBl1dg/Tbc51iBJ5GkLGVYhaA6/1l6vHHV41m4Im3D0XfZV1tmeLlQgmRnYsTQ==", "dependencies": { - "@smithy/fetch-http-handler": "^2.0.3", - "@smithy/node-http-handler": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/types": "^2.3.1", "@smithy/util-base64": "^2.0.0", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-hex-encoding": "^2.0.0", @@ -3268,12 +3229,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.3.tgz", - "integrity": "sha512-3/Fzqoyecvh4cNvcHQDl1GznskXjGc9uZ8N6aoaPCKfsctgZad/J13xg8WC1UXc3PwKocHtuUvz0dRFDLaBppQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.7.tgz", + "integrity": "sha512-lIY4GOmrSwMiGHhm++1ea0MdKx5y4V39ue4eNg4yxmip1hiuCLxkfXGZVLh0JPxBxAzbQw+E/5TPfY4w/RBkNw==", "dependencies": { - "@smithy/abort-controller": "^2.0.3", - "@smithy/types": "^2.2.0", + "@smithy/abort-controller": "^2.0.7", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -3507,9 +3468,9 @@ "dev": true }, "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" }, "node_modules/@types/semver": { "version": "7.5.0", @@ -3535,9 +3496,9 @@ "dev": true }, "node_modules/@types/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.3.tgz", + "integrity": "sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g==" }, "node_modules/@types/ws": { "version": "8.5.5", @@ -3549,16 +3510,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz", - "integrity": "sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz", + "integrity": "sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.6.0", - "@typescript-eslint/type-utils": "6.6.0", - "@typescript-eslint/utils": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0", + "@typescript-eslint/scope-manager": "6.7.0", + "@typescript-eslint/type-utils": "6.7.0", + "@typescript-eslint/utils": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -3584,15 +3545,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz", - "integrity": "sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.0.tgz", + "integrity": "sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.6.0", - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/typescript-estree": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0", + "@typescript-eslint/scope-manager": "6.7.0", + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", "debug": "^4.3.4" }, "engines": { @@ -3612,13 +3573,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz", - "integrity": "sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", + "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0" + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -3629,13 +3590,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz", - "integrity": "sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz", + "integrity": "sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.6.0", - "@typescript-eslint/utils": "6.6.0", + "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/utils": "6.7.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -3656,9 +3617,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz", - "integrity": "sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.0.tgz", + "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -3669,13 +3630,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz", - "integrity": "sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", + "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0", + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3696,17 +3657,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.6.0.tgz", - "integrity": "sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.0.tgz", + "integrity": "sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.6.0", - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/typescript-estree": "6.6.0", + "@typescript-eslint/scope-manager": "6.7.0", + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.0", "semver": "^7.5.4" }, "engines": { @@ -3721,12 +3682,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz", - "integrity": "sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", + "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.6.0", + "@typescript-eslint/types": "6.7.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -4380,9 +4341,9 @@ } }, "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", "engines": { "node": "*" } @@ -4758,19 +4719,6 @@ "node": "*" } }, - "node_modules/chevrotain": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-10.5.0.tgz", - "integrity": "sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==", - "dependencies": { - "@chevrotain/cst-dts-gen": "10.5.0", - "@chevrotain/gast": "10.5.0", - "@chevrotain/types": "10.5.0", - "@chevrotain/utils": "10.5.0", - "lodash": "4.17.21", - "regexp-to-ast": "0.5.0" - } - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -6556,9 +6504,9 @@ } }, "node_modules/fastify": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.22.2.tgz", - "integrity": "sha512-rK8mF/1mZJHH6H/L22OhmilTgrp5XMkk3RHcSy03LC+TJ6+wLhbq+4U62bjns15VzIbBNgxTqAForBqtGAa0NQ==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.23.2.tgz", + "integrity": "sha512-WFSxsHES115svC7NrerNqZwwM0UOxbC/P6toT9LRHgAAFvG7o2AN5W+H4ihCtOGuYXjZf4z+2jXC89rVEoPWOA==", "dependencies": { "@fastify/ajv-compiler": "^3.5.0", "@fastify/error": "^3.2.0", @@ -6575,7 +6523,7 @@ "rfdc": "^1.3.0", "secure-json-parse": "^2.5.0", "semver": "^7.5.0", - "tiny-lru": "^11.0.1" + "toad-cache": "^3.2.0" } }, "node_modules/fastify-custom-healthcheck": { @@ -8244,9 +8192,9 @@ } }, "node_modules/layered-loader": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/layered-loader/-/layered-loader-11.0.1.tgz", - "integrity": "sha512-8uY6eJRy3DUaDFQigIAX6FLE1pkglfBrU/RKNKwoo9db2SWqnDf0Bl75sHWo3PcJ0uGg1d5lpYO+QKcAGmgFqw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/layered-loader/-/layered-loader-12.3.0.tgz", + "integrity": "sha512-QyY/PTlvPFzBVrBnZaKbFpX7H2bT/+XaPWO7Tjcsq5hd8pPKm9dbiCVacklBSToGmCaNS2EM6L6cjlFokJdefg==", "dependencies": { "toad-cache": "^3.2.0" }, @@ -8781,9 +8729,9 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "optional": true }, "node_modules/nanoid": { @@ -8841,23 +8789,24 @@ } }, "node_modules/newrelic": { - "version": "10.6.2", - "resolved": "https://registry.npmjs.org/newrelic/-/newrelic-10.6.2.tgz", - "integrity": "sha512-eCne93dEXcXsoFhjFnFJF6AO1PDhMZGA4G8i/sf5YjpaYXyUNfWacsDHQUM+0r1cf/BW8gL8HEVmIIW5uyAaXA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/newrelic/-/newrelic-11.1.0.tgz", + "integrity": "sha512-TMpUUuVOTjVQs9cp6DsSocf9pQYyQ2QHp3cFYOUZyxfJewjvb4J9TG6uZZP9xN+0olDt2oef/d6eZNTAFM3tsw==", "dependencies": { "@grpc/grpc-js": "^1.8.10", "@grpc/proto-loader": "^0.7.5", - "@mrleebo/prisma-ast": "^0.5.2", - "@newrelic/aws-sdk": "^6.0.0", - "@newrelic/koa": "^7.1.1", + "@newrelic/aws-sdk": "^7.0.0", + "@newrelic/koa": "^8.0.0", "@newrelic/security-agent": "0.2.1", - "@newrelic/superagent": "^6.0.0", + "@newrelic/superagent": "^7.0.0", "@tyriar/fibonacci-heap": "^2.0.7", "concat-stream": "^2.0.0", "https-proxy-agent": "^7.0.1", + "import-in-the-middle": "^1.4.2", "json-bigint": "^1.0.0", "json-stringify-safe": "^5.0.0", "readable-stream": "^3.6.1", + "require-in-the-middle": "^7.2.0", "semver": "^7.5.2", "winston-transport": "^4.5.0" }, @@ -8865,12 +8814,13 @@ "newrelic-naming-rules": "bin/test-naming-rules.js" }, "engines": { - "node": ">=14", + "node": ">=16", "npm": ">=6.0.0" }, "optionalDependencies": { "@contrast/fn-inspect": "^3.3.0", - "@newrelic/native-metrics": "^9.0.1" + "@newrelic/native-metrics": "^10.0.0", + "@prisma/prisma-fmt-wasm": "^4.17.0-16.27eb2449f178cd9fe1a4b892d732cc4795f75085" } }, "node_modules/newrelic/node_modules/agent-base": { @@ -8885,9 +8835,9 @@ } }, "node_modules/newrelic/node_modules/https-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz", - "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -8959,9 +8909,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -10301,11 +10251,6 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/regexp-to-ast": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", - "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==" - }, "node_modules/regexp.prototype.flags": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", @@ -10345,9 +10290,9 @@ } }, "node_modules/require-in-the-middle": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.1.1.tgz", - "integrity": "sha512-OScOjQjrrjhAdFpQmnkE/qbIBGCRFhQB/YaJhcC3CPOlmhe7llnW46Ac1J5+EjcNXOTnDdpF96Erw/yedsGksQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz", + "integrity": "sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==", "dependencies": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", @@ -11395,14 +11340,6 @@ "real-require": "^0.2.0" } }, - "node_modules/tiny-lru": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.0.1.tgz", - "integrity": "sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg==", - "engines": { - "node": ">=12" - } - }, "node_modules/tinybench": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", @@ -11498,9 +11435,12 @@ } }, "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } }, "node_modules/ts-api-utils": { "version": "1.0.1", @@ -11678,9 +11618,9 @@ } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/type-check": { "version": "0.4.0", diff --git a/package.json b/package.json index 726c7237..5988726a 100644 --- a/package.json +++ b/package.json @@ -31,18 +31,18 @@ }, "dependencies": { "@fastify/auth": "^4.3.0", - "@fastify/awilix": "^3.1.0", + "@fastify/awilix": "^3.2.0", "@fastify/cors": "^8.3.0", - "@fastify/helmet": "^11.0.0", - "@fastify/jwt": "^7.2.0", + "@fastify/helmet": "^11.1.0", + "@fastify/jwt": "^7.2.1", "@fastify/schedule": "^4.1.1", - "@fastify/swagger": "^8.9.0", + "@fastify/swagger": "^8.10.0", "@fastify/swagger-ui": "^1.9.3", - "@lokalise/fastify-extras": "^12.0.0", + "@lokalise/fastify-extras": "^14.1.0", "@lokalise/node-core": "^6.3.2", "@lokalise/zod-extras": "^2.0.0", "@message-queue-toolkit/amqp": "^3.5.0", - "@message-queue-toolkit/core": "^3.5.0", + "@message-queue-toolkit/core": "^3.6.0", "@prisma/client": "^5.2.0", "@prisma/instrumentation": "^5.2.0", "amqplib": "^0.10.3", @@ -50,7 +50,7 @@ "awilix-manager": "^3.1.0", "croner": "^7.0.1", "dotenv": "^16.3.1", - "fastify": "^4.22.2", + "fastify": "^4.23.2", "fastify-custom-healthcheck": "^3.1.0", "fastify-graceful-shutdown": "^3.5.1", "fastify-metrics": "^10.3.0", @@ -58,8 +58,8 @@ "fastify-type-provider-zod": "^1.1.9", "ioredis": "^5.3.2", "jsonwebtoken": "^9.0.2", - "layered-loader": "^11.0.1", - "newrelic": "10.6.2", + "layered-loader": "^12.3.0", + "newrelic": "11.1.0", "pino": "^8.15.1", "pino-pretty": "^10.2.0", "redis-semaphore": "^5.5.0", @@ -74,8 +74,8 @@ "@types/jsonwebtoken": "^9.0.2", "@types/newrelic": "^9.14.0", "@types/node": "^20.6.0", - "@typescript-eslint/eslint-plugin": "^6.6.0", - "@typescript-eslint/parser": "^6.6.0", + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", "@vitest/coverage-v8": "^0.34.4", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", diff --git a/src/app.e2e.test.ts b/src/app.e2e.test.ts index 537bc95f..bb850ef2 100644 --- a/src/app.e2e.test.ts +++ b/src/app.e2e.test.ts @@ -1,7 +1,6 @@ import { buildClient, sendGet } from '@lokalise/node-core' import type { FastifyInstance } from 'fastify' -import type { TestContext } from '../test/TestContext' import { createTestContext } from '../test/TestContext' import { getApp } from './app' @@ -21,7 +20,7 @@ describe('app', () => { describe('healthcheck', () => { it('Returns health check information', async () => { - const response = await app.inject().get('/health').end() + const response = await app.inject().get('/').end() expect(response.json()).toMatchObject({ healthChecks: { @@ -34,12 +33,15 @@ describe('app', () => { }) it('Returns public health check information', async () => { - const response = await app.inject().get('/').end() + const response = await app.inject().get('/health').end() expect(response.json()).toMatchObject({ gitCommitSha: 'sha', heartbeat: 'HEALTHY', - status: 'OK', + checks: { + mysql: 'HEALTHY', + redis: 'HEALTHY', + }, version: '1', }) expect(response.statusCode).toBe(200) @@ -52,6 +54,17 @@ describe('app', () => { expect(response.result.statusCode).toBe(200) }) + + it('Returns Prometheus healthcheck metrics', async () => { + const response = await sendGet(buildClient('http://127.0.0.1:9080'), '/metrics') + + expect(response.result.statusCode).toBe(200) + expect(response.result.body).toContain('redis_availability 1') + expect(response.result.body).toContain('redis_latency_msecs ') + + expect(response.result.body).toContain('mysql_availability 1') + expect(response.result.body).toContain('mysql_latency_msecs ') + }) }) describe('OpenAPI documentation', () => { diff --git a/src/app.ts b/src/app.ts index 0207792c..1d935b13 100644 --- a/src/app.ts +++ b/src/app.ts @@ -21,6 +21,7 @@ import { requestContextProviderPlugin, publicHealthcheckPlugin, amplitudePlugin, + healthcheckMetricsPlugin, } from '@lokalise/fastify-extras' import { resolveGlobalErrorLogObject } from '@lokalise/node-core' import { resolveAmqpConnection } from '@message-queue-toolkit/amqp' @@ -52,6 +53,7 @@ import { redisHealthCheck, registerHealthChecks, runAllHealthchecks, + wrapHealthCheckForPrometheus, } from './infrastructure/healthchecks' import { resolveLoggerConfiguration } from './infrastructure/logger' import { getRoutes } from './modules/routes' @@ -226,9 +228,18 @@ export async function getApp( }, ) + if (configOverrides.monitoringEnabled) { + await app.register(metricsPlugin, { + bindAddress: appConfig.bindAddress, + errorObjectResolver: resolveGlobalErrorLogObject, + loggerOptions: loggerConfig, + disablePrometheusRequestLogging: true, + }) + } + if (configOverrides.healthchecksEnabled !== false) { await app.register(customHealthCheck, { - path: '/health', + path: '/', logLevel: 'warn', info: { env: appConfig.nodeEnv, @@ -239,25 +250,37 @@ export async function getApp( exposeFailure: false, }) await app.register(publicHealthcheckPlugin, { - healthChecks: [dbHealthCheck, redisHealthCheck], + url: '/health', + healthChecks: [ + { + name: 'mysql', + isMandatory: true, + checker: dbHealthCheck, + }, + { + name: 'redis', + isMandatory: true, + checker: redisHealthCheck, + }, + ], responsePayload: { version: appConfig.appVersion, gitCommitSha: appConfig.gitCommitSha, - status: 'OK', }, }) + + if (configOverrides.monitoringEnabled) { + await app.register(healthcheckMetricsPlugin, { + healthChecks: [ + wrapHealthCheckForPrometheus(redisHealthCheck, 'redis'), + wrapHealthCheckForPrometheus(dbHealthCheck, 'mysql'), + ], + }) + } } await app.register(requestContextProviderPlugin) // Vendor-specific plugins - if (configOverrides.monitoringEnabled) { - await app.register(metricsPlugin, { - bindAddress: appConfig.bindAddress, - errorObjectResolver: resolveGlobalErrorLogObject, - loggerOptions: loggerConfig, - disablePrometheusRequestLogging: true, - }) - } await app.register(newrelicTransactionManagerPlugin, { isEnabled: config.vendors.newrelic.isEnabled, }) diff --git a/src/infrastructure/commonDiConfig.ts b/src/infrastructure/commonDiConfig.ts index 139e1e42..97ea69dd 100644 --- a/src/infrastructure/commonDiConfig.ts +++ b/src/infrastructure/commonDiConfig.ts @@ -21,7 +21,8 @@ import type { Config } from './config' import type { ExternalDependencies } from './diConfig' import { SINGLETON_CONFIG } from './diConfig' -export type CommonDiConfig = Record> +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type CommonDiConfig = Record> export function resolveCommonDiConfig( dependencies: ExternalDependencies = { logger: globalLogger }, diff --git a/src/infrastructure/diConfig.ts b/src/infrastructure/diConfig.ts index 03e43306..7c23a903 100644 --- a/src/infrastructure/diConfig.ts +++ b/src/infrastructure/diConfig.ts @@ -47,7 +47,8 @@ export function registerDependencies( } } -type DiConfig = Record> +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type DiConfig = Record> export type Dependencies = CommonDependencies & UsersModuleDependencies diff --git a/src/infrastructure/healthchecks.ts b/src/infrastructure/healthchecks.ts index bdc83121..7c59ca1d 100644 --- a/src/infrastructure/healthchecks.ts +++ b/src/infrastructure/healthchecks.ts @@ -1,11 +1,15 @@ import { types } from 'node:util' -import type { HealthCheck } from '@lokalise/fastify-extras' +import type { + HealthChecker, + HealthcheckResult, + PrometheusHealthCheck, +} from '@lokalise/fastify-extras' import type { Either } from '@lokalise/node-core' -import { executeAsyncAndHandleGlobalErrors } from '@lokalise/node-core' +import { executeSettleAllAndHandleGlobalErrors } from '@lokalise/node-core' import type { FastifyInstance } from 'fastify' -export const wrapHealthCheck = (app: FastifyInstance, healthCheck: HealthCheck) => { +export const wrapHealthCheck = (app: FastifyInstance, healthCheck: HealthChecker) => { return async () => { const response = await healthCheck(app) if (response.error) { @@ -14,7 +18,26 @@ export const wrapHealthCheck = (app: FastifyInstance, healthCheck: HealthCheck) } } -export const redisHealthCheck: HealthCheck = async (app): Promise> => { +export const wrapHealthCheckForPrometheus = ( + healthCheck: HealthChecker, + healthcheckName: string, +): PrometheusHealthCheck => { + return { + name: healthcheckName, + checker: async (app: FastifyInstance): Promise => { + const startTime = Date.now() + const response = await healthCheck(app) + const checkTimeInMsecs = Date.now() - startTime + + return { + checkPassed: !!response.result, + checkTimeInMsecs, + } + }, + } +} + +export const redisHealthCheck: HealthChecker = async (app): Promise> => { const redis = app.diContainer.cradle.redis try { @@ -28,7 +51,7 @@ export const redisHealthCheck: HealthCheck = async (app): Promise> => { +export const dbHealthCheck: HealthChecker = async (app): Promise> => { const prisma = app.diContainer.cradle.prisma try { const response = await prisma.$queryRaw`SELECT 1` @@ -57,12 +80,8 @@ export function registerHealthChecks(app: FastifyInstance) { } export async function runAllHealthchecks(app: FastifyInstance) { - return executeAsyncAndHandleGlobalErrors( - () => - Promise.all([ - wrapHealthCheck(app, dbHealthCheck)(), - wrapHealthCheck(app, redisHealthCheck)(), - ]), + return executeSettleAllAndHandleGlobalErrors( + [wrapHealthCheck(app, dbHealthCheck)(), wrapHealthCheck(app, redisHealthCheck)()], false, ) } diff --git a/src/modules/users/datasources/UserDataSource.ts b/src/modules/users/datasources/UserDataSource.ts index de6959a8..3248957c 100644 --- a/src/modules/users/datasources/UserDataSource.ts +++ b/src/modules/users/datasources/UserDataSource.ts @@ -15,4 +15,8 @@ export class UserDataSource implements DataSource { get(userId: string): Promise { return this.userRepository.getUser(Number.parseInt(userId)) } + + getMany(keys: string[]): Promise { + return this.userRepository.getUsers(keys.map(Number.parseInt)) + } } diff --git a/src/modules/users/diConfig.ts b/src/modules/users/diConfig.ts index 62032f15..c210a923 100644 --- a/src/modules/users/diConfig.ts +++ b/src/modules/users/diConfig.ts @@ -27,7 +27,8 @@ const IN_MEMORY_CONFIGURATION_BASE: InMemoryCacheConfiguration = { cacheType: 'fifo-object', } -type UsersDiConfig = Record> +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type UsersDiConfig = Record> export type UsersModuleDependencies = { userRepository: UserRepository diff --git a/src/plugins/jwtTokenPlugin.ts b/src/plugins/jwtTokenPlugin.ts index c5ab3663..ea2c7110 100644 --- a/src/plugins/jwtTokenPlugin.ts +++ b/src/plugins/jwtTokenPlugin.ts @@ -18,7 +18,7 @@ function plugin( fastify.addHook( 'onRequest', (req: FastifyRequest, res: FastifyReply, done: HookHandlerDoneFunction) => { - if (pluginOptions.skipList.has(req.routerPath)) { + if (pluginOptions.skipList.has(req.routeOptions.url)) { return done() }