diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b42a6a2c..c36c2cd6a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,11 +46,11 @@ jobs: - name: Prettier code style check run: | cd tdrive - docker compose -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn node npm run lint:prettier + docker compose -f docker-compose.dev.deps.yml -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn node npm run lint:prettier - name: Lint run: | cd tdrive - docker compose -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn node npm run lint + docker compose -f docker-compose.dev.deps.yml -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn node npm run lint test-backend: runs-on: ubuntu-latest @@ -62,16 +62,16 @@ jobs: - name: e2e-mongo-s3-test run: | cd tdrive - docker compose -f docker-compose.tests.yml run --rm -e NODE_OPTIONS=--unhandled-rejections=warn node npm run test:all - docker compose -f docker-compose.tests.yml down + docker compose -f docker-compose.dev.deps.yml -f docker-compose.tests.yml run --rm -e NODE_OPTIONS=--unhandled-rejections=warn node npm run test:all + docker compose -f docker-compose.dev.deps.yml -f docker-compose.tests.yml down - name: e2e-opensearch-test run: | cd tdrive - docker compose -f docker-compose.dev.tests.opensearch.yml up -d --force-recreate opensearch-node1 postgres node av + docker compose -f docker-compose.dev.deps.yml -f docker-compose.dev.tests.opensearch.yml up -d --force-recreate opensearch-node1 postgres node av sleep 60 - docker compose -f docker-compose.dev.tests.opensearch.yml logs - docker compose -f docker-compose.dev.tests.opensearch.yml run -e NODE_OPTIONS=--unhandled-rejections=warn -e SEARCH_DRIVER=opensearch -e DB_DRIVER=postgres -e PUBSUB_TYPE=local node npm run test:all - docker compose -f docker-compose.dev.tests.opensearch.yml down + docker compose -f docker-compose.dev.deps.yml -f docker-compose.dev.tests.opensearch.yml logs + docker compose -f docker-compose.dev.deps.yml -f docker-compose.dev.tests.opensearch.yml run -e NODE_OPTIONS=--unhandled-rejections=warn -e SEARCH_DRIVER=opensearch -e DB_DRIVER=postgres -e PUBSUB_TYPE=local node npm run test:all + docker compose -f docker-compose.dev.deps.yml -f docker-compose.dev.tests.opensearch.yml down build-frontend: runs-on: ubuntu-latest diff --git a/tdrive/backend/node/config/custom-environment-variables.json b/tdrive/backend/node/config/custom-environment-variables.json index 3e337b868..ca0771ce0 100644 --- a/tdrive/backend/node/config/custom-environment-variables.json +++ b/tdrive/backend/node/config/custom-environment-variables.json @@ -18,6 +18,7 @@ }, "webserver": { "host": "TWAKE_DRIVE_HOST", + "port": "TWAKE_DRIVE_PORT", "logger": { "level": "LOG_LEVEL" }, @@ -144,5 +145,9 @@ "debugMode": "AV_DEBUG_MODE", "timeout": "AV_TIMEOUT", "maxFileSize": "AV_MAX_FILE_SIZE" + }, + "services": { + "__name": "SERVICES_LIST", + "__format": "json" } } diff --git a/tdrive/backend/node/package-lock.json b/tdrive/backend/node/package-lock.json index 02f6ad54b..08406a06c 100644 --- a/tdrive/backend/node/package-lock.json +++ b/tdrive/backend/node/package-lock.json @@ -22,7 +22,7 @@ "@ffprobe-installer/ffprobe": "^1.4.1", "@opensearch-project/opensearch": "^2.4.0", "@segment/analytics-node": "^2.1.2", - "@sentry/node": "^6.19.7", + "@sentry/node": "^8.37.1", "@sentry/tracing": "^6.19.7", "@socket.io/redis-adapter": "^7.2.0", "@types/http-proxy": "^1.17.14", @@ -103,7 +103,7 @@ "@types/html-to-text": "^8.1.1", "@types/jest": "^29.5.12", "@types/lodash": "^4.14.165", - "@types/node": "^18.11", + "@types/node": "^20.14.8", "@types/node-cron": "^3.0.0", "@types/node-fetch": "^2.5.12", "@types/node-uuid": "^0.0.28", @@ -131,12 +131,12 @@ "pino-pretty": "^10.0.0", "prettier": "^2.1.2", "rimraf": "^3.0.2", - "ts-jest": "^29.1.2", + "ts-jest": "^29.2.5", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", "tsc-watch": "^4.2.9", "tsconfig-paths": "^4.2.0", - "typescript": "^5.4.5" + "typescript": "^5.6.3" } }, "node_modules/@ampproject/remapping": { @@ -2248,6 +2248,1005 @@ "node": ">=14" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.54.1.tgz", + "integrity": "sha512-tFOyYT8tFRSuUc+pEXnHG99270y7K8MSBLQSPiYBJ/0cgCp+8KmSej4joBfah0JoXAwbPzMCom3ri0xsiYbLvg==", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/context-async-hooks": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.27.0.tgz", + "integrity": "sha512-CdZ3qmHCwNhFAzjTgHqrDQ44Qxcpz43cVxZRhOs+Ns/79ug+Mr84Bkb626bkJLkA3+BLimA5YAEVRlJC6pFb7g==", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.27.0.tgz", + "integrity": "sha512-yQPKnK5e+76XuiqUH/gKyS8wv/7qITd5ln56QkBTf3uggr0VkXOXfcaAuG330UfdYu83wsyoBwqwxigpIG+Jkg==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.54.1.tgz", + "integrity": "sha512-z5EapvWSHnHwk1NnIF++x9IIe9U83/Bna9xYMHCpZ9EWDfNzMBwg/fOZtwLa2zbX2oEd+Qoze34M+Pujd92IyQ==", + "dependencies": { + "@opentelemetry/api-logs": "0.54.1", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-amqplib": { + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.42.0.tgz", + "integrity": "sha512-fiuU6OKsqHJiydHWgTRQ7MnIrJ2lEqsdgFtNIH4LbAUJl/5XmrIeoDzDnox+hfkgWK65jsleFuQDtYb5hW1koQ==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-amqplib/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-amqplib/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-connect": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.40.0.tgz", + "integrity": "sha512-3aR/3YBQ160siitwwRLjwqrv2KBT16897+bo6yz8wIfel6nWOxTZBJudcbsK3p42pTC7qrbotJ9t/1wRLpv79Q==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.54.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/connect": "3.4.36" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-connect/node_modules/@types/connect": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", + "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@opentelemetry/instrumentation-dataloader": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.12.0.tgz", + "integrity": "sha512-pnPxatoFE0OXIZDQhL2okF//dmbiWFzcSc8pUg9TqofCLYZySSxDCgQc69CJBo5JnI3Gz1KP+mOjS4WAeRIH4g==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-express": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.44.0.tgz", + "integrity": "sha512-GWgibp6Q0wxyFaaU8ERIgMMYgzcHmGrw3ILUtGchLtLncHNOKk0SNoWGqiylXWWT4HTn5XdV8MGawUgpZh80cA==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.54.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fastify": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.41.0.tgz", + "integrity": "sha512-pNRjFvf0mvqfJueaeL/qEkuGJwgtE5pgjIHGYwjc2rMViNCrtY9/Sf+Nu8ww6dDd/Oyk2fwZZP7i0XZfCnETrA==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.54.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fs": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.16.0.tgz", + "integrity": "sha512-hMDRUxV38ln1R3lNz6osj3YjlO32ykbHqVrzG7gEhGXFQfu7LJUx8t9tEwE4r2h3CD4D0Rw4YGDU4yF4mP3ilg==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.54.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-generic-pool": { + "version": "0.39.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.39.0.tgz", + "integrity": "sha512-y4v8Y+tSfRB3NNBvHjbjrn7rX/7sdARG7FuK6zR8PGb28CTa0kHpEGCJqvL9L8xkTNvTXo+lM36ajFGUaK1aNw==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-generic-pool/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-generic-pool/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-graphql": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.44.0.tgz", + "integrity": "sha512-FYXTe3Bv96aNpYktqm86BFUTpjglKD0kWI5T5bxYkLUPEPvFn38vWGMJTGrDMVou/i55E4jlWvcm6hFIqLsMbg==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.54.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-hapi": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.41.0.tgz", + "integrity": "sha512-jKDrxPNXDByPlYcMdZjNPYCvw0SQJjN+B1A+QH+sx+sAHsKSAf9hwFiJSrI6C4XdOls43V/f/fkp9ITkHhKFbQ==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-http": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.53.0.tgz", + "integrity": "sha512-H74ErMeDuZfj7KgYCTOFGWF5W9AfaPnqLQQxeFq85+D29wwV2yqHbz2IKLYpkOh7EI6QwDEl7rZCIxjJLyc/CQ==", + "dependencies": { + "@opentelemetry/core": "1.26.0", + "@opentelemetry/instrumentation": "0.53.0", + "@opentelemetry/semantic-conventions": "1.27.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.26.0.tgz", + "integrity": "sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-ioredis": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.43.0.tgz", + "integrity": "sha512-i3Dke/LdhZbiUAEImmRG3i7Dimm/BD7t8pDDzwepSvIQ6s2X6FPia7561gw+64w+nx0+G9X14D7rEfaMEmmjig==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/redis-common": "^0.36.2", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-kafkajs": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.4.0.tgz", + "integrity": "sha512-I9VwDG314g7SDL4t8kD/7+1ytaDBRbZQjhVaQaVIDR8K+mlsoBhLsWH79yHxhHQKvwCSZwqXF+TiTOhoQVUt7A==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.54.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-koa": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.43.0.tgz", + "integrity": "sha512-lDAhSnmoTIN6ELKmLJBplXzT/Jqs5jGZehuG22EdSMaTwgjMpxMDI1YtlKEhiWPWkrz5LUsd0aOO0ZRc9vn3AQ==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-koa/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-koa/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-lru-memoizer": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.40.0.tgz", + "integrity": "sha512-21xRwZsEdMPnROu/QsaOIODmzw59IYpGFmuC4aFWvMj6stA8+Ei1tX67nkarJttlNjoM94um0N4X26AD7ff54A==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongodb": { + "version": "0.48.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.48.0.tgz", + "integrity": "sha512-9YWvaGvrrcrydMsYGLu0w+RgmosLMKe3kv/UNlsPy8RLnCkN2z+bhhbjjjuxtUmvEuKZMCoXFluABVuBr1yhjw==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.54.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongoose": { + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.42.0.tgz", + "integrity": "sha512-AnWv+RaR86uG3qNEMwt3plKX1ueRM7AspfszJYVkvkehiicC3bHQA6vWdb6Zvy5HAE14RyFbu9+2hUUjR2NSyg==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongoose/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-mongoose/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.41.0.tgz", + "integrity": "sha512-jnvrV6BsQWyHS2qb2fkfbfSb1R/lmYwqEZITwufuRl37apTopswu9izc0b1CYRp/34tUG/4k/V39PND6eyiNvw==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/mysql": "2.15.26" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql2": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.41.0.tgz", + "integrity": "sha512-REQB0x+IzVTpoNgVmy5b+UnH1/mDByrneimP6sbDHkp1j8QOl1HyWOrBH/6YWR0nrbU3l825Em5PlybjT3232g==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@opentelemetry/sql-common": "^0.40.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql2/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql2/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-nestjs-core": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.40.0.tgz", + "integrity": "sha512-WF1hCUed07vKmf5BzEkL0wSPinqJgH7kGzOjjMAiTGacofNXjb/y4KQ8loj2sNsh5C/NN7s1zxQuCgbWbVTGKg==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.44.0.tgz", + "integrity": "sha512-oTWVyzKqXud1BYEGX1loo2o4k4vaU1elr3vPO8NZolrBtFvQ34nx4HgUaexUDuEog00qQt+MLR5gws/p+JXMLQ==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@opentelemetry/sql-common": "^0.40.1", + "@types/pg": "8.6.1", + "@types/pg-pool": "2.0.6" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/@types/pg": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", + "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg/node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@opentelemetry/instrumentation-redis-4": { + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.42.0.tgz", + "integrity": "sha512-NaD+t2JNcOzX/Qa7kMy68JbmoVIV37fT/fJYzLKu2Wwd+0NCxt+K2OOsOakA8GVg8lSpFdbx4V/suzZZ2Pvdjg==", + "dependencies": { + "@opentelemetry/instrumentation": "^0.53.0", + "@opentelemetry/redis-common": "^0.36.2", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-undici": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.6.0.tgz", + "integrity": "sha512-ABJBhm5OdhGmbh0S/fOTE4N69IZ00CsHC5ijMYfzbw3E5NwLgpQk5xsljaECrJ8wz1SfXbO03FiSuu5AyRAkvQ==", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.53.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.7.0" + } + }, + "node_modules/@opentelemetry/instrumentation-undici/node_modules/@opentelemetry/api-logs": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz", + "integrity": "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-undici/node_modules/@opentelemetry/instrumentation": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz", + "integrity": "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==", + "dependencies": { + "@opentelemetry/api-logs": "0.53.0", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/redis-common": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", + "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.27.0.tgz", + "integrity": "sha512-jOwt2VJ/lUD5BLc+PMNymDrUCpm5PKi1E9oSVYAvz01U/VdndGmrtV3DU1pG4AwlYhJRHbHfOUIlpBeXCPw6QQ==", + "dependencies": { + "@opentelemetry/core": "1.27.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.27.0.tgz", + "integrity": "sha512-btz6XTQzwsyJjombpeqCX6LhiMQYpzt2pIYNPnw0IPO/3AhT6yjnf8Mnv3ZC2A4eRYOjqrg+bfaXg9XHDRJDWQ==", + "dependencies": { + "@opentelemetry/core": "1.27.0", + "@opentelemetry/resources": "1.27.0", + "@opentelemetry/semantic-conventions": "1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz", + "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sql-common": { + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", + "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", + "dependencies": { + "@opentelemetry/core": "^1.1.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2257,6 +3256,46 @@ "node": ">=14" } }, + "node_modules/@prisma/instrumentation": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-5.19.1.tgz", + "integrity": "sha512-VLnzMQq7CWroL5AeaW0Py2huiNKeoMfCH3SUxstdzPrlWQi6UQ9UrfcbUkNHlVFqOMacqy8X/8YtE0kuKDpD9w==", + "dependencies": { + "@opentelemetry/api": "^1.8", + "@opentelemetry/instrumentation": "^0.49 || ^0.50 || ^0.51 || ^0.52.0", + "@opentelemetry/sdk-trace-base": "^1.22" + } + }, + "node_modules/@prisma/instrumentation/node_modules/@opentelemetry/api-logs": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz", + "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==", + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation": { + "version": "0.52.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz", + "integrity": "sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==", + "dependencies": { + "@opentelemetry/api-logs": "0.52.1", + "@types/shimmer": "^1.0.2", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, "node_modules/@segment/analytics-core": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@segment/analytics-core/-/analytics-core-1.6.0.tgz", @@ -2352,18 +3391,34 @@ } }, "node_modules/@sentry/core": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", - "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.37.1.tgz", + "integrity": "sha512-82csXby589iDupM3VgCHJeWZagUyEEaDnbFcoZ/Z91QX2Sjq8FcF5OsforoXjw09i0XTFqlkFAnQVpDBmMXcpQ==", "dependencies": { - "@sentry/hub": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" + "@sentry/types": "8.37.1", + "@sentry/utils": "8.37.1" }, "engines": { - "node": ">=6" + "node": ">=14.18" + } + }, + "node_modules/@sentry/core/node_modules/@sentry/types": { + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.37.1.tgz", + "integrity": "sha512-ryMOTROLSLINKFEbHWvi7GigNrsQhsaScw2NddybJGztJQ5UhxIGESnxGxWCufBmWFDwd7+5u0jDPCVUJybp7w==", + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry/core/node_modules/@sentry/utils": { + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.37.1.tgz", + "integrity": "sha512-Qtn2IfpII12K17txG/ZtTci35XYjYi4CxbQ3j7nXY7toGv/+MqPXwV5q2i9g94XaSXlE5Wy9/hoCZoZpZs/djA==", + "dependencies": { + "@sentry/types": "8.37.1" + }, + "engines": { + "node": ">=14.18" } }, "node_modules/@sentry/hub": { @@ -2393,21 +3448,106 @@ } }, "node_modules/@sentry/node": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", - "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-8.37.1.tgz", + "integrity": "sha512-ACRZmqOBHRPKsyVhnDR4+RH1QQr7WMdH7RNl62VlKNZGLvraxW1CUqTSeNUFUuOwks3P6nozROSQs8VMSC/nVg==", + "dependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/context-async-hooks": "^1.25.1", + "@opentelemetry/core": "^1.25.1", + "@opentelemetry/instrumentation": "^0.54.0", + "@opentelemetry/instrumentation-amqplib": "^0.42.0", + "@opentelemetry/instrumentation-connect": "0.40.0", + "@opentelemetry/instrumentation-dataloader": "0.12.0", + "@opentelemetry/instrumentation-express": "0.44.0", + "@opentelemetry/instrumentation-fastify": "0.41.0", + "@opentelemetry/instrumentation-fs": "0.16.0", + "@opentelemetry/instrumentation-generic-pool": "0.39.0", + "@opentelemetry/instrumentation-graphql": "0.44.0", + "@opentelemetry/instrumentation-hapi": "0.41.0", + "@opentelemetry/instrumentation-http": "0.53.0", + "@opentelemetry/instrumentation-ioredis": "0.43.0", + "@opentelemetry/instrumentation-kafkajs": "0.4.0", + "@opentelemetry/instrumentation-koa": "0.43.0", + "@opentelemetry/instrumentation-lru-memoizer": "0.40.0", + "@opentelemetry/instrumentation-mongodb": "0.48.0", + "@opentelemetry/instrumentation-mongoose": "0.42.0", + "@opentelemetry/instrumentation-mysql": "0.41.0", + "@opentelemetry/instrumentation-mysql2": "0.41.0", + "@opentelemetry/instrumentation-nestjs-core": "0.40.0", + "@opentelemetry/instrumentation-pg": "0.44.0", + "@opentelemetry/instrumentation-redis-4": "0.42.0", + "@opentelemetry/instrumentation-undici": "0.6.0", + "@opentelemetry/resources": "^1.26.0", + "@opentelemetry/sdk-trace-base": "^1.26.0", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@prisma/instrumentation": "5.19.1", + "@sentry/core": "8.37.1", + "@sentry/opentelemetry": "8.37.1", + "@sentry/types": "8.37.1", + "@sentry/utils": "8.37.1", + "import-in-the-middle": "^1.11.2" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry/node/node_modules/@sentry/types": { + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.37.1.tgz", + "integrity": "sha512-ryMOTROLSLINKFEbHWvi7GigNrsQhsaScw2NddybJGztJQ5UhxIGESnxGxWCufBmWFDwd7+5u0jDPCVUJybp7w==", + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry/node/node_modules/@sentry/utils": { + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.37.1.tgz", + "integrity": "sha512-Qtn2IfpII12K17txG/ZtTci35XYjYi4CxbQ3j7nXY7toGv/+MqPXwV5q2i9g94XaSXlE5Wy9/hoCZoZpZs/djA==", + "dependencies": { + "@sentry/types": "8.37.1" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry/opentelemetry": { + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-8.37.1.tgz", + "integrity": "sha512-P/Rp7R+qNiRYz9qtVMV12YL9CIrZjzXWGVUBZjJayHu37jdvMowCol5G850QPYy0E2O0AQnFtxBno2yeURn8QQ==", + "dependencies": { + "@sentry/core": "8.37.1", + "@sentry/types": "8.37.1", + "@sentry/utils": "8.37.1" + }, + "engines": { + "node": ">=14.18" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/core": "^1.25.1", + "@opentelemetry/instrumentation": "^0.54.0", + "@opentelemetry/sdk-trace-base": "^1.26.0", + "@opentelemetry/semantic-conventions": "^1.27.0" + } + }, + "node_modules/@sentry/opentelemetry/node_modules/@sentry/types": { + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.37.1.tgz", + "integrity": "sha512-ryMOTROLSLINKFEbHWvi7GigNrsQhsaScw2NddybJGztJQ5UhxIGESnxGxWCufBmWFDwd7+5u0jDPCVUJybp7w==", + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry/opentelemetry/node_modules/@sentry/utils": { + "version": "8.37.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.37.1.tgz", + "integrity": "sha512-Qtn2IfpII12K17txG/ZtTci35XYjYi4CxbQ3j7nXY7toGv/+MqPXwV5q2i9g94XaSXlE5Wy9/hoCZoZpZs/djA==", "dependencies": { - "@sentry/core": "6.19.7", - "@sentry/hub": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" + "@sentry/types": "8.37.1" }, "engines": { - "node": ">=6" + "node": ">=14.18" } }, "node_modules/@sentry/tracing": { @@ -2820,12 +3960,20 @@ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true }, + "node_modules/@types/mysql": { + "version": "2.15.26", + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", + "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { - "version": "18.19.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", - "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/node-cron": { @@ -2883,7 +4031,6 @@ "version": "8.11.6", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz", "integrity": "sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==", - "dev": true, "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -2894,7 +4041,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", - "dev": true, "dependencies": { "@types/pg": "*" } @@ -2984,6 +4130,11 @@ "@types/node": "*" } }, + "node_modules/@types/shimmer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" + }, "node_modules/@types/socket.io-client": { "version": "1.4.36", "resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.36.tgz", @@ -3309,7 +4460,6 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -3317,6 +4467,14 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -3784,9 +4942,9 @@ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -4471,8 +5629,7 @@ "node_modules/cjs-module-lexer": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==" }, "node_modules/clamscan": { "version": "2.4.0", @@ -4774,14 +5931,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/cookie-signature": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.1.tgz", @@ -4991,11 +6140,11 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -5006,11 +6155,6 @@ } } }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/decamelize": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", @@ -5330,9 +6474,9 @@ } }, "node_modules/dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", "engines": { "node": ">=4" } @@ -5405,6 +6549,21 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.756", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.756.tgz", @@ -5475,16 +6634,16 @@ } }, "node_modules/engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", + "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "~0.4.1", + "cookie": "~0.7.2", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", @@ -5514,6 +6673,14 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -6111,9 +7278,9 @@ "integrity": "sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==" }, "node_modules/fast-xml-parser": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz", - "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", "funding": [ { "type": "github", @@ -6262,6 +7429,36 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -6283,9 +7480,9 @@ } }, "node_modules/find-my-way": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.0.tgz", - "integrity": "sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.2.tgz", + "integrity": "sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-querystring": "^1.0.0", @@ -7213,6 +8410,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-in-the-middle": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz", + "integrity": "sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==", + "dependencies": { + "acorn": "^8.8.2", + "acorn-import-attributes": "^1.9.5", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -7333,7 +8541,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -7587,6 +8794,24 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -8589,19 +9814,19 @@ } }, "node_modules/light-my-request": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.13.0.tgz", - "integrity": "sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.14.0.tgz", + "integrity": "sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==", "dependencies": { - "cookie": "^0.6.0", + "cookie": "^0.7.0", "process-warning": "^3.0.0", "set-cookie-parser": "^2.4.1" } }, "node_modules/light-my-request/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "engines": { "node": ">= 0.6" } @@ -8952,12 +10177,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -9145,6 +10370,11 @@ "obliterator": "^2.0.1" } }, + "node_modules/module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" + }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -9336,9 +10566,9 @@ "dev": true }, "node_modules/njwt": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/njwt/-/njwt-2.0.0.tgz", - "integrity": "sha512-1RcqirhCqThBEe4KO83pFg0wPBa1c9NiXNCrocD2EbZqb6ksWWDVnp/w/p0gsyUcVa05PhhaaPjs9rc/GLmdxQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/njwt/-/njwt-2.0.1.tgz", + "integrity": "sha512-HwFeZsPJ1aOhIjMjqT9Qv7BOsQbkxjRVPPSdFXNOTEkfKpr9+O6OX+dSN6TxxIErSYSqrmlDR4H2zOGOpEbZLA==", "dependencies": { "@types/node": "^15.0.1", "ecdsa-sig-formatter": "^1.0.5", @@ -9612,8 +10842,7 @@ "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "node_modules/oidc-token-hash": { "version": "5.0.3", @@ -9917,8 +11146,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.10.2", @@ -10051,7 +11279,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz", "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==", - "dev": true, "engines": { "node": ">=4" } @@ -10073,7 +11300,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", - "dev": true, "dependencies": { "pg-int8": "1.0.1", "pg-numeric": "1.0.2", @@ -10428,7 +11654,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", - "dev": true, "engines": { "node": ">=12" } @@ -10437,7 +11662,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", - "dev": true, "dependencies": { "obuf": "~1.1.2" }, @@ -10449,7 +11673,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", - "dev": true, "engines": { "node": ">=12" } @@ -10458,7 +11681,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", - "dev": true, "engines": { "node": ">=12" } @@ -10466,8 +11688,7 @@ "node_modules/postgres-range": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.4.tgz", - "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==", - "dev": true + "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==" }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -10982,6 +12203,19 @@ "node": ">=0.10.0" } }, + "node_modules/require-in-the-middle": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", + "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "dependencies": { + "debug": "^4.3.5", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -10991,7 +12225,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -11232,12 +12465,9 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -11245,22 +12475,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -11350,6 +12564,11 @@ "node": ">=8" } }, + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, "node_modules/short-uuid": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/short-uuid/-/short-uuid-4.2.2.tgz", @@ -11428,15 +12647,15 @@ } }, "node_modules/socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" }, @@ -11876,7 +13095,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -12149,28 +13367,30 @@ } }, "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", "jest-util": "^29.0.0", "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" }, "bin": { "ts-jest": "cli.js" }, "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", "@jest/types": "^29.0.0", "babel-jest": "^29.0.0", "jest": "^29.0.0", @@ -12180,6 +13400,9 @@ "@babel/core": { "optional": true }, + "@jest/transform": { + "optional": true + }, "@jest/types": { "optional": true }, @@ -12457,9 +13680,9 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -12492,9 +13715,9 @@ "dev": true }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" }, "node_modules/universalify": { "version": "2.0.1", diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index 6bc3eb2b5..1629bd159 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -70,7 +70,7 @@ "@types/html-to-text": "^8.1.1", "@types/jest": "^29.5.12", "@types/lodash": "^4.14.165", - "@types/node": "^18.11", + "@types/node": "^20.14.8", "@types/node-cron": "^3.0.0", "@types/node-fetch": "^2.5.12", "@types/node-uuid": "^0.0.28", @@ -98,12 +98,12 @@ "pino-pretty": "^10.0.0", "prettier": "^2.1.2", "rimraf": "^3.0.2", - "ts-jest": "^29.1.2", + "ts-jest": "^29.2.5", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", "tsc-watch": "^4.2.9", "tsconfig-paths": "^4.2.0", - "typescript": "^5.4.5" + "typescript": "^5.6.3" }, "dependencies": { "@elastic/elasticsearch": "7", @@ -119,7 +119,7 @@ "@ffprobe-installer/ffprobe": "^1.4.1", "@opensearch-project/opensearch": "^2.4.0", "@segment/analytics-node": "^2.1.2", - "@sentry/node": "^6.19.7", + "@sentry/node": "^8.37.1", "@sentry/tracing": "^6.19.7", "@socket.io/redis-adapter": "^7.2.0", "@types/http-proxy": "^1.17.14", diff --git a/tdrive/backend/node/src/core/platform/services/message-queue/index.ts b/tdrive/backend/node/src/core/platform/services/message-queue/index.ts index b2baf2145..c14de528c 100644 --- a/tdrive/backend/node/src/core/platform/services/message-queue/index.ts +++ b/tdrive/backend/node/src/core/platform/services/message-queue/index.ts @@ -63,9 +63,6 @@ export class MessageQueueService implements MessageQueueServiceAPI { @SkipCLI() async init(): Promise { - logger.info("Initializing message-queue adapter %o", this.adapter.type); - await this.adapter?.init?.(); - return this; } @@ -74,7 +71,8 @@ export class MessageQueueService implements MessageQueueServiceAPI { logger.info("Starting message-queue adapter %o", this.adapter.type); await this.adapter?.start?.(); await this.processor.start(); - + logger.info("Initializing message-queue adapter %o", this.adapter.type); + await this.adapter?.init?.(); return this; } diff --git a/tdrive/backend/node/src/services/av/service/index.ts b/tdrive/backend/node/src/services/av/service/index.ts index 8774d891e..8bcf44fbf 100644 --- a/tdrive/backend/node/src/services/av/service/index.ts +++ b/tdrive/backend/node/src/services/av/service/index.ts @@ -13,8 +13,8 @@ export class AVServiceImpl implements TdriveServiceProvider, Initializable { version: "1"; av: NodeClam = null; logger: TdriveLogger = getLogger("Antivirus Service"); - avEnabled = getConfigOrDefault("drive.featureAntivirus", false); - private MAX_FILE_SIZE = getConfigOrDefault("av.maxFileSize", 26214400); // 25 MB + avEnabled: boolean = getConfigOrDefault("drive.featureAntivirus", false); + private MAX_FILE_SIZE: number = getConfigOrDefault("av.maxFileSize", 26214400); // 25 MB async init(): Promise { try { @@ -23,11 +23,11 @@ export class AVServiceImpl implements TdriveServiceProvider, Initializable { removeInfected: false, // Do not remove infected files quarantineInfected: false, // Do not quarantine, just alert scanLog: null, // No log file for this test - debugMode: getConfigOrDefault("av.debugMode", false), // Enable debug messages + debugMode: getConfigOrDefault("av.debugMode", false), // Enable debug messages clamdscan: { - host: getConfigOrDefault("av.host", "localhost"), // IP of the server - port: getConfigOrDefault("av.port", 3310) as number, // ClamAV server port - timeout: getConfigOrDefault("av.timeout", 2000), // Timeout for scans + host: getConfigOrDefault("av.host", "localhost"), // IP of the server + port: getConfigOrDefault("av.port", 3310) as number, // ClamAV server port + timeout: getConfigOrDefault("av.timeout", 2000), // Timeout for scans localFallback: true, // Use local clamscan if needed }, }); diff --git a/tdrive/backend/node/src/services/documents/services/index.ts b/tdrive/backend/node/src/services/documents/services/index.ts index 221a32333..43bb13d33 100644 --- a/tdrive/backend/node/src/services/documents/services/index.ts +++ b/tdrive/backend/node/src/services/documents/services/index.ts @@ -73,9 +73,9 @@ export class DocumentsService { userRepository: Repository; ROOT: RootType = "root"; TRASH: TrashType = "trash"; - quotaEnabled: boolean = getConfigOrDefault("drive.featureUserQuota", false); - defaultQuota: number = getConfigOrDefault("drive.defaultUserQuota", 0); - manageAccessEnabled: boolean = getConfigOrDefault("drive.featureManageAccess", false); + quotaEnabled: boolean = getConfigOrDefault("drive.featureUserQuota", false); + defaultQuota: number = getConfigOrDefault("drive.defaultUserQuota", 0); + manageAccessEnabled: boolean = getConfigOrDefault("drive.featureManageAccess", false); logger: TdriveLogger = getLogger("Documents Service"); async init(): Promise { @@ -478,7 +478,7 @@ export class DocumentsService { await updateItemSize(driveItem.parent_id, this.repository, context); // If AV feature is enabled, scan the file - if (globalResolver.services.av?.avEnabled && version) { + if (!driveItem.is_directory && globalResolver.services.av?.avEnabled && version) { try { driveItem.av_status = await globalResolver.services.av.scanDocument( driveItem, diff --git a/tdrive/backend/node/src/services/global-resolver.ts b/tdrive/backend/node/src/services/global-resolver.ts index f3897b49e..1d1197fef 100644 --- a/tdrive/backend/node/src/services/global-resolver.ts +++ b/tdrive/backend/node/src/services/global-resolver.ts @@ -8,7 +8,6 @@ import { CronAPI } from "../core/platform/services/cron/api"; import { DatabaseServiceAPI } from "../core/platform/services/database/api"; import EmailPusherAPI from "../core/platform/services/email-pusher/provider"; import { MessageQueueServiceAPI } from "../core/platform/services/message-queue/api"; -import { PushServiceAPI } from "../core/platform/services/push/api"; import { SearchServiceAPI } from "../core/platform/services/search/api"; import StorageAPI from "../core/platform/services/storage/provider"; import TrackerAPI from "../core/platform/services/tracker/provider"; @@ -32,7 +31,6 @@ import { UserServiceImpl } from "./user/services/users/service"; import { WorkspaceServiceImpl } from "./workspaces/services/workspace"; import { AVServiceImpl } from "./av/service"; -import { PreviewEngine } from "./previews/services/files/engine"; import { I18nService } from "./i18n"; import { getConfigOrDefault } from "../utils/get-config"; @@ -41,7 +39,6 @@ type PlatformServices = { counter: CounterAPI; cron: CronAPI; messageQueue: MessageQueueServiceAPI; - push: PushServiceAPI; search: SearchServiceAPI; storage: StorageAPI; tracker: TrackerAPI; @@ -94,7 +91,6 @@ class GlobalResolver { counter: platform.getProvider("counter"), cron: platform.getProvider("cron"), messageQueue: platform.getProvider("message-queue"), - push: platform.getProvider("push"), search: platform.getProvider("search"), storage: platform.getProvider("storage"), tracker: platform.getProvider("tracker"), @@ -109,8 +105,6 @@ class GlobalResolver { assert(service, `Platform service ${key} was not initialized`); }); - await new PreviewEngine().init(); - this.services = { workspaces: await new WorkspaceServiceImpl().init(), companies: await new CompanyServiceImpl().init(), @@ -136,7 +130,7 @@ class GlobalResolver { }; // AV service is optional - if (getConfigOrDefault("drive.featureAntivirus", false)) + if (getConfigOrDefault("drive.featureAntivirus", false)) this.services.av = await new AVServiceImpl().init(); Object.keys(this.services).forEach((key: keyof TdriveServices) => { diff --git a/tdrive/backend/node/src/services/previews/index.ts b/tdrive/backend/node/src/services/previews/index.ts index 8008de0f9..471c0dec8 100644 --- a/tdrive/backend/node/src/services/previews/index.ts +++ b/tdrive/backend/node/src/services/previews/index.ts @@ -1,6 +1,9 @@ -import { Prefix, TdriveService } from "../../core/platform/framework"; +import { Consumes, Prefix, TdriveService } from "../../core/platform/framework"; +import { PreviewEngine } from "./services/files/engine"; +import { MessageQueueServiceAPI } from "src/core/platform/services/message-queue/api"; @Prefix("/internal/services/previews/v1") +@Consumes(["message-queue", "files"]) export default class PreviewsService extends TdriveService { version = "1"; name = "previews"; @@ -13,4 +16,11 @@ export default class PreviewsService extends TdriveService { api(): undefined { return undefined; } + + async doStart(): Promise { + await new PreviewEngine( + this.context.getProvider("message-queue").processor, + ).init(); + return this; + } } diff --git a/tdrive/backend/node/src/services/previews/services/files/engine/index.ts b/tdrive/backend/node/src/services/previews/services/files/engine/index.ts index 0d04a2b5e..d819cc0ec 100644 --- a/tdrive/backend/node/src/services/previews/services/files/engine/index.ts +++ b/tdrive/backend/node/src/services/previews/services/files/engine/index.ts @@ -1,15 +1,17 @@ import { Initializable } from "../../../../../core/platform/framework"; import { ClearProcessor } from "./clear"; import { PreviewProcessor } from "./service"; -import gr from "../../../../global-resolver"; +import { Processor } from "src/core/platform/services/message-queue/processor"; /** * The notification engine is in charge of processing data and delivering user notifications on the right place */ export class PreviewEngine implements Initializable { + constructor(readonly processor: Processor) {} + async init(): Promise { - gr.platformServices.messageQueue.processor.addHandler(new PreviewProcessor()); - gr.platformServices.messageQueue.processor.addHandler(new ClearProcessor()); + this.processor.addHandler(new PreviewProcessor()); + this.processor.addHandler(new ClearProcessor()); return this; } } diff --git a/tdrive/backend/node/src/utils/get-config.ts b/tdrive/backend/node/src/utils/get-config.ts index 24d71beb1..abf07f4dd 100644 --- a/tdrive/backend/node/src/utils/get-config.ts +++ b/tdrive/backend/node/src/utils/get-config.ts @@ -1,5 +1,12 @@ import config from "config"; -export const getConfigOrDefault = (key: string, defaultValue: any) => { - return config.has(key) ? config.get(key) : defaultValue; +export const getConfigOrDefault = (key: string, defaultValue: T): T => { + const value = config.has(key) ? config.get(key) : defaultValue; + + // Handle specific cases for boolean + if (typeof defaultValue === "boolean") { + return (value === "true" || value === true) as T; + } + + return value as T; }; diff --git a/tdrive/backend/node/test/e2e/av/av.spec.ts b/tdrive/backend/node/test/e2e/av/av.spec.ts index 86cdd0260..88246dfe2 100644 --- a/tdrive/backend/node/test/e2e/av/av.spec.ts +++ b/tdrive/backend/node/test/e2e/av/av.spec.ts @@ -1,7 +1,7 @@ import "./load_test_config"; import "reflect-metadata"; import { afterAll, beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { init, initWithDefaults, TestPlatform } from "../setup"; import { deserialize } from "class-transformer"; import UserApi from "../common/user-api"; import { DriveItemDetailsMockClass } from "../common/entities/mock_entities"; @@ -19,22 +19,7 @@ describe("The documents antivirus", () => { ); beforeEach(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "files", - "auth", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); }); afterAll(async () => { diff --git a/tdrive/backend/node/test/e2e/console/backchannel-logout.spec.ts b/tdrive/backend/node/test/e2e/console/backchannel-logout.spec.ts index 3d7d53d09..7ffb788d0 100644 --- a/tdrive/backend/node/test/e2e/console/backchannel-logout.spec.ts +++ b/tdrive/backend/node/test/e2e/console/backchannel-logout.spec.ts @@ -1,5 +1,5 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { init, initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import UserApi from "../common/user-api"; @@ -15,24 +15,7 @@ describe("The /backchannel_logout API", () => { }); beforeAll(async () => { - platform = await init({ - services: [ - "database", - "search", - "message-queue", - "websocket", - "applications", - "webserver", - "user", - "auth", - "storage", - "counter", - "console", - "workspaces", - "statistics", - "platform-services", - ], - }); + platform = await initWithDefaults(); testDbService = await TestDbService.getInstance(platform); }); diff --git a/tdrive/backend/node/test/e2e/documents/documents-browser.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-browser.spec.ts index 025175ca9..3811463d6 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-browser.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-browser.spec.ts @@ -1,6 +1,5 @@ import { describe, beforeEach, afterEach, it, expect, afterAll } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; -import { TestDbService } from "../utils.prepare.db"; +import {initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; describe("The Documents Browser Window and API", () => { @@ -11,22 +10,7 @@ describe("The Documents Browser Window and API", () => { let files: any; beforeEach(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "files", - "auth", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); sharedWIthMeFolder = "shared_with_me"; myDriveId = "user_" + currentUser.user.id; @@ -37,7 +21,7 @@ describe("The Documents Browser Window and API", () => { expect(Array.from(files.entries())).toHaveLength(UserApi.ALL_FILES.length); }); - afterAll(async () => { + afterEach(async () => { await platform?.tearDown(); // @ts-ignore platform = null; diff --git a/tdrive/backend/node/test/e2e/documents/documents-manage-access.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-manage-access.spec.ts index 91403c575..6900859da 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-manage-access.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-manage-access.spec.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; import config from "config"; @@ -28,26 +28,7 @@ describe("The Drive feature", () => { }); // Initialize platform with required services - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "messages", - "auth", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); }); afterEach(async () => { diff --git a/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts index e8b588869..ba5bd6fa1 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-notifications.spec.ts @@ -1,5 +1,5 @@ import { describe, beforeEach, it, expect, afterAll, jest } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; import * as utils from "../../../src/services/documents/utils"; import { DocumentsEngine } from "../../../src/services/documents/services/engine"; @@ -22,27 +22,7 @@ describe("the Drive feature", () => { let currentUser: UserApi; beforeEach(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "messages", - "auth", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - "email-pusher", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); }); diff --git a/tdrive/backend/node/test/e2e/documents/documents-pagination-sorting.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-pagination-sorting.spec.ts index 842fc601d..2e80012d8 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-pagination-sorting.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-pagination-sorting.spec.ts @@ -1,5 +1,5 @@ import { describe, beforeAll, afterAll, it, expect } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { init, initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; describe("The Documents Browser Window and API", () => { @@ -11,22 +11,7 @@ describe("The Documents Browser Window and API", () => { let files: any; beforeAll(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "files", - "auth", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform, true, { companyRole: "admin" }); anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" }); myDriveId = "user_" + currentUser.user.id; diff --git a/tdrive/backend/node/test/e2e/documents/documents-quota.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-quota.spec.ts index c7da9f38c..f943f5400 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-quota.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-quota.spec.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; import config from "config"; import { e2e_createDocumentFile, e2e_createVersion } from "./utils"; @@ -33,26 +33,7 @@ describe("the Drive feature", () => { } return jest.requireActual("config").get(setting); }); - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "messages", - "auth", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); }); diff --git a/tdrive/backend/node/test/e2e/documents/documents-search.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-search.spec.ts index d002d3407..695fefaa4 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-search.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-search.spec.ts @@ -1,5 +1,5 @@ import { describe, it, expect, afterAll } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; import { DriveFileMockClass } from "../common/entities/mock_entities"; import { DriveFile } from "../../../src/services/documents/entities/drive-file"; @@ -14,25 +14,7 @@ describe("the Drive Search feature", () => { const uploadedByUserTwo = []; beforeAll(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "messages", - "auth", - "channels", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); }); afterAll(async () => { diff --git a/tdrive/backend/node/test/e2e/documents/documents-tab.spec.ts b/tdrive/backend/node/test/e2e/documents/documents-tab.spec.ts index ee4099fb1..a7a98aa0d 100644 --- a/tdrive/backend/node/test/e2e/documents/documents-tab.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents-tab.spec.ts @@ -1,7 +1,7 @@ import { afterAll, beforeEach, describe, expect, it } from "@jest/globals"; import { deserialize } from "class-transformer"; import { AccessInformation } from "../../../src/services/documents/entities/drive-file"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import UserApi from "../common/user-api"; @@ -28,26 +28,7 @@ describe("the Drive Tdrive tabs feature", () => { } beforeEach(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "messages", - "auth", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); }); diff --git a/tdrive/backend/node/test/e2e/documents/documents.spec.ts b/tdrive/backend/node/test/e2e/documents/documents.spec.ts index 56c106f5b..4ec084fd6 100644 --- a/tdrive/backend/node/test/e2e/documents/documents.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/documents.spec.ts @@ -2,7 +2,7 @@ import { describe, beforeEach, it, expect, afterAll } from "@jest/globals"; import { deserialize } from "class-transformer"; import { File } from "../../../src/services/files/entities/file"; import { ResourceUpdateResponse } from "../../../src/utils/types"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import { e2e_createDocumentFile, @@ -21,26 +21,7 @@ describe("the Drive feature", () => { let currentUser: UserApi; beforeEach(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "messages", - "auth", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); }); diff --git a/tdrive/backend/node/test/e2e/documents/editing-session.spec.ts b/tdrive/backend/node/test/e2e/documents/editing-session.spec.ts index 3f9660499..f864dd3f9 100644 --- a/tdrive/backend/node/test/e2e/documents/editing-session.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/editing-session.spec.ts @@ -1,6 +1,6 @@ import { describe, beforeAll, beforeEach, it, expect, afterAll, jest } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; import { DriveFile, TYPE as DriveFileType } from "../../../src/services/documents/entities/drive-file"; @@ -15,28 +15,7 @@ describe("the Drive's documents' editing session kind-of-lock", () => { let temporaryDocument: DriveFile; beforeAll(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "websocket", - "messages", - "auth", - "realtime", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); currentUserRoot = `user_${currentUser.user.id}`; }); diff --git a/tdrive/backend/node/test/e2e/documents/my-drive.spec.ts b/tdrive/backend/node/test/e2e/documents/my-drive.spec.ts index c9da81d1e..94b1fd595 100644 --- a/tdrive/backend/node/test/e2e/documents/my-drive.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/my-drive.spec.ts @@ -1,6 +1,6 @@ import { describe, beforeEach, afterEach, it, expect, afterAll } from "@jest/globals"; import { deserialize } from "class-transformer"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import { e2e_updateDocument, @@ -21,38 +21,8 @@ describe("the My Drive feature", () => { is_directory: boolean; } - class DriveItemDetailsMockClass { - path: string[]; - item: DriveFileMockClass; - children: DriveFileMockClass[]; - versions: Record[]; - } - - class SearchResultMockClass { - entities: DriveFileMockClass[]; - } - beforeEach(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "messages", - "auth", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); }); diff --git a/tdrive/backend/node/test/e2e/documents/public-links.spec.ts b/tdrive/backend/node/test/e2e/documents/public-links.spec.ts index 9be613fd2..901bf921f 100644 --- a/tdrive/backend/node/test/e2e/documents/public-links.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/public-links.spec.ts @@ -35,6 +35,9 @@ describe("the public links feature", () => { beforeAll(async () => { platform = await init({ services: [ + "cron", + "tracker", + "email-pusher", "webserver", "database", "applications", @@ -44,17 +47,16 @@ describe("the public links feature", () => { "user", "search", "files", - "messages", "auth", - "channels", "counter", "statistics", - "platform-services", "documents", + "previews", + "console" ], }); currentUser = await UserApi.getInstance(platform); - }); + }, 300000000); afterAll(async () => { await platform?.tearDown(); @@ -287,6 +289,6 @@ describe("the public links feature", () => { await anotherUser.getDocumentOKCheck(doc.id); expect((await anotherUser.zipDocument(doc.id)).statusCode).toBe(200); - }); + }, 30000000); }); }); diff --git a/tdrive/backend/node/test/e2e/documents/trash.spec.ts b/tdrive/backend/node/test/e2e/documents/trash.spec.ts index 912f78c80..faaabac75 100644 --- a/tdrive/backend/node/test/e2e/documents/trash.spec.ts +++ b/tdrive/backend/node/test/e2e/documents/trash.spec.ts @@ -1,7 +1,7 @@ import { describe, beforeAll, it, expect, afterAll } from "@jest/globals"; import { deserialize } from "class-transformer"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import UserApi from "../common/user-api"; import { @@ -15,28 +15,7 @@ describe("the Drive's documents' trash feature", () => { let currentUserTrash: string | undefined; beforeAll(async () => { - platform = await init({ - services: [ - "webserver", - "database", - "applications", - "search", - "storage", - "message-queue", - "user", - "search", - "files", - "websocket", - "messages", - "auth", - "realtime", - "channels", - "counter", - "statistics", - "platform-services", - "documents", - ], - }); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); currentUserRoot = `user_${currentUser.user.id}`; currentUserTrash = `trash_${currentUser.user.id}`; diff --git a/tdrive/backend/node/test/e2e/files/files.spec.ts b/tdrive/backend/node/test/e2e/files/files.spec.ts index 805df2445..bcba1f22b 100644 --- a/tdrive/backend/node/test/e2e/files/files.spec.ts +++ b/tdrive/backend/node/test/e2e/files/files.spec.ts @@ -1,6 +1,6 @@ import "reflect-metadata"; import { afterAll, beforeAll, afterEach, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { getFilePath } from "../../../src/services/files/services"; import UserApi from "../common/user-api"; import LocalConnectorService from "../../../src/core/platform/services/storage/connectors/local/service" @@ -13,9 +13,7 @@ describe("The Files feature", () => { let helpers: UserApi; beforeAll(async () => { - platform = await init({ - services: ["webserver", "database", "storage", "files", "previews"], - }); + platform = await initWithDefaults(); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore await platform.database.getConnector().init(); diff --git a/tdrive/backend/node/test/e2e/files/storage.oneof.spec.ts b/tdrive/backend/node/test/e2e/files/storage.oneof.spec.ts index 8d9351080..ec2415850 100644 --- a/tdrive/backend/node/test/e2e/files/storage.oneof.spec.ts +++ b/tdrive/backend/node/test/e2e/files/storage.oneof.spec.ts @@ -1,7 +1,7 @@ import "./load_test_config" import "reflect-metadata"; import { afterAll, beforeAll, afterEach, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; import LocalConnectorService from "../../../src/core/platform/services/storage/connectors/local/service" import { StorageConnectorAPI } from "../../../src/core/platform/services/storage/provider"; @@ -12,11 +12,9 @@ describe("The OneOf Storage feature", () => { let helpers: UserApi; beforeAll(async () => { - platform = await init({ - services: ["webserver", "database", "storage", "files", "previews"], - }); + platform = await initWithDefaults(); helpers = await UserApi.getInstance(platform); - }, 300000000); + }); afterEach(async () => { jest.restoreAllMocks(); diff --git a/tdrive/backend/node/test/e2e/setup/index.ts b/tdrive/backend/node/test/e2e/setup/index.ts index be53770bf..fd2ee06ea 100644 --- a/tdrive/backend/node/test/e2e/setup/index.ts +++ b/tdrive/backend/node/test/e2e/setup/index.ts @@ -16,6 +16,7 @@ import StorageAPI from "../../../src/core/platform/services/storage/provider"; import {SearchServiceAPI} from "../../../src/core/platform/services/search/api"; import Session from "../../../src/services/console/entities/session"; import EmailPusherAPI from "../../../src/core/platform/services/email-pusher/provider"; +import PreviewsService from "../../../src/services/previews"; type TokenPayload = { sub: string; @@ -48,6 +49,7 @@ export interface TestPlatform { messageQueue: MessageQueueServiceAPI; authService: AuthServiceAPI; filesService: FileServiceImpl; + previews: PreviewsService; auth: { getJWTToken(payload?: TokenPayload): Promise; }; @@ -61,13 +63,44 @@ export interface TestPlatformConfiguration { let testPlatform: TestPlatform = null; +// init platform with default services list +export async function initWithDefaults(): Promise { + return await init({ + services: [ + "auth", + "push", + "storage", + "webserver", + "database", + "cron", + "search", + "message-queue", + "tracker", + "general", + "user", + "files", + "workspaces", + "console", + "previews", + "counter", + "statistics", + "cron", + "email-pusher", + "documents", + "applications", + "applications-api", + "tags" + ], + }); +} + export async function init( testConfig?: TestPlatformConfiguration, prePlatformStartCallback?: (fastify: FastifyInstance) => void, ): Promise { if (!testPlatform) { const configuration: TdrivePlatformConfiguration = { - services: config.get("services"), + services: testConfig.services, servicesPath: pathResolve(__dirname, "../../../src/services/"), }; const platform = new TdrivePlatform(configuration); @@ -89,6 +122,7 @@ export async function init( const storage: StorageAPI = platform.getProvider("storage"); const search: SearchServiceAPI = platform.getProvider("search"); const emailPusher: EmailPusherAPI = platform.getProvider("email-pusher"); + const previews = platform.getProvider("previews") testPlatform = { platform, @@ -107,6 +141,7 @@ export async function init( }, tearDown, search, + previews }; } diff --git a/tdrive/backend/node/test/e2e/tags/tags.spec.ts b/tdrive/backend/node/test/e2e/tags/tags.spec.ts index 78a648b35..56f739803 100644 --- a/tdrive/backend/node/test/e2e/tags/tags.spec.ts +++ b/tdrive/backend/node/test/e2e/tags/tags.spec.ts @@ -1,6 +1,6 @@ import "reflect-metadata"; import { afterAll, beforeAll, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import { Tag } from "../../../src/services/tags/entities/tags"; import { deserialize } from "class-transformer"; @@ -17,9 +17,7 @@ describe("The Tag feature", () => { const tagIds: string[] = []; beforeAll(async () => { - platform = await init({ - services: ["webserver", "database", "storage", "message-queue", "tags"], - }); + platform = await initWithDefaults(); testDbService = await TestDbService.getInstance(platform, true); }); diff --git a/tdrive/backend/node/test/e2e/users/users.quota.spec.ts b/tdrive/backend/node/test/e2e/users/users.quota.spec.ts index 2bd7947d4..3c3e48e0d 100644 --- a/tdrive/backend/node/test/e2e/users/users.quota.spec.ts +++ b/tdrive/backend/node/test/e2e/users/users.quota.spec.ts @@ -1,5 +1,5 @@ -import { afterAll, afterEach, beforeAll, beforeEach, describe, expect} from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { afterAll, afterEach, beforeEach, describe, expect} from "@jest/globals"; +import { init, initWithDefaults, TestPlatform } from "../setup"; import UserApi from "../common/user-api"; describe("The /users/quota API", () => { @@ -7,35 +7,15 @@ describe("The /users/quota API", () => { let currentUser: UserApi; beforeEach(async () => { - platform = await init(); + platform = await initWithDefaults(); currentUser = await UserApi.getInstance(platform); - }, 30000000); + }); afterEach(async () => { await platform.tearDown(); platform = null; }); - beforeAll(async () => { - const platform = await init({ - services: [ - "database", - "search", - "message-queue", - "applications", - "webserver", - "user", - "auth", - "storage", - "counter", - "console", - "workspaces", - "statistics", - "platform-services", - ], - }); - }, 30000000); - afterAll(async () => { }); @@ -51,7 +31,7 @@ describe("The /users/quota API", () => { expect(quota.total).toBe(userQuota); expect(quota.remaining).toBe(userQuota - doc.size); //198346196 //198342406 expect(quota.used).toBe(doc.size); - }, 30000000); + }); test("should return 200 with all empty space", async () => { //given diff --git a/tdrive/backend/node/test/e2e/users/users.search.spec.ts b/tdrive/backend/node/test/e2e/users/users.search.spec.ts index ece0d9c81..32a174ee0 100644 --- a/tdrive/backend/node/test/e2e/users/users.search.spec.ts +++ b/tdrive/backend/node/test/e2e/users/users.search.spec.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import { v1 as uuidv1 } from "uuid"; @@ -8,23 +8,7 @@ describe("The /users API", () => { let platform: TestPlatform; beforeEach(async () => { - platform = await init({ - services: [ - "database", - "search", - "message-queue", - "webserver", - "user", - "auth", - "applications", - "storage", - "counter", - "workspaces", - "console", - "statistics", - "platform-services", - ], - }); + platform = await initWithDefaults(); }); afterEach(async () => { diff --git a/tdrive/backend/node/test/e2e/users/users.spec.ts b/tdrive/backend/node/test/e2e/users/users.spec.ts index 2f116699f..ff6b78c32 100644 --- a/tdrive/backend/node/test/e2e/users/users.spec.ts +++ b/tdrive/backend/node/test/e2e/users/users.spec.ts @@ -1,5 +1,5 @@ import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { init, initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import { v1 as uuidv1 } from "uuid"; import { CompanyLimitsEnum } from "../../../src/services/user/web/types"; @@ -22,23 +22,7 @@ describe("The /users API", () => { }); beforeAll(async () => { - const platform = await init({ - services: [ - "database", - "search", - "message-queue", - "applications", - "webserver", - "user", - "auth", - "storage", - "counter", - "console", - "workspaces", - "statistics", - "platform-services", - ], - }); + platform = await initWithDefaults(); testDbService = await TestDbService.getInstance(platform); await testDbService.createCompany(); @@ -230,7 +214,6 @@ describe("The /users API", () => { const json = response.json(); expect(json).toMatchObject({ resources: expect.any(Array) }); const resources = json.resources; - console.log(resources); expect(resources.length).toBe(0); }); diff --git a/tdrive/backend/node/test/e2e/workspaces/workspace-users.spec.ts b/tdrive/backend/node/test/e2e/workspaces/workspace-users.spec.ts index dc6d5c211..44f3a35e0 100644 --- a/tdrive/backend/node/test/e2e/workspaces/workspace-users.spec.ts +++ b/tdrive/backend/node/test/e2e/workspaces/workspace-users.spec.ts @@ -1,5 +1,5 @@ import { afterAll, beforeAll, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService, uuid } from "../utils.prepare.db"; import { v1 as uuidv1 } from "uuid"; @@ -38,23 +38,7 @@ describe("The /workspace users API", () => { }; beforeAll(async () => { - platform = await init({ - services: [ - "database", - "message-queue", - "search", - "webserver", - "user", - "workspaces", - "applications", - "auth", - "console", - "counter", - "storage", - "statistics", - "platform-services", - ], - }); + platform = platform = await initWithDefaults(); companyId = platform.workspace.company_id; diff --git a/tdrive/backend/node/test/e2e/workspaces/workspaces.spec.ts b/tdrive/backend/node/test/e2e/workspaces/workspaces.spec.ts index 327cb4ed8..0690f2290 100644 --- a/tdrive/backend/node/test/e2e/workspaces/workspaces.spec.ts +++ b/tdrive/backend/node/test/e2e/workspaces/workspaces.spec.ts @@ -1,5 +1,5 @@ import { afterAll, beforeAll, describe, expect, it } from "@jest/globals"; -import { init, TestPlatform } from "../setup"; +import { initWithDefaults, TestPlatform } from "../setup"; import { TestDbService } from "../utils.prepare.db"; import { v1 as uuidv1 } from "uuid"; @@ -13,23 +13,7 @@ describe("The /workspaces API", () => { let companyId = ""; beforeAll(async () => { - platform = await init({ - services: [ - "database", - "message-queue", - "webserver", - "user", - "search", - "workspaces", - "auth", - "console", - "counter", - "storage", - "applications", - "statistics", - "platform-services", - ], - }); + platform = await initWithDefaults(); companyId = platform.workspace.company_id; diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index 877f208b7..1e9181243 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -493,6 +493,11 @@ rfdc "^1.3.0" yaml "^2.2.2" +"@ffprobe-installer/darwin-arm64@5.0.1": + version "5.0.1" + resolved "https://registry.npmjs.org/@ffprobe-installer/darwin-arm64/-/darwin-arm64-5.0.1.tgz" + integrity sha512-vwNCNjokH8hfkbl6m95zICHwkSzhEvDC3GVBcUp5HX8+4wsX10SP3B+bGur7XUzTIZ4cQpgJmEIAx6TUwRepMg== + "@ffprobe-installer/ffprobe@^1.4.1": version "1.4.1" resolved "https://registry.npmjs.org/@ffprobe-installer/ffprobe/-/ffprobe-1.4.1.tgz" @@ -507,11 +512,6 @@ "@ffprobe-installer/win32-ia32" "5.0.0" "@ffprobe-installer/win32-x64" "5.0.0" -"@ffprobe-installer/linux-x64@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@ffprobe-installer/linux-x64/-/linux-x64-5.0.0.tgz" - integrity sha512-zgLnWJFvMGCaw1txGtz84sMEQt6mQUzdw86ih9S/kZOWnp06Gj/ams/EXxEkAxgAACCVM6/O0mkDe/6biY5tgA== - "@humanwhocodes/config-array@^0.11.14": version "0.11.14" resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" @@ -531,29 +531,17 @@ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@img/sharp-libvips-linux-x64@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz" - integrity sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ== - -"@img/sharp-libvips-linuxmusl-x64@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz" - integrity sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw== - -"@img/sharp-linux-x64@0.33.3": +"@img/sharp-darwin-arm64@0.33.3": version "0.33.3" - resolved "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.3.tgz" - integrity sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g== + resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.3.tgz" + integrity sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw== optionalDependencies: - "@img/sharp-libvips-linux-x64" "1.0.2" + "@img/sharp-libvips-darwin-arm64" "1.0.2" -"@img/sharp-linuxmusl-x64@0.33.3": - version "0.33.3" - resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.3.tgz" - integrity sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w== - optionalDependencies: - "@img/sharp-libvips-linuxmusl-x64" "1.0.2" +"@img/sharp-libvips-darwin-arm64@1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz" + integrity sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -742,7 +730,7 @@ jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.7.0": +"@jest/transform@^29.0.0", "@jest/transform@^29.7.0": version "29.7.0" resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz" integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== @@ -922,11 +910,336 @@ ms "^2.1.3" secure-json-parse "^2.4.0" +"@opentelemetry/api-logs@0.52.1": + version "0.52.1" + resolved "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz" + integrity sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A== + dependencies: + "@opentelemetry/api" "^1.0.0" + +"@opentelemetry/api-logs@0.53.0": + version "0.53.0" + resolved "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz" + integrity sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw== + dependencies: + "@opentelemetry/api" "^1.0.0" + +"@opentelemetry/api-logs@0.54.1": + version "0.54.1" + resolved "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.54.1.tgz" + integrity sha512-tFOyYT8tFRSuUc+pEXnHG99270y7K8MSBLQSPiYBJ/0cgCp+8KmSej4joBfah0JoXAwbPzMCom3ri0xsiYbLvg== + dependencies: + "@opentelemetry/api" "^1.3.0" + +"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.1.0", "@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.7.0", "@opentelemetry/api@^1.8", "@opentelemetry/api@^1.9.0", "@opentelemetry/api@>=1.0.0 <1.10.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz" + integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== + +"@opentelemetry/context-async-hooks@^1.25.1": + version "1.27.0" + resolved "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.27.0.tgz" + integrity sha512-CdZ3qmHCwNhFAzjTgHqrDQ44Qxcpz43cVxZRhOs+Ns/79ug+Mr84Bkb626bkJLkA3+BLimA5YAEVRlJC6pFb7g== + +"@opentelemetry/core@^1.1.0", "@opentelemetry/core@^1.25.1", "@opentelemetry/core@^1.8.0", "@opentelemetry/core@1.27.0": + version "1.27.0" + resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.27.0.tgz" + integrity sha512-yQPKnK5e+76XuiqUH/gKyS8wv/7qITd5ln56QkBTf3uggr0VkXOXfcaAuG330UfdYu83wsyoBwqwxigpIG+Jkg== + dependencies: + "@opentelemetry/semantic-conventions" "1.27.0" + +"@opentelemetry/core@1.26.0": + version "1.26.0" + resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.26.0.tgz" + integrity sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ== + dependencies: + "@opentelemetry/semantic-conventions" "1.27.0" + +"@opentelemetry/instrumentation-amqplib@^0.42.0": + version "0.42.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.42.0.tgz" + integrity sha512-fiuU6OKsqHJiydHWgTRQ7MnIrJ2lEqsdgFtNIH4LbAUJl/5XmrIeoDzDnox+hfkgWK65jsleFuQDtYb5hW1koQ== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-connect@0.40.0": + version "0.40.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.40.0.tgz" + integrity sha512-3aR/3YBQ160siitwwRLjwqrv2KBT16897+bo6yz8wIfel6nWOxTZBJudcbsK3p42pTC7qrbotJ9t/1wRLpv79Q== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.54.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + "@types/connect" "3.4.36" + +"@opentelemetry/instrumentation-dataloader@0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.12.0.tgz" + integrity sha512-pnPxatoFE0OXIZDQhL2okF//dmbiWFzcSc8pUg9TqofCLYZySSxDCgQc69CJBo5JnI3Gz1KP+mOjS4WAeRIH4g== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + +"@opentelemetry/instrumentation-express@0.44.0": + version "0.44.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.44.0.tgz" + integrity sha512-GWgibp6Q0wxyFaaU8ERIgMMYgzcHmGrw3ILUtGchLtLncHNOKk0SNoWGqiylXWWT4HTn5XdV8MGawUgpZh80cA== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.54.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-fastify@0.41.0": + version "0.41.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.41.0.tgz" + integrity sha512-pNRjFvf0mvqfJueaeL/qEkuGJwgtE5pgjIHGYwjc2rMViNCrtY9/Sf+Nu8ww6dDd/Oyk2fwZZP7i0XZfCnETrA== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.54.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-fs@0.16.0": + version "0.16.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.16.0.tgz" + integrity sha512-hMDRUxV38ln1R3lNz6osj3YjlO32ykbHqVrzG7gEhGXFQfu7LJUx8t9tEwE4r2h3CD4D0Rw4YGDU4yF4mP3ilg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.54.0" + +"@opentelemetry/instrumentation-generic-pool@0.39.0": + version "0.39.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.39.0.tgz" + integrity sha512-y4v8Y+tSfRB3NNBvHjbjrn7rX/7sdARG7FuK6zR8PGb28CTa0kHpEGCJqvL9L8xkTNvTXo+lM36ajFGUaK1aNw== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + +"@opentelemetry/instrumentation-graphql@0.44.0": + version "0.44.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.44.0.tgz" + integrity sha512-FYXTe3Bv96aNpYktqm86BFUTpjglKD0kWI5T5bxYkLUPEPvFn38vWGMJTGrDMVou/i55E4jlWvcm6hFIqLsMbg== + dependencies: + "@opentelemetry/instrumentation" "^0.54.0" + +"@opentelemetry/instrumentation-hapi@0.41.0": + version "0.41.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.41.0.tgz" + integrity sha512-jKDrxPNXDByPlYcMdZjNPYCvw0SQJjN+B1A+QH+sx+sAHsKSAf9hwFiJSrI6C4XdOls43V/f/fkp9ITkHhKFbQ== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-http@0.53.0": + version "0.53.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.53.0.tgz" + integrity sha512-H74ErMeDuZfj7KgYCTOFGWF5W9AfaPnqLQQxeFq85+D29wwV2yqHbz2IKLYpkOh7EI6QwDEl7rZCIxjJLyc/CQ== + dependencies: + "@opentelemetry/core" "1.26.0" + "@opentelemetry/instrumentation" "0.53.0" + "@opentelemetry/semantic-conventions" "1.27.0" + semver "^7.5.2" + +"@opentelemetry/instrumentation-ioredis@0.43.0": + version "0.43.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.43.0.tgz" + integrity sha512-i3Dke/LdhZbiUAEImmRG3i7Dimm/BD7t8pDDzwepSvIQ6s2X6FPia7561gw+64w+nx0+G9X14D7rEfaMEmmjig== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/redis-common" "^0.36.2" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-kafkajs@0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.4.0.tgz" + integrity sha512-I9VwDG314g7SDL4t8kD/7+1ytaDBRbZQjhVaQaVIDR8K+mlsoBhLsWH79yHxhHQKvwCSZwqXF+TiTOhoQVUt7A== + dependencies: + "@opentelemetry/instrumentation" "^0.54.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-koa@0.43.0": + version "0.43.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.43.0.tgz" + integrity sha512-lDAhSnmoTIN6ELKmLJBplXzT/Jqs5jGZehuG22EdSMaTwgjMpxMDI1YtlKEhiWPWkrz5LUsd0aOO0ZRc9vn3AQ== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-lru-memoizer@0.40.0": + version "0.40.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.40.0.tgz" + integrity sha512-21xRwZsEdMPnROu/QsaOIODmzw59IYpGFmuC4aFWvMj6stA8+Ei1tX67nkarJttlNjoM94um0N4X26AD7ff54A== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + +"@opentelemetry/instrumentation-mongodb@0.48.0": + version "0.48.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.48.0.tgz" + integrity sha512-9YWvaGvrrcrydMsYGLu0w+RgmosLMKe3kv/UNlsPy8RLnCkN2z+bhhbjjjuxtUmvEuKZMCoXFluABVuBr1yhjw== + dependencies: + "@opentelemetry/instrumentation" "^0.54.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-mongoose@0.42.0": + version "0.42.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.42.0.tgz" + integrity sha512-AnWv+RaR86uG3qNEMwt3plKX1ueRM7AspfszJYVkvkehiicC3bHQA6vWdb6Zvy5HAE14RyFbu9+2hUUjR2NSyg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-mysql@0.41.0": + version "0.41.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.41.0.tgz" + integrity sha512-jnvrV6BsQWyHS2qb2fkfbfSb1R/lmYwqEZITwufuRl37apTopswu9izc0b1CYRp/34tUG/4k/V39PND6eyiNvw== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + "@types/mysql" "2.15.26" + +"@opentelemetry/instrumentation-mysql2@0.41.0": + version "0.41.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.41.0.tgz" + integrity sha512-REQB0x+IzVTpoNgVmy5b+UnH1/mDByrneimP6sbDHkp1j8QOl1HyWOrBH/6YWR0nrbU3l825Em5PlybjT3232g== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + "@opentelemetry/sql-common" "^0.40.1" + +"@opentelemetry/instrumentation-nestjs-core@0.40.0": + version "0.40.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.40.0.tgz" + integrity sha512-WF1hCUed07vKmf5BzEkL0wSPinqJgH7kGzOjjMAiTGacofNXjb/y4KQ8loj2sNsh5C/NN7s1zxQuCgbWbVTGKg== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-pg@0.44.0": + version "0.44.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.44.0.tgz" + integrity sha512-oTWVyzKqXud1BYEGX1loo2o4k4vaU1elr3vPO8NZolrBtFvQ34nx4HgUaexUDuEog00qQt+MLR5gws/p+JXMLQ== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + "@opentelemetry/sql-common" "^0.40.1" + "@types/pg" "8.6.1" + "@types/pg-pool" "2.0.6" + +"@opentelemetry/instrumentation-redis-4@0.42.0": + version "0.42.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.42.0.tgz" + integrity sha512-NaD+t2JNcOzX/Qa7kMy68JbmoVIV37fT/fJYzLKu2Wwd+0NCxt+K2OOsOakA8GVg8lSpFdbx4V/suzZZ2Pvdjg== + dependencies: + "@opentelemetry/instrumentation" "^0.53.0" + "@opentelemetry/redis-common" "^0.36.2" + "@opentelemetry/semantic-conventions" "^1.27.0" + +"@opentelemetry/instrumentation-undici@0.6.0": + version "0.6.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.6.0.tgz" + integrity sha512-ABJBhm5OdhGmbh0S/fOTE4N69IZ00CsHC5ijMYfzbw3E5NwLgpQk5xsljaECrJ8wz1SfXbO03FiSuu5AyRAkvQ== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.53.0" + +"@opentelemetry/instrumentation@^0.49 || ^0.50 || ^0.51 || ^0.52.0": + version "0.52.1" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz" + integrity sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw== + dependencies: + "@opentelemetry/api-logs" "0.52.1" + "@types/shimmer" "^1.0.2" + import-in-the-middle "^1.8.1" + require-in-the-middle "^7.1.1" + semver "^7.5.2" + shimmer "^1.2.1" + +"@opentelemetry/instrumentation@^0.53.0": + version "0.53.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz" + integrity sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A== + dependencies: + "@opentelemetry/api-logs" "0.53.0" + "@types/shimmer" "^1.2.0" + import-in-the-middle "^1.8.1" + require-in-the-middle "^7.1.1" + semver "^7.5.2" + shimmer "^1.2.1" + +"@opentelemetry/instrumentation@^0.54.0": + version "0.54.1" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.54.1.tgz" + integrity sha512-z5EapvWSHnHwk1NnIF++x9IIe9U83/Bna9xYMHCpZ9EWDfNzMBwg/fOZtwLa2zbX2oEd+Qoze34M+Pujd92IyQ== + dependencies: + "@opentelemetry/api-logs" "0.54.1" + "@types/shimmer" "^1.2.0" + import-in-the-middle "^1.8.1" + require-in-the-middle "^7.1.1" + semver "^7.5.2" + shimmer "^1.2.1" + +"@opentelemetry/instrumentation@0.53.0": + version "0.53.0" + resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz" + integrity sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A== + dependencies: + "@opentelemetry/api-logs" "0.53.0" + "@types/shimmer" "^1.2.0" + import-in-the-middle "^1.8.1" + require-in-the-middle "^7.1.1" + semver "^7.5.2" + shimmer "^1.2.1" + +"@opentelemetry/redis-common@^0.36.2": + version "0.36.2" + resolved "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz" + integrity sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g== + +"@opentelemetry/resources@^1.26.0", "@opentelemetry/resources@1.27.0": + version "1.27.0" + resolved "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.27.0.tgz" + integrity sha512-jOwt2VJ/lUD5BLc+PMNymDrUCpm5PKi1E9oSVYAvz01U/VdndGmrtV3DU1pG4AwlYhJRHbHfOUIlpBeXCPw6QQ== + dependencies: + "@opentelemetry/core" "1.27.0" + "@opentelemetry/semantic-conventions" "1.27.0" + +"@opentelemetry/sdk-trace-base@^1.22", "@opentelemetry/sdk-trace-base@^1.26.0": + version "1.27.0" + resolved "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.27.0.tgz" + integrity sha512-btz6XTQzwsyJjombpeqCX6LhiMQYpzt2pIYNPnw0IPO/3AhT6yjnf8Mnv3ZC2A4eRYOjqrg+bfaXg9XHDRJDWQ== + dependencies: + "@opentelemetry/core" "1.27.0" + "@opentelemetry/resources" "1.27.0" + "@opentelemetry/semantic-conventions" "1.27.0" + +"@opentelemetry/semantic-conventions@^1.27.0", "@opentelemetry/semantic-conventions@1.27.0": + version "1.27.0" + resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz" + integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg== + +"@opentelemetry/sql-common@^0.40.1": + version "0.40.1" + resolved "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz" + integrity sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg== + dependencies: + "@opentelemetry/core" "^1.1.0" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@prisma/instrumentation@5.19.1": + version "5.19.1" + resolved "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-5.19.1.tgz" + integrity sha512-VLnzMQq7CWroL5AeaW0Py2huiNKeoMfCH3SUxstdzPrlWQi6UQ9UrfcbUkNHlVFqOMacqy8X/8YtE0kuKDpD9w== + dependencies: + "@opentelemetry/api" "^1.8" + "@opentelemetry/instrumentation" "^0.49 || ^0.50 || ^0.51 || ^0.52.0" + "@opentelemetry/sdk-trace-base" "^1.22" + "@segment/analytics-core@1.6.0": version "1.6.0" resolved "https://registry.npmjs.org/@segment/analytics-core/-/analytics-core-1.6.0.tgz" @@ -965,16 +1278,13 @@ domhandler "^4.2.0" selderee "^0.6.0" -"@sentry/core@6.19.7": - version "6.19.7" - resolved "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz" - integrity sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw== +"@sentry/core@8.37.1": + version "8.37.1" + resolved "https://registry.npmjs.org/@sentry/core/-/core-8.37.1.tgz" + integrity sha512-82csXby589iDupM3VgCHJeWZagUyEEaDnbFcoZ/Z91QX2Sjq8FcF5OsforoXjw09i0XTFqlkFAnQVpDBmMXcpQ== dependencies: - "@sentry/hub" "6.19.7" - "@sentry/minimal" "6.19.7" - "@sentry/types" "6.19.7" - "@sentry/utils" "6.19.7" - tslib "^1.9.3" + "@sentry/types" "8.37.1" + "@sentry/utils" "8.37.1" "@sentry/hub@6.19.7": version "6.19.7" @@ -994,19 +1304,55 @@ "@sentry/types" "6.19.7" tslib "^1.9.3" -"@sentry/node@^6.19.7": - version "6.19.7" - resolved "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz" - integrity sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg== - dependencies: - "@sentry/core" "6.19.7" - "@sentry/hub" "6.19.7" - "@sentry/types" "6.19.7" - "@sentry/utils" "6.19.7" - cookie "^0.4.1" - https-proxy-agent "^5.0.0" - lru_map "^0.3.3" - tslib "^1.9.3" +"@sentry/node@^8.37.1": + version "8.37.1" + resolved "https://registry.npmjs.org/@sentry/node/-/node-8.37.1.tgz" + integrity sha512-ACRZmqOBHRPKsyVhnDR4+RH1QQr7WMdH7RNl62VlKNZGLvraxW1CUqTSeNUFUuOwks3P6nozROSQs8VMSC/nVg== + dependencies: + "@opentelemetry/api" "^1.9.0" + "@opentelemetry/context-async-hooks" "^1.25.1" + "@opentelemetry/core" "^1.25.1" + "@opentelemetry/instrumentation" "^0.54.0" + "@opentelemetry/instrumentation-amqplib" "^0.42.0" + "@opentelemetry/instrumentation-connect" "0.40.0" + "@opentelemetry/instrumentation-dataloader" "0.12.0" + "@opentelemetry/instrumentation-express" "0.44.0" + "@opentelemetry/instrumentation-fastify" "0.41.0" + "@opentelemetry/instrumentation-fs" "0.16.0" + "@opentelemetry/instrumentation-generic-pool" "0.39.0" + "@opentelemetry/instrumentation-graphql" "0.44.0" + "@opentelemetry/instrumentation-hapi" "0.41.0" + "@opentelemetry/instrumentation-http" "0.53.0" + "@opentelemetry/instrumentation-ioredis" "0.43.0" + "@opentelemetry/instrumentation-kafkajs" "0.4.0" + "@opentelemetry/instrumentation-koa" "0.43.0" + "@opentelemetry/instrumentation-lru-memoizer" "0.40.0" + "@opentelemetry/instrumentation-mongodb" "0.48.0" + "@opentelemetry/instrumentation-mongoose" "0.42.0" + "@opentelemetry/instrumentation-mysql" "0.41.0" + "@opentelemetry/instrumentation-mysql2" "0.41.0" + "@opentelemetry/instrumentation-nestjs-core" "0.40.0" + "@opentelemetry/instrumentation-pg" "0.44.0" + "@opentelemetry/instrumentation-redis-4" "0.42.0" + "@opentelemetry/instrumentation-undici" "0.6.0" + "@opentelemetry/resources" "^1.26.0" + "@opentelemetry/sdk-trace-base" "^1.26.0" + "@opentelemetry/semantic-conventions" "^1.27.0" + "@prisma/instrumentation" "5.19.1" + "@sentry/core" "8.37.1" + "@sentry/opentelemetry" "8.37.1" + "@sentry/types" "8.37.1" + "@sentry/utils" "8.37.1" + import-in-the-middle "^1.11.2" + +"@sentry/opentelemetry@8.37.1": + version "8.37.1" + resolved "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-8.37.1.tgz" + integrity sha512-P/Rp7R+qNiRYz9qtVMV12YL9CIrZjzXWGVUBZjJayHu37jdvMowCol5G850QPYy0E2O0AQnFtxBno2yeURn8QQ== + dependencies: + "@sentry/core" "8.37.1" + "@sentry/types" "8.37.1" + "@sentry/utils" "8.37.1" "@sentry/tracing@^6.19.7": version "6.19.7" @@ -1024,6 +1370,11 @@ resolved "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz" integrity sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg== +"@sentry/types@8.37.1": + version "8.37.1" + resolved "https://registry.npmjs.org/@sentry/types/-/types-8.37.1.tgz" + integrity sha512-ryMOTROLSLINKFEbHWvi7GigNrsQhsaScw2NddybJGztJQ5UhxIGESnxGxWCufBmWFDwd7+5u0jDPCVUJybp7w== + "@sentry/utils@6.19.7": version "6.19.7" resolved "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz" @@ -1032,6 +1383,13 @@ "@sentry/types" "6.19.7" tslib "^1.9.3" +"@sentry/utils@8.37.1": + version "8.37.1" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-8.37.1.tgz" + integrity sha512-Qtn2IfpII12K17txG/ZtTci35XYjYi4CxbQ3j7nXY7toGv/+MqPXwV5q2i9g94XaSXlE5Wy9/hoCZoZpZs/djA== + dependencies: + "@sentry/types" "8.37.1" + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" @@ -1199,6 +1557,13 @@ dependencies: "@types/node" "*" +"@types/connect@3.4.36": + version "3.4.36" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz" + integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== + dependencies: + "@types/node" "*" + "@types/cookie@^0.4.1": version "0.4.1" resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz" @@ -1346,6 +1711,13 @@ resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== +"@types/mysql@2.15.26": + version "2.15.26" + resolved "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz" + integrity sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ== + dependencies: + "@types/node" "*" + "@types/node-cron@^3.0.0": version "3.0.11" resolved "https://registry.npmjs.org/@types/node-cron/-/node-cron-3.0.11.tgz" @@ -1366,12 +1738,12 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^18.11", "@types/node@>=10.0.0": - version "18.19.31" - resolved "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz" - integrity sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA== +"@types/node@*", "@types/node@^20.14.8", "@types/node@>=10.0.0": + version "20.17.6" + resolved "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz" + integrity sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ== dependencies: - undici-types "~5.26.4" + undici-types "~6.19.2" "@types/node@^15.0.1": version "15.14.9" @@ -1400,7 +1772,7 @@ resolved "https://registry.npmjs.org/@types/pdf-parse/-/pdf-parse-1.1.4.tgz" integrity sha512-+gbBHbNCVGGYw1S9lAIIvrHW47UYOhMIFUsJcMkMrzy1Jf0vulBN3XQIjPgnoOXveMuHnF3b57fXROnY/Or7eg== -"@types/pg-pool@^2.0.6": +"@types/pg-pool@^2.0.6", "@types/pg-pool@2.0.6": version "2.0.6" resolved "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz" integrity sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ== @@ -1416,6 +1788,15 @@ pg-protocol "*" pg-types "^4.0.1" +"@types/pg@8.6.1": + version "8.6.1" + resolved "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz" + integrity sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w== + dependencies: + "@types/node" "*" + pg-protocol "*" + pg-types "^2.2.0" + "@types/pino@^7.0.5": version "7.0.5" resolved "https://registry.npmjs.org/@types/pino/-/pino-7.0.5.tgz" @@ -1488,6 +1869,11 @@ dependencies: "@types/node" "*" +"@types/shimmer@^1.0.2", "@types/shimmer@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz" + integrity sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg== + "@types/socket.io-client@^1.4.36": version "1.4.36" resolved "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.36.tgz" @@ -1680,6 +2066,11 @@ accepts@~1.3.4: mime-types "~2.1.34" negotiator "0.6.3" +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" @@ -1690,7 +2081,7 @@ acorn-walk@^8.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz" integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.4.1, acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: version "8.11.3" resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== @@ -1952,7 +2343,7 @@ assertion-error@^1.1.0: resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -async@^3.2.4, async@>=0.2.9, async@~3.2.0: +async@^3.2.3, async@^3.2.4, async@>=0.2.9, async@~3.2.0: version "3.2.5" resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz" integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== @@ -1990,9 +2381,9 @@ aws4@^1.11.0: integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axios@^1.6.8: - version "1.6.8" - resolved "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz" - integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== + version "1.7.7" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -2151,7 +2542,7 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: +braces@^3.0.3, braces@~3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== @@ -2173,7 +2564,7 @@ browserslist@^4.22.2, "browserslist@>= 4.21.0": node-releases "^2.0.14" update-browserslist-db "^1.0.13" -bs-logger@0.x: +bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== @@ -2322,7 +2713,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2367,7 +2758,7 @@ ci-info@^3.2.0: resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== -cjs-module-lexer@^1.0.0: +cjs-module-lexer@^1.0.0, cjs-module-lexer@^1.2.2: version "1.3.1" resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz" integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== @@ -2564,15 +2955,15 @@ cookie-signature@^1.1.0: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.1.tgz" integrity sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw== -cookie@^0.4.1, cookie@~0.4.1: - version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@^0.7.0: + version "0.7.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== -cookie@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== +cookie@~0.7.2: + version "0.7.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== core-util-is@~1.0.0: version "1.0.3" @@ -2686,12 +3077,12 @@ debug@^3.2.6: dependencies: ms "^2.1.1" -debug@^4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4, debug@4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4, debug@4: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "2.1.2" + ms "^2.1.3" debug@~2.6.9: version "2.6.9" @@ -2880,9 +3271,9 @@ domutils@^2.5.2: domhandler "^4.2.0" dset@^3.1.2: - version "3.1.3" - resolved "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz" - integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + version "3.1.4" + resolved "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz" + integrity sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA== duplexer@~0.1.1: version "0.1.2" @@ -2915,6 +3306,13 @@ ecdsa-sig-formatter@^1.0.11, ecdsa-sig-formatter@^1.0.5, ecdsa-sig-formatter@1.0 dependencies: safe-buffer "^5.0.1" +ejs@^3.1.10: + version "3.1.10" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + electron-to-chromium@^1.4.668: version "1.4.756" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.756.tgz" @@ -2979,17 +3377,17 @@ engine.io-parser@~5.2.1: resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz" integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== -engine.io@~6.5.2: - version "6.5.5" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz" - integrity sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA== +engine.io@~6.6.0: + version "6.6.2" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz" + integrity sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "2.0.0" - cookie "~0.4.1" + cookie "~0.7.2" cors "~2.8.5" debug "~4.3.1" engine.io-parser "~5.2.1" @@ -3344,9 +3742,9 @@ fast-uri@^2.0.0, fast-uri@^2.1.0: integrity sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw== fast-xml-parser@^4.2.2: - version "4.3.6" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz" - integrity sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw== + version "4.5.0" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz" + integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== dependencies: strnum "^1.0.5" @@ -3444,6 +3842,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + fill-range@^7.1.1: version "7.1.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" @@ -3457,9 +3862,9 @@ filter-obj@^1.1.0: integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== find-my-way@^8.0.0: - version "8.2.0" - resolved "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.0.tgz" - integrity sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA== + version "8.2.2" + resolved "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.2.tgz" + integrity sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA== dependencies: fast-deep-equal "^3.1.3" fast-querystring "^1.0.0" @@ -3605,6 +4010,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + fstream@^1.0.12: version "1.0.12" resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" @@ -4021,6 +4431,16 @@ import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-in-the-middle@^1.11.2, import-in-the-middle@^1.8.1: + version "1.11.2" + resolved "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz" + integrity sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA== + dependencies: + acorn "^8.8.2" + acorn-import-attributes "^1.9.5" + cjs-module-lexer "^1.2.2" + module-details-from-path "^1.0.3" + import-local@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" @@ -4270,6 +4690,16 @@ jackspeak@^2.3.6: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + jest-changed-files@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz" @@ -4848,11 +5278,11 @@ levn@^0.4.1: type-check "~0.4.0" light-my-request@^5.11.0: - version "5.13.0" - resolved "https://registry.npmjs.org/light-my-request/-/light-my-request-5.13.0.tgz" - integrity sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ== + version "5.14.0" + resolved "https://registry.npmjs.org/light-my-request/-/light-my-request-5.14.0.tgz" + integrity sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA== dependencies: - cookie "^0.6.0" + cookie "^0.7.0" process-warning "^3.0.0" set-cookie-parser "^2.4.1" @@ -4940,7 +5370,7 @@ lodash.isstring@^4.0.1: resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== -lodash.memoize@4.x: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== @@ -5054,7 +5484,7 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" -make-error@^1.1.1, make-error@1.x: +make-error@^1.1.1, make-error@^1.3.6: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -5144,11 +5574,11 @@ merge2@^1.3.0, merge2@^1.4.1: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0: @@ -5210,6 +5640,13 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^5.1.0: version "5.1.6" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" @@ -5302,6 +5739,11 @@ mnemonist@^0.39.5, mnemonist@0.39.6: dependencies: obliterator "^2.0.1" +module-details-from-path@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz" + integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== + moment@^2.29.4: version "2.30.1" resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" @@ -5341,11 +5783,6 @@ ms@2.0.0: resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - multistream@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz" @@ -5399,9 +5836,9 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== njwt@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/njwt/-/njwt-2.0.0.tgz" - integrity sha512-1RcqirhCqThBEe4KO83pFg0wPBa1c9NiXNCrocD2EbZqb6ksWWDVnp/w/p0gsyUcVa05PhhaaPjs9rc/GLmdxQ== + version "2.0.1" + resolved "https://registry.npmjs.org/njwt/-/njwt-2.0.1.tgz" + integrity sha512-HwFeZsPJ1aOhIjMjqT9Qv7BOsQbkxjRVPPSdFXNOTEkfKpr9+O6OX+dSN6TxxIErSYSqrmlDR4H2zOGOpEbZLA== dependencies: "@types/node" "^15.0.1" ecdsa-sig-formatter "^1.0.5" @@ -5827,6 +6264,17 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" +pg-types@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + pg-types@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz" @@ -6367,6 +6815,15 @@ require-from-string@^2.0.2: resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-in-the-middle@^7.1.1: + version "7.4.0" + resolved "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz" + integrity sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ== + dependencies: + debug "^4.3.5" + module-details-from-path "^1.0.3" + resolve "^1.22.8" + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" @@ -6399,7 +6856,7 @@ resolve.exports@^2.0.0: resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.0.0, resolve@^1.20.0: +resolve@^1.0.0, resolve@^1.20.0, resolve@^1.22.8: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -6547,12 +7004,10 @@ semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: - version "7.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: + version "7.6.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== set-blocking@^2.0.0: version "2.0.0" @@ -6622,6 +7077,11 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shimmer@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz" + integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== + short-uuid@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/short-uuid/-/short-uuid-4.2.2.tgz" @@ -6721,15 +7181,15 @@ socket.io-parser@~4.2.4: debug "~4.3.1" socket.io@^4.6.2: - version "4.7.5" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz" - integrity sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA== + version "4.8.1" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz" + integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== dependencies: accepts "~1.3.4" base64id "~2.0.0" cors "~2.8.5" debug "~4.3.2" - engine.io "~6.5.2" + engine.io "~6.6.0" socket.io-adapter "~2.5.2" socket.io-parser "~4.2.4" @@ -7165,19 +7625,20 @@ ts-essentials@^10.0.0: resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-10.0.0.tgz" integrity sha512-77FHNJEyysF9+1s4G6eejuA1lxw7uMchT3ZPy3CIbh7GIunffpshtM8pTe5G6N5dpOzNevqRHew859ceLWVBfw== -ts-jest@^29.1.2: - version "29.1.2" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz" - integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g== +ts-jest@^29.2.5: + version "29.2.5" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz" + integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" + bs-logger "^0.2.6" + ejs "^3.1.10" + fast-json-stable-stringify "^2.1.0" jest-util "^29.0.0" json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.6.3" + yargs-parser "^21.1.1" ts-node-dev@^2.0.0: version "2.0.0" @@ -7323,10 +7784,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@*, "typescript@^3.0.0 || ^4.0.0 || ^5.0.0", typescript@^5.4.5, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=4.3 <6", typescript@>=4.5.0: - version "5.4.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +typescript@*, "typescript@^3.0.0 || ^4.0.0 || ^5.0.0", typescript@^5.6.3, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=4.3 <6", typescript@>=4.5.0: + version "5.6.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== uid-safe@^2.1.5: version "2.1.5" @@ -7345,10 +7806,10 @@ undefsafe@^2.0.5: resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== universalify@^2.0.0: version "2.0.1" @@ -7674,11 +8135,6 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.9: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" diff --git a/tdrive/docker-compose.dev.deps.yml b/tdrive/docker-compose.dev.deps.yml new file mode 100644 index 000000000..75c8d4bf1 --- /dev/null +++ b/tdrive/docker-compose.dev.deps.yml @@ -0,0 +1,152 @@ +services: + + postgres: + image: postgres + restart: always + environment: + POSTGRES_DB: tdrive + POSTGRES_PASSWORD: tdrive_secret + POSTGRES_USER: tdrive_user + ports: + - "5432:5432" + networks: + - tdrive_network + + mongo: + container_name: mongo + image: mongo + ports: + - 27017:27017 + healthcheck: + test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet + networks: + - tdrive_network + + redis: + image: "redis:alpine" + command: redis-server --requirepass some_password + ports: + - "6379:6379" + environment: + - REDIS_REPLICATION_MODE=master + networks: + - tdrive_network + + av: + image: clamav/clamav:latest + container_name: av + ports: + - 3310:3310 + networks: + - tdrive_network + + minio: + image: minio/minio + ports: + - "9000:9000" + volumes: + - ./test/.minio/data:/export + - ./test/.minio/config:/root/.minio + environment: + - MINIO_ROOT_USER=admin + - MINIO_ROOT_PASSWORD=adminminio + command: server /export + healthcheck: + test: MC_HOST_custom=http://localhost:9000 mc ready local + networks: + - tdrive_network + + createbucket: + image: minio/mc + depends_on: + minio: + condition: service_healthy + entrypoint: > + /bin/sh -c " + /usr/bin/mc config host add myminio http://minio:9000 admin adminminio; + /usr/bin/mc rm -r --force myminio/drive; + /usr/bin/mc mb myminio/drive; + exit 0; + " + networks: + - tdrive_network + + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 + environment: + - xpack.security.enabled=false + - bootstrap.memory_lock=true + - discovery.type=single-node + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + healthcheck: + test: curl --write-out 'HTTP %{http_code}' --fail --silent --output /dev/null http://localhost:9200/ + ulimits: + memlock: + soft: -1 + hard: -1 + ports: + - 9200:9200 + networks: + - tdrive_network + + rabbitmq: + image: rabbitmq:management + hostname: rabbitmq + container_name: rabbitmq + environment: + - RABBITMQ_DEFAULT_USER=guest + - RABBITMQ_DEFAULT_PASS=guest + healthcheck: + test: rabbitmq-diagnostics -q ping + ports: + - "5672:5672" + - "15672:15672" + volumes: + - ./.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/ + - ./.docker-conf/rabbitmq/log/:/var/log/rabbitmq + networks: + - tdrive_network + + onlyoffice: + image: docker.io/onlyoffice/documentserver + ports: + - 8090:80 + environment: + - AMQP_URI=amqp://guest:guest@rabbitmq + - JWT_ENABLED=false + depends_on: + - rabbitmq + volumes: + - ./onlyoffice_data:/var/www/onlyoffice/Data + networks: + - tdrive_network + + opensearch-node1: + image: opensearchproject/opensearch:2.11.0 # Specifying the latest available image - modify if you want a specific version + container_name: opensearch-node1 + environment: + - cluster.name=opensearch-cluster # Name the cluster + - node.name=opensearch-node1 # Name the node that will run in this container + - discovery.seed_hosts=opensearch-node1 # Nodes to look for when discovering the cluster + - cluster.initial_cluster_manager_nodes=opensearch-node1 # Nodes eligible to serve as cluster manager + - bootstrap.memory_lock=true # Disable JVM heap memory swapping + # - OPENSEARCH_INITIAL_ADMIN_PASSWORD=admin + - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM + ulimits: + memlock: + soft: -1 # Set memlock to unlimited (no soft or hard limit) + hard: -1 + nofile: + soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536 + hard: 65536 + # volumes:˚ + # - opensearch-data1:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container + ports: + - 9200:9200 # REST API + - 9600:9600 # Performance Analyzer + networks: + - tdrive_network + +networks: + tdrive_network: + driver: bridge diff --git a/tdrive/docker-compose.dev.minio.yml b/tdrive/docker-compose.dev.minio.yml deleted file mode 100644 index 268234362..000000000 --- a/tdrive/docker-compose.dev.minio.yml +++ /dev/null @@ -1,156 +0,0 @@ -version: "3.4" - -services: - mongo: - container_name: mongo - image: mongo - volumes: - - ./docker-data/mongo:/data/db - ports: - - 27017:27017 - networks: - - tdrive_network - - minio: - image: minio/minio - container_name: minio - hostname: minio - ports: - - "9000-9001:9000-9001" - environment: - MINIO_ACCESS_KEY: your_access_key - MINIO_SECRET_KEY: your_secret_key - MINIO_ROOT_USER: minio - MINIO_ROOT_PASSWORD: miniopassword - volumes: - - ./minio/minio_data:/data - - ./minio/minio_config:/root/.minio - networks: - - tdrive_network - command: minio server /data --console-address ":9001" - - node: - build: - context: . - dockerfile: docker/tdrive-node/Dockerfile - target: development - container_name: tdrive-node - hostname: tdrive_node - ports: - - 4000:4000 - - 9229:9229 - environment: - - DEV=dev - - SEARCH_DRIVER=mongodb - - DB_DRIVER=mongodb - - PUBSUB_TYPE=local - - STORAGE_DRIVER=S3 - - STORAGE_S3_BUCKET=tdrive-dev - - STORAGE_S3_ENDPOINT=minio - - STORAGE_S3_ACCESS_KEY=rdIhSodMBxG2Mi62s4IB - - STORAGE_S3_SECRET_KEY=Hak2Ml5KLF6WxjBil1msKE7oQRXKKZAqj9X5FHeH - volumes: - - ./backend/node/src:/usr/src/app/src - - ./docker-data/documents/:/storage/ - depends_on: - - mongo - - minio # Make sure the node service depends on Minio - links: - - mongo - networks: - - tdrive_network - - frontend: - build: - context: . - dockerfile: docker/tdrive-frontend/Dockerfile - container_name: tdrive_frontend - environment: - - DEV=production - - SSL_CERTS=selfsigned - - NODE_HOST=http://tdrive_node:4000 - ports: - - 80:80 - - 443:443 - depends_on: - - node - volumes: - - ./docker-data/logs/nginx/:/var/log/nginx - - ./docker-data/letsencrypt/:/etc/letsencrypt/ - - ./docker-data/drive-preview/:/tdrive-core/web/medias/ - - ./docker-data/uploads/:/tdrive-core/web/upload/ - - ./docker-data/ssl:/etc/nginx/ssl - networks: - - tdrive_network - - onlyoffice-connector: - image: onlyoffice-connector - environment: - - CREDENTIALS_ENDPOINT=http://tdrive_node:4000 - - ONLY_OFFICE_SERVER=http://localhost:8090/ - - SERVER_ORIGIN=http://onlyoffice-connector:5000 - - SERVER_PORT=5000 - - SERVER_PREFIX=/plugins/onlyoffice - - CREDENTIALS_ID=tdrive_onlyoffice - - CREDENTIALS_SECRET=c1cc66db78e1d3bb4713c55d5ab2 - ports: - - 5000:5000 - depends_on: - - onlyoffice - networks: - - tdrive_network - - onlyoffice-rabbitmq: - image: rabbitmq:management - hostname: onlyoffice-rabbitmq - container_name: rabbitmq - environment: - - RABBITMQ_DEFAULT_USER=guest - - RABBITMQ_DEFAULT_PASS=guest - ports: - - "5672:5672" - - "15672:15672" - volumes: - - ./.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/ - - ./.docker-conf/rabbitmq/log/:/var/log/rabbitmq - networks: - - tdrive_network - - onlyoffice-postgresql: - image: postgres:13 - hostname: onlyoffice-postgresql - environment: - - POSTGRES_DB=onlyoffice - - POSTGRES_USER=onlyoffice - - POSTGRES_PASSWORD=onlyoffice - ports: - - 5432:5432 - volumes: - - ./onlyoffice_postgres_data:/var/lib/postgresql/data - networks: - - tdrive_network - - onlyoffice: - image: docker.io/onlyoffice/documentserver - hostname: onlyoffice - ports: - - 8090:80 - networks: - - tdrive_network - environment: - - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq - - DB_HOST=onlyoffice-postgresql - - DB_NAME=onlyoffice - - DB_PORT=5432 - - DB_TYPE=postgres - - DB_USER=onlyoffice - - JWT_ENABLED=false - depends_on: - - onlyoffice-rabbitmq - - onlyoffice-postgresql - volumes: - - ./onlyoffice_data:/var/www/onlyoffice/Data - -networks: - tdrive_network: - driver: bridge \ No newline at end of file diff --git a/tdrive/docker-compose.dev.mongo.yml b/tdrive/docker-compose.dev.mongo.yml deleted file mode 100644 index 991de77be..000000000 --- a/tdrive/docker-compose.dev.mongo.yml +++ /dev/null @@ -1,144 +0,0 @@ -version: "3.4" - -services: - mongo: - container_name: mongo - image: mongo - volumes: - - ./docker-data/mongo:/data/db - ports: - - 27017:27017 - networks: - - tdrive_network - - av: - image: clamav/clamav:latest - container_name: av - ports: - - 3310:3310 - networks: - - tdrive_network - - node: - build: - context: . - dockerfile: docker/tdrive-node/Dockerfile - target: development - container_name: tdrive-node - hostname: tdrive_node - ports: - - 4000:4000 - - 9229:9229 - environment: - - DEV=dev - - SEARCH_DRIVER=mongodb - - DB_DRIVER=mongodb - - PUBSUB_TYPE=local - - ./docker-data/documents/:/storage/ - volumes: - - ./backend/node/profiles:/usr/src/app/profiles - - ./backend/node/src:/usr/src/app/src - - ./docker-data/documents/:/storage/ - depends_on: - - mongo - links: - - mongo - networks: - - tdrive_network - - frontend: - build: - context: . - dockerfile: docker/tdrive-frontend/Dockerfile - container_name: tdrive_frontend - environment: - - DEV=production - - SSL_CERTS=selfsigned - - NODE_HOST=http://tdrive_node:4000 - ports: - - 80:80 - - 443:443 - depends_on: - - node - volumes: - - ./docker-data/logs/nginx/:/var/log/nginx - - ./docker-data/letsencrypt/:/etc/letsencrypt/ - - ./docker-data/drive-preview/:/tdrive-core/web/medias/ - - ./docker-data/uploads/:/tdrive-core/web/upload/ - - ./docker-data/ssl:/etc/nginx/ssl - networks: - - tdrive_network - - onlyoffice-connector: - build: - context: . - dockerfile: docker/onlyoffice-connector/Dockerfile - environment: - - CREDENTIALS_ENDPOINT=http://tdrive_node:4000 - - ONLY_OFFICE_SERVER=http://onlyoffice:8090/ - - SERVER_ORIGIN=http://onlyoffice-connector:5000 - - SERVER_PORT=5000 - - SERVER_PREFIX=/plugins/onlyoffice - - CREDENTIALS_ID=tdrive_onlyoffice - - CREDENTIALS_SECRET=c1cc66db78e1d3bb4713c55d5ab2 - ports: - - 5000:5000 - depends_on: - - onlyoffice - networks: - - tdrive_network - - onlyoffice-rabbitmq: - image: rabbitmq:management - hostname: onlyoffice-rabbitmq - container_name: rabbitmq - environment: - - RABBITMQ_DEFAULT_USER=guest - - RABBITMQ_DEFAULT_PASS=guest - ports: - - "5672:5672" - - "15672:15672" - volumes: - - ./.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/ - - ./.docker-conf/rabbitmq/log/:/var/log/rabbitmq - networks: - - tdrive_network - - onlyoffice-postgresql: - image: postgres:13 - hostname: onlyoffice-postgresql - environment: - - POSTGRES_DB=onlyoffice - - POSTGRES_USER=onlyoffice - - POSTGRES_PASSWORD=onlyoffice - ports: - - 5432:5432 - volumes: - - ./onlyoffice_postgres_data:/var/lib/postgresql/data - networks: - - tdrive_network - - onlyoffice: - image: docker.io/onlyoffice/documentserver - ports: - - 8090:80 - networks: - - tdrive_network - environment: - - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq - - DB_HOST=onlyoffice-postgresql - - DB_NAME=onlyoffice - - DB_PORT=5432 - - DB_TYPE=postgres - - DB_USER=onlyoffice - - JWT_ENABLED=false - depends_on: - - onlyoffice-rabbitmq - - onlyoffice-postgresql - volumes: - - ./onlyoffice_data:/var/www/onlyoffice/Data - -networks: - tdrive_network: - driver: bridge - \ No newline at end of file diff --git a/tdrive/docker-compose.dev.onlyoffice.yml b/tdrive/docker-compose.dev.onlyoffice.yml deleted file mode 100644 index 29b0380e9..000000000 --- a/tdrive/docker-compose.dev.onlyoffice.yml +++ /dev/null @@ -1,62 +0,0 @@ -version: "3.4" - -services: - - onlyoffice-rabbitmq: - image: rabbitmq:management - hostname: onlyoffice-rabbitmq - container_name: rabbitmq - environment: - - RABBITMQ_DEFAULT_USER=guest - - RABBITMQ_DEFAULT_PASS=guest - ports: - - "5672:5672" - - "15672:15672" - volumes: - - ./.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/ - - ./.docker-conf/rabbitmq/log/:/var/log/rabbitmq - networks: - - tdrive_network - - onlyoffice-postgresql: - image: postgres:13 - hostname: onlyoffice-postgresql - environment: - - POSTGRES_DB=onlyoffice - - POSTGRES_USER=onlyoffice - - POSTGRES_PASSWORD=onlyoffice - ports: - - 5432:5432 - volumes: - - ./onlyoffice_postgres_data:/var/lib/postgresql/data - networks: - - tdrive_network - - onlyoffice: - image: docker.io/onlyoffice/documentserver - hostname: onlyoffice - ports: - - 8090:80 - networks: - - tdrive_network - environment: - - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq - - DB_HOST=onlyoffice-postgresql - - DB_NAME=onlyoffice - - DB_PORT=5432 - - DB_TYPE=postgres - - DB_USER=onlyoffice - - JWT_ENABLED=false - - ALLOW_META_IP_ADDRESS=true - - ALLOW_PRIVATE_IP_ADDRESS=true - depends_on: - - onlyoffice-rabbitmq - - onlyoffice-postgresql - volumes: - - ./onlyoffice_data:/var/www/onlyoffice/Data - extra_hosts: - - "host.docker.internal:host-gateway" - -networks: - tdrive_network: - driver: bridge \ No newline at end of file diff --git a/tdrive/docker-compose.dev.tests.cassandra.yml b/tdrive/docker-compose.dev.tests.cassandra.yml deleted file mode 100644 index 9147f31f5..000000000 --- a/tdrive/docker-compose.dev.tests.cassandra.yml +++ /dev/null @@ -1,50 +0,0 @@ -version: "3.4" - -services: - scylladb: - image: scylladb/scylla:4.1.0 - command: --seeds=scylladb --smp 1 --memory 400M --overprovisioned 1 --api-address 0.0.0.0 - volumes: - - ./docker-data/scylladb:/var/lib/scylla - rabbitmq: - image: rabbitmq:3 - ports: - - 5672:5672 - - 15672:15672 - node: - image: tdrive/tdrive-node:test - build: - context: . - dockerfile: docker/tdrive-node/Dockerfile - target: test - environment: - - NODE_ENV=test - - DB_DRIVER - - PUBSUB_URLS=amqp://guest:guest@rabbitmq:5672 - - SEARCH_ES_ENDPOINT=http://elasticsearch:9200 - - SEARCH_ES_FLUSHINTERVAL=1 - volumes: - - ./backend/node:/usr/src/app - - ./docker-data/documents/:/storage/ - depends_on: - - scylladb - - rabbitmq - - elasticsearch - links: - - scylladb - - rabbitmq - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 - environment: - - xpack.security.enabled=false - - bootstrap.memory_lock=true - - discovery.type=single-node - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - ulimits: - memlock: - soft: -1 - hard: -1 - volumes: - - ./docker-data/es_tdrive:/usr/share/elasticsearch/data - ports: - - 9200:9200 diff --git a/tdrive/docker-compose.dev.tests.mongo.yml b/tdrive/docker-compose.dev.tests.mongo.yml deleted file mode 100644 index abd078322..000000000 --- a/tdrive/docker-compose.dev.tests.mongo.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: "3.4" - -# docker-compose -f docker-compose.dev.tests.mongo.yml stop mongo; rm -R docker-data/mongo/; docker-compose -f docker-compose.dev.tests.mongo.yml run -e SEARCH_DRIVER=mongodb -e DB_DRIVER=mongodb node npm run test:e2e - -services: - mongo: - container_name: mongo - image: mongo - volumes: - - ./docker-data/mongo:/data/db - ports: - - 27017:27017 - node: - image: tdrive/tdrive-node:test - container_name: node-test - build: - context: . - dockerfile: docker/tdrive-node/Dockerfile - target: test - environment: - - NODE_ENV=test - - DB_DRIVER - - PUBSUB_URLS=amqp://guest:guest@rabbitmq:5672 - volumes: - - ./backend/node:/usr/src/app - - ./docker-data/documents/:/storage/ - depends_on: - - mongo - links: - - mongo diff --git a/tdrive/docker-compose.dev.tests.opensearch.yml b/tdrive/docker-compose.dev.tests.opensearch.yml index 7c025bd0d..96cd8a199 100644 --- a/tdrive/docker-compose.dev.tests.opensearch.yml +++ b/tdrive/docker-compose.dev.tests.opensearch.yml @@ -3,47 +3,6 @@ version: "3.4" # docker-compose -f docker-compose.dev.tests.mongo.yml stop mongo; rm -R docker-data/mongo/; docker-compose -f docker-compose.dev.tests.mongo.yml run -e SEARCH_DRIVER=mongodb -e DB_DRIVER=mongodb node npm run test:e2e services: - opensearch-node1: - image: opensearchproject/opensearch:2.11.0 # Specifying the latest available image - modify if you want a specific version - container_name: opensearch-node1 - environment: - - cluster.name=opensearch-cluster # Name the cluster - - node.name=opensearch-node1 # Name the node that will run in this container - - discovery.seed_hosts=opensearch-node1 # Nodes to look for when discovering the cluster - - cluster.initial_cluster_manager_nodes=opensearch-node1 # Nodes eligible to serve as cluster manager - - bootstrap.memory_lock=true # Disable JVM heap memory swapping - # - OPENSEARCH_INITIAL_ADMIN_PASSWORD=admin - - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM - ulimits: - memlock: - soft: -1 # Set memlock to unlimited (no soft or hard limit) - hard: -1 - nofile: - soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536 - hard: 65536 - # volumes: - # - opensearch-data1:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container - ports: - - 9200:9200 # REST API - # - 9600:9600 # Performance Analyzer - # networks: - # - opensearch-net # All of the containers will join the same Docker bridge network - - postgres: - image: postgres - restart: always - environment: - POSTGRES_DB: tdrive - POSTGRES_PASSWORD: tdrive_secret - POSTGRES_USER: tdrive_user - ports: - - "5432:5432" - - av: - image: clamav/clamav:latest - container_name: av - ports: - - 3310:3310 node: # Use the build context in the current directory @@ -76,3 +35,5 @@ services: - postgres - opensearch-node1 - av + networks: + - tdrive_network diff --git a/tdrive/docker-compose.dev.tests.rabbitmq.yml b/tdrive/docker-compose.dev.tests.rabbitmq.yml new file mode 100644 index 000000000..592d2f63c --- /dev/null +++ b/tdrive/docker-compose.dev.tests.rabbitmq.yml @@ -0,0 +1,70 @@ +version: "3.4" + +services: + + node: + build: + context: . + dockerfile: docker/tdrive-node/Dockerfile + target: development + container_name: tdrive-node + hostname: tdrive_node + ports: + - 4000:4000 + - 9229:9229 + environment: + - DEV=dev + - SEARCH_DRIVER=mongodb + - DB_DRIVER=mongodb + - PUBSUB_TYPE=amqp + - SERVICES_LIST=[ "webserver", "database", "tracker", "applications", "search", "storage", "message-queue", "user", "files", "auth", "documents", "counter", "cron", "general", "email-pusher" ] + - ./docker-data/documents/:/storage/ + volumes: + - ./backend/node/profiles:/usr/src/app/profiles + - ./backend/node/src:/usr/src/app/src + - ./docker-data/documents/:/storage/ + depends_on: + mongo: + condition: service_healthy + rabbitmq: + condition: service_healthy + node_preview: + condition: service_started + links: + - mongo + + node_preview: + build: + context: . + dockerfile: docker/tdrive-node/Dockerfile + target: development + container_name: tdrive-preview-node + hostname: tdrive_preview_node + ports: + - 4001:4001 + - 9229:9229 + environment: + - DEV=dev + - TWAKE_DRIVE_PORT="4001" + - SEARCH_DRIVER=mongodb + - DB_DRIVER=mongodb + - PUBSUB_TYPE=amqp + - SERVICES_LIST=[ "webserver", "previews", "database", "tracker", "applications", "search", "storage", "message-queue", "user", "files", "auth", "documents", "counter", "cron", "general", "email-pusher" ] + - ./docker-data/documents/:/storage/ + volumes: + - ./backend/node/profiles:/usr/src/app/profiles + - ./backend/node/src:/usr/src/app/src + - ./docker-data/documents/:/storage/ + depends_on: + mongo: + condition: service_healthy + rabbitmq: + condition: service_healthy + links: + - mongo + + + + + + \ No newline at end of file diff --git a/tdrive/docker-compose.onpremise.yml b/tdrive/docker-compose.onpremise.yml deleted file mode 100644 index 0de55b51b..000000000 --- a/tdrive/docker-compose.onpremise.yml +++ /dev/null @@ -1,60 +0,0 @@ -version: "3.4" - -services: - scylladb: - image: scylladb/scylla:4.1.0 - command: --smp 1 --memory 1G - ports: - - 9042:9042 - volumes: - - ./docker-data/scylladb:/var/lib/scylla - healthcheck: - test: ["CMD-SHELL", "nodetool status | grep UN"] - interval: 30s - timeout: 10s - retries: 3 - - rabbitmq: - image: rabbitmq:3 - healthcheck: - test: rabbitmq-diagnostics -q ping - interval: 30s - timeout: 10s - retries: 3 - - node: - build: - context: . - dockerfile: docker/tdrive-node/Dockerfile - environment: - - NODE_ENV=production - - PUBSUB_URLS=amqp://guest:guest@rabbitmq:5672 - volumes: - - ./default-configuration/backend-node/production.json:/usr/src/app/config/production.json - - ./docker-data/documents/:/storage/ - depends_on: - scylladb: - condition: service_healthy - rabbitmq: - condition: service_healthy - - - nginx: - build: - context: . - dockerfile: docker/tdrive-frontend/Dockerfile - environment: - - DEV=production - - SSL_CERTS=selfsigned - ports: - - 80:80 - - 8000:80 - - 443:443 - depends_on: - - node - volumes: - - ./docker-data/logs/nginx/:/var/log/nginx - - ./docker-data/letsencrypt/:/etc/letsencrypt/ - - ./docker-data/drive-preview/:/tdrive-core/web/medias/ - - ./docker-data/uploads/:/tdrive-core/web/upload/ - - ./docker-data/ssl:/etc/nginx/ssl diff --git a/tdrive/docker-compose.tests.postgresql.yml b/tdrive/docker-compose.tests.postgresql.yml deleted file mode 100644 index 9855191e1..000000000 --- a/tdrive/docker-compose.tests.postgresql.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: "3.4" - -services: - postgres: - image: postgres - restart: always - environment: - POSTGRES_DB: tdrive - POSTGRES_PASSWORD: tdrive_secret - POSTGRES_USER: tdrive_user - ports: - - "5432:5432" diff --git a/tdrive/docker-compose.tests.yml b/tdrive/docker-compose.tests.yml index 515b6cc4e..c3ab831a5 100644 --- a/tdrive/docker-compose.tests.yml +++ b/tdrive/docker-compose.tests.yml @@ -1,64 +1,4 @@ -version: "3" - services: - # rabbitmq: - # image: rabbitmq:3 - # ports: - # - 5672:5672 - # - 15672:15672 - - mongo: - container_name: mongo - image: mongo - ports: - - 27017:27017 - healthcheck: - test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet - av: - image: clamav/clamav:latest - container_name: av - ports: - - 3310:3310 - healthcheck: - test: ["CMD-SHELL", "echo 'PING' | nc -w 5 localhost 3310"] - interval: 30s - timeout: 10s - retries: 5 - - redis: - image: "redis:alpine" - command: redis-server --requirepass some_password - ports: - - "6379:6379" - environment: - - REDIS_REPLICATION_MODE=master - - minio: - image: minio/minio - ports: - - "9000:9000" - volumes: - - ./test/.minio/data:/export - - ./test/.minio/config:/root/.minio - environment: - - MINIO_ROOT_USER=admin - - MINIO_ROOT_PASSWORD=adminminio - command: server /export - healthcheck: - test: MC_HOST_custom=http://localhost:9000 mc ready local - - createbucket: - image: minio/mc - depends_on: - minio: - condition: service_healthy - entrypoint: > - /bin/sh -c " - /usr/bin/mc config host add myminio http://minio:9000 admin adminminio; - /usr/bin/mc rm -r --force myminio/drive; - /usr/bin/mc mb myminio/drive; - exit 0; - " node: image: tdrive/tdrive-node:test @@ -91,33 +31,18 @@ services: condition: service_healthy av: condition: service_healthy - # rabbitmq: - # condition: service_started + rabbitmq: + condition: service_started elasticsearch: condition: service_healthy createbucket: condition: service_completed_successfully links: - mongo - - av + networks: + - tdrive_network # - rabbitmq - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4 - environment: - - xpack.security.enabled=false - - bootstrap.memory_lock=true - - discovery.type=single-node - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - healthcheck: - test: curl --write-out 'HTTP %{http_code}' --fail --silent --output /dev/null http://localhost:9200/ - ulimits: - memlock: - soft: -1 - hard: -1 - ports: - - 9200:9200 - nginx: image: tdrive/tdrive-frontend ports: